欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于改善最長前綴匹配的可擴展性的方法和設(shè)備的制作方法

文檔序號:6350691閱讀:273來源:國知局
專利名稱:用于改善最長前綴匹配的可擴展性的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于改善用于執(zhí)行最長前綴匹配的設(shè)備的可擴展性的方法和設(shè)備。
背景技術(shù)
最長前綴匹配(LPM)是在數(shù)據(jù)庫中所存儲的多個前綴之中尋找與給定查找密鑰匹配的最長匹配的問題??梢栽谠S多應(yīng)用中使用LPM,并且LPM不限于IP路由,但是由于IP 路由是其中一個主要LPM應(yīng)用,所以將僅通過示例性實例在IP路由的環(huán)境中討論本發(fā)明。最通常在網(wǎng)絡(luò)橋接、路由以及類似的功能中使用前向信息庫(FIB)(又被稱為前向表格)來尋找這樣一種合適的接口,其中輸入接口應(yīng)該向該合適的接口發(fā)送將由路由器傳輸?shù)姆纸M。因此,F(xiàn)IB包含具有對應(yīng)的輸出接口的前綴集合。通過尋找與查找密鑰匹配的最長前綴來進行前向判決。目前最常使用的查找密鑰是分組的IPv4或IPv6目的地地址??梢岳秒S機訪問存儲器(RAM)通過使用諸如M-鍵樹、位圖樹之類的算法,或者利用諸如三態(tài)內(nèi)容可尋址存儲器(TCAM)的快速硬件查找機制,實現(xiàn)FIB或用于執(zhí)行LPM的其他設(shè)備。雖然高級的基于RAM的FIB實現(xiàn)/算法足以保持數(shù)百萬個前綴,但是在查找密鑰寬度看來它們是不可擴展的,因為到FIB存儲器的通路的數(shù)量取決于查找密鑰寬度。通常,密鑰越寬則需要越多的查找。另一方面,利用基于TCAM的FIB或LPM實現(xiàn),查找時間是恒定的。然而,基于TCAM 的FIB或查找表格在前述數(shù)量方面而言是不可擴展的。如今已知的最高級的TCAM設(shè)備具有40M比特的容量,其可用于保持高達0. 5M個前綴。因此,長期感覺存在對于用于執(zhí)行在前綴的數(shù)量方面和在查找密鑰長度方面都可擴展的最長前綴匹配的方法和裝置的需求。

發(fā)明內(nèi)容
本發(fā)明提出的技術(shù)方案是為了通過利用具有相關(guān)聯(lián)的結(jié)果RAM的TCAM設(shè)備,添加附加RAM并且向代表該附加RAM中的多個條目的TCAM插入條目來改善LPM可擴展性。將要意識到該結(jié)構(gòu)提供具有特定擴展性的LPM查找表,其具有比常規(guī)方式更少的TCAM條目。 這樣,能夠使用更小的TCAM設(shè)備或者釋放更多的TCAM條目以便有可能被其他應(yīng)用使用。根據(jù)本發(fā)明提供了一種用于建立最長前綴匹配查找表的方法,包括在TCAM(三態(tài)內(nèi)容可尋址存儲器)中排列多個前綴條目并且向相關(guān)聯(lián)的結(jié)果RAM(隨機訪問存儲器)插入與TCAM匹配索引相對應(yīng)的結(jié)果,該方法包括選擇能夠被減少成該TCAM中的單個條目的至少兩個前綴條目的組群,其中單個條目包括用于該組群中的全部前綴條目的公共前綴; 排列來自該相關(guān)聯(lián)的RAM的、由附加RAM中的前綴組群表示的結(jié)果;用指向該附加RAM中的多個結(jié)果的單個TCAM條目來替換TCAM中的該前綴條目的組群,從而使得該TCAM中的至少一個條目可用;并且由指向該附加RAM中的多個條目的一個條目來替換該相關(guān)聯(lián)的RAM中的多個條目。根據(jù)本發(fā)明還提供了一種用于執(zhí)行最長前綴匹配(LPM)查找的方法,該方法包括建立和維持查找表,所述查找表包括TCAM和相關(guān)聯(lián)的結(jié)果隨機訪問存儲器(RAM)以及附加 RAM,其中,由該TCAM中的一個條目來表示該附加RAM中的至少兩個條目,在該TCAM中執(zhí)行查找,在該相關(guān)聯(lián)的結(jié)果RAM中尋找該TCAM中的指向該附加RAM中的結(jié)果組群的的一個條目的結(jié)果,并且作為響應(yīng),通過讀取該附加RAM中的該結(jié)果組群來完成該查找。根據(jù)本發(fā)明還提供了一種基于三態(tài)內(nèi)容可尋址存儲器(TCAM)的最長前綴匹配 (LPM)查找表,其包括TCAM,其保持用于查找相關(guān)聯(lián)的RAM中的結(jié)果的多個前綴條目;附加隨機訪問存儲器(RAM),其存儲來自該相關(guān)聯(lián)的RAM的結(jié)果;并且該TCAM中的一個條目,其表示該附加RAM中來自該相關(guān)聯(lián)的RAM的至少兩個條目,從而使得該TCAM中的至少一個條目可用。


