專利名稱:路由查找和流分類用的高速低功耗的匹配方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
路由查找和流分類用的高速低功耗的匹配方法及其系統(tǒng),屬于計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
IP查找和流分類功能是路由器的重要功能。當前,最有效的硬件方案是采用TCAM。利用“don’t care”三態(tài)技術(shù)和并行比較的方法,TCAM能實現(xiàn)非常高的流分類速度(每時鐘周期一個流分類結(jié)果)。但TCAM利用并行比較進行IP查找和流分類,發(fā)熱量很大,不利于系統(tǒng)設(shè)計,限制了TCAM在大數(shù)據(jù)庫方面的應(yīng)用。一種分區(qū)的TCAM可以在一定程度上降低功耗,但是控制復(fù)雜,且受限于分區(qū)的大小,功耗降低程度有限。常用TCAM的總體原理如圖2所示。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種路由查找和流分類用的匹配方法及其系統(tǒng)以代替目前的TCAM方案。
本發(fā)明主要基于三個特點一是利用硬件的并行性,一次完成所有表項的某個域的比較;二是使用流水線設(shè)計的方法,每次只對一個域進行比較;三是某一個表項的某一個域是否進行比較由該表項上一個域的比較結(jié)果決定,如果上一個域已經(jīng)比較失敗,則本域不再進行比較。第二點和第三點是本發(fā)明的創(chuàng)新點。
本發(fā)明所述的匹配方法,其特征在于,在時鐘電路控制下,它依次含有以下步驟(1)第一個時鐘周期把一個輸入關(guān)鍵字A1并行送入關(guān)鍵字寄存器1;所述的輸入關(guān)鍵字A1是包含N個數(shù)據(jù)域的一條數(shù)據(jù),而每個數(shù)據(jù)域內(nèi)含1~R個三態(tài)比特,它保存有“1”、“0”、“*即不考慮”三種不同的狀態(tài),以下簡稱比特,數(shù)據(jù)域的比特數(shù)由域的長度而定,域的長度是自行指定的;對于IP查找,其長度為1比特;對于IPv4流分類,域的長度可為32比特的IP地址,或為16比特的端口號,也可為8比特長度的協(xié)議域,也可為其他自定義長度;所述的關(guān)鍵字寄存器的個數(shù)N也就是輸入關(guān)鍵字A1內(nèi)的數(shù)據(jù)域的個數(shù)N;(2)第二個時鐘周期上述輸入關(guān)鍵字A1由關(guān)鍵字寄存器1并行進入關(guān)鍵字寄存器2,同時所述的關(guān)鍵字A1的第一個域被提取并行進入域寄存器1,把第二個輸入關(guān)鍵字A2并行輸入到關(guān)鍵字寄存器1;所述的保存輸入關(guān)鍵字A1內(nèi)各個數(shù)據(jù)域的域寄存器也有N個;各域寄存器的長度與關(guān)鍵字內(nèi)對應(yīng)的域的長度相等第一個域寄存器的長度與關(guān)鍵字內(nèi)第一個域的長度相等,第二個域寄存器的長度與關(guān)鍵字內(nèi)第二個域的長度相等,其他域寄存器依次類推;(3)第三個時鐘周期所述輸入關(guān)鍵字A1由關(guān)鍵字寄存器2并行進入關(guān)鍵字寄存器3,同時A1的第二個域被提取出并行進入域寄存器2,所述的輸入關(guān)鍵字A2由關(guān)鍵字寄存器1并行送入關(guān)鍵字寄存器2,第3個關(guān)鍵字A3并行進入關(guān)鍵字寄存器1;也是在同時,保存在域寄存器1中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第一個數(shù)據(jù)域中的數(shù)據(jù)進行比較;所述的數(shù)據(jù)庫是路由表或者流分類庫中的任何一種,它由若干個并列而成的數(shù)據(jù)項和一個優(yōu)先級解碼器串接而成所述的數(shù)據(jù)項即表項,每一個數(shù)據(jù)項由N個1~R個三態(tài)比特存儲器構(gòu)成的N個數(shù)據(jù)域、分別與N個數(shù)據(jù)域中每一個數(shù)據(jù)域的輸出端相連的N個比較器以及N個相鄰比較器之間的輸出指示信號連接線組成,上述數(shù)據(jù)域的個數(shù)N也就是所述輸入關(guān)鍵字中的數(shù)據(jù)域的個數(shù)N,也即輸入關(guān)鍵字的長度與表項的長度相等;所述的比較器每個有三個輸入信號和一個輸出信號,三個輸入信號分別是輸入指示信號和二個輸入數(shù)據(jù),其中,各表項中第一個比較器的輸入指示信號是與關(guān)鍵字同時從外部發(fā)來的同一個流分類請求信號,以后各比較器的輸入指示信號都是前一個比較器的輸出指示信號,所述的流分類請求信號由外部與輸入關(guān)鍵字同時輸入,在圖(5)中沒有單獨標明;二個輸入數(shù)據(jù)分別來自編號相同的域寄存器和同一表項中編號相同的數(shù)據(jù)域的輸出端;在比較時,若輸入指示信號無效,則輸出指示信號無效;若輸入指示信號有效,則比較器對兩個分別由域寄存器和同一表項中數(shù)據(jù)域來的數(shù)據(jù)進行比較,若相等,則輸出指示信號有效,若不相等,則輸出指示信號無效;(4)第4個時鐘周期輸入關(guān)鍵字A1由關(guān)鍵字寄存器3并行進入關(guān)鍵字寄存器4,同時A1的第3個域被提取出并行進入域寄存器3,接著輸入關(guān)鍵字A2由關(guān)鍵字寄存器2并行進入關(guān)鍵字寄存器3,接著輸入關(guān)鍵字A3由關(guān)鍵字寄存器1并行進入關(guān)鍵字寄存器2,又接著新的輸入關(guān)鍵字A4并行進入關(guān)鍵字寄存器1;也是在同時,保存在域寄存器2中的數(shù)據(jù)與數(shù)據(jù)庫中所有表項的第二個數(shù)據(jù)域中的數(shù)據(jù)進行比較;也是在同時,保存在域寄存器1中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第一個數(shù)據(jù)域中的數(shù)據(jù)比較,比較時均按(3)所述方法進行;(5)依次類推,直至各輸入關(guān)鍵字Am各自的N個數(shù)據(jù)域與數(shù)據(jù)庫中N個數(shù)據(jù)域比較完成,如果數(shù)據(jù)庫中沒有數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器輸出不匹配信號;如果數(shù)據(jù)庫中有一個數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器輸出匹配信號;如果數(shù)據(jù)庫中有多個數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器按設(shè)定程序從匹配的數(shù)據(jù)項中選擇一個并輸出匹配信號;按(1)~(5)所述的流水線方法,每個時鐘周期可輸入一個待查找關(guān)鍵字,優(yōu)先級解碼器每個時鐘周期輸出一個待查找關(guān)鍵字的是否匹配的信號;所述的優(yōu)先級解碼器的工作原理類似TCAM的優(yōu)先級解碼器的工作原理。
本發(fā)明所述的系統(tǒng),其特征在于,輸入為待匹配關(guān)鍵字和匹配請求,輸出為是否匹配指示信號和匹配數(shù)據(jù)項的信息,所述系統(tǒng)含有彼此串接的流水線控制器和流分類庫,還有時鐘電路,其中(1)流水線控制器,含有流分類信號寄存器,存儲與輸入關(guān)鍵字同時從外部發(fā)來的流分類請求信號;保存輸入的待查找關(guān)鍵字的關(guān)鍵字寄存器,該關(guān)鍵字寄存器的個數(shù)N也就是各輸入關(guān)鍵字中數(shù)據(jù)域的個數(shù)N;輸入關(guān)鍵字的域的個數(shù)和長度與下述流分類庫數(shù)據(jù)項的域的個數(shù)和長度相等;域寄存器,它的個數(shù)等于輸入關(guān)鍵字中數(shù)據(jù)域的個數(shù)N,即域寄存器保存各輸入關(guān)鍵字的一個域;每一個域寄存器是一個由1~R個比特組成,各域寄存器的長度與關(guān)鍵字內(nèi)對應(yīng)的域的長度相等第一個域寄存器的長度與關(guān)鍵字內(nèi)第一個域的長度相等,第二個域寄存器的長度與關(guān)鍵字內(nèi)第二個域的長度相等,其他域寄存器依次類推;(2)流分類庫,含有流分類數(shù)據(jù)庫,由若干個數(shù)據(jù)項即表項并列構(gòu)成,而每一個數(shù)據(jù)項又由N個數(shù)據(jù)域串接而成,N也就是一個輸入關(guān)鍵字的數(shù)據(jù)域數(shù),上述數(shù)據(jù)項中的數(shù)據(jù)域含有1)N個且每個由1~R個三態(tài)比特組成的存儲器,也即流分類庫數(shù)據(jù)域,它的個數(shù)N與所述的流水線控制器中的域寄存器的個數(shù)相同,編號也一一對應(yīng);2)N個比較器,每個有三個輸入信號和一個輸出信號前面的兩個輸入信號分別來自相同編號的所述域寄存器和所述的各數(shù)據(jù)項中相同編號的流分類庫數(shù)據(jù)域;第三個輸入信號,對于各數(shù)據(jù)項中的第一個數(shù)據(jù)域而言,它是啟動信號,是與輸入關(guān)鍵字同時由外部發(fā)來暫時存入一個流分類信號寄存器的流分類請求信號,對于各數(shù)據(jù)項中其余數(shù)據(jù)域而言,它是前一個比較器的輸出指示信號;它的一個輸出信號是當前比較器的輸出指示信號;優(yōu)先級解碼器,它的輸入端與所述流分類數(shù)據(jù)庫中各數(shù)據(jù)項的輸出端相連,它的輸出是是否匹配的信號;(3)時鐘電路,它的輸出端分別與所述各關(guān)鍵字寄存器、各域寄存器和各流分類庫數(shù)據(jù)域的時鐘信號輸入端相連。
本發(fā)明有以下優(yōu)點1)適合用硬件實現(xiàn);2)速度快;3)功耗低。
IP查找和流分類功能部件的功耗可認為與參與比較的數(shù)據(jù)域的多少成正比。例如,對一條32個數(shù)據(jù)域的輸入關(guān)鍵字來說,如果只有4個數(shù)據(jù)域參與比較與有32個數(shù)據(jù)域參與比較相比,認為前者的功耗只有后者的八分之一。
在傳統(tǒng)TCAM中,輸入關(guān)鍵字需要與數(shù)據(jù)庫中的所有表項的全部域進行比較;在本發(fā)明的硬件方法中,只有部分數(shù)據(jù)域需要參與比較。下面通過仿真IP查找過程,來比較在本發(fā)明的硬件結(jié)構(gòu)中參與比較的數(shù)據(jù)域的數(shù)目占總數(shù)的比例,并以此說明本發(fā)明的相對于TCAM的低功耗特性。
這里采用了網(wǎng)上常用的三個路由表mae-west,telstra_sanitized,telstra_synth_1M(從Network Processing Forum(NPF)處獲得),表項分別為28,895條、135,462條、1,000,000條,代表了路由表的各種大小級別。另外選擇google、msn、Stanford university和tsinghua university四個常見IP地址作為查找實例。
仿真結(jié)果如表1。斜線上的數(shù)字表示“相同域的百分比”,指按本發(fā)明的硬件方法,整個路由表中與輸入IP地址相同域(在此例中域即是比特)占總數(shù)的百分比;斜線下的數(shù)字表示考慮到“啟動比較”后,實際比較域占總數(shù)的百分比?!皢颖容^”是指,當兩個IP地址第一位就不相同的時候,也需要進行一次比較才能判斷出是否相等的額外比較。
表1從表中可以看出,與傳統(tǒng)的TCAM相比,本發(fā)明的硬件結(jié)構(gòu)只需要消耗十分之一左右的功耗。對大的路由表來說,這個數(shù)字可以降到5%左右。
圖1為數(shù)據(jù)域的示意圖;圖2為傳統(tǒng)TCAM的原理圖;圖3為本發(fā)明所述流分類庫的原理圖;圖4為表項內(nèi)部流水比較的示意圖;
圖5為本發(fā)明硬件結(jié)構(gòu)的原理圖。
具體實施例方式
以下定義(1)比特即bit,存儲數(shù)據(jù)的最小單位。本發(fā)明中所指的比特是三態(tài)比特,它保存的內(nèi)容有三種‘1’,‘0’,‘*’(‘*’表示第三態(tài),叫做“不考慮”態(tài))。參見TCAM的三態(tài)存儲器。
(2)數(shù)據(jù)域數(shù)據(jù)域是在硬件中存儲數(shù)據(jù)的邏輯單位,是由1~n個比特組成的存儲器。域的比特數(shù)由它的邏輯長度而定。例如,對于IP查找,域的長度是1比特;對于IPv4流分類,域的長度可以是32比特(IP地址)或者16比特(端口號)等;對于其他應(yīng)用,也可是其他長度。參見圖1。
(3)比較器比較器有三個輸入信號和一個輸出信號。三個輸入信號分別是輸入指示信號和兩個輸入數(shù)據(jù)。輸出信號是輸出指示信號。如果輸入指示信號無效,則輸出指示信號無效。如果輸入指示信號有效,則比較器對兩個輸入關(guān)鍵字進行比較,若相等則輸出指示信號有效,若不相等,則輸出指示信號無效。當一個數(shù)據(jù)域的內(nèi)容為“不考慮”時,無論另一個數(shù)據(jù)域為何值,比較都相等。參見圖4。
(4)數(shù)據(jù)項數(shù)據(jù)項由若干數(shù)據(jù)域、每個數(shù)據(jù)域?qū)?yīng)的比較器以及比較器之間的連接指示信號組成,是對數(shù)據(jù)進行檢索和查詢的單位。數(shù)據(jù)項也叫做表項。參見圖4。
(5)數(shù)據(jù)庫由若干數(shù)據(jù)項和“優(yōu)先級解碼器”等輔助模塊構(gòu)成的硬件結(jié)構(gòu)。在本發(fā)明中,數(shù)據(jù)庫可以是路由表或者流分類庫。
(6)輸入關(guān)鍵字輸入的包含數(shù)個域的一條數(shù)據(jù)。它包含的域的數(shù)目與表項中的域的數(shù)目相等,它的長度與表項的長度相等。在路由器中,通過將輸入關(guān)鍵字與數(shù)據(jù)庫中所有表項進行比較,來實現(xiàn)IP查找或者流分類。
本發(fā)明流分類庫的原理圖如圖3所示。數(shù)據(jù)庫由許多條結(jié)構(gòu)相似的表項組成,每個表項由數(shù)個域構(gòu)成。每條表項的相鄰兩個域之間用信號線串連起來,前面一個域的比較結(jié)果做為后一個域的是否參與比較的指示信號。在有流分類請求的時候,它按照如下的步驟工作1)首先將輸入關(guān)鍵字的第一個域與數(shù)據(jù)庫中所有表項的第一個域同時并行比較;2)每個表項的第一個域的比較結(jié)果做為指示信號被傳送到該表項的第二個域。如果第一個域比較成功,則下一個周期第二個域開始比較;否則,第二個域放棄比較。在這一個步驟,有可能有部分表項由于第一個域比較成功而得以進行比較;還有另外部分表項由于第一個域比較失敗而沒有參與比較,對于這一部分表項,由于其后的域在以后的周期里不能得到參與比較的指示信號,都會停止比較。
3)第二個域的比較結(jié)果做為指示信號被傳送到第三個域。第三個域的表現(xiàn)與第二步中第二個域的行為相似。
4)數(shù)據(jù)庫表項中所有的域按上述步驟與輸入關(guān)鍵字中對應(yīng)的域逐步流水進行比較,直到最后一個域。最后一個域的比較結(jié)果作為整條表項與輸入關(guān)鍵字是否匹配的指示信號。如果最后一個周期比較成功,則整條表項比較成功;否則,則反之。
每條表項內(nèi)部的流水線過程如圖4所示。第一個比較器的輸入指示信號與其他比較器的有所不同,叫做“啟動信號”。它可以有兩種連接方法1)可連接在時鐘上,表示每個時鐘周期都可啟動比較過程。2)與“流分類請求”連接在一起,當有請求的時候啟動比較過程。除了第一個比較器外,其他比較器的輸入指示信號都連接在上一級比較器的輸出指示信號上。
本發(fā)明利用“流水線控制器”來保證整個結(jié)構(gòu)工作在流水線下,如圖5所示。
在“流水線控制器”的入口處,需要N個“關(guān)鍵字寄存器”來保存輸入的待查找關(guān)鍵字(“關(guān)鍵字寄存器”的個數(shù)N也就是輸入關(guān)鍵字中域的個數(shù),這兩個數(shù)要一樣,是為了流水線控制的需要)。這N個“關(guān)鍵字寄存器”工作在流水線下在第一個周期,輸入關(guān)鍵字保存在“關(guān)鍵字寄存器1”中;第二個周期,該關(guān)鍵字被打入“關(guān)鍵字寄存器2”中,而后來的輸入關(guān)鍵字重新占據(jù)“關(guān)鍵字寄存器1”的位置。其他“關(guān)鍵字寄存器”依此類推。
另外還需要N個“域寄存器”來保存輸入關(guān)鍵字的每一個域。在上述的第二個周期,當輸入關(guān)鍵字從“關(guān)鍵字寄存器1”打入“關(guān)鍵字寄存器2”的同時,該關(guān)鍵字的第一個域被打入“域寄存器1”;在第三個周期,該關(guān)鍵字從“關(guān)鍵字寄存器2”打入“關(guān)鍵字寄存器3”的同時,該關(guān)鍵字的第二個域被打入“域寄存器2”;依此類推。
這里以輸入關(guān)鍵字A為例,說明流水線工作細節(jié)1.第一個時鐘周期輸入關(guān)鍵字A進入“關(guān)鍵字寄存器1”;2.第二個時鐘周期A由“關(guān)鍵字寄存器1”進入“關(guān)鍵字寄存器2”,同時A的第一個域被提取出進入“域寄存器1”;3.第三個時鐘周期A由“關(guān)鍵字寄存器2”進入“關(guān)鍵字寄存器3”,同時A的第二個域被提取出進入“域寄存器2”。同時,保存在“域寄存器1”中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第一個域進行比較;4.第四個時鐘周期A由“關(guān)鍵字寄存器3”進入“關(guān)鍵字寄存器4”,同時A的第三個域被提取出進入“域寄存器3”。同時,保存在“域寄存器2”中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第二個域進行比較;5.依此類推,直至輸入關(guān)鍵字的n個域與數(shù)據(jù)庫中的n個域比較完成。
6.在每個時鐘周期都可有新的輸入關(guān)鍵字進入流水線控制器。
7.數(shù)據(jù)庫在同一個時鐘周期可對n個輸入關(guān)鍵字的n個不同的數(shù)據(jù)域進行比較。每一個時鐘周期可輸出一個比較結(jié)果。
本發(fā)明所述的系統(tǒng)已在現(xiàn)場可編程門陣列FPGA上實現(xiàn),其結(jié)構(gòu)如圖5所示,其中,流分類信號寄存器省略;時鐘電路未包含在內(nèi),是獨立的;相應(yīng)的時鐘周期信號線省略。
權(quán)利要求
1.路由查找和流分類用的高速低功耗的匹配方法,其特征在于,在時鐘電路控制下,它依次含有以下步驟(1)第一個時鐘周期把一個輸入關(guān)鍵字A1并行送入關(guān)鍵字寄存器1;所述的輸入關(guān)鍵字A1是包含N個數(shù)據(jù)域的一條數(shù)據(jù),而每個數(shù)據(jù)域內(nèi)含1~R個三態(tài)比特,它保存有“1”、“0”、“*即不考慮”三種不同的狀態(tài),以下簡稱比特,數(shù)據(jù)域的比特數(shù)由域的長度而定,域的長度是自行指定的;所述的關(guān)鍵字寄存器的個數(shù)N也就是輸入關(guān)鍵字A1內(nèi)的數(shù)據(jù)域的個數(shù)N;(2)第二個時鐘周期上述輸入關(guān)鍵字A1由關(guān)鍵字寄存器1并行進入關(guān)鍵字寄存器2,同時所述的關(guān)鍵字A1的第一個域被提取并行進入域寄存器1,把第二個輸入關(guān)鍵字A2并行輸入到關(guān)鍵字寄存器1;所述的保存輸入關(guān)鍵字A1內(nèi)各個數(shù)據(jù)域的域寄存器也有N個;各域寄存器的長度與關(guān)鍵字內(nèi)對應(yīng)的域的長度相等第一個域寄存器的長度與關(guān)鍵字內(nèi)第一個域的長度相等,第二個域寄存器的長度與關(guān)鍵字內(nèi)第二個域的長度相等,其他域寄存器依次類推;(3)第三個時鐘周期所述輸入關(guān)鍵字A1由關(guān)鍵字寄存器2并行進入關(guān)鍵字寄存器3,同時A1的第二個域被提取出并行進入域寄存器2,所述的輸入關(guān)鍵字A2由關(guān)鍵字寄存器1并行送入關(guān)鍵字寄存器2,第3個關(guān)鍵字A3并行進入關(guān)鍵字寄存器1;也是在同時,保存在域寄存器1中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第一個數(shù)據(jù)域中的數(shù)據(jù)進行比較;所述的數(shù)據(jù)庫是路由表或者流分類庫中的任何一種,它由若干個并列而成的數(shù)據(jù)項和一個優(yōu)先級解碼器串接而成所述的數(shù)據(jù)項即表項,每一個數(shù)據(jù)項由N個1~R個三態(tài)比特存儲器構(gòu)成的N個數(shù)據(jù)域、分別與N個數(shù)據(jù)域中每一個數(shù)據(jù)域的輸出端相連的N個比較器以及N個相鄰比較器之間的輸出指示信號連接線組成,上述數(shù)據(jù)域的個數(shù)N也就是所述輸入關(guān)鍵字中的數(shù)據(jù)域的個數(shù)N,也即輸入關(guān)鍵字的長度與表項的長度相等;所述的比較器每個有三個輸入信號和一個輸出信號,三個輸入信號分別是輸入指示信號和二個輸入數(shù)據(jù),其中,各表項中第一個比較器的輸入指示信號是與關(guān)鍵字同時從外部發(fā)來的同一個流分類請求信號,以后各比較器的輸入指示信號都是前一個比較器的輸出指示信號;二個輸入數(shù)據(jù)分別來自編號相同的域寄存器和同一表項中編號相同的數(shù)據(jù)域的輸出端;在比較時,若輸入指示信號無效,則輸出指示信號無效;若輸入指示信號有效,則比較器對兩個分別由域寄存器和同一表項中數(shù)據(jù)域來的數(shù)據(jù)進行比較,若相等,則輸出指示信號有效,若不相等,則輸出指示信號無效;(4)第4個時鐘周期輸入關(guān)鍵字A1由關(guān)鍵字寄存器3并行進入關(guān)鍵字寄存器4,同時A1的第3個域被提取出并行進入域寄存器3,接著輸入關(guān)鍵字A2由關(guān)鍵字寄存器2并行進入關(guān)鍵字寄存器3,接著輸入關(guān)鍵字A3由關(guān)鍵字寄存器1并行進入關(guān)鍵字寄存器2,又接著新的輸入關(guān)鍵字A4并行進入關(guān)鍵字寄存器1;也是在同時,保存在域寄存器2中的數(shù)據(jù)與數(shù)據(jù)庫中所有表項的第二個數(shù)據(jù)域中的數(shù)據(jù)進行比較;也是在同時,保存在域寄存器1中的數(shù)據(jù)與數(shù)據(jù)庫中的所有表項的第一個數(shù)據(jù)域中的數(shù)據(jù)比較,比較時均按(3)所述方法進行;(5)依次類推,直至各輸入關(guān)鍵字Am各自的N個數(shù)據(jù)域與數(shù)據(jù)庫中N個數(shù)據(jù)域比較完成,如果數(shù)據(jù)庫中沒有數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器輸出不匹配信號;如果數(shù)據(jù)庫中有一個數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器輸出匹配信號;如果數(shù)據(jù)庫中有多個數(shù)據(jù)項與輸入關(guān)鍵字Am匹配,則優(yōu)先級解碼器按設(shè)定程序從匹配的數(shù)據(jù)項中選擇一個并輸出匹配信號;按(1)~(5)所述的流水線方法,每個時鐘周期可輸入一個待查找關(guān)鍵字,優(yōu)先級解碼器每個時鐘周期輸出一個待查找關(guān)鍵字的是否匹配的信號。
2.路由查找和流分類用的高速低功耗系統(tǒng),其特征在于,所述系統(tǒng)含有彼此串接的流水線控制器和流分類庫,還有時鐘電路,其中(1)流水線控制器,含有流分類信號寄存器,存儲與輸入關(guān)鍵字同時從外部發(fā)來的流分類請求信號;保存輸入的待查找關(guān)鍵字的關(guān)鍵字寄存器,該關(guān)鍵字寄存器的個數(shù)N也就是各輸入關(guān)鍵字中數(shù)據(jù)域的個數(shù)N;輸入關(guān)鍵字的域的個數(shù)和長度與下述流分類庫數(shù)據(jù)項的域的個數(shù)和長度相等;域寄存器,它的個數(shù)等于輸入關(guān)鍵字中數(shù)據(jù)域的個數(shù)N,即域寄存器保存各輸入關(guān)鍵字的一個域;每一個域寄存器是一個由1~R個比特組成,各域寄存器的長度與關(guān)鍵字內(nèi)對應(yīng)的域的長度相等第一個域寄存器的長度與關(guān)鍵字內(nèi)第一個域的長度相等,第二個域寄存器的長度與關(guān)鍵字內(nèi)第二個域的長度相等,其他域寄存器依次類推;(2)流分類庫,含有流分類數(shù)據(jù)庫,由若干個數(shù)據(jù)項即表項并列構(gòu)成,而每一個數(shù)據(jù)項又由N個數(shù)據(jù)域串接而成,N也就是一個輸入關(guān)鍵字的數(shù)據(jù)域數(shù),上述數(shù)據(jù)項中的數(shù)據(jù)域含有1)N個且每個由1~R個三態(tài)比特組成的存儲器,也即流分類庫數(shù)據(jù)域,它的個數(shù)N與所述的流水線控制器中的域寄存器的個數(shù)相同,編號也一一對應(yīng);2)N個比較器,每個有三個輸入信號和一個輸出信號前面的兩個輸入信號分別來自相同編號的所述域寄存器和所述的各數(shù)據(jù)項中相同編號的流分類庫數(shù)據(jù)域;第三個輸入信號,對于各數(shù)據(jù)項中的第一個數(shù)據(jù)域而言,它是啟動信號,是與輸入關(guān)鍵字同時由外部發(fā)來暫時存入一個流分類信號寄存器的流分類請求信號,對于各數(shù)據(jù)項中其余數(shù)據(jù)域而言,它是前一個比較器的輸出指示信號;它的一個輸出信號是當前比較器的輸出指示信號;優(yōu)先級解碼器,它的輸入端與所述流分類數(shù)據(jù)庫中各數(shù)據(jù)項的輸出端相連,它的輸出是是否匹配的信號;(3)時鐘電路,它的輸出端分別與所述各關(guān)鍵字寄存器、各域寄存器和各流分類庫數(shù)據(jù)域的時鐘信號輸入端相連。
全文摘要
路由查找和流分類用的高速低功耗的匹配方法及其系統(tǒng),屬于計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,其特征在于它利用硬件的并行性,一次完成所有表項的某個域的比較,但每次只對一個域進行比較;某一個表項的某一個域是否進行比較由該表項上一個域的比較結(jié)果決定,如果上一個域已經(jīng)比較失敗,則當前域不再進行比較。它適合硬件實現(xiàn),而且速度快,功耗低。它與傳統(tǒng)的TCAM相比,硬件結(jié)構(gòu)只需要消耗十分之一左右的功耗;對大的路由表或者流分類庫,可以降到5%左右。
文檔編號H04L29/02GK1558619SQ20041000072
公開日2004年12月29日 申請日期2004年1月16日 優(yōu)先權(quán)日2004年1月16日
發(fā)明者劉斌, 李旭東, 李競, 劉 斌 申請人:清華大學(xué)