国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      利用布爾邏輯和可編程結(jié)構(gòu)進(jìn)行地址分析的方法和裝置的制作方法

      文檔序號(hào):6415976閱讀:256來源:國(guó)知局
      專利名稱:利用布爾邏輯和可編程結(jié)構(gòu)進(jìn)行地址分析的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明總體涉及可編程邏輯器件結(jié)構(gòu),特別涉及允許使用“不介意”和優(yōu)先權(quán)函數(shù)的結(jié)構(gòu)。邏輯器件結(jié)構(gòu)通常被用在諸如通信網(wǎng)絡(luò)地址分析系統(tǒng)的分析系統(tǒng)中,而且邏輯器件結(jié)構(gòu)也被用做微處理器結(jié)構(gòu)的一部分。
      在網(wǎng)絡(luò)交換機(jī)中的數(shù)據(jù)流、任務(wù)和事件為了提供一個(gè)背景和理解本發(fā)明涉及(但不限于)的系統(tǒng),對(duì)數(shù)字通信網(wǎng)絡(luò)交換機(jī)/路由器進(jìn)行描述。網(wǎng)絡(luò)交換機(jī)/路由器的功能就是從網(wǎng)絡(luò)節(jié)點(diǎn)接收數(shù)據(jù)包、分析每個(gè)數(shù)據(jù)包及把數(shù)據(jù)包發(fā)送到合適的節(jié)點(diǎn)上。這些功能是由網(wǎng)絡(luò)程序和協(xié)議來定義的。


      圖1描述了方便地利用本發(fā)明的一個(gè)典型的網(wǎng)絡(luò)交換機(jī)的一般功能配置。圖1中的的系統(tǒng)包括●一組輸入設(shè)備101A-101I,它把網(wǎng)絡(luò)部件連接到不同的物理介質(zhì)中,該物理介質(zhì)被用來從其它網(wǎng)絡(luò)部件或終端傳輸數(shù)據(jù)。
      ●一組被指明為轉(zhuǎn)發(fā)引擎(FE)的部件102A-102I,在其中,該引擎分析輸入包的目的網(wǎng)絡(luò)地址,并通過網(wǎng)絡(luò)部件為其建立最好的路由。FE是一組部件,它可以方便地使用本發(fā)明。
      ●交換機(jī)103,它根據(jù)上述轉(zhuǎn)發(fā)引擎102A-102I的地址分析結(jié)果,把數(shù)據(jù)包從給定的輸入端傳送到由輸入轉(zhuǎn)發(fā)引擎決定的輸出端,通過交換機(jī)來選擇路由。
      ●一組輸出設(shè)備104A-104I,它把網(wǎng)絡(luò)部件連接到物理介質(zhì),通過物理媒介,數(shù)據(jù)被傳送到其它路由器、交換機(jī)或終端。
      ●一控制、管理和維護(hù)部件(CAMU)105,它管理和控制路由器。注意,為簡(jiǎn)明起見,在圖1中只列出了第一個(gè)和最后一個(gè)輸入組件101A-101I、預(yù)處理部件102A-102I和輸出部件104A-104I。
      還應(yīng)注意,輸入輸出信道的數(shù)目不是固定不變的,而是隨著路由器設(shè)備而變化的。
      在某些系統(tǒng)中也用地址來保存?zhèn)魉陀涗?,例如誰(shuí)給誰(shuí)傳送數(shù)據(jù)、需要多長(zhǎng)時(shí)間、所傳送的數(shù)據(jù)總量是多少等等。在網(wǎng)絡(luò)中利用這些記錄完成諸如網(wǎng)絡(luò)維護(hù)、網(wǎng)絡(luò)統(tǒng)計(jì)、網(wǎng)絡(luò)優(yōu)化、記帳等工作。為了處理通信量、構(gòu)建所需的記錄,必須通過交換機(jī)中的轉(zhuǎn)發(fā)引擎部件分析出唯一地址。分析的結(jié)果可以是數(shù)據(jù)通過交換機(jī)時(shí)必須使用的路徑,構(gòu)建數(shù)據(jù)傳送記錄所需的信息,或諸如此類。在下面這些結(jié)果都將被指明地址分析的結(jié)果或動(dòng)作號(hào)。作為通信網(wǎng)絡(luò)的一個(gè)例子,基于互聯(lián)網(wǎng)協(xié)議第4版(用IPv4表示)的因特網(wǎng),通過交換機(jī)用來決定路由的唯一的網(wǎng)絡(luò)地址是以二進(jìn)制形式給出的,其長(zhǎng)度為32位。網(wǎng)絡(luò)地址被分為兩個(gè)子字段1)子網(wǎng)號(hào)或前綴,2)主機(jī)號(hào)。路由在子網(wǎng)之間數(shù)據(jù)的路由器,使用前綴號(hào)在網(wǎng)絡(luò)中路由數(shù)據(jù)。
      前綴的長(zhǎng)度會(huì)隨著子網(wǎng)的不同而改變,由于會(huì)出現(xiàn)這樣的情況兩個(gè)不同長(zhǎng)度的前綴,但前n位中具有相同的二進(jìn)制模式,這必須按兩個(gè)不同的方向去路由,這里使用最長(zhǎng)前綴匹配方法。該例子在因特網(wǎng)標(biāo)準(zhǔn)爭(zhēng)求意見1519、無類別域間路由(CIDR)地址分配和聚合策略中得到解釋。最長(zhǎng)前綴匹配查找最長(zhǎng)前綴(一個(gè)最具體的路由信息),要被路由匹配的包地址,及按該前綴路由此包。這個(gè)問題將在本使用的后面做進(jìn)一步的闡述。本發(fā)明將改進(jìn)地址分析的速度。
      在每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(路由器)中,存儲(chǔ)著關(guān)于如何按照每個(gè)數(shù)據(jù)包的目的地址路由輸入通信量的信息。信息通常存儲(chǔ)在表里,表里記錄著目的地址(網(wǎng)絡(luò)地址)和動(dòng)作碼的位模式間的關(guān)系。(我們把這種表稱做路由表,但在文獻(xiàn)中能發(fā)現(xiàn)其它的表達(dá)法,如“網(wǎng)絡(luò)地址表”,或簡(jiǎn)單的稱為“表”。作為一個(gè)例子,考慮下面所示的路由表 表1路由表的一個(gè)例子在這張路由表里a0或a1表示在該指定位置上的位分別必須是0或1,X符號(hào)表示在該指定位置上的位是無關(guān)緊要的(這個(gè)符號(hào)代表“不介意”)。
      路由表里的動(dòng)作號(hào)代表通過交換機(jī)或路由器的路徑是按照網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)構(gòu)建的。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是動(dòng)態(tài)的,這意味著雖然大多數(shù)網(wǎng)絡(luò)是由人工設(shè)計(jì)的,因而路由表可由網(wǎng)絡(luò)管理員建立,但大多數(shù)網(wǎng)絡(luò)經(jīng)歷著不穩(wěn)定性,這使得某些網(wǎng)絡(luò)路徑或網(wǎng)絡(luò)中的某些部分有時(shí)達(dá)不到。在這樣的網(wǎng)絡(luò)中,人工構(gòu)建的路由表必須在操作期間被更新(由網(wǎng)絡(luò)自動(dòng)更新),以使路由表總是代表當(dāng)前的網(wǎng)絡(luò)拓?fù)潢P(guān)系。
      路由表的另一個(gè)問題是在路由表中會(huì)出現(xiàn)與某個(gè)目的地址匹配的表有多入口的情況。作為一個(gè)例子,考慮線路號(hào)1、2、3。如果被分析的目的地址的前四位(位a1、a2、a3、a4)是(0111),則所有這些線路都將匹配。因?yàn)閿?shù)據(jù)包只能通過一條路徑來傳送,在路由表中必須包括這些線路的優(yōu)先權(quán),這在優(yōu)先權(quán)列指明了這一點(diǎn)。上面的例子中,具有最高優(yōu)先權(quán)值的的那個(gè)入口被選中,并返回相關(guān)的動(dòng)作碼。在上面所顯示的路由表中,要被分析的目的地址的前四位(比特位a1、a2、a3、a4)是(0111)的情況下,應(yīng)返回動(dòng)作碼2。(在其它執(zhí)行中也許會(huì)選擇不同的優(yōu)先權(quán)值代碼設(shè)計(jì)方案)。
      用現(xiàn)有軟硬件解決方案進(jìn)行地址分析存在的問題在現(xiàn)有技術(shù)中,地址分析由軟件算法或由專門設(shè)計(jì)的硬件完成。典型地,軟件算法基于使用一種查找樹(如二叉查找樹)的一些查找過程。該查找樹包含所有的網(wǎng)絡(luò)地址必須與之匹配的網(wǎng)絡(luò)結(jié)構(gòu)。軟件算法的優(yōu)點(diǎn)是更新和維護(hù)網(wǎng)絡(luò)功能靈活。當(dāng)新協(xié)議、新功能和/或新算法將被執(zhí)行時(shí),大多數(shù)情況下只須更新系統(tǒng)軟件。這種方發(fā)的缺點(diǎn)是軟件分析引入時(shí)的延時(shí)。對(duì)帶有許多終端的大網(wǎng)絡(luò)而言,地址分析可能是很耗時(shí)的工作,因而限制了網(wǎng)絡(luò)的性能。
      另外,查找樹必須定期更新,并保持均衡以達(dá)到最優(yōu)查找速度。在執(zhí)行這些維護(hù)工作期間,系統(tǒng)根本不能執(zhí)行任何網(wǎng)絡(luò)地址分析。這甚至還降低整個(gè)系統(tǒng)的性能。
      在執(zhí)行專門設(shè)計(jì)的硬件系統(tǒng)中,地址分析的延時(shí)更少??梢詾槟骋惶囟üδ軐?duì)硬件進(jìn)行優(yōu)化,因此延時(shí)會(huì)被保持在最小限度內(nèi)。
      使用查找樹的硬件確實(shí)存在。但即使硬件裝置速度很快,存儲(chǔ)器消耗和所需的硬件數(shù)也很顯著。維護(hù)查找樹所需的時(shí)間和保持查找樹平衡狀態(tài)也仍然是重要的。
      在現(xiàn)有軟件解決方案中,一個(gè)典型的實(shí)現(xiàn)方法使用了基于查找樹的表查找功能。圖2顯示了二又查找樹的一個(gè)例子。查找方法是搜遍查找樹分支的一個(gè)遍歷過程。在每個(gè)分支元素上,執(zhí)行下面的過程(在下面的例子中,假定查詢算法當(dāng)前正在檢測(cè)的圖2查找樹中的入口元素202)1.如果正在被分析的網(wǎng)絡(luò)地址號(hào)與當(dāng)前元素(202)的網(wǎng)絡(luò)號(hào)(或結(jié)構(gòu))相匹配被證實(shí)。有一匹配函數(shù)返回與特定元素(在本案例中是202)相關(guān)的動(dòng)作號(hào)。
      2.如果匹配未找到,過程繼續(xù)執(zhí)行兩個(gè)子元素中的一個(gè)(在本案例中要么是202,要么是203)。如果網(wǎng)絡(luò)地址號(hào)大于當(dāng)前元素(在本案例中是202)的網(wǎng)絡(luò)號(hào)(或模式),過程選擇上面的元素(在本案例中是203)。反之,過程繼續(xù)下面的分支(在本案例中是204)。
      函數(shù)在入口點(diǎn)201處,從第一個(gè)元素202處開始執(zhí)行,并繼續(xù)直到找到一個(gè)匹配或遇到了分支的最后一個(gè)元素(205)。
      擴(kuò)展該樹查找方法是可能的,以便完成最長(zhǎng)前綴匹配。這可以通過使用在節(jié)點(diǎn)中匹配不止一個(gè)動(dòng)作號(hào)的子樹來完成。這意味著查找算法必須調(diào)查本地樹,由此生成正確的動(dòng)作號(hào)。
      通過使用重復(fù)表查找的方法,軟件操作可以找到所需的動(dòng)作代碼。使用這種方法,為了找到正確的匹配,僅僅必須在查找樹中比較少量元素。對(duì)那些在較大的網(wǎng)絡(luò)中找到的表而言,典型地軟件操作為了找到一個(gè)匹配,可能必需在查找樹中查找10-20個(gè)元素,這仍然會(huì)花費(fèi)大量的時(shí)間。另外,系統(tǒng)必須維護(hù)查找樹以使它保持平衡,也就是使在查找樹到達(dá)給定分支(如元素205)的末端元素之前,軟件操作必須查找的元素?cái)?shù),對(duì)所有的分支大體相同。這種維護(hù)功能阻礙了查找樹為了地址分析功能的目的的使用,因而限制了軟件解決方案的性能。
      一些現(xiàn)有技術(shù)的硬件解決方案也使用了查找樹。雖然這些硬件解決方案的速度比相似的軟件解決方案的速度要快,但為了在一個(gè)較大的網(wǎng)絡(luò)中查找一個(gè)匹配,硬件解決方案仍然必須在查找樹中查詢10-20個(gè)入口。另外它們也必須維護(hù)查找樹。
      另外一個(gè)解決方案(“Routing Lookups in Hardware at MemoryAccess Speeds”Pankaj Gupta、Steven Lin和NickMckeown,IEEE Infocom April 1998,San Fransico)是基于存儲(chǔ)器查找表的解決方案,其中存儲(chǔ)器區(qū)保存著關(guān)于網(wǎng)絡(luò)地址和活動(dòng)號(hào)之間關(guān)系的信息。圖3顯示了一個(gè)系統(tǒng),這里的微處理器301被用于使用網(wǎng)絡(luò)地址302尋址存儲(chǔ)器304。從根本上說,存儲(chǔ)器將輸出被存儲(chǔ)在該存儲(chǔ)器單元中的動(dòng)作號(hào)307。該動(dòng)作號(hào)的的長(zhǎng)度可用如16位來實(shí)現(xiàn)。
      如果所有的網(wǎng)絡(luò)地址以32位的網(wǎng)絡(luò)地址來實(shí)現(xiàn),在存儲(chǔ)器304中將需要232個(gè)16位入口,因此,應(yīng)考慮測(cè)量成本及印刷電路板的面積。然而,由于被用來決定入口號(hào)的前綴長(zhǎng)度通常低于24位,因而,采用了一種在存儲(chǔ)器中只有224個(gè)入口定址的方法。這意味著只有網(wǎng)絡(luò)地址的24位被用作查找,這一點(diǎn)是通過拆分網(wǎng)絡(luò)地址302來完成的。
      然而,為了解決動(dòng)作號(hào)310,必須使用多于24位網(wǎng)絡(luò)地址情況下,引入了第二個(gè)存儲(chǔ)器308。為決定是否應(yīng)該使用這第二個(gè)存儲(chǔ)器,在主存儲(chǔ)器入口304的16位中的一位為此目的而保留。在多于24位的情況下,應(yīng)解決動(dòng)作號(hào)使用,主存輸出余下的15位與網(wǎng)絡(luò)地址余下的8位,即303,一起組成305用來指明在第二個(gè)存儲(chǔ)器的地址。這一點(diǎn)被描述為306。第二個(gè)存儲(chǔ)器308不能包括所有可能的入口,但該方法是基于以下事實(shí)的為決定目的地,只有少數(shù)網(wǎng)絡(luò)地址需要大于24位。
      整個(gè)系統(tǒng)的動(dòng)作號(hào)輸出310是一個(gè)在兩個(gè)存儲(chǔ)器輸出之間的選擇309。把網(wǎng)絡(luò)地址拆分成24位和8位的拆分點(diǎn)可被改變,以適應(yīng)有利的地方,即前綴分布不同的地方。
      這種方法的缺點(diǎn)是1.大容量的存儲(chǔ)器(上面的例子是33兆字節(jié))在現(xiàn)有技術(shù)下不能被集成在一塊集成電路上。由于需要多個(gè)集成電路間的通信,這將限制操作的速度。
      2.使用現(xiàn)有技術(shù),由于大約需要19個(gè)電路,這也將影響系統(tǒng)的成本。另外,在今天的印刷電路板系統(tǒng)中,該解決方案所需的面積將是重要的。
      3.在最壞的情況下,更新存儲(chǔ)器將使用17545個(gè)存儲(chǔ)周期,在這個(gè)存儲(chǔ)周期中,在即將到來的Internet包被處理或丟棄之前,必須將其存儲(chǔ)。這要么引進(jìn)更多的主存使用、降低了整體性能,要么導(dǎo)致丟失重要的數(shù)據(jù)包。
      4.這種方法基于假定前綴分配隨不同網(wǎng)絡(luò)而變化。
      MUSIC半導(dǎo)體已經(jīng)實(shí)現(xiàn)了一個(gè)基于內(nèi)容定址存儲(chǔ)器(CAM)的地址分析方法。下面將描述一下核心裝置,該核心裝置打算做在一個(gè)集成電路上。圖4描述了這種情況。當(dāng)應(yīng)用網(wǎng)絡(luò)地址401時(shí),CAM410被用來存儲(chǔ)信息,這使得這個(gè)方法能夠輸出地址值414。當(dāng)應(yīng)用網(wǎng)絡(luò)地址如下描述時(shí),動(dòng)作被執(zhí)行1.變換機(jī)402將把32位網(wǎng)絡(luò)地址擴(kuò)充為64位404時(shí),需要根據(jù)CAM中使用的三元態(tài)邏輯。三元態(tài)邏輯在比較時(shí)能使用“不介意”值。
      2.CAM 410將把64位網(wǎng)絡(luò)地址404與存儲(chǔ)在各入口的值加以比較,并認(rèn)定一個(gè)或多個(gè)匹配信號(hào)405,去指出網(wǎng)絡(luò)地址和相應(yīng)入口值之間的一致性。
      3.如果不止一個(gè)匹配信號(hào)405被認(rèn)定,當(dāng)只希望一個(gè)地址值(因一包只有一個(gè)目的地),必須啟動(dòng)選擇。這相當(dāng)于最長(zhǎng)前綴匹配。優(yōu)先權(quán)編碼器411將選擇具有最低地址的入口。使用這種方法,最長(zhǎng)前綴匹配是以CAM入口按前綴長(zhǎng)度分類為條件的。
      4.優(yōu)先權(quán)編碼器411,最多將認(rèn)定一個(gè)信號(hào)406,以指示選擇了哪一個(gè)入口。
      5.入口地址412,被地址編碼器407編碼。這里413和頁(yè)地址415相連接,這值可被編程到電路中。然后地址值414在輸出時(shí)提供。
      外部地址總線408和控制信號(hào)一起被用來把編程值編入CAM入口。這是通過解碼地址解碼器403,及把并把結(jié)果加到CAM編程線409來完成的。
      因?yàn)榈刂分抵苯优c在CAM中的相應(yīng)網(wǎng)絡(luò)地址的入口有關(guān),并且CAM中的入口必須按前綴長(zhǎng)度來排序,自由地聯(lián)接網(wǎng)絡(luò)地址和地址值是不可能的,因此地址值不能被用做動(dòng)作號(hào)。這樣的結(jié)果是必須執(zhí)行外部變換。圖5描述了此需要是如何被滿足的。當(dāng)網(wǎng)絡(luò)地址501被使用時(shí),上面描述的網(wǎng)絡(luò)地址分析器502將認(rèn)定地址值503。地址值被加到隨機(jī)存儲(chǔ)器(RAM)504,這將把地址值503映射到自由選擇的動(dòng)作號(hào)505上。
      如果網(wǎng)絡(luò)分析器被用在大的網(wǎng)絡(luò)路由器中,使用現(xiàn)有技術(shù)(在最大的MUSIC集成電路中是8K)在網(wǎng)絡(luò)分析器中實(shí)現(xiàn)的入口的總量將不足以包括所有可能的網(wǎng)絡(luò)地址。因此,在一些情況下需要不止一個(gè)分析器。既然最長(zhǎng)前綴匹配的規(guī)則必需滿足,與其它的網(wǎng)絡(luò)分析器聯(lián)合使用的網(wǎng)絡(luò)分析器將不得不通過專用的全局控制信號(hào)通信,并彼此等待計(jì)算的最佳匹配。
      這種方法的缺點(diǎn)是1.必須使用外部存儲(chǔ)器,這將限制系統(tǒng)的整體性能。
      2.為了維護(hù)正確的排序,當(dāng)更新一個(gè)入口時(shí),可能必需修正許多入口。這意味著單個(gè)的網(wǎng)絡(luò)地址更新可能造成大量等待時(shí)間,對(duì)于這種情況,一定是要么儲(chǔ)存包要么丟棄包。
      3.當(dāng)需要更多的網(wǎng)絡(luò)分析器時(shí),整體性能下降了,因?yàn)樵谝粋€(gè)分析器里的計(jì)算取決于其它分析器。
      在PCT申請(qǐng)WO95/33324中描述的轉(zhuǎn)發(fā)引擎中,路由判定的另一個(gè)解決方案使用了一個(gè)特別設(shè)計(jì)的路由功能,該路由功能基于專用尋址方案,及路由判定使用單個(gè)(可選)AND門。由于在光學(xué)領(lǐng)域中數(shù)字邏輯的限制,本發(fā)明最主要的目標(biāo)之一是盡可能尋找簡(jiǎn)單的判定操作。
      所描述的系統(tǒng)的網(wǎng)絡(luò)地址被選擇,以使兩個(gè)具體的操作能夠被應(yīng)用,一個(gè)為了查找一個(gè)具體的匹配,另一個(gè)被用作路由操作。
      從受限制的N位字的集合里選擇二進(jìn)制地址字,滿足這樣的性質(zhì)對(duì)集中的任何兩個(gè)字A(組成地址位a1、a2、an)和B(組成地址位b1、b2、bn),僅當(dāng)A=B時(shí)A_B=0否則A_B=1,其中表達(dá)式A_B指布爾表達(dá)式 ~X指X的邏輯補(bǔ)碼。公式1因此被用來在網(wǎng)絡(luò)地址之間查找正確的匹配。網(wǎng)絡(luò)地址集被限制,對(duì)N位寬的地址字(n是偶數(shù)),僅是 可以使用網(wǎng)絡(luò)地址。
      通過排序有限的網(wǎng)絡(luò)地址集,WO95/33324聲稱要求保護(hù)一種可為簡(jiǎn)單環(huán)型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立的簡(jiǎn)單路由功能。在這個(gè)環(huán)型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)只需決定被分析的包將要被送到相鄰網(wǎng)絡(luò)節(jié)點(diǎn)(路由器)的“左”還是“右”。通過使用預(yù)先設(shè)置的鑒別字來做路由判定,而函數(shù)定義如下 其中,A(組成地址位a1、a2、an)是被分析的網(wǎng)絡(luò)地址,D(組成地址位d1、d2、dn)是預(yù)先確定的鑒別字。環(huán)型網(wǎng)中的每一個(gè)節(jié)點(diǎn)(路由器)保留了一個(gè)預(yù)定的及用硬件(光學(xué)的)實(shí)現(xiàn)鑒別器字和公式3操作的裝置。如果被分析的包的目的地址和預(yù)先確定的鑒別器字一起使公式3的操作返回0,則節(jié)點(diǎn)在一個(gè)方向上控制該包,如果值為1,則節(jié)點(diǎn)在相反的方向上控制該包。
      這種解決方案的主要缺點(diǎn)是1.地址空間受限,只能使用一專門的網(wǎng)絡(luò)地址集。由于被使用的尋址方案不能被大多數(shù)主流網(wǎng)絡(luò)協(xié)議(如異步傳送模式ATM、以太網(wǎng)、互聯(lián)網(wǎng)協(xié)議等等)使用,則這些網(wǎng)絡(luò)協(xié)議不能使用該方法。
      2.由于公式3的輸出只是單一位,因此可能建立的判定類型只是“右”或“左”,或“1”或“0”的判定類型,網(wǎng)絡(luò)拓?fù)湎抻谟脙蓚€(gè)端口的交換機(jī)建立的環(huán)型網(wǎng)拓?fù)浣Y(jié)構(gòu)。大多數(shù)網(wǎng)絡(luò)并不受限于這種拓?fù)浣Y(jié)構(gòu),而使用其它類型的結(jié)構(gòu)(總線型、星型、網(wǎng)狀和所有這些的結(jié)合)和多于兩個(gè)端口的網(wǎng)絡(luò)部件。
      3.鑒別字的預(yù)定的特性使它難以改變或修正一個(gè)已經(jīng)安裝的網(wǎng)絡(luò),因此在所有和有些網(wǎng)絡(luò)節(jié)點(diǎn)會(huì)需要新的鑒別字。
      4.網(wǎng)絡(luò)節(jié)點(diǎn)(路由器)上的鑒別字用光學(xué)領(lǐng)域的延時(shí)部件實(shí)現(xiàn),且一旦建立就不能被改變。因此,為了改變網(wǎng)絡(luò),必須建立新節(jié)點(diǎn)(路由器)。
      5.為了增加一個(gè)新的網(wǎng)絡(luò)節(jié)點(diǎn),需要重建整個(gè)系統(tǒng),因?yàn)閿U(kuò)展需要一個(gè)新的網(wǎng)絡(luò)地址集,因而需要一個(gè)新的節(jié)點(diǎn)集。
      6.如果一個(gè)節(jié)點(diǎn)出了故障,整個(gè)系統(tǒng)將不起作用,而無法用。
      本發(fā)明克服了下面這些限制1.本發(fā)明可被任何地址方案和任何網(wǎng)絡(luò)協(xié)議使用,因?yàn)椴紶柌僮魇遣还潭ɑ蛭搭A(yù)定的,它可以是任何乘積和描述的形式。
      2.本發(fā)明簡(jiǎn)化了改變/更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的任務(wù),因?yàn)榫W(wǎng)絡(luò)地址分析功能的布爾操作可以被修改或重新編程。
      3.本發(fā)明可以在具有多于兩個(gè)端口的路由器中使用,因?yàn)樗芴幚砭哂卸辔坏膭?dòng)作號(hào)。
      地址分析處理的結(jié)果在很大程度上被用來選擇一些可能的操作中的一個(gè),例如數(shù)據(jù)包應(yīng)該通過路由器的哪條路徑流動(dòng),哪個(gè)計(jì)數(shù)器應(yīng)該加1等等。每一個(gè)可能的動(dòng)作都被分配一個(gè)唯一的號(hào)碼,動(dòng)作碼,和指定一個(gè)描述網(wǎng)絡(luò)地址和動(dòng)作號(hào)之間關(guān)系的函數(shù)。
      這個(gè)函數(shù)被稱作地址分析函數(shù)。在現(xiàn)有技術(shù)給出了一個(gè)例子中,地址分析函數(shù)通過指明表查找的方法來實(shí)現(xiàn)。這些現(xiàn)有技術(shù)解決方案以適當(dāng)?shù)姆绞浇M織表,并使用軟件或硬件例程或方法來查找這個(gè)表。
      從前面的討論應(yīng)該明白,需要一個(gè)方法和分析輸入字的系統(tǒng),這里的分析處理用硬件速度工作,及這里的分析處理函數(shù)能被編程和/或被更新。
      根據(jù)本發(fā)明的第一個(gè)特點(diǎn),提供了這樣的解決方案,這里通過使用包含一個(gè)或多個(gè)邏輯器件以實(shí)現(xiàn)計(jì)算規(guī)則運(yùn)算的分析系統(tǒng),提供了一個(gè)分析輸入字或模式的方法,所說的邏輯器件用硬件實(shí)現(xiàn),及可重復(fù)編程,從而提供新的計(jì)算規(guī)則裝置,所說的計(jì)算規(guī)則至少部分是分析系統(tǒng)的一個(gè)或多個(gè)處理函數(shù),所說的方法包括向分析系統(tǒng)輸入被分析的輸入字的分析階段,而處理的輸入字因此提供輸出字,所說的處理包括實(shí)現(xiàn)一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算的步驟。
      這樣的方法可被方便的作為分析網(wǎng)絡(luò)地址的方法,在此,被分析的輸入字代表通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址,分析系統(tǒng)是指地址分析系統(tǒng)。這里,輸出字最好采取動(dòng)作號(hào)的形式,輸入字和/或輸出字也最好包括多于一位。
      應(yīng)該明白,一個(gè)或多個(gè)可編程的分析系統(tǒng)的邏輯器件(PLD)最好采取更適于處理邏輯操作的結(jié)構(gòu)。因此,優(yōu)選的計(jì)算規(guī)則包括由一或多個(gè)邏輯操作。這樣的邏輯操作可以是一個(gè)或多個(gè)模糊邏輯操作,但在優(yōu)選實(shí)施例中,計(jì)算規(guī)則包括一或多個(gè)布爾邏輯操作,在這個(gè)布爾邏輯操作中,這里所有的計(jì)算規(guī)則必須是布爾邏輯操作。
      這里,布爾邏輯操作由乘積項(xiàng)之和來定義。最好對(duì)輸出字的給定位的計(jì)算規(guī)則用乘積項(xiàng)之和來運(yùn)算,所說的每個(gè)乘積項(xiàng),和輸入字激活的輸出字中的各位相關(guān)。
      在處理輸入字的過程中,輸入字可被預(yù)先處理成預(yù)先確定的格式,預(yù)處理然后接著進(jìn)行一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算。在計(jì)算規(guī)則運(yùn)算的基礎(chǔ)上,輸出字被確定,而且計(jì)算規(guī)則運(yùn)算結(jié)果也可以是一中間輸出字,為了獲得輸出字,可對(duì)其進(jìn)行后處理。
      這樣,通過執(zhí)行或運(yùn)行計(jì)算規(guī)則,多位輸入字或多位預(yù)處理輸入字可由一些計(jì)算規(guī)則來處理,每一計(jì)算規(guī)則導(dǎo)致具有多位輸出字或中間輸出字的輸出位,而計(jì)算規(guī)則的數(shù)目與輸出字或中間輸出字的的位數(shù)相等。由于計(jì)算規(guī)則是通過使用如上所述的在硬件中執(zhí)行的可編程邏輯器件來實(shí)現(xiàn)的,顯然,在一個(gè)時(shí)鐘周期內(nèi)可獲得計(jì)算規(guī)則運(yùn)算結(jié)果的輸出。
      本發(fā)明的分析可被方便的用在包含最長(zhǎng)前綴地址分析運(yùn)算的地址分析中,在此,最長(zhǎng)前綴地址分析運(yùn)算最好是計(jì)算規(guī)則運(yùn)算的一部分。
      根據(jù)本發(fā)明的第一個(gè)方面的實(shí)施例,優(yōu)選的方案是一個(gè)或多個(gè)處理操作包括一個(gè)或多個(gè)優(yōu)先級(jí)函數(shù),這里的優(yōu)先級(jí)函數(shù)可以是計(jì)算規(guī)則的一部分。優(yōu)先級(jí)函數(shù)可在可編程的邏輯器件中實(shí)現(xiàn),它包含可重新編程的優(yōu)先級(jí)部件或函數(shù)(PPE),用以對(duì)相同輸入字匹配的幾個(gè)可能輸出結(jié)果之間區(qū)分優(yōu)先級(jí)。
      為了處理處理操作或計(jì)算規(guī)則,可編程的邏輯器件結(jié)構(gòu)可包含一個(gè)“與”處理位面,以獲得隨計(jì)算規(guī)則的輸入而變的乘積項(xiàng),這里,“與”位面的編程提供使用“不介意”輸入位。為了從“與”位面獲得乘積項(xiàng)之和,可編程的邏輯器件結(jié)構(gòu)也包含“或”位面,并由此導(dǎo)出計(jì)算規(guī)則的輸出結(jié)果。
      當(dāng)使用布爾邏輯操作時(shí),計(jì)算規(guī)則輸出結(jié)果可通過賦予要處理的不同的布爾操作以不同優(yōu)先級(jí)來確定。
      當(dāng)乘積項(xiàng)是在“與”位面上獲得的時(shí),這些乘積項(xiàng)會(huì)被區(qū)分優(yōu)先級(jí),由此在幾個(gè)被激活的乘積項(xiàng)中選擇一個(gè)。這里,可編程的優(yōu)先級(jí)部件,可為每一個(gè)同時(shí)被激活的乘積項(xiàng)分配可區(qū)分優(yōu)先次序的函數(shù)或一個(gè)優(yōu)先級(jí)值或優(yōu)先級(jí)號(hào)。最好,應(yīng)選擇具有最高優(yōu)先級(jí)值或優(yōu)先級(jí)號(hào)的乘積項(xiàng)。為了獲得計(jì)算規(guī)則的輸出結(jié)果,被選擇的乘積項(xiàng)可轉(zhuǎn)發(fā)到“或”位面。
      如果可編程的優(yōu)先級(jí)部件把優(yōu)先級(jí)號(hào)賦給乘積項(xiàng),則這樣的號(hào)碼將代表權(quán)重值或優(yōu)先權(quán)代碼。更可取的是,權(quán)重值會(huì)被賦給每一個(gè)乘積項(xiàng)。每一個(gè)被賦的權(quán)重值可等于為產(chǎn)生乘積項(xiàng),在“與”位面中被編程反熔絲(antifuses)數(shù)。
      為了易于更新分析系統(tǒng),根據(jù)本發(fā)明的第一個(gè)方面的分析方法還包括學(xué)習(xí)階段,這里,分析系統(tǒng)按照接收到的網(wǎng)絡(luò)地址和優(yōu)先級(jí)和/或動(dòng)作號(hào)之間關(guān)系的信息被更新。在更新期間,分析階段最好被暫停。更新最好包含對(duì)一個(gè)或多個(gè)可編程邏輯器件編程或重編程。
      當(dāng)在通信網(wǎng)絡(luò)中使用,通信網(wǎng)絡(luò)發(fā)生變化時(shí),分析系統(tǒng)可被更新。這種變化包含下面的一種或多種情況新的終端地址、網(wǎng)絡(luò)終端位置的變化和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化。
      本發(fā)明的第一個(gè)方面也為分析輸入字或模式提供了一個(gè)系統(tǒng)。這里的系統(tǒng)包括為實(shí)現(xiàn)計(jì)算規(guī)則運(yùn)算的一個(gè)或多個(gè)邏輯器件。所述的邏輯器件用硬件實(shí)現(xiàn),及可重復(fù)編程,從而提供新的計(jì)算規(guī)則裝置,所說的計(jì)算規(guī)則,至少部分是一個(gè)或多個(gè)處理操作,用于從輸入字或模式中來確定輸出字,從而提供一個(gè)分析結(jié)果。
      這里,分析系統(tǒng)可方便的成為網(wǎng)絡(luò)地址分析系統(tǒng),這里要分析的輸入字代表通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址。更可取的是,輸出字采取動(dòng)作號(hào)的形式,并且,輸入字和/或輸出字包含不止一位,這一點(diǎn)也是優(yōu)選的。
      可編程的邏輯器件被修改以適合用來執(zhí)行邏輯操作,這一點(diǎn)是首選的。因此,計(jì)算規(guī)則可包含一個(gè)或多個(gè)邏輯操作。象前面所討論的那樣,這些函數(shù)可以是模糊邏輯操作,但它們也可是布爾邏輯操作,所有的計(jì)算規(guī)則優(yōu)選的是布爾邏輯操作。布爾邏輯操作可由乘積項(xiàng)的和來定義,且具體的計(jì)算規(guī)則可包括指向輸出字的同一位的所有乘積項(xiàng)。
      分析系統(tǒng)的處理函數(shù)也可包含一個(gè)或多個(gè)預(yù)處理函數(shù)和/或一個(gè)或多個(gè)后處理函數(shù)。通過使用邏輯器件,使用一些計(jì)算規(guī)則能處理多位輸入字或多位預(yù)處理輸入字,這里,每一個(gè)計(jì)算規(guī)則可導(dǎo)致多位輸出字或中間輸出字的輸出位,所用計(jì)算規(guī)則的數(shù)等于輸出字或中間輸出字的位數(shù)。當(dāng)執(zhí)行邏輯操作計(jì)算時(shí),在那里邏輯操作被編程到邏輯器件中,計(jì)算規(guī)則運(yùn)算的輸出可在一個(gè)周期內(nèi)得到。
      在分析系統(tǒng)的優(yōu)選實(shí)施例中,可編程邏輯器件包含一個(gè)可重編程的優(yōu)先級(jí)部件或函數(shù)(PPE)用來對(duì)被相同輸入字匹配的幾個(gè)可能的輸出結(jié)果之間區(qū)分優(yōu)先級(jí)。可編程邏輯器件還可包含一個(gè)“與”處理位面,以獲得隨計(jì)算規(guī)則輸入而變的乘積項(xiàng),這里,“與”位面的編程技術(shù)提供使用“不介意”輸入位。為了從“與”位面獲得乘積項(xiàng)之和,可編程的邏輯器件結(jié)構(gòu)也包含“或”位面,并由此導(dǎo)出計(jì)算規(guī)則輸出結(jié)果,這也是優(yōu)選的。通過選擇具有最高優(yōu)先級(jí)值或號(hào)的被激活了的乘積項(xiàng),優(yōu)先級(jí)部件可適合于區(qū)分優(yōu)先級(jí)。
      為了易于對(duì)邏輯器件進(jìn)行編程或更新,更新可在分析過程之前執(zhí)行,或在上面描述的學(xué)習(xí)階段發(fā)生,首選的是可編程邏輯器件包含存儲(chǔ)器邏輯單元,這里的每個(gè)單元中包括為儲(chǔ)存一個(gè)匹配值的一個(gè)可重新編程的存儲(chǔ)組件,及也首選為了把輸入位的值與已存儲(chǔ)的匹配值相比較的邏輯組件。因此,把新的計(jì)算規(guī)則編程或重新編程到可編程邏輯器件硬件中,可通過編程存儲(chǔ)器組件實(shí)現(xiàn)。這里,一個(gè)輸入字或地址和輸出字或動(dòng)作號(hào)之間的關(guān)系中,編程的改變可在一個(gè)時(shí)鐘周期或一個(gè)存儲(chǔ)器寫周期內(nèi)完成。
      應(yīng)該明白,分析系統(tǒng)的可編程邏輯器件可在單個(gè)集成芯片中實(shí)現(xiàn)。此外,實(shí)現(xiàn)分析的處理函數(shù)可通過單個(gè)集成芯片中的處理單元實(shí)現(xiàn)。
      在本發(fā)明的第二個(gè)方面中,提供速度提高的微處理器體系結(jié)構(gòu)。這樣的微處理器可用在使用位字段分析限制應(yīng)用性能的軟件應(yīng)用中。
      這樣,根據(jù)本發(fā)明的第二個(gè)方面,提供了一單片微處理器體系結(jié)構(gòu),所說的體系結(jié)構(gòu)包括指令譯碼單元地址計(jì)算單元輸入/輸出部件算術(shù)邏輯單元(ALU)及可編程邏輯執(zhí)行單元(PLEU)這里,可編程邏輯執(zhí)行單元更適于實(shí)現(xiàn)一個(gè)或多個(gè)邏輯操作,用邏輯執(zhí)行單元的可重編程,由此提供實(shí)現(xiàn)新的邏輯操作。
      更可取的是,可編程邏輯執(zhí)行單元適合實(shí)現(xiàn)布爾邏輯操作。
      為了易于編程或更新可編程邏輯執(zhí)行單元,該單元可包括存儲(chǔ)器邏輯單元,其中每一個(gè)單元包括一個(gè)可重編程的用于存儲(chǔ)匹配值的存儲(chǔ)組件。它還包括用于把輸入位值與已存儲(chǔ)的匹配值進(jìn)行比較的邏輯組件。更可取的是,存儲(chǔ)器組件用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)來實(shí)現(xiàn)。邏輯組件最好用MOS技術(shù)和/或CMOS技術(shù)來實(shí)現(xiàn)。
      通過使用這樣的存儲(chǔ)器邏輯單元或存儲(chǔ)器組件,把新的邏輯操作的編程或重新編程到可編程邏輯執(zhí)行單元由存儲(chǔ)器組件的編程來實(shí)現(xiàn)的,所說的編程最好在一個(gè)時(shí)鐘周期或一個(gè)存儲(chǔ)器寫周期內(nèi)完成。不同的邏輯操作可被編程到邏輯執(zhí)行單元,這是通過來自內(nèi)部指令單元的基本指令或來自經(jīng)由輸入/輸出部件的外部控制單元的指令來完成的。
      在優(yōu)選實(shí)施例中,邏輯執(zhí)行單元包括一個(gè)或多個(gè)邏輯器件和組件,具有可編程邏輯陣列組件的形式。這里,邏輯執(zhí)行單元包括一些寄存器,這些寄存器用來存儲(chǔ)邏輯器件或組件的狀態(tài)。更可取的是,邏輯執(zhí)行單元包括一個(gè)優(yōu)先級(jí)函數(shù)單元,優(yōu)先級(jí)函數(shù)單元更適合被重新編程。優(yōu)先級(jí)函數(shù)單元可以是可編程邏輯器件或可編程邏輯陣列的一部分。
      為了實(shí)現(xiàn)邏輯操作,邏輯執(zhí)行單元可包括一個(gè)“與”處理位面結(jié)構(gòu)和/或一個(gè)“或”處理位面結(jié)構(gòu)。優(yōu)先級(jí)函數(shù)單元可被構(gòu)建以區(qū)分從“與”位面獲得的乘積項(xiàng)的優(yōu)先次序。如果幾個(gè)乘積項(xiàng)由輸入到邏輯單元的相同的輸入所激活,則這種區(qū)分優(yōu)先次序是需要的。
      應(yīng)該明白,具有根據(jù)本發(fā)明的第二個(gè)方面的任一實(shí)施例體系結(jié)構(gòu)的微處理器可被以這樣的方式編程,以便用一個(gè)基本微處理器指令執(zhí)行位字段分析。
      在本發(fā)明的范圍內(nèi),也提供了電子結(jié)構(gòu)或積木式結(jié)構(gòu),以能易于編程或更新。
      這樣,根據(jù)本發(fā)明的第三個(gè)方面,提供了一個(gè)可重新編程的電子結(jié)構(gòu),以把一位或多位輸入信號(hào)與已存儲(chǔ)的或預(yù)編程的匹配值相比較,所說的結(jié)構(gòu)包括一個(gè)或多個(gè)存儲(chǔ)器邏輯單元或組件(MLC),每個(gè)單元包括至少一個(gè)可重編程的、用來存儲(chǔ)匹配值的存儲(chǔ)器組件。而且,更可取的是,存儲(chǔ)器邏輯單元至少包括一個(gè)用來把輸入值與存儲(chǔ)的匹配值相比較的邏輯組件。
      最好,一個(gè)存儲(chǔ)器單元存儲(chǔ)一個(gè)位值,且要與存儲(chǔ)的匹配值相比較的輸入值最好也是一位值。這樣,存儲(chǔ)器邏輯單元(MLC)可包括單一位的存儲(chǔ)單元和一個(gè)邏輯組件,一個(gè)位輸入與存儲(chǔ)的一位相比較。這里,輸出結(jié)果可為“真”或“假”。
      然而,如果“不介意”也象在分析中那樣被提供,則應(yīng)存儲(chǔ)“真”、“假”、“不介意”。這要求存儲(chǔ)一2位的字,由此需要兩個(gè)存儲(chǔ)器單元。這種包含兩個(gè)一位的存儲(chǔ)單元的單元,可至少形成部分三元態(tài)存儲(chǔ)邏輯單元,它也可包括用來把一位輸入與2位存儲(chǔ)字相比較的一個(gè)邏輯單元。
      存儲(chǔ)器邏輯單元可被安置,以使邏輯組件通過一個(gè)或多個(gè)邏輯操作的使用,把輸入值與存儲(chǔ)值進(jìn)行比較。所說的邏輯操作可以是邏輯“與”操作和/或邏輯“或”操作,以及反相操作。
      可使用不同的存儲(chǔ)器單元技術(shù),但優(yōu)選的是使用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)單元來實(shí)現(xiàn)。然而,存儲(chǔ)單元也可用動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)單元來實(shí)現(xiàn)。邏輯單元可用不同的技術(shù)用來做,但優(yōu)選的邏輯單元通常使用MOS技術(shù)和/或CMOS技術(shù)來實(shí)現(xiàn)。
      在優(yōu)選實(shí)施例中,存儲(chǔ)匹配值的存儲(chǔ)器元件或單元有兩個(gè)輸出輸出真值匹配值和互補(bǔ)的匹配值。
      使用存儲(chǔ)器邏輯單元的邏輯組件可有不同的函數(shù)和不同的配置。邏輯組件可有例如至少兩個(gè)輸入和至少一個(gè)輸出。
      這里,存儲(chǔ)器邏輯單元可被構(gòu)造,以使輸入位信號(hào)被供給第一個(gè)邏輯組件輸入,及輸入位信號(hào)取補(bǔ)后供給第二個(gè)邏輯組件輸入,用來比較由邏輯組件輸出的輸出信號(hào)。
      在另一個(gè)實(shí)施例中,存儲(chǔ)器邏輯單元可被構(gòu)造,以使只有“真”輸入值被用作輸入給比較邏輯。
      在存儲(chǔ)器邏輯單元實(shí)施例中,邏輯組件可通過使用4個(gè)晶體管實(shí)現(xiàn)。
      在電子結(jié)構(gòu)的優(yōu)選實(shí)施例中,可安置幾個(gè)存儲(chǔ)器邏輯單元,以至少形成部分存儲(chǔ)器邏輯結(jié)構(gòu)(MLS),其中,每一個(gè)存儲(chǔ)器邏輯單元具有作為輸入的輸入位信號(hào)和/或其取補(bǔ)信號(hào)。這里,幾個(gè)存儲(chǔ)器邏輯單元的輸出結(jié)果可能被“AND”或“OR”在一起。
      正如上面所討論的,在另一優(yōu)選實(shí)施例中,由兩個(gè)存儲(chǔ)器組件或兩個(gè)存儲(chǔ)器邏輯單元一起組成三元態(tài)存儲(chǔ)器邏輯單元,并由此提供“不介意”輸出。這里,為了提供“不介意”狀態(tài),兩個(gè)存儲(chǔ)器組件可以用相同的匹配值編程。如果兩個(gè)存儲(chǔ)器邏輯單元被組合在一起,三元態(tài)存儲(chǔ)器邏輯單元中的第一個(gè)存儲(chǔ)器邏輯單元可有供給第一個(gè)輸入的一個(gè)輸入位信號(hào),而邏輯假信號(hào)供給第二個(gè)輸入,第二個(gè)存儲(chǔ)器邏輯單元可有供給第一輸入的輸入位取補(bǔ)的信號(hào),邏輯假信號(hào)供給第二個(gè)輸入,而第一個(gè)和第二個(gè)存儲(chǔ)器邏輯單元的輸出結(jié)果可被“與”在一起。
      電子結(jié)構(gòu)可有幾個(gè)三元態(tài)存儲(chǔ)器邏輯單元,被安置以至少形成部分三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS),每一個(gè)三元態(tài)存儲(chǔ)器邏輯單元具有作為輸入的輸入位信號(hào)和/或其取補(bǔ)信號(hào)。
      在電子結(jié)構(gòu)的另一實(shí)施例中,幾個(gè)存儲(chǔ)器邏輯單元可被安置,以實(shí)現(xiàn)三元態(tài)內(nèi)容定址存儲(chǔ)器(CAM)。
      根據(jù)本發(fā)明的第三個(gè)方面,也提供一個(gè)可重新編程的電子“與”處理結(jié)構(gòu)或位面,其中幾個(gè)三元態(tài)存儲(chǔ)器邏輯單元形成了一個(gè)三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)。根據(jù)本發(fā)明的任一實(shí)施例可選擇三元態(tài)存儲(chǔ)器邏輯單元。
      在本發(fā)明的第三個(gè)方面的范圍內(nèi),提供了一個(gè)可重新編程的電子優(yōu)先級(jí)部件結(jié)構(gòu),其中,幾個(gè)存儲(chǔ)器邏輯單元形成了存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。根據(jù)本發(fā)明的實(shí)施例中任意一個(gè),可選擇存儲(chǔ)器邏輯單元。
      應(yīng)明白,根據(jù)本發(fā)明的第三個(gè)方面,電子結(jié)構(gòu)實(shí)施例描述的的任意一個(gè),可被用來構(gòu)成可被重新配置的硬件或可重新編程的電子邏輯器件結(jié)構(gòu)(PLD),以處理邏輯操作。
      為處理邏輯操作,本發(fā)明也存在可編程的電子器件。
      因此,根據(jù)本發(fā)明的第四個(gè)方面,為處理邏輯操作,提供了一個(gè)可重新配置的硬件或可重新編程的電子邏輯器件結(jié)構(gòu)(PLD),所說的結(jié)構(gòu)包括一個(gè)可重新編程的優(yōu)先級(jí)部件或函數(shù)(PPE),以區(qū)分用同一輸入字匹配的幾個(gè)輸出結(jié)果之間的優(yōu)先次序。
      根據(jù)本發(fā)明的第四個(gè)方面,優(yōu)選的邏輯器件結(jié)構(gòu)包括按照上面本發(fā)明的第三個(gè)方面描述的一個(gè)或多個(gè)電子結(jié)構(gòu)。因此,邏輯器件結(jié)構(gòu)也可包括存儲(chǔ)器邏輯單元(MLC),一個(gè)或多個(gè)存儲(chǔ)器邏輯結(jié)構(gòu),和/或就象在本發(fā)明的第三個(gè)方面的任一實(shí)施例中描述的一個(gè)或多個(gè)三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)。
      為了處理邏輯操作,邏輯器件結(jié)構(gòu)也可包括一個(gè)“與”處理位面,和/或一個(gè)“或”處理位面。優(yōu)選的結(jié)構(gòu)包括一個(gè)可編程的邏輯陣列(PLA),這里的可編程邏輯陣列包括“與”處理位面,優(yōu)先級(jí)元件和“或”處理位面。
      這里,優(yōu)先級(jí)部件、“與”處理位面、和/或“或”處理位面可包括存儲(chǔ)邏輯單元。此外,存儲(chǔ)器邏輯單元可被安置以形成存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)和/或三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)。在優(yōu)選實(shí)施例中,“與”處理位面包括三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS),優(yōu)先級(jí)部件可包括存儲(chǔ)器邏輯結(jié)構(gòu)(MLS),而“或”處理位面可包括存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。
      按照上面描述的本發(fā)明的第四個(gè)方面,邏輯器件結(jié)構(gòu)也包括通過幾個(gè)存儲(chǔ)器邏輯單元實(shí)現(xiàn)的三元態(tài)內(nèi)容定址存儲(chǔ)器(CAM),這里,優(yōu)先級(jí)部件可適用于區(qū)分多個(gè)同時(shí)被激活的CAM的匹配線的優(yōu)先次序,由此選擇輸出結(jié)果。
      當(dāng)邏輯器件結(jié)構(gòu)包括“與”處理位面時(shí),該“與”位面可適用于獲得隨輸入字或模式而變的乘積項(xiàng)。這里,當(dāng)“與”位面中,被同一輸入字激活不止一個(gè)乘積項(xiàng)時(shí),優(yōu)先級(jí)部件可適合于在幾個(gè)可能的輸出結(jié)果之間區(qū)分優(yōu)先次序。最好,乘積項(xiàng)被賦予優(yōu)先級(jí)號(hào),而優(yōu)先級(jí)部件適合于選擇被激活的具有最高優(yōu)先級(jí)號(hào)的乘積項(xiàng)。如果邏輯器件結(jié)構(gòu)也包括“或”處理位面時(shí),“或”位面會(huì)合適地獲得來自“與”位面的乘積項(xiàng)之和,由此導(dǎo)出輸出結(jié)果。因此,為了獲得輸出結(jié)果,被優(yōu)先級(jí)部件選中的乘積項(xiàng)可被轉(zhuǎn)到“或”位面。
      在邏輯器件的實(shí)施例中,該結(jié)構(gòu)適合于處理布爾操作,而輸出結(jié)果通過把不同的優(yōu)先級(jí)傳送給要處理的不同的布爾操作而被確定。
      當(dāng)在被激活的乘積項(xiàng)間進(jìn)行選擇時(shí),可編程的優(yōu)先級(jí)部件可適合于把優(yōu)先級(jí)函數(shù)分配給同時(shí)被激活的每個(gè)乘積項(xiàng)。另一方面,可編程的優(yōu)先級(jí)部件可適合于把權(quán)重值或優(yōu)先級(jí)碼分配給在“與”位面獲得的乘積項(xiàng),由此選擇幾個(gè)被激活的乘積項(xiàng)中的一個(gè)。這里,權(quán)重值可分配給每一個(gè)乘積項(xiàng)。最好,分配給每一個(gè)乘積項(xiàng)的權(quán)重值等于為產(chǎn)生乘積項(xiàng),在“與”位平面中被編程的反熔絲數(shù)。
      優(yōu)先級(jí)部件包括一些存儲(chǔ)邏輯單元,而優(yōu)先級(jí)函數(shù)通過在存儲(chǔ)器邏輯單元中,存儲(chǔ)相應(yīng)的匹配值被編程,這一點(diǎn)是首選的。
      當(dāng)邏輯器件包括MLS結(jié)構(gòu)和/或TMLS結(jié)構(gòu)時(shí),在一個(gè)時(shí)鐘周期或一個(gè)存儲(chǔ)器寫周期內(nèi),通過對(duì)MLS結(jié)構(gòu)中的一行,和/或TMLS結(jié)構(gòu)中的一行進(jìn)行編程而實(shí)現(xiàn)編程。為了對(duì)邏輯器件進(jìn)行編程,一輸入或地址字、相關(guān)的優(yōu)先級(jí)號(hào)及相關(guān)的輸出字可全部被輸入到邏輯器件。
      此外,也在本發(fā)明的范圍內(nèi),提供了最小化布爾操作計(jì)算規(guī)則的方法,用作實(shí)現(xiàn)最長(zhǎng)前綴匹配地址分析。
      因此,根據(jù)本發(fā)明的第五個(gè)方面,提供了一個(gè)最小化布爾操作計(jì)算規(guī)則(BFCR)的方法,用來實(shí)現(xiàn)最長(zhǎng)前綴匹配地址分析,其中,計(jì)算規(guī)則包括優(yōu)先級(jí)規(guī)則,其中,可編程邏輯器件(PLD)根據(jù)路由表或網(wǎng)絡(luò)地址表被更新或編程,路由表或網(wǎng)絡(luò)地址表包括以網(wǎng)絡(luò)地址位模式、相關(guān)的動(dòng)作號(hào)和優(yōu)先級(jí)值或號(hào)形式的入口,所說的方法包括a)根據(jù)優(yōu)先級(jí)號(hào)排序路由表,以使路由表中每一個(gè)入口的子集(A)具有相同優(yōu)先級(jí)號(hào),相應(yīng)的布爾計(jì)算規(guī)則(R)以乘積和的形式被設(shè)置。
      b)在排序步驟中得到最小化計(jì)算規(guī)則集(R),以便得到乘積和形式的最小化計(jì)算規(guī)則集(R’)。
      c)使用最小化計(jì)算規(guī)則集(R’)和相關(guān)的優(yōu)先級(jí)號(hào),更新可編程邏輯器件。
      d)對(duì)具有公用優(yōu)先級(jí)號(hào)入口的所有子集,重復(fù)步驟a到c。
      當(dāng)最小化計(jì)算規(guī)則時(shí),可使用著名的Espresso最小化技術(shù)。
      應(yīng)明白,根據(jù)本發(fā)明第四個(gè)和第三個(gè)方面的實(shí)施例中的任一個(gè),在本發(fā)明第一方面的分析方法和系統(tǒng)的實(shí)施例中的任意一個(gè),本發(fā)明第二方面的微處理機(jī)體系結(jié)構(gòu)的實(shí)施例中的任意一個(gè),及在本發(fā)明第五方面的最小化方法實(shí)施例中的任意一個(gè)中,使用的可編程邏輯器件屬本發(fā)明的范圍內(nèi)。
      也應(yīng)明白,本發(fā)明的特點(diǎn)是針對(duì)(但不限于)使用數(shù)字技術(shù)改進(jìn)通信網(wǎng)絡(luò)中的地址分析。在硬件中實(shí)現(xiàn)地址分析,并由此得到類似于或更快于其它著名的硬件解決方案,這是本發(fā)明的一個(gè)目的。
      通過用可編程邏輯和/或優(yōu)先級(jí)函數(shù)來實(shí)現(xiàn)最長(zhǎng)前綴匹配,使最小化更新前綴表的任務(wù)也在本發(fā)明的特性內(nèi)。
      本發(fā)明的特性的另一個(gè)目的是能夠把所有的地址分析集成到一個(gè)單一的集成電路中,以與其它已知的解決方案相對(duì)比。
      本發(fā)明的第二個(gè)特性是直接針對(duì)改進(jìn)微處理器結(jié)構(gòu)速度的,以使在軟件應(yīng)用中,使用位字段分析限制應(yīng)用軟件的性能。用基本微處理器指令執(zhí)行位字段分析,并由此最小化由位字段分析造成的時(shí)延是本發(fā)明的一個(gè)目的。本發(fā)明的還有一個(gè)目的是在通用的微處理器體系結(jié)構(gòu)中,可把附加的執(zhí)行單元集成到微處理器中。
      另外,為了實(shí)現(xiàn)新的位字段分析類型,可編程邏輯執(zhí)行單元的邏輯操作,如布爾操作,可重新編程,這一點(diǎn)也在本發(fā)明的特性范圍內(nèi)。通過布爾操作,可理解一函數(shù)能以乘積和的格式寫入。
      為了更好的理解本發(fā)明,也為了知道如何實(shí)施同樣的方式,參考附圖作為例子,其中圖1顯示了通信網(wǎng)絡(luò)交換機(jī)或路由器的基本部分,用以說明本發(fā)明的背景。
      圖2說明了為解決本發(fā)明涉及到的問題,在公用軟件中所用的器件。它顯示了樹結(jié)構(gòu)是如何用于查找?guī)в新酚尚畔⒌谋怼?br> 圖3顯示了本發(fā)明涉及到的現(xiàn)有技術(shù)下的硬件裝置的問題。它顯示了一個(gè)系統(tǒng),為實(shí)現(xiàn)網(wǎng)絡(luò)地址分析,這里的微處理器使用大容量RAM,用來把網(wǎng)絡(luò)地址快速轉(zhuǎn)換為動(dòng)作號(hào)。
      圖4顯示了本發(fā)明涉及到的現(xiàn)有技術(shù)下的硬件裝置的問題。裝置使用CAM結(jié)構(gòu)實(shí)現(xiàn)把網(wǎng)絡(luò)地址轉(zhuǎn)換為硬件值,該硬件值不能被直接用作動(dòng)作號(hào)。
      圖5說明了圖4中顯示的現(xiàn)有技術(shù)裝置是如何必須與外部器件(如RAM)一起使用,以擴(kuò)充網(wǎng)絡(luò)地址轉(zhuǎn)換,包括動(dòng)作號(hào)輸出,及由此實(shí)現(xiàn)的網(wǎng)絡(luò)地址分析。
      圖6是一個(gè)框圖,實(shí)現(xiàn)了把輸入轉(zhuǎn)化為輸出的地址分析函數(shù)的功能,它描述了本發(fā)明解決的問題的核心。
      圖7說明了計(jì)算規(guī)則是如何被用到輸入字和輸出字上的,因而,使用上述計(jì)算規(guī)則,通過執(zhí)行網(wǎng)絡(luò)地址分析實(shí)現(xiàn)本發(fā)明功能。由每一個(gè)計(jì)算規(guī)則使用所有的輸入位,在輸出端生成一位。
      圖8是一個(gè)流程圖,描述了本發(fā)明是如何被用來解決把網(wǎng)絡(luò)地址轉(zhuǎn)化為動(dòng)作號(hào),及更新網(wǎng)絡(luò)地址和動(dòng)作號(hào)之間的關(guān)系的一個(gè)例子。
      圖9描述了如何使用PLD實(shí)現(xiàn)處理操作,它用一個(gè)或多個(gè)計(jì)算規(guī)則,把網(wǎng)絡(luò)地址轉(zhuǎn)化為動(dòng)作號(hào),從而實(shí)現(xiàn)網(wǎng)絡(luò)地址分析。
      圖10用來描述PLA的核心組件。該圖顯示了一個(gè)“與”位面和一個(gè)“或”位面,它們是用來實(shí)現(xiàn)布爾操作。
      圖11顯示了帶有稱作可編程優(yōu)先級(jí)函數(shù)的擴(kuò)充功能的上述PLA,它是一個(gè)區(qū)分活動(dòng)乘積項(xiàng)間的優(yōu)先次序的組件??删幊虆^(qū)分優(yōu)先次序組件是本發(fā)明的一部分。
      圖12用來描述了本發(fā)明的在全局優(yōu)先級(jí)函數(shù)中用的可伸縮性是如何得到的。該圖顯示了全局優(yōu)先級(jí)信號(hào)是如何從可編程區(qū)分優(yōu)先級(jí)函數(shù)輸出的。
      圖13是一個(gè)運(yùn)行和使用全局優(yōu)先權(quán)級(jí)函數(shù)的系統(tǒng),它包含幾個(gè)PLA結(jié)構(gòu),這些結(jié)構(gòu)都和一個(gè)全局優(yōu)先級(jí)函數(shù)相連,這在圖中已進(jìn)行說明。
      圖14描繪了在本發(fā)明中定義和使用的存儲(chǔ)器邏輯結(jié)構(gòu)和三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu),以用網(wǎng)絡(luò)地址分析實(shí)現(xiàn)不同類型器件。
      圖15是一個(gè)PLA結(jié)構(gòu),它可以既可使用三元態(tài)邏輯AND位面,又可用可編程優(yōu)先級(jí)函數(shù),并且都帶有LMS和TMLS結(jié)構(gòu)。
      圖16描繪了在匹配線上包含可編程優(yōu)先級(jí)的CAM如何使用一個(gè)MLS結(jié)構(gòu)而實(shí)現(xiàn)的。
      圖17描繪了一個(gè)PLA結(jié)構(gòu)的AND位面中,使用的存儲(chǔ)邏輯組件的邏輯實(shí)現(xiàn)例。
      圖18描繪了一個(gè)例子,這個(gè)例子中使用了兩個(gè)存儲(chǔ)邏輯組件,或者執(zhí)行一個(gè)三元態(tài)存儲(chǔ)器邏輯組件,或者用執(zhí)行AND位面的兩個(gè)存儲(chǔ)邏輯組件,不需改變或修改已使用的邏輯。
      圖19顯示了在實(shí)現(xiàn)網(wǎng)絡(luò)地址分析任務(wù)時(shí),多個(gè)PLA結(jié)構(gòu)是如何在一起使用的。
      圖20說明了所描述的作為可編程優(yōu)先級(jí)函數(shù)的公式和技術(shù)是如何用存儲(chǔ)邏輯結(jié)構(gòu)實(shí)現(xiàn)的。
      圖21描述了圖中所示的一個(gè)微處理器的公用組件,用來說明一個(gè)新的執(zhí)行單元是如何實(shí)現(xiàn)的,以提高軟件程序的位字段的分析速度。
      圖22是通常使用的常規(guī)微處理器的公用器件的說明,并說明在現(xiàn)有技術(shù)中可編程邏輯器件是如何通過一個(gè)微處理器使用的。
      圖23是詳細(xì)說明了,借鑒類似于一個(gè)常規(guī)執(zhí)行單元的指令解碼器,在微處理器核心中執(zhí)行可編程邏輯的一個(gè)例子。
      圖24是詳細(xì)說明了在存儲(chǔ)器邏輯組件中使用的邏輯例,以執(zhí)行一可編程優(yōu)先級(jí)函數(shù)。
      實(shí)現(xiàn)地址分析的處理函數(shù)在圖6中描述,所給的網(wǎng)絡(luò)地址號(hào)和動(dòng)作號(hào)之間的關(guān)系的地址分析函數(shù)可以被設(shè)置,以慨略地說明網(wǎng)絡(luò)地址分析處理過程。在這個(gè)例子中,網(wǎng)絡(luò)地址號(hào)是由32位寬的輸入字601表示,動(dòng)作號(hào)由4位寬的輸出字603表示(注意,輸入601和輸出603的長(zhǎng)度取決于網(wǎng)絡(luò)設(shè)備)。從輸入模式計(jì)算輸出模式的這個(gè)地址分析函數(shù)602,可以有許多方法實(shí)現(xiàn)。
      一些現(xiàn)有技術(shù)的解決方案使用不同的查找方法查找整個(gè)網(wǎng)絡(luò)地址,或者查找表中的大部分網(wǎng)絡(luò)地址,或者使用在特殊構(gòu)造的存儲(chǔ)結(jié)構(gòu)上建立索引的軟件解決方案,或者使用CAM結(jié)構(gòu)。這些方法將被表查找操作指出。在WO95/33324中描述的方法,利用一簡(jiǎn)單且預(yù)定義的布爾操作,通過交換機(jī)部件,使用一個(gè)預(yù)先確定的鑒別字來對(duì)兩個(gè)不同路由中的一個(gè)進(jìn)行計(jì)算,選擇的地址位的和。這個(gè)方法將表示為地址位和操作。
      本發(fā)明是基于用于執(zhí)行地址分析任務(wù)的處理函數(shù)(或計(jì)算函數(shù))的概念。計(jì)算函數(shù)基于計(jì)算規(guī)則集,用網(wǎng)絡(luò)地址號(hào)來計(jì)算輸出的動(dòng)作號(hào)。處理函數(shù)(或計(jì)算函數(shù))不使用一個(gè)表來查找動(dòng)作號(hào),如在現(xiàn)有技術(shù)的表查找函數(shù)那樣且不局限于固定的和預(yù)定的地址位和計(jì)算地址位函數(shù)和解決方案那樣。
      計(jì)算規(guī)則被用來從網(wǎng)絡(luò)地址號(hào)中導(dǎo)出動(dòng)作號(hào),盡管并不受限于網(wǎng)絡(luò)地址號(hào)。圖7顯示了幾個(gè)計(jì)算規(guī)則703,是如何被用于這種處理的。圖中說明了一個(gè)計(jì)算規(guī)則703,對(duì)動(dòng)作號(hào)的每一個(gè)單元705都是必須的,這樣從一個(gè)輸入數(shù)據(jù)701就可以計(jì)算出輸出號(hào)單元705。當(dāng)網(wǎng)絡(luò)中網(wǎng)絡(luò)地址和動(dòng)作號(hào)間改變時(shí),為了能夠更新處理函數(shù),因此要求處理函數(shù)能夠重新編程。因?yàn)榫W(wǎng)絡(luò)信息是有規(guī)律的變化的,當(dāng)使用處理函數(shù)時(shí),必須進(jìn)行重新編程。因此,本發(fā)明的一個(gè)組成部分是即使處理函數(shù)在硬件中被執(zhí)行,并且這個(gè)硬件正在使用,來自輸入端計(jì)算結(jié)果的處理函數(shù)也能夠重新編程和改變。
      在數(shù)字環(huán)境中,網(wǎng)絡(luò)地址單元和動(dòng)作號(hào)單元用二進(jìn)制位來表示,計(jì)算規(guī)則703,可以是一個(gè)布爾操作。在本發(fā)明計(jì)算規(guī)則中使用的術(shù)語(yǔ)布爾操作是一個(gè)函數(shù),它的結(jié)果可以描述為輸入位702的和,例如,b1(a1,a2,a3)=a1a2+a2a3。下面的例子說明了這個(gè)布爾操作,它需要由輸入(a1,a2,a3,a4,a5)=(1,0,1,0,1,x,x)或(1,1,1,0,1,x,x)中計(jì)算輸出數(shù)據(jù)(b1,b2,b3,b4)=(1,0,0,1),這里,x表示一個(gè)不介意的值(兩個(gè)輸入數(shù)據(jù)得到同樣的輸出就等于兩個(gè)網(wǎng)絡(luò)目的地址連到相同網(wǎng)絡(luò)交換器的輸出上)b1(a1,a2,a3,a4,a5)=a1~a2a3~a4a5+a1a2a3~a4a5公式4b2(a1,a2,a3,a4,a5)=~b1(a1,a2,a3,a4,a5)=(~a1+a2+~a3+a4+~a5)(~a1+~a2+~a3+a4+~a5)公式5b3(a1,a2,a3,a4,a5)=b2(a1,a2,a3,a4,a5)
      公式6b4(a1,a2,a3,a4,a5)=b1(a1,a2,a3,a4,a5)公式7從指定的一組輸入和輸出模式中得出布爾操作是一個(gè)簡(jiǎn)明的,眾所周知的技術(shù)。
      基于計(jì)算規(guī)則的處理函數(shù)(或者計(jì)算函數(shù))的使用消除了熟知的從查找表中重復(fù)處理,提供了一個(gè)比CAM組件更靈活的解決方案。這種采用多個(gè)且不是預(yù)定的計(jì)算規(guī)則的方法,使它能夠1.基于已建立的網(wǎng)絡(luò)協(xié)議,進(jìn)行網(wǎng)絡(luò)中的地址分析;2.實(shí)現(xiàn)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),而不是使用多于兩個(gè)端口的交換器的環(huán)狀拓?fù)浣Y(jié)構(gòu);3.改變網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)時(shí),不需安裝新的路由器和交換器;4.同網(wǎng)絡(luò)中的動(dòng)態(tài)變化(例如,鏈路不起作用,路由器失效)一起,更新計(jì)算規(guī)則(由其結(jié)果得到的動(dòng)作碼)。
      基于以布爾操作的處理函數(shù)具有以下優(yōu)點(diǎn)1.在布爾操作表達(dá)式中包含有乘積項(xiàng);2.可利用取補(bǔ)信號(hào),即,在乘積項(xiàng)中對(duì)輸入信號(hào)的取補(bǔ)信號(hào);3.具有不是預(yù)先確定的性質(zhì),因此(布爾)計(jì)算規(guī)則在運(yùn)算操作過程中可以重新編制;4.動(dòng)作號(hào)不止一位,由此使建立不少于兩個(gè)端口的交換器成為可能。
      計(jì)算規(guī)則不局限于布爾操作,有些例子中它還包含有模糊邏輯。模糊邏輯可以與附加的信息,如鏈接到交換器或路由器的狀態(tài),網(wǎng)絡(luò)地址優(yōu)先級(jí)等等一起使用。信息被用于計(jì)算規(guī)則中,這個(gè)計(jì)算規(guī)則部分使用布爾邏輯運(yùn)算,部分使用模糊邏輯運(yùn)算,經(jīng)交換器通過對(duì)動(dòng)作號(hào)進(jìn)行計(jì)算來區(qū)分信息量的優(yōu)先級(jí),這里,利用了基于自身地址的例如布爾計(jì)算規(guī)則,及基于網(wǎng)絡(luò)信息用來執(zhí)行優(yōu)先級(jí)函數(shù)的模糊邏輯規(guī)則。
      圖8顯示了一個(gè)流程圖,它說明了使用一個(gè)處理函數(shù)進(jìn)行網(wǎng)絡(luò)地址分析的例子。流程圖包括了使用和更新處理函數(shù)的流程。第一步,在801(目的或源)通過轉(zhuǎn)發(fā)引擎提取輸入包的網(wǎng)絡(luò)地址,預(yù)處理地址801根據(jù)處理函數(shù)以可改變和編碼地址為目的。這個(gè)預(yù)處理地址或者用于地址分析(目的地址),或者用網(wǎng)絡(luò)地址和動(dòng)作號(hào)之間有新的關(guān)系,更新(源地址,具有如端口號(hào)信息,包從端口號(hào)被接受)處理函數(shù),也就是按路由表改變。這個(gè)決定是在步802做出的。在這個(gè)例子中,需要地址分析的地方,網(wǎng)絡(luò)地址和分析/計(jì)算指令就會(huì)通過803到達(dá)處理函數(shù)804,以試圖分析網(wǎng)絡(luò)地址。分析的結(jié)果通過FE進(jìn)行后處理。后處理可以是一個(gè)解碼的過程,或者根據(jù)處理函數(shù)的結(jié)果作的其它改變。如果處理函數(shù)用所給網(wǎng)絡(luò)地址的計(jì)算規(guī)則不能進(jìn)行更新,那么不能進(jìn)行地址分析是可能的。FE將驗(yàn)證地址分析806中得到的結(jié)果,并根據(jù)結(jié)果判斷新的地址分析(處理)能否實(shí)現(xiàn)。如果這個(gè)地址分析是正確有效的,此流程就會(huì)結(jié)束,在810繼續(xù),它表示一個(gè)新的循環(huán)能被執(zhí)行。如果地址分析非法,在807選擇或者重新進(jìn)行網(wǎng)絡(luò)地址分析或者用現(xiàn)有技術(shù)809來實(shí)現(xiàn)地址分析。如果選擇重新分析,在重新開始地址分析804之前,要執(zhí)行一個(gè)新的預(yù)處理過程808。新的預(yù)處理過程可以是一個(gè)改變網(wǎng)絡(luò)地址的函數(shù),以這種方式,新的信息就可用于地址分析處理。
      圖8也說明了更新操作的流程。如果FE選擇802,更新處理函數(shù)的計(jì)算規(guī)則,就需要關(guān)于網(wǎng)絡(luò)地址和動(dòng)作號(hào)之間關(guān)系的信息,經(jīng)811到處理函數(shù)。這個(gè)處理函數(shù)將導(dǎo)出新的計(jì)算規(guī)則812,并由此,通過下面所說的自身的重新編程而更新所有的計(jì)算規(guī)則。最后,它以813繼續(xù)作為結(jié)束,這也說明了一個(gè)新的循環(huán)的開始。這樣,包含有計(jì)算規(guī)則的處理函數(shù)就得到更新,而不需要停止不止一次循環(huán)的網(wǎng)絡(luò)信息分析的流程。從圖中也可以看出,外部設(shè)備814,像微處理器可以用于更新計(jì)算規(guī)則。外部設(shè)備和為存取的處理函數(shù)FEs之間的優(yōu)先級(jí)很容易在裝置中選擇。
      作為本發(fā)明中一個(gè)實(shí)現(xiàn)改進(jìn)地址分析方法的一個(gè)例子,采用了稱為可編程邏輯技術(shù)。一個(gè)可編程邏輯組件是數(shù)字式的組件,它包含在其他組件中,可以在稱為輸入字或輸入模式的輸入位序列上執(zhí)行布爾操作,(也可以參照下面的章節(jié))。輸出的位序列稱為輸出字,它是在輸入字上進(jìn)行指定的布爾操作的結(jié)果。這個(gè)布爾操作可以動(dòng)態(tài)修改,因此可編程邏輯組件可以編程以執(zhí)行新的布爾操作??删幊痰倪壿嫿M件可以包括或不包括為以后使用儲(chǔ)存結(jié)果的寄存器。這些寄存器的值稱為可編程邏輯組件的狀態(tài)。輸出字可以包括也可以不包括這些可編程邏輯組件的部分或全部狀態(tài)。
      盡管已經(jīng)存在動(dòng)態(tài)修改可編程邏輯器件(PLD)的布爾操作的熟知技術(shù),但是當(dāng)前的裝置不適合于地址分析,因?yàn)闉榱烁虏紶柌僮鞫M(jìn)行的修改/重新編程技術(shù)的速度,用在上面所描述的網(wǎng)絡(luò)地址分析系統(tǒng)中還不夠高。此外,現(xiàn)有的PLD裝置的整體的計(jì)算速度和容量(依據(jù)最大的乘積項(xiàng)的容量數(shù))太限制應(yīng)用協(xié)議及典型的公用大規(guī)模網(wǎng)絡(luò)速度。下面將詳細(xì)說明這種裝置的改進(jìn)。
      圖9顯示了處理函數(shù)901和一個(gè)PLD904是如何運(yùn)行的。904是用一個(gè)布爾函數(shù)編寫的,用它來代表網(wǎng)絡(luò)地址的二進(jìn)制位902的代碼映象成二進(jìn)制表示的動(dòng)作號(hào)903。處理函數(shù)901必須計(jì)算正確的動(dòng)作號(hào),并用于PLD組件904,把一給定的輸入網(wǎng)絡(luò)地址902,從處理函數(shù)901處送至PLD 904。
      通過使用這樣的一個(gè)PLD單元904,處理函數(shù)901能夠以一個(gè)周期硬件速度分析一個(gè)網(wǎng)絡(luò)地址號(hào),并且能夠在一個(gè)單片集成電路中運(yùn)行。(一個(gè)周期硬件速度表示在含有一個(gè)或多個(gè)運(yùn)行布爾操作的電路的硬件中進(jìn)行操作,這里的布爾操作不需要從前面所說的布爾操作計(jì)算的結(jié)果而產(chǎn)生最后結(jié)果)。
      使用“不介意”和可編程的優(yōu)先級(jí)函數(shù)的PLD體系結(jié)構(gòu)已知的解決方案PLD是電可編程邏輯器件,它可用于執(zhí)行布爾操作,并且在有些情況下,PLD結(jié)構(gòu)也保留有寄存器,這些寄存器可存儲(chǔ)(一些)輸出位,并將這些輸出位返回給布爾操作。PLD的結(jié)構(gòu)在許多器件中使用,從簡(jiǎn)單的能夠計(jì)算一些乘積項(xiàng),并合計(jì)這些乘積項(xiàng)的系統(tǒng),到可控制幾個(gè)特別設(shè)計(jì)的可編程程序塊的系統(tǒng),這些系統(tǒng)中能夠編寫/運(yùn)行小的加法器及有限狀態(tài)機(jī)(FSM)等等,能夠建立相對(duì)較大的數(shù)字系統(tǒng)(當(dāng)這些可編程程序塊通過可編程被聯(lián)結(jié)時(shí))。
      這些PLD裝置在具體的應(yīng)用領(lǐng)域中被優(yōu)化,這些領(lǐng)域如簡(jiǎn)單控制、在運(yùn)行時(shí)被更新的小型數(shù)字化系統(tǒng)等。因此,標(biāo)準(zhǔn)的PLD不能向網(wǎng)絡(luò)地址分析的處理函數(shù)提供一個(gè)最優(yōu)化解決方案。對(duì)于具有大的路由表(和具有大量的網(wǎng)絡(luò)地址字)的較大的網(wǎng)絡(luò)來說,標(biāo)準(zhǔn)PLD的容量、組織、處理速度和重新編程速度都不適用于實(shí)現(xiàn)網(wǎng)絡(luò)地址分析的處理函數(shù)。
      (例如,參照“Principles of CMOS VLSI Design”N.H.Wwste和K.Eshraghian著,Addison Westley出版公司,1992年。這本書介紹一些PLD結(jié)構(gòu)。)一個(gè)公用的PLD是一個(gè)可編程邏輯陣列(PLA),它基本上由兩部分組成一“與”位面和一“或”位面(參閱N.H.Weste和K.Eshraghian所著的“Principles of CMOS VLSI Design”,Addison Westley出版公司,1992年)。圖10說明了一個(gè)公用的PLD裝置。輸入模式1001加到輸入緩沖器1002上,緩沖器1002將會(huì)生成一個(gè)與輸入模式互補(bǔ)的模式,并且將原始模式和補(bǔ)碼1003傳送到“與”位面1005?!芭c”位面由輸入線1003,乘積項(xiàng)線1006和反熔絲1004組成。反熔絲用這樣方式編程AND位面,就是給出具體的輸入模式,一個(gè)具體的乘積項(xiàng)1006將被激活。反熔絲通常是用可編程位面的組件抽取,存在于各種裝置中。因?yàn)檫@個(gè)組件的作用是通過如在組件上加一個(gè)高電壓,去建立連接的,因此通常使用反熔絲的名稱。圖中,輸入模式為(a1,a2,a3,a4)=(1,0,0,1),它將會(huì)激發(fā)乘積項(xiàng)2(pt2)。激活的乘積項(xiàng)通過激活輸出線加在“或”位面1007上,激活的輸出線通過一個(gè)反熔絲1008連接到乘積項(xiàng)。如果乘積項(xiàng)2(pt2)被激活,且此過程如圖10所示,則輸出模式1009將為(b1,b2,b3)=(0,1,0)。為進(jìn)一步強(qiáng)調(diào)所說的PLA的功能,輸出位b1完成的布爾函數(shù)寫為
      b1=~a1~a2a3~a4+a1~a2a3~a4+~a1a2a3a4+~a1~a2a3a4公式8根據(jù)反熔絲技術(shù)裝置,PLA結(jié)構(gòu)的公用裝置可以或者通過使用如紫外線將當(dāng)前的程序擦除,或者加上高電壓將當(dāng)前的程序擦除,然后就可以重編程位面。
      改進(jìn)和由此得到的優(yōu)點(diǎn)在公用“與”位面裝置中,當(dāng)且僅當(dāng)所有的輸入模式與反熔絲程序相匹配,乘積項(xiàng)才會(huì)激活。而且,通過使用“與”位面的三元態(tài)邏輯,可能用多于一個(gè)輸入去激活指定的乘積項(xiàng)。對(duì)乘積項(xiàng)和輸入對(duì)之間的節(jié)點(diǎn)上的熔絲不進(jìn)行編程,實(shí)現(xiàn)執(zhí)行三元態(tài)邏輯(但不僅僅局限于此)。運(yùn)用三元態(tài)邏輯的結(jié)果通過重寫公式8進(jìn)行說明,這里,連接輸入位a4和圖10中的乘積項(xiàng)pt2的反熔絲被消除了b1=~a1~a2a3+a1~a2a3+~a1a2a3+~a1~a2a3公式9應(yīng)該注意,a4不再是公式的一部分,公式表明輸入模式(a1,a2,a3,a4)=(1,0,0,0)和(a1,a2,a3,a4)=(1,0,0,1)將激活乘積項(xiàng)2(pt2)。作為這種修改的有用例子,使用了兩個(gè)網(wǎng)絡(luò)地址應(yīng)得到相同動(dòng)作號(hào)的情況,盡管這個(gè)使用不僅僅局限于此。當(dāng)在AND位面中應(yīng)用三元態(tài)邏輯時(shí),不止一個(gè)乘積項(xiàng)被激活的情況是可能的。對(duì)于這種情況,本發(fā)明介紹了一個(gè)可編程的優(yōu)先權(quán)組件(PPE),它在對(duì)乘積項(xiàng)進(jìn)行操作的AND位面和OR位面之間。圖11對(duì)此進(jìn)行了說明,PPE表示為1107,使用AND位面1106的乘積項(xiàng)作為輸入,并向OR位面提供一個(gè)優(yōu)先權(quán)選擇后的乘積項(xiàng)的輸出1108。PPE的概念是分配給每個(gè)乘積項(xiàng)一個(gè)編程的權(quán)重,用于從幾個(gè)乘積項(xiàng)中選擇一個(gè)乘積項(xiàng)。圖也舉例說明了一種情況,就是用一個(gè)單一的輸入模式(a1,a2,a3,a4)=(1,1,0,0)可激活兩個(gè)乘積項(xiàng)。這個(gè)模式將激發(fā)兩個(gè)乘積項(xiàng)pt6和pt7。如果乘積項(xiàng)pt6分配的權(quán)重是3,乘積項(xiàng)pt7的權(quán)重是2,結(jié)果將只有pt6可以讀取OR位面,因此得到的輸出模式是(b1,b2,b3)=(0,0,1)。
      上述的用于本發(fā)明的一個(gè)例子,在PLA中的所說可編程優(yōu)先權(quán)組件,在通信網(wǎng)絡(luò)處理操作中用于(但不僅僅局限于此)執(zhí)行一個(gè)最長(zhǎng)前綴匹配分析。這種情況下,分配給每個(gè)乘積項(xiàng)的權(quán)重將是對(duì)應(yīng)此乘積項(xiàng)的AND位面的反熔絲數(shù)。通過使用這種PPE可編程算法,在帶有許多信息(最長(zhǎng)前綴)在“與”位面中的匹配將達(dá)到最高優(yōu)先級(jí)。
      某些基于解決方案的現(xiàn)有技術(shù)CAM,使用CAM結(jié)構(gòu)匹配線的連續(xù)權(quán)重。這意味著為了適應(yīng)網(wǎng)絡(luò)地址和動(dòng)作號(hào)間的相關(guān)變化,當(dāng)改變CAM結(jié)構(gòu)中匹配入口時(shí),可能不止一個(gè)匹配入口必須被重新編程,因而必須重新組織匹配模式在CAM結(jié)構(gòu)中的相對(duì)位置。使用本發(fā)明,通過對(duì)CAM結(jié)構(gòu)及相關(guān)的存儲(chǔ)器入口,重新編程匹配模式的單個(gè)行以及區(qū)分函數(shù)優(yōu)先次序,更新布爾操作是可能的。這使得在一個(gè)周期內(nèi)更新所有的布爾操作成為可能。
      所說的優(yōu)先級(jí)部件能通過使用建立諸如分層的和分布式解決方案的方式實(shí)現(xiàn)和組織,由此提高可得到的集成的水平。PLA結(jié)構(gòu)可被用于實(shí)現(xiàn)要么帶有單個(gè)PLA結(jié)構(gòu),要么帶有多個(gè)和可能級(jí)聯(lián)的PLA結(jié)構(gòu)的處理函數(shù)。圖12描述了帶有一個(gè)“與”位面1201、一個(gè)可編程優(yōu)先級(jí)部件(PPE)1204,和一個(gè)“或”位面1207的PLA結(jié)構(gòu)。其中,PPE是以這樣的方式實(shí)現(xiàn)的它可以和全局優(yōu)先級(jí)函數(shù)相互作用。在圖13中顯示了這種結(jié)構(gòu),這里,任意一些PLAs,1301A、1301D通過全局優(yōu)先級(jí)函數(shù)1305被連接。使用這種結(jié)構(gòu),多個(gè)PLAs可被用來分析輸入模式1301,因而,有效地執(zhí)行較大的路由表。每一個(gè)PLA,1303A,1303D的輸出模式,還有指示成功分析的控制信號(hào)1304A 1304D與全局優(yōu)先級(jí)函數(shù)相連接,區(qū)分來自所有PLAs的成功分析輸出間的優(yōu)先次序,從而選擇并提供正確的輸出模式1306。
      裝置作為使用三元態(tài)邏輯、包括可編程優(yōu)先級(jí)部件的PLA器件的裝置的一個(gè)例子,圖14描述了一個(gè)包括一個(gè)存儲(chǔ)器組件1402和一個(gè)邏輯組件1403的組件1401。存儲(chǔ)器組件1402可以但不限于用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)實(shí)現(xiàn)。邏輯組件1403代表各種門邏輯,用如CMOS,如預(yù)充電邏輯實(shí)現(xiàn)。組件1401由存儲(chǔ)器組件1402的和邏輯組件1403組成,當(dāng)連接在一起時(shí)形成一個(gè)陣列,下面將指示存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。存儲(chǔ)器邏輯組件的擴(kuò)展可包括一附加存儲(chǔ)器組件,并因而實(shí)現(xiàn)了三元態(tài)存儲(chǔ)器邏輯組件1405。三元態(tài)存儲(chǔ)器邏輯組件1405和其它這樣的組件連接可形成三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)?,F(xiàn)在參看圖15,圖中顯示了如何使用上述MLS和TMLS實(shí)現(xiàn)上面描述的使用三元態(tài)邏輯的PLA結(jié)構(gòu)和可編程優(yōu)先級(jí)函數(shù)的結(jié)構(gòu)圖。輸入模式1501被加到TMLS 1502,TMLS將提供模式識(shí)別,并由此激活0、1或更多的乘積項(xiàng)1503,在這些乘積項(xiàng)中由MLS 1509最多只選擇一個(gè)作為PPE。PPE的輸出1504被用在另一個(gè)MLS 1505中,用來選擇存儲(chǔ)器邏輯組件的一行,然后,用存儲(chǔ)的模式以生成正確的輸出1506。它們一起提供了實(shí)現(xiàn)乘積項(xiàng)之間帶有可編程優(yōu)先級(jí)布爾操作結(jié)構(gòu)。
      通過使用存儲(chǔ)器邏輯組件,前面描述的反熔絲采用靈活的存儲(chǔ)器邏輯組件實(shí)現(xiàn),其中,存儲(chǔ)器單元易于被重新編程。通過選擇TMLS1502的一行,和兩個(gè)MLSs 1505 1509的一行,并使用輸入路徑1501、1507、1508,PLA可被重新編程。對(duì)SRAM存儲(chǔ)器組件進(jìn)行編程是一個(gè)眾所周知的技術(shù)。對(duì)整個(gè)結(jié)構(gòu)的一行進(jìn)行編程和在乘積項(xiàng)之間使用可編程區(qū)分優(yōu)先級(jí)次序確保所有的布爾操作可在一個(gè)存儲(chǔ)器寫周期中被更新。此外,上述結(jié)構(gòu)可實(shí)現(xiàn)一個(gè)邏輯,以自動(dòng)指向下一個(gè)在TMLS中未被使用或釋放了的行。這將排除需要使用外部器件以跟蹤PLA中的反熔絲程序,因?yàn)榫W(wǎng)絡(luò)地址、網(wǎng)絡(luò)地址的大小、和動(dòng)作號(hào)包含所有的信息,這些信息修正所有的布爾操作,以適應(yīng)一個(gè)網(wǎng)絡(luò)地址和路由表中一個(gè)動(dòng)作號(hào)之間有關(guān)的變化,上述方法僅使用一個(gè)存儲(chǔ)器寫周期來完成這件事。
      上述存儲(chǔ)器邏輯組件也可通過使用可重新編寫優(yōu)先級(jí)函數(shù),來區(qū)分多個(gè)匹配線間的優(yōu)先級(jí)次序來實(shí)現(xiàn)三元態(tài)CAM。CAM是一個(gè)特定的存儲(chǔ)結(jié)構(gòu),當(dāng)提供一個(gè)輸入模式時(shí),如果CAM中任何一個(gè)預(yù)先編程的模式匹配這些輸入模式時(shí),邏輯上激活一個(gè)匹配線。上述的模式匹配可以擴(kuò)展到運(yùn)用三元態(tài)邏輯,但是通常需要區(qū)匹配線間的某些種類的優(yōu)先級(jí),同能夠激活多個(gè)一樣,類似于上述的PLA乘積項(xiàng)?,F(xiàn)有技術(shù)使用硬件優(yōu)先級(jí),它先用較高號(hào)的優(yōu)先權(quán)乘積項(xiàng),然后再用較低的優(yōu)先級(jí)號(hào)的乘積項(xiàng),或反之。本發(fā)明介紹了一種可編程的優(yōu)先級(jí)部件(PPE)來擴(kuò)展三元態(tài)CAM的性能。圖16對(duì)此進(jìn)行了說明,這里,一個(gè)普通的CAM陣列1602,運(yùn)用三元態(tài)邏輯識(shí)別輸入模式1601。匹配線1603,不止激活一條,使用MLS 1604來區(qū)分優(yōu)先次序,被編程。PPE的輸出1606,則作為一個(gè)優(yōu)先級(jí)匹配指示。
      作為這種邏輯需要,通過使用一邏輯存儲(chǔ)單元,實(shí)現(xiàn)所說的反熔絲例,圖17描述了這樣的配置。輸入模式(圖中的一位和它的取補(bǔ))1701,1702,被加到由4個(gè)晶體管組成的該邏輯上。乘積項(xiàng)1704,在輸入模式應(yīng)用之前或者被預(yù)充電或者提高到一個(gè)邏輯高值;預(yù)先充電是一種普遍熟知的技術(shù)。當(dāng)應(yīng)用輸入模式(mb,~mb)=(1,0)時(shí),如果SRAM單元的內(nèi)容為0(d,~d)=(0,1),那么晶體管1705和1706都將打開。乘積項(xiàng)放電的結(jié)果,晶體管1705,1706,將打開一個(gè)通地的路徑。相反,輸入和SRAM單元的內(nèi)容會(huì)得到相同的結(jié)果,因?yàn)榱硗獾木w管1707,1708會(huì)打開通地路徑。因此,如果SRAM的內(nèi)容和輸入位mb不是相同邏輯值,乘積項(xiàng)將會(huì)放電。使用在一行中邏輯存儲(chǔ)單元,如果一個(gè)元件的輸入位和SRAM的內(nèi)容之間不匹配,那么計(jì)算的乘積項(xiàng)值則為低邏輯值。然而,如果,僅僅是如果,輸入模式的全部輸入位和相應(yīng)的SRAM單元的內(nèi)容相匹配,乘積項(xiàng)將保持高的邏輯值,因此標(biāo)志一個(gè)激活的乘積項(xiàng)。
      本發(fā)明也定義了另外一種MLS的使用,以在一個(gè)普通匹配MLS和三元態(tài)匹配MLS之間產(chǎn)生一個(gè)混合電路,它既可用二進(jìn)制又可用三元態(tài)邏輯匹配。這就實(shí)現(xiàn)了把兩種邏輯存儲(chǔ)單元一起使用,同時(shí)控制輸入模式。圖18描述了這樣的兩個(gè)邏輯存儲(chǔ)單元,從實(shí)現(xiàn)的反熔絲說明中可以看出。應(yīng)該看到,邏輯結(jié)構(gòu)是不變的,因此它可以用于執(zhí)行兩個(gè)反熔絲,并且,匹配兩位模式。然而,當(dāng)輸入端1801,1802加上邏輯低位,1803端應(yīng)用一位輸入模式,它的取補(bǔ)加到1804時(shí),兩個(gè)存儲(chǔ)邏輯單元的結(jié)構(gòu)可以實(shí)現(xiàn)三元態(tài)反熔絲或者CAM組件。下面這張表即說明這種情況表2
      這說明了應(yīng)用這種輸入模式的驅(qū)動(dòng)器可以確定是否兩個(gè)相鄰的邏輯存儲(chǔ)單元應(yīng)該用兩位普通匹配,還是一位的三元態(tài)匹配。
      通過往乘積項(xiàng)中額外加入信號(hào),在PLA結(jié)構(gòu)中應(yīng)用幾個(gè)計(jì)算規(guī)則集(舉例來說,在幾個(gè)不同的網(wǎng)絡(luò)協(xié)議中實(shí)現(xiàn)地址分析)來實(shí)現(xiàn)是可行的。對(duì)該特點(diǎn),協(xié)議號(hào)碼被定義,因此該號(hào)碼(和它的二進(jìn)制表示),根據(jù)PLA結(jié)構(gòu)中將被分析的網(wǎng)絡(luò)地址分析函數(shù)的每個(gè)協(xié)議被選擇。在AND位面中的乘積項(xiàng)pt得到擴(kuò)充,以至于它們由兩部分組成,一部分是分析PT,代表了乘積項(xiàng)的計(jì)算規(guī)則,另一部分是協(xié)議PT,它代表了協(xié)議。舉例來說考慮一個(gè)乘積項(xiàng),它有四個(gè)地址位(a1,a2,a3,a4)和兩個(gè)協(xié)議位(p1,p2),在這里乘積項(xiàng)可以表示為pt=pt分析pt協(xié)議=(~a1a2~a4)(p1~p2)公式10如果根據(jù)輸入(a1,a4)=(0,1,x,0)的地址分析是正確,并且協(xié)議所選號(hào)碼是(P1,P2)=(1,0),乘積項(xiàng)則為1。通過這種方式,可以使用同一個(gè)PLA結(jié)構(gòu)分析若干個(gè)協(xié)議(下面描述的優(yōu)先級(jí)函數(shù)可以應(yīng)用于在一個(gè)計(jì)算規(guī)則中的乘積項(xiàng)之間區(qū)分優(yōu)先級(jí))。另外,PLA結(jié)構(gòu)可被建立使得一些協(xié)議采用三元態(tài)邏輯,而一些則不,比如說,使用上面所描述的MLS和/或TMLS結(jié)構(gòu)的方法。
      在本發(fā)明描述了地址分析方法的裝置的擴(kuò)充,使用了幾個(gè)PLA結(jié)構(gòu),如圖19所示,1902A-1902I,用來計(jì)算子表達(dá)方式1903A-1903I,通過使用PLA結(jié)構(gòu)1904,計(jì)算動(dòng)作號(hào)1905的結(jié)果,從而,為實(shí)現(xiàn)地址分析任務(wù),最小化執(zhí)行布爾操作所需電路數(shù)。
      對(duì)描述的邏輯例子,能被用在使用可編程優(yōu)先級(jí)部件的MLS中,推出了一些數(shù)學(xué)公式。對(duì)一些路由器中的一些前綴結(jié)構(gòu)來說,不同的布爾操作可以涵蓋同一個(gè)布爾表式字集,例如,兩個(gè)函數(shù)f1(a1,a2,a3)和f2(a1,a2,a3)表示為f1(a1,a2,a3)=a1~a2+a1a2~a3f2(a1,a2,a3)=-a1~a2~a3+a1~a2~a3公式11如果輸入模式是(a1,a2,a3)=(1,0,0)公式12則為“true”或“1”。
      在Internet中,只能選定用最長(zhǎng)前綴的匹配,因此,必需實(shí)現(xiàn)區(qū)分動(dòng)作號(hào)優(yōu)先次序。一個(gè)實(shí)現(xiàn)的例子中,選定正確的作用碼要依靠其它碼的結(jié)果。用公式4的例子,假定函數(shù)f1(a1,a2,a3)的優(yōu)先級(jí)比函數(shù)f2(a1,a2,a3)的優(yōu)先級(jí)低,這兩個(gè)函數(shù)可如下計(jì)算f1(a1,a2,a3)=(a1~a2+a1a2~a3)~f2(a1,a2,a3)f2(a1,a2,a3)=~a1~a2~a3+a1~a2~a3公式13在另一個(gè)裝置中,區(qū)分優(yōu)先級(jí)用以乘積項(xiàng)級(jí)實(shí)現(xiàn),例如,兩個(gè)乘積項(xiàng)a1~a2和a1~a2~a3進(jìn)行區(qū)分優(yōu)先級(jí)。這個(gè)過程既可以通過擴(kuò)展乘積項(xiàng)也可以通過引入一個(gè)優(yōu)先級(jí)函數(shù)來進(jìn)行。
      在公式4的例子中,假定a1~a2的優(yōu)先次序低于a1~a2~a3,兩個(gè)函數(shù)可以擴(kuò)展為f1(a1,a2,a3))=a1~a2a3+a1a2~a3f2(a1,a2,a3)=~a1~a2~a3+a1~a2~a3公式14因?yàn)閷?duì)輸入(a1,a2,a3)=(1,0,0),a1~a2的優(yōu)先級(jí)低于a1~a2~a3。
      在這種情況下,被區(qū)分了優(yōu)先級(jí)的乘積項(xiàng)的數(shù)量是一個(gè)重要的尺度,擴(kuò)充的結(jié)果會(huì)產(chǎn)生大量新的乘積項(xiàng)。這種情況下,利用優(yōu)先級(jí)函數(shù)是有利的。
      優(yōu)先級(jí)函數(shù)能被乘(邏輯“與”運(yùn)算)以必須區(qū)分優(yōu)先級(jí)的每個(gè)乘積項(xiàng)。鑒于公式4的例子,假定a1~a2的優(yōu)先次序高于a1~a2~a3,就可以得到f1(a1,a2,a3)=a1~a2P1(a1,a2,a3)+a1a2~a3f2(a1,a2,a3)=~a1~a2~a3p2(a1,a2,a3)+a1~a2a3公式15在這里P1(a1,a2,a3)和P2(a1,a2,a3)是兩個(gè)優(yōu)先級(jí)函數(shù),每個(gè)優(yōu)先級(jí)函數(shù)的計(jì)算(1或0)可以通過幾個(gè)方法完成。下面的實(shí)現(xiàn)過程可以作為一個(gè)例子。
      對(duì)每個(gè)優(yōu)先級(jí)函數(shù)P1(a1,a2,a3)和P2(a1,a2,a3)選定一個(gè)優(yōu)先級(jí)號(hào),如P1(a1,a2,a3)的優(yōu)先級(jí)比P2(a1,a2,a3)的優(yōu)先級(jí)大。一個(gè)簡(jiǎn)單的函數(shù)就可以比較這兩個(gè)優(yōu)先級(jí)碼,并且可以決定那個(gè)乘積項(xiàng)具有第一優(yōu)先級(jí)。這個(gè)和每個(gè)乘積項(xiàng)相關(guān)聯(lián)的優(yōu)先級(jí)號(hào)或優(yōu)先級(jí)代碼可以在路由器或交換機(jī)的路由表中找到(參照前面章節(jié)中的討論和路由表)。
      作為比較兩個(gè)二進(jìn)制整數(shù)的一邏輯的例子,下面將說明所需的數(shù)學(xué)公式。
      優(yōu)先級(jí)號(hào)可以用二進(jìn)制形式及一個(gè)可編程的優(yōu)先級(jí)函數(shù)表示。作為一個(gè)例子,考慮一個(gè)優(yōu)先級(jí)編碼方案,這個(gè)方案中,一個(gè)優(yōu)先級(jí)代碼和布爾表達(dá)式中的每個(gè)乘積項(xiàng)相關(guān)(這個(gè)優(yōu)先級(jí)號(hào)或代碼可以直接在路由表中找到)。在這個(gè)例子中,使用了一個(gè)編碼方法,這里的乘積項(xiàng)(賦值為“1”)用最高優(yōu)先級(jí)值獲得了其它乘積項(xiàng)的優(yōu)先級(jí)(賦值為“1”)。對(duì)以最高有效位開始,計(jì)算的每位優(yōu)先級(jí)函數(shù)Pi(a1,a2,…an)能以重復(fù)的過程實(shí)現(xiàn)。
      為完成計(jì)算,使用一組幫助優(yōu)先級(jí)函數(shù)hpi。幫助函數(shù)對(duì)優(yōu)先級(jí)碼中每個(gè)位i計(jì)算。幫助函數(shù)與指定的乘積項(xiàng)相關(guān),并且可以用一個(gè)MLS實(shí)現(xiàn)。幫助函數(shù)的最高有效位,位n,如下計(jì)算hpn=m(a1,a2,a3)(dn+~dnAZn)公式16式中,乘積項(xiàng)用作這個(gè)具體的優(yōu)先級(jí)函數(shù)的輸入,表示為m(a1,a2,a3),在這個(gè)具體的乘積項(xiàng)優(yōu)先級(jí)碼的第n位表示為dn,且當(dāng)僅當(dāng)所有的優(yōu)先級(jí)碼位和第n位置的乘積項(xiàng)為零或0時(shí),變量AZn(所有的零)為true或“1”,即AZn=II(~dn+~m(a1,a2,a3))ii公式17式中,下標(biāo)i表示完成與所有優(yōu)先級(jí)碼位(在第n位位置)的乘法(邏輯與)。
      下面的幫助優(yōu)先級(jí)函數(shù)(優(yōu)先級(jí)碼中每位)如下計(jì)算hpj=hpj+1(dj+~djAZj)Azj=II(~dj+~hpj+1)ii公式18優(yōu)先級(jí)代碼的最低有效位的幫助優(yōu)先函數(shù)hp1可以用作優(yōu)先級(jí)函數(shù)p(A1,A2,A3)的結(jié)果p(a1,a2,a3)=hp0公式19在圖20所舉的例中,為顯示一兩位的優(yōu)先級(jí)碼,采用了MLS組件的優(yōu)先級(jí)函數(shù)。在AND位面計(jì)算的乘積項(xiàng)m0,m1和mn(注意,為簡(jiǎn)單起見,圖中只顯示了三個(gè)乘積項(xiàng))被轉(zhuǎn)送到優(yōu)先級(jí)函數(shù)的第一層(第一列)。在優(yōu)先級(jí)函數(shù)的第一層(表示優(yōu)先級(jí)碼中最高有效位)中,所有的零或AZ1信號(hào)根據(jù)本地的零,LZ10…n1計(jì)算,即,計(jì)算在每個(gè)MLS組件的列1中的信號(hào)(請(qǐng)看下面對(duì)該信號(hào)描述)。AZ信號(hào)返回到MLS組件,并計(jì)算列1中每個(gè)幫助函數(shù)hp10…n的值。幫助函數(shù)hp10…n轉(zhuǎn)送到下一級(jí)(即第二最高有效位,在這種情況是優(yōu)先級(jí)碼中最低有效位),這里要計(jì)算一個(gè)新的AZ0信號(hào)和一組新的幫助函數(shù)hP10…n。最后一組幫助函數(shù)hp0就作為每個(gè)優(yōu)先級(jí)函數(shù)P0,Pi和pn的值,這些值將傳送至“或”位面。從圖中可以看出,結(jié)果優(yōu)先級(jí)碼(c0,c1)基于AZ1…0信號(hào)計(jì)算。
      圖24顯示了關(guān)于在第i列中的第j個(gè)乘積項(xiàng)的MLS組件的邏輯結(jié)構(gòu)的一個(gè)更為詳細(xì)的例子。邏輯電路部分,所說的MLS裝置的幫助函數(shù)hpjI2401的計(jì)算是以輸入幫助函數(shù)信號(hào)hpji-12403的值為基礎(chǔ)的。所有零,AZI,MLS組件的第i列的信號(hào)可根據(jù)列中的每個(gè)MLS組件的所有本地的zero LZ0…ni信號(hào)的乘積(邏輯或)進(jìn)行計(jì)算。全局與門2402以分布式的方式實(shí)現(xiàn),以使AND電路的最小部分在每個(gè)MLS組件中第i列中被實(shí)現(xiàn)。
      這種方法也可用于一個(gè)分布式優(yōu)先級(jí)函數(shù)的裝置,這里,若干個(gè)PLA結(jié)構(gòu)的輸出(例如動(dòng)作號(hào))都區(qū)分了優(yōu)先級(jí)。所描述的優(yōu)先級(jí)函數(shù)的每一組乘積項(xiàng)(例如每個(gè)PLA結(jié)構(gòu))計(jì)算的結(jié)果優(yōu)先級(jí)碼C0,,Cn也能用圖20中所表示的方式計(jì)算出。優(yōu)先級(jí)碼中的結(jié)果位,每位i可通過如下計(jì)算得出 式中下標(biāo)j表示不同乘積項(xiàng)的優(yōu)先級(jí)碼的總和(邏輯OR)。結(jié)果優(yōu)先級(jí)碼是計(jì)算每組乘積項(xiàng)(例如一個(gè)PLA結(jié)構(gòu))的結(jié)果,并與“或”位面的結(jié)果有關(guān)(每個(gè)PLA結(jié)構(gòu)的動(dòng)作碼)。
      上面所提到的優(yōu)先權(quán)函數(shù)能用于位組(例如動(dòng)作碼)之間區(qū)分優(yōu)先級(jí),而不是單個(gè)位(例如一個(gè)乘積項(xiàng)的輸出結(jié)果)。這樣,通過使用優(yōu)先權(quán)函數(shù)附加層,能加到從一系列的結(jié)果值/動(dòng)作碼和它們的結(jié)果優(yōu)先級(jí)碼中找到結(jié)果動(dòng)作碼(參照前面章節(jié)中關(guān)于全局優(yōu)先級(jí)函數(shù)章節(jié))。
      優(yōu)先級(jí)函數(shù)裝置所述的方法可以用提供優(yōu)先級(jí)代碼的其它編碼方案而被修改(例如最小的值具有最高的優(yōu)先級(jí))。
      另外,其它優(yōu)先級(jí)函數(shù)可以通過在電路結(jié)構(gòu)中形成稱為硬件優(yōu)先級(jí)函數(shù)的方式實(shí)現(xiàn)。在這種結(jié)構(gòu)中,可編程邏輯結(jié)構(gòu)中乘積項(xiàng)的物理位置決定了乘積項(xiàng)的優(yōu)先級(jí)。然后直到用戶編寫可編程邏輯器件,設(shè)法使乘積項(xiàng)通過在適當(dāng)位置編寫乘積項(xiàng)而得到正確的優(yōu)先級(jí)。
      在地址分析中為減少計(jì)算操作的最小化技術(shù)布爾最小化減少計(jì)算規(guī)則的系統(tǒng)本發(fā)明也描述了采用布爾操作計(jì)算規(guī)則,最小化乘積項(xiàng)組的方法,通過一個(gè)簡(jiǎn)單的乘積項(xiàng)排序和利用熟知的最小化技術(shù),約束一個(gè)最長(zhǎng)前綴匹配地址分析。也顯示使用熟知的布爾最小化技術(shù)的其它方法。
      通信網(wǎng)絡(luò)交換器是這樣一個(gè)系統(tǒng)的例子,該系統(tǒng)的目標(biāo)是從不同的路徑到達(dá)一個(gè)公共的交叉點(diǎn),從這里,按照描述目標(biāo)和它的傳輸路徑之間關(guān)系的信息被發(fā)送到其它路徑。這類系統(tǒng)用附加需求,每個(gè)目標(biāo)可以二進(jìn)制標(biāo)識(shí)符認(rèn)出,布爾操作能用標(biāo)識(shí)符來檢索說明傳輸路徑的信息,這是本發(fā)明的一個(gè)目標(biāo),并在本部分給于描述。下面文本將說明最小化技術(shù)是如何用到計(jì)算規(guī)則,并在某些情況下將其減少的。這個(gè)例子是基于一個(gè)網(wǎng)絡(luò)交換器,但是在相似的系統(tǒng)中均可應(yīng)用。
      由于輸入的地址號(hào)碼相對(duì)于輸出的動(dòng)作號(hào)大(如圖6中的例子),輸入的信息在很大程度上冗余,而這些信息在計(jì)算中可舍棄不用,由此最小化計(jì)算所需的乘積項(xiàng)的數(shù)量。
      如上所描述的那樣,可以構(gòu)造一(組)布爾操作,在對(duì)輸入的網(wǎng)絡(luò)地址進(jìn)行分析(二進(jìn)制形式)的基礎(chǔ)上來完成對(duì)輸出動(dòng)作號(hào)(一位或幾位)的計(jì)算。
      考慮一個(gè)網(wǎng)絡(luò)的例子,這個(gè)網(wǎng)絡(luò)的前綴長(zhǎng)為三位,表示為a1,a2,a3。當(dāng)函數(shù)f(a1,a2,a3)置1(true)時(shí),一給定動(dòng)作號(hào),如通過路由器的路由被選擇,或動(dòng)作碼各位中的一位設(shè)定計(jì)算/置值。函數(shù)f(a1,a2,a3)由三個(gè)輸入位的布爾操作指定,它保存前綴信息,即,一個(gè)函數(shù),位模式之一在給定的前綴位位置的輸入的網(wǎng)絡(luò)地址中被遇到變?yōu)?。作為函數(shù)的一個(gè)例子,定義函數(shù)去識(shí)別五種不同的位模式f(a1,a2,a3)=a1~a2~a3+~a1~a2~a3+a1~a2a3+a1a2~a3+a1a2a3
      公式21式中,如前所述,乘法表示邏輯“與”功能,求和表示邏輯“或”功能。標(biāo)記~表示了在信號(hào)上反操作,即1變?yōu)?,0變?yōu)?。
      公式21可最小化,這種情況下函數(shù)f(a1,a2,a3)更簡(jiǎn)單表示為f(a1,a2,a3)=a1+~a2~a3公式22這個(gè)函數(shù)也可用函數(shù)g1(a1,a2,a3)和g2(a1,a2,a3)來計(jì)算,公式21的計(jì)算子表達(dá)式為g1(a1,a2,a3)=g1=~a2~a3g2(a1,a2,a3)=g2=a1a2f(a1,a2,a3)=a1g1+~a1g1+a1~a2a3+g2~a3+g2a3公式23使用這些子函數(shù)g1(a1,a2,a3)和g2(a1,a2,a3),函數(shù)f(a1,a2,a3)可被最小化,并且可以保持乘積項(xiàng)的總數(shù)不變,這樣有利于更新布爾操作。這樣一組子函數(shù)可用于兩步解決方案中,第一個(gè)PLA結(jié)構(gòu),根據(jù)輸入的網(wǎng)絡(luò)地址計(jì)算所有的子函數(shù),第二個(gè)PLA結(jié)構(gòu),根據(jù)這組子函數(shù)的總乘積函數(shù)和計(jì)算動(dòng)作碼。對(duì)于有些系統(tǒng)來說,通過預(yù)先計(jì)算一些公用模式,這樣能最小化地址分析功能的芯片的總面積,并將這些用于所說的第二個(gè)PLA結(jié)構(gòu)中。
      正如所看到的,利用普通最小化技術(shù)可簡(jiǎn)化布爾操作的使用(參照如R.K.Brayton,G.D.Hachtel和A.L.SangiovanniVincentelli所著的Multilevel Logic Synthesis,Procceedings of IEEE,78卷,264-300頁(yè),第2期,1990年2月;或Synthesis and Optimization of DigitalCircuits,McGraw-Hill電學(xué)和計(jì)算機(jī)工程叢書中,由Giovanni DeMicheli和Giovanni Demicheli所作,1994年3月),其所得結(jié)果是一個(gè)小的但充分表示了處理過程的函數(shù)。(就像所提到的,輸入信息包含有大量的冗余信息,但是通過這種方法就可以去掉這些冗余信息)當(dāng)編程PLA結(jié)構(gòu)時(shí),布爾最小化技術(shù)如在Giovanni De Micheli1994年3月所著Synthesis and Optimization of Digital Circuits,McGraw-Hill電學(xué)和計(jì)算機(jī)工程叢書中所描述的,以及程序如加洲伯克利大學(xué)的Espresso可被使用,以便使PLA結(jié)構(gòu)中必須的乘積項(xiàng)數(shù)為最小。對(duì)使用優(yōu)先級(jí)函數(shù)的最長(zhǎng)前綴匹配地址分析方案的網(wǎng)絡(luò)來說,標(biāo)準(zhǔn)的最小化方法不能實(shí)行。本發(fā)明使用的方法包含有以下幾個(gè)步驟1.路由表根據(jù)優(yōu)先級(jí)號(hào)排序;2.每個(gè)在路由表中有入口的子組,A,具有相同優(yōu)先級(jí)號(hào),相當(dāng)于在乘積項(xiàng)和表的形式中被建立的布爾計(jì)算規(guī)則R;3.計(jì)算規(guī)則R使用如Espresso或相似的方法被最小化,導(dǎo)出乘積項(xiàng)和形式中最小化計(jì)算規(guī)則集R;4.最小化計(jì)算規(guī)則集R與相應(yīng)的子集A的優(yōu)先級(jí)號(hào)/代碼相關(guān)聯(lián);5.用最小化計(jì)算規(guī)則集R和相應(yīng)的優(yōu)先級(jí)號(hào)/代碼對(duì)PLD進(jìn)行更新;6.重復(fù)步驟2-5,把路由表中所有的優(yōu)先級(jí)號(hào)和動(dòng)作號(hào)全部結(jié)合。
      由于經(jīng)過全部最小化的乘積項(xiàng)集具有相同的優(yōu)先級(jí),使用這種或相似的方法,利用優(yōu)先權(quán)函數(shù)的計(jì)算規(guī)則就不會(huì)不可靠。
      上面所述的最小化技術(shù)也能夠用圖19所示的分布式結(jié)構(gòu)中包含有若干個(gè)PLA結(jié)構(gòu)的結(jié)構(gòu)。(也參見前面對(duì)這部分的描述)。
      這里所說的最小化方法也可以用在采用一個(gè)優(yōu)先級(jí)函數(shù)的三元態(tài)CAM系統(tǒng)中。這個(gè)CAM系統(tǒng)的最小化布爾操作的結(jié)果乘積項(xiàng)R將被轉(zhuǎn)變?yōu)槿獞B(tài)匹配模式,完成此過程要使用標(biāo)準(zhǔn)技術(shù),并且相關(guān)聯(lián)的優(yōu)先級(jí)代碼或R將更新CAM系統(tǒng)。
      具有可編程邏輯陣列執(zhí)行單元的微處理器微處理器體系說明本發(fā)明的一部分涉及到執(zhí)行軟件程序的微處理器體系,在軟件程序中,做了大量的位字段分析。一個(gè)位字段分析類似與前面應(yīng)用中所描寫的網(wǎng)址分析。圖7顯示的情況,由n位被分析,得到m位的結(jié)果。這不僅能提高普通軟件的運(yùn)行速度,也能提高位字段分析軟件的執(zhí)行速度。后者的一個(gè)例子就是在前文提到的網(wǎng)絡(luò)地址分析。下文將提供更多的使用實(shí)例。
      一個(gè)微處理器系統(tǒng)包括一個(gè)微處理器和一些附加組件,但不是限于這些附加組件,如隨機(jī)取存儲(chǔ)器(RAM),固定存儲(chǔ)器,為了對(duì)磁盤磁帶驅(qū)動(dòng)的控制器,為了對(duì)顯示部件和監(jiān)視器,LCD顯示器等的控制器,輸入部件和為了對(duì)如鍵盤,鼠標(biāo)等的控制器,及其他輸入輸出和通信設(shè)備。微處理器能夠讀和寫數(shù)據(jù),及從或到這些部件中讀取或?qū)懭牖镜奈⑻幚碇噶?。下面這些數(shù)據(jù)和基本的微處理指令將會(huì)指示程序信息。
      微處理器執(zhí)行基本微處理指令,如(但并不僅僅局限于此)兩數(shù)相加,兩數(shù)相減,兩數(shù)比較,移動(dòng)存儲(chǔ)器的信息,轉(zhuǎn)移,條件轉(zhuǎn)移等。一系列的基本微處理指令能這樣操縱數(shù)據(jù),這種處理以軟件程序表示。
      圖21表明了標(biāo)準(zhǔn)微處理器體系。在通常操作中,微處理器使用地址解碼器,2102,指出在外部隨機(jī)存儲(chǔ)器(未顯示)上的一個(gè)地址,那兒存放著要執(zhí)行的下一條指令或程序信息。從輸入輸出單元,2103中取出指令,送至指令解碼器2101,以分析程序指令,并在微處理器中設(shè)置必要的路徑和控制信號(hào)2107。基本指令需要輸入/輸出單元2103,以與外部設(shè)備通信,同時(shí)會(huì)用到執(zhí)行單元2108來進(jìn)行計(jì)算或類似的操作,或者如果不直接操作數(shù)據(jù),可只須改變指令解碼器2101的狀態(tài)和寄存器。執(zhí)行單元用來實(shí)現(xiàn)象加,減,比較等的運(yùn)算。這些運(yùn)算是在一個(gè)算術(shù)邏輯單元(ALU)2104中完成的。另外,有些微處理器還包括一個(gè)浮點(diǎn)算術(shù)單元(FPAU)2105,加速包括乘除和其它更高級(jí)計(jì)算函數(shù)的這些運(yùn)算。在通常的運(yùn)算中,指令被指令解碼器2101解碼,然后再執(zhí)行一個(gè)微碼程序來完成這命令的操作。在有些微處理器中指令解碼器2101中可能會(huì)改變微碼,以改變或添加微處理器的功能。應(yīng)指出可編程序邏輯執(zhí)行單元(PLEU)2106如圖所示,不是普通的微處理器的一部分,而是本發(fā)明的一部分。
      ALU是一組件,它取出一或兩個(gè)操作數(shù),并根據(jù)輸入用操作數(shù)實(shí)現(xiàn)預(yù)選擇功能。當(dāng)前,在大多數(shù)ALU中某些基本功能是整數(shù)加,整數(shù)減,類似二進(jìn)制的與,或,異或,及操作數(shù)的一些位循環(huán)等二進(jìn)制邏輯運(yùn)算。
      一個(gè)二進(jìn)制邏輯運(yùn)算是在兩個(gè)操作數(shù)的每一位之間進(jìn)行的邏輯運(yùn)算。例如兩個(gè)輸入的操作數(shù)的第二位,假設(shè)其中分別包含二進(jìn)制0和1,這時(shí)將會(huì)執(zhí)行二進(jìn)制的"或"。由于邏輯上1“或”0為1,因此結(jié)果輸出字的第二位將會(huì)是1。
      在位循環(huán)中,輸入字將被循環(huán)某些位數(shù),可以是右循環(huán)或左循環(huán)。作為一個(gè)例子,考慮二進(jìn)制輸入字10011,并假設(shè)這個(gè)字將要左循環(huán)二位,那么輸出結(jié)果將是01110。
      在某些情況下,微處理器可包含幾個(gè)ALU及可另加FPAU。典型的FPAU將會(huì)完成浮點(diǎn)乘除操作。
      一個(gè)典型的基本微處理器指令是通過以下步驟執(zhí)行的1.讀基本的微處理器指令(例如從存儲(chǔ)器中讀出的),輸入輸出部件2013將指令碼傳給指令解碼器2101。
      2.指令解碼器2101分析基本的微處理器指令碼,基于這些分析,發(fā)出控制信號(hào)2107,2109給微處理器的其它部分2102,2103,2108,專門執(zhí)行基本的微處理器指令所需的動(dòng)作。
      3.執(zhí)行所給基本微處理器指令所需的動(dòng)作。這些動(dòng)作可能為由ALU 2104將兩位數(shù)相加,由ALU 2104比較兩個(gè)數(shù),計(jì)算讀到的程序信息的下一地址(由地址計(jì)算組件2102實(shí)現(xiàn)),從輸入輸出器2103中讀出或存入數(shù)據(jù)等等。(以執(zhí)行這些動(dòng)作所需的基本微處理器指令。)如前面圖21所示的微處理器,微處理器的最小構(gòu)造是集成一簡(jiǎn)單微處理器的功能需要的最小功能塊集?,F(xiàn)在大多數(shù)的微處理器都包含幾個(gè)附加組件,每個(gè)都包括在微處理器體系中,以提高整個(gè)微處理器系統(tǒng)的性能。這種附加組件有內(nèi)部寄存器,輸入/輸出緩存器,微處理器系統(tǒng)的各種組件的直接接口。內(nèi)部存儲(chǔ)器既包括只讀存儲(chǔ)器ROM,又包括RAM,等等。另外有些微處理器用到了順序執(zhí)行基本微處理器指令的方法,另外可用流水線方法或二者的結(jié)合。
      現(xiàn)有技術(shù)的問題在一個(gè)軟件程序中的一位字段分析,典型實(shí)現(xiàn)是用大量微處理器指令序列實(shí)現(xiàn)的。在一軟件程序中,這里的一位字段分析或幾位字段分析以重復(fù)的方法通過執(zhí)行基本的微處理器指令序列實(shí)現(xiàn),由于這種重復(fù)操作導(dǎo)致的延遲很突出,因此限制了整個(gè)系統(tǒng)的性能。
      通過使用下面數(shù)據(jù)處理所給出的軟件例程,根據(jù)輸入位序列操作導(dǎo)出輸出位序列,說明位字段分析任務(wù)。這個(gè)位序列輸出可以包括以下信息,如有限狀態(tài)機(jī)(FSM)中下一個(gè)狀態(tài),一個(gè)新的(二進(jìn)制)可變變量值,一個(gè)表達(dá)執(zhí)行動(dòng)作的二進(jìn)制碼,一個(gè)位模式匹配的情形的軟件程序用到的標(biāo)記,等等。軟件中所用的索引,用到的陣列以及表都能被加速,象分析一個(gè)網(wǎng)絡(luò)地址的特別的過程都可以被一個(gè)位字段的分析執(zhí)行。
      現(xiàn)有技術(shù)(例如WO 94/09416,“High Speed programmablelogic controller”)用到了一個(gè)微處理器或微控制器,其中具備有能夠處理輸入字預(yù)定義(簡(jiǎn)單的)的布爾操作指令組成的指令集的一子集。上述的微處理器或微控制器中的典型指令是二進(jìn)制的“與”和二進(jìn)制的“或”函數(shù),這里的兩個(gè)輸入字的各位a0,…,an和b0,…,bn分別根據(jù)qi=ai·bi和qi=aI+bI,來計(jì)算輸出字q0,…,qn。這些指令和其它指令如SHIFT指令(SHIFT用于將輸入位序列向右或向左移一定的位置)一起使用,通過一系列重復(fù)指令進(jìn)行位字段的分析。這種方法稱為可編程序,這里將指出重復(fù)編程方法。這種方法的缺點(diǎn)是需要大量指令,并由此引起延遲,這個(gè)延遲對(duì)一個(gè)應(yīng)用程序的性能是至關(guān)重要的。
      作為一種位字段分析函數(shù)裝置,需設(shè)置一個(gè)布爾操作,它指定所需的邏輯運(yùn)算,以根據(jù)輸入位序列生成輸出位序列。因此,這個(gè)運(yùn)算能夠?qū)崿F(xiàn)一個(gè)指定的位字段的分析。通過運(yùn)用一個(gè)稱為可編程邏輯的技術(shù),可以使位字段分析的延遲最小化,這是一個(gè)數(shù)字組件,它在一個(gè)輸入的位序列,稱為一個(gè)輸入字上,執(zhí)行一個(gè)預(yù)編程布爾操作。輸出位序列,稱為輸出字,是對(duì)輸入字進(jìn)行布爾操作的結(jié)果。布爾操作可以動(dòng)態(tài)修改,因此可編程的邏輯組件能夠重新編寫程序,以執(zhí)行一個(gè)新的布爾操作。可編程邏輯組件可以包含有也可不包含寄存器,以存儲(chǔ)結(jié)果以便今后使用(例如,這些值用于表示FSM中的狀態(tài))。這些寄存器的值稱為可編程邏輯組件的狀態(tài)。輸出字可以含有也可以不含有部分或全部的可編程邏輯組件的狀態(tài)。
      這種解決方案也就是所說的可編程序,但是這里的可編程能力是能通過重新編寫可編程邏輯組件,改變位字段分析的,如此,用所說的組件,能夠執(zhí)行一個(gè)新的布爾操作。由于布爾操作可重新編程(這與重復(fù)可編程解決方案是相反的),可重新編程能力將表示布爾操作的可重新編程能力。
      現(xiàn)今,這樣的一個(gè)可編程邏輯組件,作為一個(gè)獨(dú)立的電子器件商業(yè)化了。微處理器系統(tǒng)可以運(yùn)用這樣的可編程邏輯器件作為附加組件。因此微處理器可以與可編程的邏輯器件建立通信,發(fā)送輸入字,接收輸出字,全面或部分地控制器件編程。圖22顯示了微處理器系統(tǒng)的一個(gè)例子的方塊圖,它采用了可編程的邏輯組件。在這個(gè)例子中,微處理器2201由其余微處理器系統(tǒng)組件2002-2007控制執(zhí)行動(dòng)作。存儲(chǔ)器由RAM2202,及ROM 2203組成。組件2206是一個(gè)固定的存儲(chǔ)器件。其它設(shè)備與用戶之間的通信要經(jīng)過輸入輸出組件2205??删幊踢壿嫿M件2205與數(shù)據(jù)總線2204相連,這個(gè)微處理器系統(tǒng)的其它部件2201,2202,2203,2206,2207也和數(shù)據(jù)總線2204相連。
      這種方式的缺點(diǎn)是用于和可編程器件傳輸數(shù)據(jù)的時(shí)間,以及現(xiàn)在的微處理器的工作速度明顯高于可編程邏輯器件的運(yùn)行速度,因此增加了操作的相對(duì)等待時(shí)間。另外,從可編程邏輯器件中得到的結(jié)果,在有條件分支指令集中不能直接地作整數(shù)部分。
      對(duì)于一些應(yīng)用程序來說,其中位字段分析必須在一個(gè)特定的時(shí)間量中進(jìn)行(例如,一些實(shí)時(shí)系統(tǒng)),這種延遲的時(shí)間太長(zhǎng)了。在一個(gè)微處理器系統(tǒng)中使用外部PLDs的另一局限是更多的指令需要與外部設(shè)備進(jìn)行通信。
      總之這種方式的缺點(diǎn)如下1.在數(shù)據(jù)總線2204上來回的傳輸數(shù)據(jù)會(huì)引起延時(shí);2.為了連接可編程邏輯組件2205到數(shù)據(jù)總線上,可能需要附加的邏輯組件;3.微處理器2201和可編程邏輯組件2205各自速度不同,導(dǎo)致微處理器2201有大量的等待狀態(tài);4.其余的指令集從PLD中得到的結(jié)果缺乏集成型,從而使如條件分支能基于可編程邏輯組件中的標(biāo)記直接執(zhí)行。
      為執(zhí)行布爾操作,附加一個(gè)基于可編程邏輯的執(zhí)行單元根據(jù)本發(fā)明所說的執(zhí)行單元,通過將一個(gè)PLD,2205集成到微處理器,作為一個(gè)附加執(zhí)行單元,即可編程邏輯執(zhí)行單元(PLEU)2106,得到在微處理器中使用可編程邏輯結(jié)構(gòu)的優(yōu)越性。
      根據(jù)本發(fā)明中一實(shí)例,它在一個(gè)執(zhí)行單元2108中利用了一個(gè)可編程邏輯組件2205,形成了一個(gè)可編程邏輯執(zhí)行單元(PLEU)2106。圖23說明了從中取得的性能??删幊踢壿嫿M件2307用于位字段分析,在輸入字上進(jìn)行指定布爾操作,它包括一個(gè)預(yù)處理器2305,輸入的操作數(shù)2311的譯文和這個(gè)可編程邏輯執(zhí)行單元的狀態(tài)2310??删幊踢壿嫿M件的有些輸出字2308的位,可以被鎖存2309,作為可編程邏輯執(zhí)行單元的狀態(tài),而有些輸出位可以作為微處理器中的標(biāo)記2303。輸出字2308的其余位作為這個(gè)可編程邏輯執(zhí)行單元的輸出2306。
      可編程邏輯組件2307或者通過指令譯碼1201譯碼基于微處理機(jī)指令被重新編程,或者通過微處理機(jī)輸入/輸出接口直接從外部被重新編程。
      本發(fā)明將可編程邏輯組件2205集成到微處理器2201,作為一個(gè)執(zhí)行單元2106,以提高微處理器系統(tǒng)用軟件編程的性能,這里的大量位字段的分析限制了程序的性能。這里的改進(jìn)不取決微處理器2201執(zhí)行的復(fù)雜性,而是取決于運(yùn)行和集成一個(gè)新的可執(zhí)行單元2106,即可編程邏輯執(zhí)行單元進(jìn)入一指定的微處理器2201的可能性??删幊踢壿媹?zhí)行單元集成到微處理器,作為另一個(gè)執(zhí)行單元2106,接受相同類型的輸入(例如一個(gè)或兩個(gè)操作數(shù))發(fā)送相同類型的輸出(例如一個(gè)輸出字,標(biāo)記等等)。微處理器的指令集會(huì)增加以調(diào)節(jié)新的執(zhí)行單元2106的功能。由此位字段分析可通過一個(gè)基本的微處理器指令執(zhí)行。
      通過將可編程邏輯集成到微處理器2201,作為一個(gè)可執(zhí)行單元2106,避免了在數(shù)據(jù)總線2204上來回傳輸數(shù)據(jù)所引起的延遲。另外,由于可編程邏輯組件集成到微處理器2201中,可編程邏輯組件作為微處理器2201的其余部分用相同工藝實(shí)現(xiàn),因此,可編程邏輯組件和微處理器的其余部分之間的速度差異可保持為最小值。而且這種實(shí)現(xiàn)方法的另一個(gè)優(yōu)點(diǎn)是,為使用下一條指令,向指令解碼器的反饋一標(biāo)記,根據(jù)可編程邏輯執(zhí)行單元2106的標(biāo)記能作的條件分支/轉(zhuǎn)移。
      當(dāng)一個(gè)位字段分析被執(zhí)行時(shí),微處理器2201將這個(gè)位字段(如一個(gè)變量或一個(gè)輸入值)送至可編程邏輯組件2205,將這個(gè)位字段作為輸入字使用。輸出字,由輸入字進(jìn)行指定的布爾操作的結(jié)果送回微處理器2201,作進(jìn)一步的處理。當(dāng)位字段分析是FSM例行程序的一部分時(shí),可編程邏輯組件2205中的任一內(nèi)部寄存器可以方便地存儲(chǔ)當(dāng)前的狀態(tài)值。
      圖23顯示了一個(gè)可編程邏輯執(zhí)行單元的例子的功能方塊圖。輸入2311,由一位或兩位操作數(shù)(例如8,16,32,64位字)組成。這些輸入字2311,傳送至預(yù)處理單元2312,執(zhí)行不同類型的預(yù)處理函數(shù),如但不限于在兩組位序列集(兩個(gè)操作數(shù))之間進(jìn)行位的循環(huán),與,或,異或運(yùn)算等。預(yù)處理函數(shù)2312的目的是能對(duì)輸入的操作數(shù),在傳送至可編程邏輯組件2307之前,能夠作簡(jiǎn)單的位處理。預(yù)處理函數(shù)2311中的實(shí)現(xiàn)的函數(shù)類似于前面所描述的ALU,2104,做的循環(huán)和邏輯運(yùn)算。存儲(chǔ)在寄存器2309中的預(yù)處理函數(shù)2310的輸出2305和可編程邏輯執(zhí)行單元的狀態(tài)2310,將用作可編程邏輯組件2307的輸入字。可編程邏輯組件對(duì)輸入字執(zhí)行預(yù)編程布爾操作,最后得到輸出字。
      可編程邏輯組件2307的輸出字2308分為三個(gè)不同的子輸出字。每個(gè)輸出字2308都可以是可編程邏輯組件2307中單獨(dú)的布爾操作的結(jié)果,或者也可以是同一布爾操作的結(jié)果,因此,三個(gè)輸出字中任一位將匹配其余兩個(gè)輸出字中的對(duì)應(yīng)字。
      輸出字2308的第一組位作為標(biāo)記2303,送往指令解碼器2101,并用在如下的基本微處理器的指令中。接下來的基本微處理器的指令能夠基于這些標(biāo)記值執(zhí)行條件轉(zhuǎn)移。
      這些標(biāo)記的優(yōu)點(diǎn)的一個(gè)例子,可以考慮上面的一個(gè)輸入處理FSM的例子。在FSM中,這些標(biāo)記可以觸發(fā)條件轉(zhuǎn)移,到一處理例行程序處理輸入值。
      第二組輸出位2308,在寄存器2309中被鎖存,并作為可編程邏輯執(zhí)行單元的一個(gè)新的狀態(tài)值2310。這個(gè)狀態(tài)值可以方便地用于FSM中,代表FSM的當(dāng)前狀態(tài)。
      輸出字2308的最后一組位可以得到2306,微處理器的其余功能模塊2101-2103可以以同樣的方式,從其它的執(zhí)行單元2108輸出得到。
      可編程邏輯執(zhí)行單元可以通過一個(gè)單獨(dú)的功能2304被控制和編程。編程和控制操作2304,從指令解碼器2101處接收控制信號(hào)2301,從指令解碼器2101處或直接通過輸入/輸出部件2103從外部得到程序信息2302。
      這使得編程可編程邏輯執(zhí)行單元成為可能,這過程要么直接采用基本的微處理器指令,要么通過一個(gè)單獨(dú)的外部的微處理器控制組件進(jìn)行。
      為了強(qiáng)調(diào)本發(fā)明和現(xiàn)有技術(shù)的差別,需要注意的是可編程邏輯將是微處理器核心的一部分,而不是微處理器所使用的組件。這使在微處理器的指令集中包函新的指令,以容易地在微處理器程序中直接使用可編程邏輯執(zhí)行單元,就像加入兩個(gè)整數(shù)那樣容易。這里是用現(xiàn)有技術(shù)對(duì)以前定義的重復(fù)可編程解決方案的一個(gè)擴(kuò)展,其中幾個(gè)指令必須使用還未執(zhí)行的布爾操作,與本發(fā)明不同的是它用布爾操作的可編程能力來修改或重新編寫這個(gè)布爾操作以減少重復(fù)處理的需要。
      使用實(shí)例通過執(zhí)行軟件程序,微處理器系統(tǒng)可以實(shí)現(xiàn)許多不同的操作、解決許多不同的問題。在這樣一些軟件程序中一個(gè)基本的操作是對(duì)字段的分析(例如一個(gè)變量的二進(jìn)制表示、一個(gè)輸入值等)。這種分析在很多軟件例行程序中使用,例如分析從輸入器件輸入的例行程序中,在輸入的值或變量形成判斷依據(jù)的判斷例行程序中,在有限狀態(tài)機(jī)中等。
      一個(gè)有限狀態(tài)機(jī)是一系列例行程序,它基于以下三個(gè)基本部件1.一組輸入事件或輸入信號(hào);2.一組有限狀態(tài)機(jī);及3.一組描述每一個(gè)給定狀態(tài)的規(guī)則,狀態(tài)FSM基于輸入事件處理。
      除此以外,有限狀態(tài)機(jī)也可以包括輸出信號(hào),這些輸出信號(hào)被用作啟動(dòng)不同的處理例程。
      作為FSM的一個(gè)實(shí)例,考慮下面的輸入例程。FSM的實(shí)例有兩種狀態(tài)運(yùn)行或等待。在等待狀態(tài)下,F(xiàn)SM等待用戶的輸入。當(dāng)按下一個(gè)鍵時(shí),F(xiàn)SM分析輸入(位字段)的值,如果該值與某一個(gè)模式匹配,則FSM繼續(xù)運(yùn)行狀態(tài),在運(yùn)行狀態(tài)下,F(xiàn)SM向處理例程發(fā)出一個(gè)信號(hào),處理了輸入。當(dāng)處理例程完成時(shí)它向FSM發(fā)送一個(gè)返回信號(hào),之后,F(xiàn)SM退回到等待狀態(tài)。
      在位字段分析中,最典型地是執(zhí)行相關(guān)的一系列基本微處理器指令。在軟件程序中,一位或幾位字段分析是采用重復(fù)方式。由重復(fù)操作會(huì)明顯產(chǎn)生延遲,它可能會(huì)限制系統(tǒng)的性能。
      指定的位字段分析任務(wù),根據(jù)位輸入序列功能確定,下面的數(shù)據(jù)處理,由給出的軟件例程導(dǎo)出位輸出序列。位輸出序列包含這樣的信息FSM的下一個(gè)狀態(tài)、變量的新(二進(jìn)制)值、代表要執(zhí)行的動(dòng)作的二進(jìn)制代碼、在位模式匹配的情況下軟件程序進(jìn)一步使用的標(biāo)識(shí)等等。
      使用的另一個(gè)實(shí)例是通過對(duì)帶有新的運(yùn)算功能的輸入和輸出的新執(zhí)行單元進(jìn)行編程,在微處理器程序中加入新的專門運(yùn)算或傳輸指令。作為一個(gè)例子,考慮的下面的問題是部分32位字被用作外部存儲(chǔ)器的地址單元。這個(gè)例子的算法是1.把32位字加入寄存器A2.把寄存器A拷貝到寄存器B3.把寄存器A和0xFF0000進(jìn)行與運(yùn)算4.右移寄存器A16位5.把寄存器B和0xFF進(jìn)行與運(yùn)算6.把寄存器A和寄存器B相加7.把寄存器A與4相乘為描述算法,考慮輸入(a31,……a1)=(0010010.11001100.01010101.10011001)。當(dāng)運(yùn)用上面的算法時(shí),輸出將是(00000000.00000011.00110010.01100100)。象前面幾節(jié)描述的那樣,這樣的二進(jìn)制輸入和二進(jìn)制輸出之間的關(guān)系可由布爾操作實(shí)現(xiàn)。
      對(duì)于限于只能使用PLEU的大小輸入量而言,應(yīng)存儲(chǔ)輸出結(jié)果,因而建立布爾操作,該布爾操作把專門的輸入映射到/運(yùn)算成正確的輸出模式。如果輸入的范圍被實(shí)現(xiàn),PLEU可被用作該算法的專門的執(zhí)行單元,在一個(gè)內(nèi)部微處理器周期而不是象在上面的算法中,在7個(gè)內(nèi)部微處理器周期中執(zhí)行運(yùn)算。用這種算法,對(duì)可編程執(zhí)行單元進(jìn)行編程,以實(shí)現(xiàn)專門計(jì)算是可能的,這樣,如果經(jīng)常使用替代算法會(huì)極大地改善整體性能。
      另一個(gè)使用實(shí)例是強(qiáng)使用哈希譯碼。哈希編碼是在輸入處加一函數(shù),其編碼過程是不可逆轉(zhuǎn)的。這意味著輸出不能被用來計(jì)算輸入。這一點(diǎn)也可被描述為不可逆轉(zhuǎn)的函數(shù)。因此,一種強(qiáng)使方法,這里不同的輸入表首先用哈希函數(shù)編碼,然后必須與輸出表進(jìn)行匹配。通常情況下,這會(huì)通過表查詢函數(shù)來實(shí)現(xiàn),表查詢函數(shù)要查遍每個(gè)被編碼輸入的已知輸出表。因而查詢?nèi)Q于輸出表的大小。實(shí)現(xiàn)這樣的查詢函數(shù)需要進(jìn)行許多位字段分析。
      另一個(gè)使用實(shí)例是一個(gè)集成的部分轉(zhuǎn)發(fā)引擎。在這樣的轉(zhuǎn)發(fā)引擎中,可以方便地使用帶有可編程邏輯執(zhí)行單元的的微處理器。帶有PLEU的微處理器會(huì)被用作如下任務(wù)1.網(wǎng)絡(luò)地址分析(使用本發(fā)明中描述的方法);2.通過設(shè)置PLEU中校驗(yàn)字段的計(jì)算規(guī)則,在數(shù)據(jù)包中計(jì)算校驗(yàn)字段;3.既在數(shù)據(jù)包中,又通過使用路由器和/或網(wǎng)絡(luò)管理系統(tǒng),使用PLEU計(jì)算統(tǒng)計(jì)圖/數(shù),PLEU可編程序以計(jì)算圖/數(shù);4.根據(jù)數(shù)據(jù)擾頻器,利用PLEU對(duì)部分或全部數(shù)據(jù)包進(jìn)行擾頻。數(shù)據(jù)擾頻可通過微處理器用PLEU作碼轉(zhuǎn)換(如從4位轉(zhuǎn)到5位代碼)和/或作PRBS擾頻實(shí)現(xiàn)。在數(shù)據(jù)包的位或字節(jié)級(jí)的擾頻函數(shù)由PLEU方便地完成,通過對(duì)PLEU進(jìn)行編程以實(shí)現(xiàn)代碼轉(zhuǎn)換和/或通過對(duì)PLEU進(jìn)行編程,使用例如它的內(nèi)部寄存器和PLEU的布爾可編程結(jié)構(gòu),以實(shí)現(xiàn)PRBS擾頻。
      權(quán)利要求
      1.一種在分析系統(tǒng)中用于對(duì)輸入字或摸式進(jìn)行分析的方法,該分析系統(tǒng)包括一個(gè)或多個(gè)執(zhí)行計(jì)算規(guī)則運(yùn)算的邏輯設(shè)備,所說的邏輯設(shè)備由硬件實(shí)現(xiàn)且可被編程,從而允許實(shí)現(xiàn)新的計(jì)算規(guī)則和更新現(xiàn)有計(jì)算規(guī)則,所說的計(jì)算規(guī)則至少是分析系統(tǒng)一個(gè)或多個(gè)處理功能的一部分,所說方法包括了包含下述步驟的分析階段在輸入分析系統(tǒng)中輸入要分析的輸入字,及對(duì)輸入字進(jìn)行處理,從而提供輸出字,這里所說的處理包括一個(gè)執(zhí)行一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算的步驟。
      2.按照權(quán)利要求1的方法,這里所說的要被分析的輸入字包括通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址,而分析系統(tǒng)是一個(gè)地址分析系統(tǒng)。
      3.按照權(quán)利要求1或2方法,這里的輸出字用動(dòng)作號(hào)的形式。
      4.按照權(quán)利要求1到3中任意一種的方法,這里所說的輸入字和/或輸出字包括多于一位的信息。
      5.按照權(quán)利要求1到4中任意一種的方法,這里所說的計(jì)算規(guī)則包括一個(gè)或多個(gè)模糊邏輯操作。
      6.按照權(quán)利要求1到4中任意一種的方法,這里所說的計(jì)算規(guī)則包括一個(gè)或多個(gè)布爾邏輯操作。
      7.按照權(quán)利要求6中任意一種的方法,這里所說的一個(gè)或多個(gè)布爾邏輯操作能用乘積項(xiàng)的和來定義,并且最好把輸出字中給定位的計(jì)算規(guī)則,當(dāng)作乘積項(xiàng)的和來計(jì)算,所說的乘積項(xiàng)每個(gè)與輸入字激活的輸出字節(jié)各個(gè)位相關(guān)。
      8.按照權(quán)利要求1到7中任意一種的方法,這里所說的處理包括把輸入字轉(zhuǎn)成預(yù)定的輸入字格式的預(yù)處理步驟。
      9.按照權(quán)利要求8方法,這里所說的預(yù)處理步驟跟隨著執(zhí)行一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算的步驟。
      10.按照權(quán)利要求1到9中任意一種的方法,這里所說的一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算的結(jié)果是為了得到所說輸出字作后處理的中間輸出字。
      11.按照權(quán)利要求4到10中任意一種的方法,這里的多位輸入字或多位預(yù)處理的輸入字,使用一些計(jì)算規(guī)則來處理的,每個(gè)計(jì)算規(guī)則形成多位輸出字或多位中間輸出字的一個(gè)輸出位,計(jì)算規(guī)則的數(shù)量等于輸出字或中間輸出字的位數(shù)。
      12.按照權(quán)利要求2或權(quán)利要求4到11中任意一種的方法,這里所說的地址分析包括一最長(zhǎng)的前綴地址分析運(yùn)算,所說最長(zhǎng)的前綴地址分析運(yùn)算最好是所說的一個(gè)或多個(gè)計(jì)算規(guī)則運(yùn)算的一部分。
      13.按照權(quán)利要求4到12中任意一種的方法,這里所說的一個(gè)或多個(gè)處理功能包括一個(gè)或多個(gè)優(yōu)先級(jí)函數(shù),所說的優(yōu)先級(jí)函數(shù)最好是所說的一個(gè)或多個(gè)計(jì)算規(guī)則的一部分。
      14.按照前面的權(quán)利要求的任意一種的方法,這里所說的可編程邏輯器件具有處理邏輯函數(shù)的結(jié)構(gòu),所說的結(jié)構(gòu)包括一個(gè)可重復(fù)編程的優(yōu)先級(jí)部件或函數(shù)(PPE),用來對(duì)同一輸入字匹配的幾個(gè)可能的輸出字之間確定優(yōu)先次序。
      15.按照權(quán)利要求1到4或6到14中任意一種的方法,這里的可編程邏輯器件結(jié)構(gòu)還包括一AND處理位面,以得到作為計(jì)算規(guī)則輸入的函數(shù)的乘積項(xiàng),這里的每個(gè)計(jì)算規(guī)則輸入包括真、假、或者是“不介意”。
      16.按照權(quán)利要求1到4或6到15中任意一種的方法,這里的可編程邏輯器件結(jié)構(gòu)還包括一OR位面,根據(jù)AND位面得到乘積項(xiàng)的和,由此得到計(jì)算規(guī)則輸出結(jié)果。
      17.按照權(quán)利要求14到16中任意一種的方法,這里所說的計(jì)算規(guī)則輸出結(jié)果通過對(duì)要處理的不同布爾操作給予不同的優(yōu)先級(jí)而被確定。
      18.按照權(quán)利要求15或16的方法,這里在AND位面中得到的乘積項(xiàng)用優(yōu)先級(jí)函數(shù)區(qū)分優(yōu)先次序,從而選擇將轉(zhuǎn)送到OR位面的幾個(gè)被激活的乘積項(xiàng)之一,以得到計(jì)算規(guī)則輸出結(jié)果,所說的優(yōu)先級(jí)函數(shù)最好選擇具有最高優(yōu)先權(quán)值或數(shù)值的乘積項(xiàng)。
      19.按照權(quán)利要求18的方法,這里的可編程優(yōu)先權(quán)部件把所說的優(yōu)先級(jí)函數(shù)分配給每個(gè)同時(shí)被激活的乘積項(xiàng)。
      20.按照權(quán)利要求18的方法,這里的可編程優(yōu)先權(quán)部件把權(quán)重值或優(yōu)先權(quán)編碼分配給在AND位面得到的乘積項(xiàng),從而選擇幾個(gè)被激活的乘積項(xiàng)之一。
      21.按照權(quán)利要求20的方法,這里的權(quán)重值或優(yōu)先權(quán)編碼被賦給每個(gè)乘積項(xiàng)。
      22.按照權(quán)利要求20或21的方法,這里分配給每個(gè)乘積項(xiàng)的權(quán)重值等于為形成乘積項(xiàng)編程在AND位面的反熔絲數(shù)。
      23.按照權(quán)利要求1到22的任意一種的方法,還包括根據(jù)接收的網(wǎng)絡(luò)地址、優(yōu)先權(quán)和動(dòng)作號(hào)之間關(guān)系的信息,更新分析系統(tǒng)的學(xué)習(xí)階段,所說的分析階段在所說的更新期間是停止的。
      24.按照權(quán)利要求23的方法,這里所說的更新包括一個(gè)或多個(gè)可編程邏輯器件的編程或重復(fù)編程。
      25.按照權(quán)利要求23或24的方法,這里的分析系統(tǒng)是隨通信網(wǎng)絡(luò)的變更而更新的。
      26.按照權(quán)利要求25的方法,這里的變更可包括新的終端地址、網(wǎng)絡(luò)終端位置的變更、及網(wǎng)絡(luò)拓樸的變更。
      27.按照權(quán)利要求1到26的任意一種的方法,這里的可編程邏輯器件包括一些存儲(chǔ)器邏輯單元,每個(gè)單元包括一可重復(fù)編程的的存儲(chǔ)部件,用于存儲(chǔ)匹配值,最好還有一個(gè)邏輯部件用于把輸入位的值同存儲(chǔ)的匹配值進(jìn)行比較。
      28.一種用于對(duì)輸入字或摸式進(jìn)行分析的系統(tǒng),所說的系統(tǒng)包括用以執(zhí)行計(jì)算規(guī)則運(yùn)算的一個(gè)或多個(gè)邏輯器件,所說的邏輯器件由硬件實(shí)現(xiàn)且可被編程,從而允許實(shí)現(xiàn)新的計(jì)算規(guī)則,并且所說的計(jì)算規(guī)則至少是一個(gè)或多個(gè)用于根據(jù)輸入字或模式確定輸出字的處理函數(shù)的部分,從而提供分析的結(jié)果。
      29.按照權(quán)利要求28的系統(tǒng),這里把要分析的輸入字表示為通信網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址,而且分析系統(tǒng)是一個(gè)地址分析系統(tǒng)。
      30.按照權(quán)利要求28或29的系統(tǒng),這里的輸出字具有動(dòng)作號(hào)的形式。
      31.按照權(quán)利要求28到30中任意一種的系統(tǒng),這里的輸入字和/或輸出字包括多于一位的信息。
      32.按照權(quán)利要求28到31中任意一種的系統(tǒng),這里的計(jì)算規(guī)則包括一個(gè)或多個(gè)模糊邏輯操作。
      33.按照權(quán)利要求28到32中任意一種的系統(tǒng),這里的計(jì)算規(guī)則包括一個(gè)或多個(gè)布爾邏輯操作。
      34.按照權(quán)利要求28到32中任意一種的系統(tǒng),這里由布爾邏輯操作定義的計(jì)算規(guī)則,能用乘積項(xiàng)的和來定義,以及對(duì)輸出字的給定位的特定計(jì)算規(guī)則被當(dāng)作乘積項(xiàng)的和來計(jì)算,所說乘積項(xiàng)每個(gè)與輸入字激活的輸出字中各個(gè)位相關(guān)。
      35.按照權(quán)利要求28到34中任意一種的系統(tǒng),這里的處理函數(shù)包括預(yù)處理函數(shù)和/或后處理函數(shù)。
      36.按照權(quán)利要求31到35中任意一種的系統(tǒng),這里的多位輸入字或多位預(yù)處理的輸入字使用一些計(jì)算規(guī)則來處理,每個(gè)計(jì)算規(guī)則形成多位輸出字或多位中間輸出字的一個(gè)輸出位,計(jì)算規(guī)則的數(shù)量等于輸出字或中間輸出字的位數(shù)。
      37.按照權(quán)利要求28到36中任意一種的系統(tǒng),這里的可編程邏輯器件包括一個(gè)可重復(fù)編程的優(yōu)先級(jí)部件或函數(shù)(PPE),用來在同一輸入字匹配的幾個(gè)可能的輸出結(jié)果之間確定優(yōu)先次序。
      38.按照權(quán)利要求37的系統(tǒng),這里的可編程邏輯器件還包括一AND處理位面,以得到作為計(jì)算規(guī)則輸入的函數(shù)的乘積項(xiàng),這里的每個(gè)計(jì)算規(guī)則輸入或由真、假、或者是“不介意”構(gòu)成。
      39.按照權(quán)利要求38的系統(tǒng),這里的可編程邏輯器件還包括一OR位面,以根據(jù)AND位面得到乘積項(xiàng)的和,由此得到計(jì)算規(guī)則輸出結(jié)果。
      40.按照權(quán)利要求38或39的系統(tǒng),這里的優(yōu)先權(quán)部件適合于通過選擇具有最高優(yōu)先值或數(shù)的激活的乘積項(xiàng)來區(qū)分優(yōu)先次序。
      41.按照權(quán)利要求28到40中任意一種的系統(tǒng),這里的可編程邏輯器件包括一些存儲(chǔ)器邏輯單元,每個(gè)單元包括用于存儲(chǔ)匹配值的可重復(fù)編程的存儲(chǔ)器部件。
      42.按照權(quán)利要求41的系統(tǒng),這里在可編程邏輯器件硬件中新計(jì)算規(guī)則的編程或重復(fù)編程通過編程存儲(chǔ)器部件來實(shí)現(xiàn)。
      43.按照權(quán)利要求28到42的任意一種的系統(tǒng),這里的可編程邏輯器件或一些器件是在單個(gè)集成片上實(shí)現(xiàn)的。
      44.按照權(quán)利要求28到43的任意一種的系統(tǒng),這里執(zhí)行分析的處理函數(shù)是由在單個(gè)集成片上的處理部件實(shí)現(xiàn)的。
      45.一種單片微處理器體系結(jié)構(gòu),所說結(jié)構(gòu)包括一指令解碼單元,一地址計(jì)算單元,輸入/輸出部件,一算術(shù)邏輯部件(ALU),及一實(shí)現(xiàn)一個(gè)或多個(gè)邏輯功能的可編程邏輯執(zhí)行部件(PLEU),所說的邏輯執(zhí)行部件可重復(fù)編程,因此允許實(shí)現(xiàn)新的邏輯功能。
      46.按照權(quán)利要求45的體系結(jié)構(gòu),這里的可編程邏輯執(zhí)行單元適合執(zhí)行布爾邏輯操作。
      47.按照權(quán)利要求45或46的體系結(jié)構(gòu),所說的體系結(jié)構(gòu)適合分析位字段。
      48.按照權(quán)利要求45到47的任意一種的體系結(jié)構(gòu),這里的可編程邏輯執(zhí)行部件包括一些存儲(chǔ)器邏輯單元,每個(gè)單元包括一可重復(fù)編程的的存儲(chǔ)器部件,用于存儲(chǔ)匹配值,最好還有一個(gè)邏輯部件用于把輸入的位值同存儲(chǔ)的匹配值進(jìn)行比較。
      49.按照權(quán)利要求48的體系結(jié)構(gòu),這里的存儲(chǔ)器部件用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)實(shí)現(xiàn)。
      50.按照權(quán)利要求48或49的體系結(jié)構(gòu),這里的邏輯部件用MOS技術(shù)和/或CMOS技術(shù)實(shí)現(xiàn)。
      51.按照權(quán)利要求48到50任意一種的體系結(jié)構(gòu),這里在可編程邏輯執(zhí)行部件中新的邏輯函數(shù)的編程或重復(fù)編程通過編程存儲(chǔ)器部件來實(shí)現(xiàn)。
      52.按照權(quán)利要求45到51任意一種的體系結(jié)構(gòu),這里的不同邏輯操作可通過來自內(nèi)部指令單元的基本指令,或從外部控制單元經(jīng)輸入/輸出部件來的指令,編程到邏輯執(zhí)行部件中。
      53.按照權(quán)利要求45到52任意一種的體系結(jié)構(gòu),這里的邏輯執(zhí)行部件包括可編程的邏輯器件或部件和/或可編程的邏輯陣列部件。
      54.按照權(quán)利要求53的體系結(jié)構(gòu),這里的邏輯執(zhí)行部件包括一些用來存儲(chǔ)邏輯器件或部件狀態(tài)的寄存器。
      55.按照權(quán)利要求45到54任意一種的體系結(jié)構(gòu),這里的邏輯執(zhí)行單元包括可編程優(yōu)先權(quán)函數(shù)單元。
      56.按照權(quán)利要求45到55任意一種的體系結(jié)構(gòu),這里的邏輯執(zhí)行單元包括AND處理位面結(jié)構(gòu)和/或OR處理位面結(jié)構(gòu)。
      57.一種具有按照權(quán)利要求45到56任意一種的體系結(jié)構(gòu)的微處理機(jī),所說的微處理機(jī)被編程,以通過一個(gè)基本的微處理機(jī)指令執(zhí)行位字段的分析。
      58.一種可重復(fù)編程的電子設(shè)備結(jié)構(gòu),用來把一位或多位的輸入信號(hào)同存儲(chǔ)的或預(yù)編程的匹配值進(jìn)行比較,所說的結(jié)構(gòu)包括一個(gè)或多個(gè)存儲(chǔ)器邏輯單元或部件(MLC),每個(gè)單元包括至少一個(gè)可重復(fù)編程的存儲(chǔ)部件以存儲(chǔ)匹配值,和/或至少一個(gè)邏輯部件以把輸入值同存儲(chǔ)的匹配值進(jìn)行比較。
      59.按照權(quán)利要求58的結(jié)構(gòu),這里的存儲(chǔ)部件用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)單元或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)單元實(shí)現(xiàn)。
      60.按照權(quán)利要求58或59的結(jié)構(gòu),這里的輸入值同存儲(chǔ)的匹配值的邏輯比較包括一個(gè)或多個(gè)邏輯操作,并且所說的邏輯操作包括AND功能和/或OR功能。
      61.按照權(quán)利要求58到60任意一種的結(jié)構(gòu),這里的邏輯部件用MOS技術(shù)和/或CMOS技術(shù)實(shí)現(xiàn)。
      62.按照權(quán)利要求58到61任意一種的結(jié)構(gòu),這里的存儲(chǔ)器邏輯單元包括一個(gè)一位的存儲(chǔ)器部件和/或一邏輯部件,用來把一個(gè)一位的輸入同存儲(chǔ)的位進(jìn)行比較。
      63.按照權(quán)利要求58到62任意一種的結(jié)構(gòu),這里至少兩個(gè)一位的存儲(chǔ)器部件或存儲(chǔ)器邏輯單元被組合在一起,以允許存儲(chǔ)兩位的匹配值,并且形成允許“不介意”狀態(tài)的三元態(tài)存儲(chǔ)單元。
      64.按照權(quán)利要求58到63任意一種的結(jié)構(gòu),這里的幾個(gè)存儲(chǔ)器邏輯單元被用來形成至少部分存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。
      65.按照權(quán)利要求64的結(jié)構(gòu),這里的幾個(gè)存儲(chǔ)器邏輯單元的輸出被AND和/或OR在一起。
      66.按照權(quán)利要求63的結(jié)構(gòu),這里的兩個(gè)存儲(chǔ)器部件用相同的匹配值編程,以便允許“不介意”狀態(tài)。
      67.按照權(quán)利要求63或者66的結(jié)構(gòu),這里的幾個(gè)三元態(tài)存儲(chǔ)器邏輯單元用來至少形成部分三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)。
      68.按照權(quán)利要求58到62中任意一種的結(jié)構(gòu),這里的幾個(gè)存儲(chǔ)器邏輯單元用于實(shí)現(xiàn)三元態(tài)的內(nèi)容可編址存儲(chǔ)。
      69.按照權(quán)利要求67的結(jié)構(gòu),這里的三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)被安排形成至少部分可編程的AND處理結(jié)構(gòu)或位面。
      70.按照權(quán)利要求64的結(jié)構(gòu),這里的存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)被安排,形成至少部分可編程優(yōu)先權(quán)部件結(jié)構(gòu)。
      71.一種硬件可重配置或可重編程的電子邏輯設(shè)備結(jié)構(gòu)(PLD),用來處理邏輯功能,所說的結(jié)構(gòu)包括按照權(quán)利要求58到70任意一種的結(jié)構(gòu)。
      72.一種硬件可重配置或可重編程的電子邏輯設(shè)備結(jié)構(gòu)(PLD),用來處理邏輯功能,所說的結(jié)構(gòu)包括可編程優(yōu)先級(jí)部件或函數(shù)(PPE)以便在相同輸入字匹配的幾個(gè)輸出結(jié)果間區(qū)分優(yōu)先次序。
      73.按照權(quán)利要求72的結(jié)構(gòu),還包括一個(gè)或多個(gè)存儲(chǔ)器邏輯單元(MLC),每個(gè)單元包括至少一個(gè)可重復(fù)編程的的存儲(chǔ)器部件以存儲(chǔ)匹配值,和/或至少一個(gè)邏輯部件以把輸入位的值同存儲(chǔ)的匹配值進(jìn)行比較。
      74.按照權(quán)利要求73的結(jié)構(gòu),這里的存儲(chǔ)部件用靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)單元實(shí)現(xiàn)。
      75.按照權(quán)利要求73或74的結(jié)構(gòu),這里的邏輯部件用四個(gè)晶體管實(shí)現(xiàn)。
      76.按照權(quán)利要求73到75任意一種的結(jié)構(gòu),這里的邏輯部件用MOS技術(shù)和/或CMOS技術(shù)實(shí)現(xiàn)。
      77.按照權(quán)利要求73到76任意一種的結(jié)構(gòu),這里的邏輯部件有兩個(gè)輸入和一個(gè)輸出。
      78.按照權(quán)利要求77的結(jié)構(gòu),這里構(gòu)成的一個(gè)或多個(gè)存儲(chǔ)器邏輯單元,使其一個(gè)輸入位信號(hào)被反饋給第一個(gè)邏輯部件的輸入端,輸入位信號(hào)的補(bǔ)碼被反饋給第二個(gè)邏輯部件的輸入端,并用邏輯部件的輸出端給出比較輸出信號(hào)。
      79.按照權(quán)利要求73到78任意一種的結(jié)構(gòu),這里的幾個(gè)存儲(chǔ)器邏輯單元被用來形成至少部分存儲(chǔ)器邏輯結(jié)構(gòu)(MLS),每個(gè)存儲(chǔ)器邏輯單元具有輸入的輸入位信號(hào)和它的互補(bǔ)信號(hào)。
      80.按照權(quán)利要求79的結(jié)構(gòu),這里的幾個(gè)存儲(chǔ)器邏輯單元的輸出被AND和/或OR在一起。
      81.按照權(quán)利要求73到80任意一種的結(jié)構(gòu),這里的兩個(gè)存儲(chǔ)器邏輯單元被組合在一起,形成一三元態(tài)的存儲(chǔ)器邏輯單元,從而允許“不介意”狀態(tài),這里的輸出信號(hào)不管匹配與否是固定的。
      82.按照權(quán)利要求81的結(jié)構(gòu),這里的兩個(gè)存儲(chǔ)器部件用相同的匹配值編程以便允許“不介意”狀態(tài)。
      83.按照權(quán)利要求77、81或82任意一種的結(jié)構(gòu),這里的三元態(tài)存儲(chǔ)器邏輯單元的第一存儲(chǔ)器邏輯單元具有反饋給第一輸入端的輸入位信號(hào),以及反饋給第二輸入端的邏輯假信號(hào),第二存儲(chǔ)器邏輯單元具有反饋給第一輸入端的輸入位信號(hào)的補(bǔ)碼,以及反饋給第二輸入端的邏輯假信號(hào),并且第一及第二存儲(chǔ)器邏輯單元的輸出最好AND在一起。
      84.按照權(quán)利要求81、82或83任意一種的結(jié)構(gòu),這里的幾個(gè)三元態(tài)存儲(chǔ)器邏輯單元用來至少形成部分三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS),每個(gè)三元態(tài)存儲(chǔ)器邏輯單元具有作為輸入的輸入位信號(hào)和它的互補(bǔ)信號(hào)。
      85.按照權(quán)利要求72到84任意一種的結(jié)構(gòu),還包括一AND處理位面。
      86.按照權(quán)利要求72到85任意一種的結(jié)構(gòu),還包括一OR處理位面。
      87.按照權(quán)利要求85和86的結(jié)構(gòu),這里的結(jié)構(gòu)包括一可編程邏輯陳列(PLA),所說的可編程邏輯陳列有AND處理位面,優(yōu)先權(quán)部件及OR處理位面。
      88.按照權(quán)利要求72到78任意一種的結(jié)構(gòu),這里的優(yōu)先權(quán)部件,AND位面和/或OR位面有存儲(chǔ)匹配值的存儲(chǔ)器部件和/或?qū)⑤斎氲奈煌鎯?chǔ)的匹配值進(jìn)行比較的邏輯部件。
      89.按照權(quán)利要求73到88任意一種的結(jié)構(gòu),這里的優(yōu)先權(quán)部件,AND位面和/或OR位面有一個(gè)或多個(gè)所說的存儲(chǔ)邏輯單元。
      90.按照權(quán)利要求79和89的結(jié)構(gòu),這里的存儲(chǔ)器邏輯單元形成存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。
      91.按照權(quán)利要求84和89或90的結(jié)構(gòu),這里的存儲(chǔ)器邏輯單元形成三元態(tài)的存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS)。
      92.按照權(quán)利要求89和90的結(jié)構(gòu),這里的AND處理位面包括一個(gè)三元態(tài)存儲(chǔ)器邏輯結(jié)構(gòu)(TMLS),優(yōu)先權(quán)部件包括存儲(chǔ)器邏輯結(jié)構(gòu)(MLS),而OR處理位面包括存儲(chǔ)器邏輯結(jié)構(gòu)(MLS)。
      93.按照權(quán)利要求79的結(jié)構(gòu),還包括由使用幾個(gè)存儲(chǔ)器邏輯單元實(shí)現(xiàn)的三元態(tài)內(nèi)容定址存儲(chǔ)器(CAM),與適合在CAM的多個(gè)同時(shí)被激活的匹配線之間去區(qū)分優(yōu)先次序的優(yōu)先級(jí)部件一起,從而選擇輸出。
      94.按照權(quán)利要求86到92任意一種的結(jié)構(gòu),這里的AND處理位面適于得到隨輸入字或模型而變的乘積項(xiàng),而OR處理位面適于從AND位面得到乘積項(xiàng)和,從而得到輸出結(jié)果。
      95.按照權(quán)利要求94的結(jié)構(gòu),這里在AND位面中,當(dāng)多于一個(gè)乘積項(xiàng)被同一輸入字激活時(shí),優(yōu)先權(quán)部件適于在幾個(gè)可能的輸出結(jié)果之間區(qū)分優(yōu)先次序。
      96.按照權(quán)利要求95的結(jié)構(gòu),這里的結(jié)構(gòu)適合處理布爾操作,并且通過對(duì)要被處理的不同的布爾操作給予不同的優(yōu)先權(quán)來確定輸出結(jié)果。
      97.按照權(quán)利要求95的結(jié)構(gòu),這里的優(yōu)先權(quán)部件適合在AND位面中得到的幾個(gè)乘積項(xiàng)之間區(qū)分優(yōu)先級(jí),從而選擇要轉(zhuǎn)給OR位面的幾個(gè)激活乘積項(xiàng)中的一項(xiàng),以便得到輸出結(jié)果。
      98.按照權(quán)利要求95到97任意一種的結(jié)構(gòu),這里的優(yōu)先權(quán)部件適合于通過選擇具有最高優(yōu)先權(quán)值或數(shù)的乘積項(xiàng)來確定優(yōu)先次序。
      99.按照權(quán)利要求97的結(jié)構(gòu),這里的可編程優(yōu)先權(quán)部件適合于向每個(gè)同時(shí)激活的乘積項(xiàng)分配一優(yōu)先級(jí)函數(shù)。
      100.按照權(quán)利要求97或98的結(jié)構(gòu),這里的可編程優(yōu)先權(quán)部件適合于向AND位面中得到的乘積項(xiàng)分配一權(quán)重值或優(yōu)先權(quán)碼,從而選擇幾個(gè)激活的乘積項(xiàng)中的一項(xiàng)。
      101.按照權(quán)利要求100的結(jié)構(gòu),這里的優(yōu)先權(quán)部件適合于向每個(gè)乘積項(xiàng)分配一權(quán)重值。
      102.按照權(quán)利要求97或98的結(jié)構(gòu),這里分配給每個(gè)乘積項(xiàng)的權(quán)重值等于為生成該乘積項(xiàng)編制在AND位面中的反熔絲數(shù)。
      103.按照權(quán)利要求73到102任意一種的結(jié)構(gòu),這里的優(yōu)先權(quán)部件包含存儲(chǔ)器邏輯單元,而通過在存儲(chǔ)邏輯單元中存儲(chǔ)相關(guān)的匹配值優(yōu)先權(quán)函數(shù)被編程。
      104.按照權(quán)利要求79到103任意一種的結(jié)構(gòu),這里的MLS結(jié)構(gòu)中的一行和/或TMLS結(jié)構(gòu)中的一行能在一個(gè)時(shí)鐘周期或一個(gè)存儲(chǔ)器寫周期中被編程或重復(fù)編程。
      105.按照權(quán)利要求72到104任意一種的結(jié)構(gòu),這里的編程或重復(fù)編程周期,通過輸入一輸入或地址字,一相關(guān)的優(yōu)先權(quán)數(shù),及相關(guān)的輸出字而被執(zhí)行。
      106.一種用于執(zhí)行最長(zhǎng)前綴匹配地址分析的布爾函數(shù)計(jì)算規(guī)則(BFCR)的最小化方法,這里的計(jì)算規(guī)則包括優(yōu)先級(jí)規(guī)則,而這里的可編程邏輯器件(PLD)要根據(jù)路由表或網(wǎng)絡(luò)地址表被更新或編程,路由表或網(wǎng)絡(luò)地址表包括以網(wǎng)絡(luò)地址位模式和相關(guān)的輸出動(dòng)作號(hào)及優(yōu)先權(quán)值或號(hào)碼形式的入口,所說的方法包括a)根據(jù)優(yōu)先權(quán)號(hào)碼排序路由表,以使路由表中的每個(gè)入口的子表(A)具有相同的優(yōu)先權(quán)號(hào)碼,相應(yīng)的布爾計(jì)算規(guī)則(R)被設(shè)置成乘積和的形式,b)使在排序步驟中得到的計(jì)算規(guī)則集(R)最小化,從而得到乘積和形式的最小化的計(jì)算規(guī)則(R‘),c)利用最小化的計(jì)算規(guī)則(R‘)和相關(guān)的優(yōu)先權(quán)數(shù)更新可編程邏輯器件,及d)對(duì)所有具有公共優(yōu)先權(quán)數(shù)的項(xiàng)目子表重復(fù)步a)到c)。
      107.按照權(quán)利要求106的方法,這里使用Espresso最小化技術(shù)。
      全文摘要
      本發(fā)明涉及一方法和裝置,用于執(zhí)行處理函數(shù)和用于分析位字段的可編程邏輯,尤其涉及到通信網(wǎng)絡(luò)中分析網(wǎng)絡(luò)地址。本發(fā)明使用基于計(jì)算規(guī)則的處理函數(shù),以分析位字段。在此,所說的計(jì)算規(guī)則如布爾操作是以硬件實(shí)現(xiàn),以分析位字段諸如在一個(gè)時(shí)鐘周期中的網(wǎng)絡(luò)地址。本發(fā)明還描述了在可編程邏輯器件中使用優(yōu)先級(jí)部件的方法和裝置,以把上述位字段分析擴(kuò)充到包括區(qū)分優(yōu)先級(jí)次序,以便象最長(zhǎng)前綴匹配的原理可在網(wǎng)絡(luò)地址分析中使用。帶有使用在結(jié)構(gòu)中的存儲(chǔ)器邏輯單元的裝置被介紹。
      文檔編號(hào)G06F9/44GK1284180SQ98813238
      公開日2001年2月14日 申請(qǐng)日期1998年12月16日 優(yōu)先權(quán)日1997年12月16日
      發(fā)明者馬格努斯·斯蒂格·塞爾基爾德森, 杰普·魯恩·杰森 申請(qǐng)人:Ip半導(dǎo)體有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1