專利名稱:動(dòng)態(tài)范圍匹配表維護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及動(dòng)態(tài)范圍匹配表的維護(hù)方法,特別是對(duì)動(dòng)態(tài)范圍匹配表中的表項(xiàng)進(jìn)行添加和刪除的方法。
背景技術(shù):
三態(tài)內(nèi)容可尋址存儲(chǔ)器(Ternary Content Addressable Memory,簡(jiǎn)稱TCAM)與普通存儲(chǔ)器不同,普通存儲(chǔ)器的尋址方式為輸入地址,輸出內(nèi)容;而三態(tài)內(nèi)容可尋址存儲(chǔ)器可以根據(jù)輸入的內(nèi)容得到地址,也就是說,當(dāng)輸入一個(gè)內(nèi)容(通常叫做比較數(shù))時(shí),TCAM會(huì)把比較數(shù)和TCAM中存儲(chǔ)的數(shù)據(jù)進(jìn)行比較,如果有命中表項(xiàng),則輸出命中表項(xiàng)的地址,三態(tài)內(nèi)容可尋址存儲(chǔ)器的每個(gè)存儲(chǔ)單元除了“0”、“1”狀態(tài)外,還有一個(gè)“don’t care”狀態(tài),表示既可以為“0”又可以為“1”。由于TCAM具有三態(tài)存儲(chǔ)的功能,在輸入一個(gè)比較數(shù)時(shí),可能會(huì)有多個(gè)TCAM地址中的內(nèi)容和比較數(shù)相同,如何確定哪一個(gè)地址為真正命中的地址,解決方法為,TCAM中存放的表項(xiàng)被分配有優(yōu)先級(jí),較低物理地址的表項(xiàng)具有較高的優(yōu)先級(jí),在出現(xiàn)多命中的情況下,優(yōu)先級(jí)最高的表項(xiàng)的地址為查找的結(jié)果。
使用TCAM進(jìn)行范圍表示的方法如下TCAM的三態(tài)存儲(chǔ)方式為帶掩碼的數(shù)據(jù)提供了非常方便的存儲(chǔ)方式,帶掩碼的數(shù)據(jù)實(shí)際上是一種特殊的范圍,即從2n~2n+1-1的范圍,對(duì)于一般的范圍,可以拆分成若干個(gè)這樣的特殊范圍的并集,可以證明數(shù)據(jù)位寬為n的數(shù)據(jù)段的任意范圍最多可以拆分成2(n-1)個(gè)可以直接存放在TCAM中的特殊的數(shù)據(jù)/掩碼形式的范圍。
范圍匹配表為按照TCAM表的范圍表示規(guī)則拆分為一個(gè)或多個(gè)范圍區(qū)間后,可以作為一條或多條TCAM表項(xiàng)存入TCAM的表。動(dòng)態(tài)范圍匹配表是指不具備優(yōu)先級(jí)特性的范圍匹配表。作為一種典型的范圍匹配表,動(dòng)態(tài)范圍匹配表被廣泛應(yīng)用于的通信領(lǐng)域當(dāng)中。在傳統(tǒng)的范圍匹配表維護(hù)方法中,因其具有優(yōu)先級(jí)特性,其維護(hù)結(jié)構(gòu)和維護(hù)方法比較復(fù)雜,維護(hù)難度大,而動(dòng)態(tài)范圍匹配表不具備優(yōu)先級(jí)特征,對(duì)它的維護(hù)不應(yīng)采用常用的范圍匹配表的優(yōu)先級(jí)維護(hù)方法。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)上述現(xiàn)有技術(shù)的不足,即在維護(hù)TCAM中的動(dòng)態(tài)范圍匹配表時(shí),將表項(xiàng)作為優(yōu)先級(jí)范圍匹配表管理維護(hù)所存在的復(fù)雜低效的問題,提供對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法,改善了目前沒有TCAM中動(dòng)態(tài)范圍匹配表維護(hù)方法供使用的現(xiàn)狀。
為實(shí)現(xiàn)上述目的,本發(fā)明提出了對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中執(zhí)行以下步驟步驟1、為動(dòng)態(tài)范圍匹配表包含的規(guī)則創(chuàng)建相應(yīng)的維護(hù)結(jié)構(gòu),在該維護(hù)結(jié)構(gòu)中,每一條規(guī)則對(duì)應(yīng)三態(tài)內(nèi)容可尋址存儲(chǔ)器的一個(gè)或多個(gè)表項(xiàng),所述的維護(hù)結(jié)構(gòu)滿足所述動(dòng)態(tài)范圍匹配表與表中規(guī)則之間的關(guān)聯(lián)要求,并用于對(duì)所述動(dòng)態(tài)范圍匹配表的各個(gè)規(guī)則進(jìn)行維護(hù);步驟2、根據(jù)所述的各個(gè)規(guī)則對(duì)應(yīng)的維護(hù)結(jié)構(gòu)對(duì)保存的所述動(dòng)態(tài)范圍匹配表中的各規(guī)則進(jìn)行維護(hù),并對(duì)所述表項(xiàng)進(jìn)行相應(yīng)操作。
規(guī)則節(jié)點(diǎn)對(duì)應(yīng)所述動(dòng)態(tài)范圍匹配表中的范圍匹配規(guī)則,該規(guī)則節(jié)點(diǎn)采用所述的維護(hù)結(jié)構(gòu)表示。
規(guī)則優(yōu)先級(jí)、規(guī)則分解表項(xiàng)數(shù)目、分解規(guī)則首表項(xiàng)指針、分解規(guī)則尾表項(xiàng)指針及規(guī)則節(jié)點(diǎn)有效標(biāo)志位。
所述三態(tài)內(nèi)容可尋址存儲(chǔ)器的一個(gè)或多個(gè)表項(xiàng)采用鏈表結(jié)構(gòu)維護(hù)。
所述分解規(guī)則首表項(xiàng)指針指向所述鏈表結(jié)構(gòu)的首表項(xiàng),所述分解規(guī)則尾表項(xiàng)指針指向所述鏈表結(jié)構(gòu)的尾表項(xiàng)。
在添加表項(xiàng)時(shí),執(zhí)行以下步驟步驟1、將范圍匹配規(guī)則拆分為多個(gè)三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng);步驟2、判斷三態(tài)內(nèi)容可尋址存儲(chǔ)器的容量是否足夠所述多個(gè)表項(xiàng)的插入,如果是,則執(zhí)行步驟3;否則執(zhí)行步驟5;步驟3、在三態(tài)內(nèi)容可尋址存儲(chǔ)器的空閑表項(xiàng)鏈中插入所述多個(gè)表項(xiàng);步驟4、更新空閑鏈表;步驟5、結(jié)束。
在刪除表項(xiàng)時(shí),執(zhí)行以下步驟步驟1、由動(dòng)態(tài)范圍匹配表索引得到其對(duì)應(yīng)的三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng)鏈;步驟2、將表項(xiàng)鏈中的所有表項(xiàng)刪除;步驟3、將表項(xiàng)鏈歸還入空閑表項(xiàng)鏈中;步驟4、結(jié)束。
該方法減小了因普通范圍匹配表的優(yōu)先級(jí)維護(hù)產(chǎn)生的管理維護(hù)開銷,改善了沒有現(xiàn)成的TCAM中動(dòng)態(tài)范圍匹配表維護(hù)算法供使用的現(xiàn)狀。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法的實(shí)施例中范圍匹配規(guī)則節(jié)點(diǎn)的維護(hù)結(jié)構(gòu)示意圖;圖2為本發(fā)明對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法的實(shí)施例中添加表項(xiàng)的流程圖;圖3為本發(fā)明對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法的實(shí)施例中刪除表項(xiàng)的流程圖。
具體實(shí)施例方式
動(dòng)態(tài)范圍匹配表具有單條規(guī)則對(duì)應(yīng)一至多條TCAM表項(xiàng)和表中優(yōu)先級(jí)平等的特性,在本發(fā)明中,為每一條范圍匹配規(guī)則定義一個(gè)范圍匹配規(guī)則節(jié)點(diǎn),該節(jié)點(diǎn)的結(jié)構(gòu)如圖1所示,其中,包括規(guī)則索引,為原始表的索引號(hào);規(guī)則分解表項(xiàng)數(shù)目,為原始表按照分解規(guī)則被拆分成TCAM表中被存儲(chǔ)表項(xiàng)的數(shù)目;;分解規(guī)則首表項(xiàng)指針,指向TCAM表的首表項(xiàng);;分解規(guī)則尾表項(xiàng)指針,指向TCAM表的尾表項(xiàng);以及規(guī)則節(jié)點(diǎn)有效標(biāo)志位。將所有TCAM中的空閑表項(xiàng)組織為空閑鏈。
如圖2所示,為本發(fā)明對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法的實(shí)施例中添加表項(xiàng)的流程圖,具體執(zhí)行以下步驟步驟101、將范圍匹配規(guī)則拆分為多個(gè)三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng),設(shè)表項(xiàng)條數(shù)為N;步驟102、判斷三態(tài)內(nèi)容可尋址存儲(chǔ)器的容量是否足夠N個(gè)表項(xiàng)的插入,如果是,則執(zhí)行步驟3;否則執(zhí)行步驟5;步驟103、在三態(tài)內(nèi)容可尋址存儲(chǔ)器的空閑表項(xiàng)鏈中插入N個(gè)表項(xiàng),并將該空閑表項(xiàng)鏈的首尾指針賦給規(guī)則節(jié)點(diǎn)的相應(yīng)指針;步驟104、更新空閑鏈表,根據(jù)預(yù)計(jì)拆分的規(guī)則數(shù),預(yù)分配一塊內(nèi)存空間;步驟105、結(jié)束。
如圖3所示,為本發(fā)明對(duì)動(dòng)態(tài)范圍匹配表的維護(hù)方法的實(shí)施例中刪除表項(xiàng)的流程圖,具體執(zhí)行以下步驟步驟201、由動(dòng)態(tài)范圍匹配表索引得到其對(duì)應(yīng)的三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng)鏈;步驟202、將表項(xiàng)鏈中的所有表項(xiàng)刪除;步驟203、將表項(xiàng)鏈歸還入空閑表項(xiàng)鏈中;步驟204、結(jié)束。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中執(zhí)行以下步驟步驟1、為動(dòng)態(tài)范圍匹配表包含的規(guī)則創(chuàng)建相應(yīng)的維護(hù)結(jié)構(gòu),在該維護(hù)結(jié)構(gòu)中,每一條規(guī)則對(duì)應(yīng)三態(tài)內(nèi)容可尋址存儲(chǔ)器的一個(gè)或多個(gè)表項(xiàng),所述的維護(hù)結(jié)構(gòu)滿足所述動(dòng)態(tài)范圍匹配表與表中規(guī)則之間的關(guān)聯(lián)要求,并用于對(duì)所述動(dòng)態(tài)范圍匹配表的各個(gè)規(guī)則進(jìn)行維護(hù);步驟2、根據(jù)所述的各個(gè)規(guī)則對(duì)應(yīng)的維護(hù)結(jié)構(gòu)對(duì)保存的所述動(dòng)態(tài)范圍匹配表中的各規(guī)則進(jìn)行維護(hù),并對(duì)所述表項(xiàng)進(jìn)行相應(yīng)操作。
2.根據(jù)權(quán)利要求1所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中所述步驟1包括規(guī)則節(jié)點(diǎn)對(duì)應(yīng)所述動(dòng)態(tài)范圍匹配表中的范圍匹配規(guī)則,該規(guī)則節(jié)點(diǎn)采用所述的維護(hù)結(jié)構(gòu)表示。
3.根據(jù)權(quán)利要求2所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中所述規(guī)則節(jié)點(diǎn)具體包括規(guī)則優(yōu)先級(jí)、規(guī)則分解表項(xiàng)數(shù)目、分解規(guī)則首表項(xiàng)指針、分解規(guī)則尾表項(xiàng)指針及規(guī)則節(jié)點(diǎn)有效標(biāo)志位。
4.根據(jù)權(quán)利要求3所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中所述三態(tài)內(nèi)容可尋址存儲(chǔ)器的一個(gè)或多個(gè)表項(xiàng)采用鏈表結(jié)構(gòu)維護(hù)。
5.根據(jù)權(quán)利要求4所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中所述分解規(guī)則首表項(xiàng)指針指向所述鏈表結(jié)構(gòu)的首表項(xiàng),所述分解規(guī)則尾表項(xiàng)指針指向所述鏈表結(jié)構(gòu)的尾表項(xiàng)。
6.根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中步驟2中所述相應(yīng)操作為插入操作時(shí)具體執(zhí)行以下步驟步驟1、將范圍匹配規(guī)則拆分為多個(gè)三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng);步驟2、判斷所述三態(tài)內(nèi)容可尋址存儲(chǔ)器的容量是否足夠所述多個(gè)表項(xiàng)的插入,如果是,則執(zhí)行步驟3;否則執(zhí)行步驟5;步驟3、在所述三態(tài)內(nèi)容可尋址存儲(chǔ)器的空閑表項(xiàng)鏈中插入所述多個(gè)表項(xiàng);步驟4、更新空閑鏈表;步驟5、結(jié)束。
7.根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中步驟2中所述相應(yīng)操作為刪除操作時(shí)具體執(zhí)行以下步驟步驟1、由動(dòng)態(tài)范圍匹配表索引得到其對(duì)應(yīng)的三態(tài)內(nèi)容可尋址存儲(chǔ)器表項(xiàng)鏈;步驟2、將所述表項(xiàng)鏈中的所有表項(xiàng)刪除;步驟3、將所述表項(xiàng)鏈歸還入空閑表項(xiàng)鏈中;步驟4、結(jié)束。
全文摘要
本發(fā)明涉及一種動(dòng)態(tài)范圍匹配表的維護(hù)方法,其中執(zhí)行以下步驟步驟1.為動(dòng)態(tài)范圍匹配表包含的規(guī)則創(chuàng)建相應(yīng)的維護(hù)結(jié)構(gòu),在該維護(hù)結(jié)構(gòu)中,每一條規(guī)則對(duì)應(yīng)三態(tài)內(nèi)容可尋址存儲(chǔ)器的一個(gè)或多個(gè)表項(xiàng),所述的維護(hù)結(jié)構(gòu)滿足所述動(dòng)態(tài)范圍匹配表與表中規(guī)則之間的關(guān)聯(lián)要求,并用于對(duì)所述動(dòng)態(tài)范圍匹配表的各個(gè)規(guī)則進(jìn)行維護(hù);步驟2.根據(jù)所述的各個(gè)規(guī)則對(duì)應(yīng)的維護(hù)結(jié)構(gòu)對(duì)保存的所述動(dòng)態(tài)范圍匹配表中的各規(guī)則進(jìn)行維護(hù),并對(duì)所述表項(xiàng)進(jìn)行相應(yīng)操作。該方法減小了因普通范圍匹配表的優(yōu)先級(jí)維護(hù)產(chǎn)生的管理維護(hù)開銷,改善了沒有現(xiàn)成的TCAM中動(dòng)態(tài)范圍匹配表維護(hù)算法供使用的現(xiàn)狀。
文檔編號(hào)H04L12/56GK1896991SQ20061003410
公開日2007年1月17日 申請(qǐng)日期2006年3月2日 優(yōu)先權(quán)日2006年3月2日
發(fā)明者余蓁, 胡睿 申請(qǐng)人:華為技術(shù)有限公司