通過結(jié)合附圖的以下詳細描述將更好地理解并且認識本發(fā)明,其中圖Ia是根據(jù)現(xiàn)有技術(shù),由TCAM條目表示LPM設(shè)備條目的示意圖;圖Ib是根據(jù)本發(fā)明的一個示例性實施方案,由TCAM和附加RAM條目表示圖Ia的 LPM條目的示意圖;圖加是根據(jù)現(xiàn)有技術(shù)的另一個實施例,由TCAM條目表示LPM設(shè)備條目的示意圖;圖2b是根據(jù)本發(fā)明的另一個示例性實施方案,由TCAM和附加RAM條目表示圖加的LPM條目的示意圖;圖3a是根據(jù)現(xiàn)有技術(shù)的另一個實施例,由TCAM條目表示LPM設(shè)備條目的示意圖;圖北是根據(jù)本發(fā)明的另一個示例性實施方案,由TCAM和附加RAM條目表示圖3a 的LPM條目的示意圖。
具體實施例方式本發(fā)明涉及一種使用三態(tài)內(nèi)容可尋址存儲器(TCAM)(其相關(guān)聯(lián)的隨機訪問存儲器(RAM)用作結(jié)果存儲器)和附加RAM來執(zhí)行最長前綴匹配(LPM)以實現(xiàn)比基于TCAM的標準技術(shù)方案更好的可擴展性(對于條目的數(shù)量)的方法和裝置。該方法通過存儲與該 TCAM相關(guān)聯(lián)的RAM中的一部分結(jié)果數(shù)據(jù)和該附加RAM中的一部分數(shù)據(jù),并且向代表該附加 RAM中的多個條目的TCAM插入條目來改善LPM可擴展性,從而使得在基于TCAM的常規(guī)設(shè)備中占用的該TCAM條目中可用。在基于TCAM的常規(guī)LPM技術(shù)方案中,由一個TCAM條目表示每個LPM條目,其中該 TCAM條目指向相關(guān)聯(lián)的結(jié)果存儲器(該相關(guān)聯(lián)的RAM)中的結(jié)果。在本發(fā)明中,可以由單個TCAM條目表示LPM條目的組群,其中該單個TCAM條目的前綴是該組群中的全部條目的公共前綴。在該情況中,該相關(guān)聯(lián)的RAM中的相應(yīng)結(jié)果指向附加RAM中的結(jié)果數(shù)組,其中該附加RAM包含該LPM條目組群中的每個條目的結(jié)果。然后可以使用查找密鑰的狹窄部分來搜索附加RAM中的條目,從而可以在單個 RAM訪問中獲得多個結(jié)果。這樣,在TCAM的查找期間將找到該結(jié)果存儲器中的一些結(jié)果,并且在該附加RAM的后續(xù)查找期間將找到其中一些結(jié)果。將要認識到,如果需要,則可以提供一個(或多個)其他附加RAM訪問,即可以實現(xiàn)多層的RAM數(shù)組,每層RAM數(shù)組指向持有其結(jié)果的一層RAM數(shù)組。使用多層RAM的算法可以對于特定尺寸的TCAM和RAM實現(xiàn)LPM條目的更好的可擴展性。該排列的優(yōu)點在于查找時間,因為將執(zhí)行多個RAM訪問。前綴具有相同的長度M的TCAM條目可以涉及附加RAM中的結(jié)果數(shù)組,該結(jié)果數(shù)組包含與該TCAM條目匹配的長度為M+N的全部可能前綴。該數(shù)組將包含2N個條目(為與長度為M的特定前綴匹配的長度為M+N的前綴的數(shù)量),并且將表示具有長度為M到M+N (含) 的前綴的全部LPM條目,它們與指向該數(shù)組的TCAM條目的前綴(長度為M)匹配。當在 TCAM中可以由單個條目來表示LPM條目組群時,結(jié)果組群從相關(guān)聯(lián)的結(jié)果RAM移動到該附加RAM。其結(jié)果在附加RAM中被表示成數(shù)組的LPM條目可以從該TCAM去除并且通過指向該相關(guān)聯(lián)的結(jié)果RAM中的新的結(jié)果的單個條目來替換,其中該新的結(jié)果因而指向該附加RAM 中的對應(yīng)的數(shù)組,從而允許用給定的TCAM大小來表示更大的LPM查找表。對應(yīng)的附加RAM 數(shù)組中的后續(xù)查找將使用該查找密鑰的小得多的部分,即將僅在M至(M+N-1)比特之上,使得可以在附加RAM的單個訪問期間獲得結(jié)果。在相關(guān)聯(lián)的RAM條目中由TCAM查找所指示的結(jié)果不再包含原始結(jié)果(其現(xiàn)在在附加RAM中)而是包含用于允許真實結(jié)果的讀取的三個參數(shù)——起始比特、步幅大小和基于該查找密鑰、起始比特和步幅大小所計算的索引。這些參數(shù)指示附加RAM中的該數(shù)組的起始位置以及查找密鑰的相關(guān)比特(例如在FIB中,IP地址的相關(guān)比特),其中基于該相關(guān)比特在附加RAM中執(zhí)行查找,其中該起始位置和該相關(guān)比特應(yīng)該用于在附加RAM的數(shù)組中獲取索引。典型而言,該相關(guān)比特是該查找密鑰的M至(M+N-1)比特。通過讀取附加RAM 中與該數(shù)組中被TCAM匹配索引指向的經(jīng)計算的索引相對應(yīng)的條目來完成LPM查找。結(jié)果地址根據(jù)這些值來計算并且從附加RAM存儲器獲取。如圖在常規(guī)TCAM查找表中一樣,將用于TCAM的未被一起分組到數(shù)組中的結(jié)果放置到與該TCAM相關(guān)聯(lián)的結(jié)果RAM中??梢允褂迷撓嚓P(guān)聯(lián)的結(jié)果RAM中的結(jié)果中的比特之一來指示(相關(guān)聯(lián)的RAM中的)該結(jié)果的其余部分是否是真實結(jié)果,或者包含用于指向該附加RAM中的代表真實結(jié)果的數(shù)組的指針,如上所述。雖然該方法不是強制性的,但是其有助于在結(jié)果前綴未被分組到數(shù)組中時避免附加的存儲器訪問。為了本發(fā)明的目的,對于具有條目的數(shù)組,N是指該數(shù)組的步幅大小。因此, 用于指向步幅大小為N的數(shù)組的、前綴長度為M的TCAM條目代表長度范圍從M到M+N(含) 的多達On-I)個LPM條目。將要認識到,可以支持多個步幅大小,并且在附加RAM中可以共存不同大小的數(shù)組。用于負責LPM表格的創(chuàng)建的軟件算法還負責辨認用于創(chuàng)建數(shù)組的候選前綴并且決定創(chuàng)建新的數(shù)組或分解現(xiàn)有數(shù)組。即,注意到多個查找密鑰僅在最后N個比特不同,所以可以將它們一起結(jié)合在單個組群或數(shù)組中以便減少TCAM條目的數(shù)量。用于選擇應(yīng)該創(chuàng)建哪個數(shù)組的一種可能的方法是通過候選數(shù)組的“利用率”來優(yōu)先級化候選數(shù)組。在本申請中,將利用率定義為當創(chuàng)建數(shù)組時可以減少的TCAM條目數(shù)量與數(shù)組大小(對于步幅大小為 N的數(shù)組而言是2n)之間的比率。當根據(jù)利用來優(yōu)先級化時,例如可能的實施涉及例如使用全局利用門限,從而創(chuàng)建利用率高于特定門限的候選數(shù)組,并且分解利用率下降到低于一些其他門限的現(xiàn)有數(shù)組,并且單獨向TCAM返回它們的LPM條目。由于查找表可以隨時間改變,特別是在FIB表的情況中,所以可以在操作期間創(chuàng)建并且分解這些數(shù)組。在該示例性的實施中,可以通過使用LPM查找對具體應(yīng)用執(zhí)行測試來優(yōu)化該利用率門限的值,并且該利用率門限的值將受到專用于該算法的可用TCAM大小和可用RAM大小之間的比率高度影響。RAM大小相比于TCAM 大小越大,則可以允許的利用率門限越低。例如,考慮IP路由,測試顯示利用2009年4月的因特網(wǎng)轉(zhuǎn)發(fā)表格中的因特網(wǎng)IPv4
條目分配,本發(fā)明的方法將實現(xiàn)下文的可擴展結(jié)果
權(quán)利要求
1.一種用于建立最長前綴匹配查找表的方法,包括在三態(tài)內(nèi)容可尋址存儲器(TCAM) 中排列多個前綴條目并且向相關(guān)聯(lián)的結(jié)果隨機訪問存儲器(RAM)中插入與所述前綴條目的TCAM匹配索引相對應(yīng)的結(jié)果,所述方法包括選擇能夠被減少成所述TCAM中的單個條目的至少兩個所述前綴條目的組群,其中的單個條目包括用于所述組群中的全部前綴條目的公共前綴;排列來自所述相關(guān)聯(lián)的RAM的、由附加RAM中所述前綴組群表示的結(jié)果條目; 由指向所述附加RAM中的所述條目的結(jié)果條目來替換所述相關(guān)聯(lián)的RAM中的結(jié)果條目;并且用指向所述相關(guān)聯(lián)的RAM中的所述結(jié)果條目的所述單個TCAM條目來替換所述TCAM中的所述前綴條目組群,從而使得所述TCAM中的至少一個條目可用。
2.如權(quán)利要求1所述的方法,還包括將所述附加RAM中的所述多個結(jié)果條目排列成數(shù)組,其中,所述數(shù)組包含與所述單個TCAM條目匹配的全部可能的前綴。
3.如權(quán)利要求2所述的方法,還包括通過以下步驟向所述查找表增加新的前綴條目 向所述TCAM增加新的前綴條目;搜索所述附加RAM中與所述新的前綴條目具有公共前綴的數(shù)組;并且如果找到所述數(shù)組,則將與所述新的前綴條目相對應(yīng)的結(jié)果添加到所述數(shù)組中。
4.如權(quán)利要求2所述的方法,還包括通過向所述TCAM添加新的前綴條目并且向所述相關(guān)聯(lián)的結(jié)果RAM寫入與所述新的前綴條目的匹配索引相對應(yīng)的結(jié)果,向所述查找表添加新的前綴條目。
5.如權(quán)利要求2所述的方法,還包括通過以下步驟向所述查找表添加新的前綴條目 向所述TCAM輸入新的前綴條目;在所述附加RAM中創(chuàng)建新的數(shù)組,所述新的數(shù)組包含與所述TCAM中的至少一個現(xiàn)有前綴條目的匹配索引相對應(yīng)的結(jié)果以及與所述新的前綴條目的匹配索引相對應(yīng)的結(jié)果; 在所述相關(guān)聯(lián)的RAM中輸入指向所述新的數(shù)組的新的公共前綴結(jié)果; 向所述TCAM中輸入所述新的公共前綴以替代所述新的前綴條目。
6.如權(quán)利要求5所述的方法,還包括分解與所述新的數(shù)組中所包括的前綴相對應(yīng)的全部現(xiàn)有數(shù)組以及全部各自的資源。
7.如權(quán)利要求1所述的方法,還包括通過由與所述刪除的前綴條目匹配的最長前綴的結(jié)果覆蓋與所述刪除的前綴條目相對應(yīng)的所述附加RAM中的結(jié)果,從所述查找表刪除前綴條目。
8.如權(quán)利要求1所述的方法,還包括通過使得給定前綴的對應(yīng)的TCAM條目無效,從所述表中刪除前綴; 通過覆蓋所述結(jié)果RAM條目或附加RAM條目中的舊的結(jié)果,更新所述前綴結(jié)果。
9.如權(quán)利要求1所述的方法,還包括在所述結(jié)果RAM中的每個條目中提供一個比特, 用于指示所述條目是否包含查找結(jié)果或所述附加RAM中的查找結(jié)果的指針。
10.如權(quán)利要求1所述的方法,其中所述選擇步驟包括選擇多于一個組群,所述排列步驟包括將來自每個所述組群的結(jié)果排列到所述附加RAM中對應(yīng)的數(shù)組中;所述替換步驟包括用單個TCAM條目替換所述TCAM中的每個所述前綴條目組群;并且替換所述相關(guān)聯(lián)的RAM中的條目的所述步驟包括由指向所述附加RAM中的所述對應(yīng)的數(shù)組的條目來替換所述條目。
11.一種用于執(zhí)行最長前綴匹配(LPM)查找的方法,所述方法包括 建立并且維護查找表,所述查找表包括三態(tài)內(nèi)容可尋址存儲器(TCAM)和相關(guān)聯(lián)的結(jié)果隨機訪問存儲器(RAM);以及附加RAM ;其中,由所述TCAM中的一個條目來表示所述附加RAM中的至少兩個條目; 在所述TCAM中執(zhí)行查找;在所述相關(guān)聯(lián)的結(jié)果RAM中尋找所述TCAM中的指向所述附加RAM中的結(jié)果組群的條目的結(jié)果;并且作為響應(yīng),通過讀取所述附加RAM中的所述結(jié)果組群中的條目來完成所述查找。
12.如權(quán)利要求11所述的方法,包括執(zhí)行給定密鑰的TCAM查找,以找到TCAM匹配索引;讀取與所述TCAM匹配索引相對應(yīng)的相關(guān)聯(lián)的結(jié)果RAM條目,所述結(jié)果RAM條目包括起始比特和步幅大??;基于所述查找密鑰和來自所述結(jié)果RAM條目的所述起始比特和步幅大小計算索引;并且通過讀取與所述計算的索引相對應(yīng)的附加RAM條目,完成所述LPM查找。
13.如權(quán)利要求12所述的方法,其中由表鍵樹來表示所述查找表,所述表鍵樹包括在所述TCAM中具有對應(yīng)的條目的真實節(jié)點以及在所述TCAM中沒有對應(yīng)的條目的節(jié)點;所述建立和維護步驟還包括向與在所述TCAM中不具有條目的每個節(jié)點相對應(yīng)的所述數(shù)組中插入在所述表鍵樹中具有較短前綴并且是真實節(jié)點的第一真實節(jié)點的結(jié)果。
14.如權(quán)利要求12所述的方法,其中,所述建立和維護步驟還包括向在所述數(shù)組中的多于一個的條目中插入結(jié)果。
15.一種基于三態(tài)內(nèi)容可尋址存儲器(TCAM)的最長前綴匹配(LPM)查找表,包括 TCAM和相關(guān)聯(lián)的結(jié)果隨機訪問存儲器(RAM);以及附加RAM ;其中,由所述TCAM中的一個條目和所述相關(guān)聯(lián)的結(jié)果RAM中的一個條目來表示所述附加RAM中的至少兩個條目。
16.如權(quán)利要求14所述的查找表,其中所述TCAM是保持多個用于查找相關(guān)聯(lián)的RAM中的結(jié)果的前綴條目的TCAM ; 所述相關(guān)聯(lián)的RAM存儲與所述前綴條目的TCAM匹配索引相對應(yīng)的結(jié)果; 所述附加RAM存儲來自所述相關(guān)聯(lián)的RAM的結(jié)果;并且所述TCAM中的一個條目表示在所述附加RAM中來自所述相關(guān)聯(lián)的RAM的至少兩個條目,從而使得所述TCAM中的至少一個條目可用。
全文摘要
一種基于三態(tài)內(nèi)容可尋址存儲器(TCAM)的最長前綴匹配(LPM)查找表包括TCAM,其保持用于查找相關(guān)聯(lián)的RAM中的結(jié)果的多個前綴條目,該相關(guān)聯(lián)的RAM存儲與TCAM匹配索引相對應(yīng)的結(jié)果;附加的隨機訪問存儲器(RAM),其存儲來自該相關(guān)聯(lián)的RAM的結(jié)果;以及該TCAM中的一個條目,其表示該附加RAM中來自該相關(guān)聯(lián)的RAM的至少兩個條目,從而使得該TCAM中的至少一個條目可用。
文檔編號G06F13/00GK102597973SQ201080044870
公開日2012年7月18日 申請日期2010年8月16日 優(yōu)先權(quán)日2009年8月16日
發(fā)明者B·施菲, V·米麗阿弗斯凱 申請人:康帕斯電子光學系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
道真| 岚皋县| 唐河县| 全椒县| 临潭县| 上思县| 繁昌县| 甘南县| 额尔古纳市| 莱阳市| 阿荣旗| 克山县| 胶州市| 曲阜市| 平潭县| 闸北区| 新巴尔虎左旗| 裕民县| 清水县| 札达县| 游戏| 澳门| 隆德县| 河东区| 重庆市| 达拉特旗| 尉犁县| 迁安市| 安阳县| 普安县| 客服| 安徽省| 海口市| 五华县| 沙坪坝区| 黄梅县| 婺源县| 英德市| 彭阳县| 上虞市| 常德市|