中文字幕无码日韩视频无码三区

Tcam表項的壓縮方法

文檔序號(hao):7756711閱讀:324來(lai)源:國知局(ju)
專利名稱:Tcam表項的壓縮方法
TCAM表項的壓縮方法
技術領域
本發明涉及一種 TCAM(Ternary Content Addressable Memory,三態內容尋址寄存器)表項的壓縮方法,屬于互聯網數據通信內容壓縮領域。
背景技術
隨著互聯網的高速發展,網絡中節點數目大幅度增長,對路由器接口速率的要求也越來越高,例如支持IOG速率的路由器,單包轉發處理時間已經要求小于50納秒,軟件路由查找機制顯然已不能滿足線速轉發要求。由于三態內容可尋址寄存器(TCAM)查表速度快,且解決了 CIDR最長前綴匹配的問題,已成為業界目前常用的硬件解決方案。TCAM的每個單元位可以賦予3個邏輯態0、1或者X,其中χ代表一個不確定位, 可以起到掩碼的作用,這個掩碼使得TCAM可以存儲那些包含有通配符的規則。TCAM另外一個優點是它所保存的表項可以實現長度靈活配置,結合掩碼的應用可以在同一個TCAM芯片中保存任意長度的關鍵字表項,因此,TCAM非常適用于最長前綴路由的查找。但是,由于TCAM對路由表項存放的有序性要求,使其表項管理較為復雜。若表項更新時間過長,必然影響查表速度,非常容易引起處理隊列阻塞甚至丟包,嚴重影響路由器的性能,也提高了路由器設計的難度,如對緩存容量提出更高的要求等。與本發明相關的現有技術請參閱2005年3月2日公告的中國發明專利第 CN1191520C號,該專利揭示了一種把都基于樹結構的路由壓縮以及建立在把TCAM芯片內的空間劃分為N個子空間的前綴鏈約束基礎上的前綴更新這兩個步驟前后合在一起的 TCAM高速更新方法,其中,判斷前綴是否需要更新的原則是該節點是否冗余,冗余則不更新,反之,則更新。然而,現有技術所揭示的方案適用于具有前綴的路由表項的壓縮,卻不適合于不具有前綴的非路由的普通TCAM表項的壓縮。例如,在虛擬私有局域網服務(VPLQ和虛擬專線服務(VPWQ應用中,一個端口可以支持多個虛擬局域網(VLAN)的綁定。這種綁定方式稱為捆綁(bundle),它是MEF (Metro Ethernet Forum)城域以太網論壇定義的一種綁定方式。在此種應用下,系統中存在大量的不具有前綴的表項,它們的源端口相同,VLAN不同, 而處理相同。現有技術并不適合于此類表項的壓縮。

發明內容本發明所要解決的技術問題在于提供一種能夠處理沒有前綴且只有一個變值元素的TCAM(Ternary Content Addressable Memory,三態內容尋址寄存器)表項的壓縮方法。為解決上述技術問題,本發明采用如下技術方案一種TCAM表項的壓縮方法,其特征在于包括如下步驟(1).首先把一組沒有前綴且只有一個變值元素的TCAM表項,劃分為變值元素數值連續的段;
(2).對于數值連續的段,系統先找出段內可以馬上進行掩碼壓縮的規則子段進行直接壓縮;而對段內不能立即壓縮的非規則子段,系統首先找出此類段公共數值,然后再進行壓縮。作為本發明的進一步改進,在添加新表項的步驟中,包括如下過程(a).確定元素值;(b).判斷該元素值是否不屬于任何段,如果屬于,結束;如果不屬于,進行下一步; (c).判斷元素值是否在某段的邊緣,如果不在,就創建新段,其start和end分別為元素值; 如果在,進行下一步;(d).判斷元素值是否在某兩段的邊緣,如果不在,把元素值合并入步驟(c)中的該某段,如果在,把該兩段合并成一段;(e).結束。作為本發明的進一步改進,在刪除表項的步驟中,包括如下過程(a).確定刪除表項的元素值;(b).判斷元素值是否屬于某段,如果不屬于,結束;如果屬于,進行下一步; (c).判斷元素值是否在某段的邊緣,如果不在,就創建兩個新段,范圍分別為start 元素值-1,元素值+1 end;如果在,進行下一步;(d).更新步驟(c)中的該某段;(e).結束。作為本發明的進一步改進,規則子段的壓縮包括如下過程(a).壓縮規則子段段 (start end) ; (b).保存公共數值;(c).得到規則子段壓縮后的數據和掩碼;(d).對新段 (start end)繼續壓縮。作為本發明的進一步改進,非規則子段的壓縮包括如下過程(a).壓縮非規則子段段(start end) ; (b).保存公共數值;(c).得到規則子段壓縮后的數據和掩碼;(d).對新段(start end)繼續壓縮;(e).提取段公共數值,繼續壓縮,直至非規則子段不能壓縮為止。作為本發明的進一步改進,所述步驟(1)與步驟( 之間還包括一個通過采用添加新表項或者刪除表項的方式對段進行維護的步驟。相較于現有技術,經驗證,在VPWS、VPLS的捆綁應用中,使用本發明,當表項數目大于100時,壓縮率平均在50%以上,且表項數目越多,數值越連續,壓縮效率越高。

圖1是本發明壓縮方法中添加表項時的段劃分流程圖。圖2是本發明壓縮方法中刪除表項時的段劃分流程圖。
具體實施方式一組沒有前綴的 TCAM(Ternary Content Addressable Memory,三態內容尋址寄存器)表項,其中表項內的其它元素數值均相同,只有一項元素數值不同,對這樣的元素, 稱為變值元素,本發明就是針對這種TCAM表項,提供一種使用掩碼的壓縮方法。本發明壓縮方法的基本思想是首先把這樣的一組TCAM表項,劃分為變值元素數值連續的段,然后通過下述方法,對表項段進行壓縮。圖1和圖2分別描述了在添加和刪除表項時,TCAM如何維護表項段。請參圖1所示,(1).添加新表項,元素值為a; (2).判斷元素值a是否不屬于任何段,如果屬于,結束; 如果不屬于,進行下一步;(3).判斷元素值a是否在某段的邊緣,如果不在,就創建新段,其 start和end分別為a;如果在,進行下一步;(4).判斷元素值a是否在某兩段的邊緣,如果不在,把元素值a合并入步驟(3)中的該某段,如果在,把該兩段合并成一段;( .結束。CN 102375820 A
說明書
3/4頁

請參圖2所示,(1).刪除表項,元素值為a; (2).判斷元素值a是否屬于某段,如果不屬于,結束;如果屬于,進行下一步;(3).判斷元素值a是否在某段的邊緣,如果不在, 就創建兩個新段,范圍分別為start a-1,a+1 end ;如果在,進行下一步;(4).更新步驟(3)中的該某段;(5).結束。對于一個數值連續的段,本發明使用如下算法,壓縮表項段。首先,系統先找出段內可以馬上進行掩碼壓縮的子段。如子段G 7)可以直接壓縮,其壓縮后,data = 4,mask = 0x1100。這樣的段,特征在于 start = 2x,end = 2x+l-l, 并被稱之為規則子段。規則子段壓縮后,data = start, mask = “ (2χ-1)。對于不能立即壓縮的子段,被稱之為非規則子段。非規則字段也可以壓縮,系統首先找出此類段公共數值,再進行壓縮。如段(6 7)不能直接壓縮,找出段公共數值為4,則新段成為0 ;3),段0 3)可以直接壓縮。壓縮后,data = 4+2,mask = 0x1110。此類段的公共數值為^,對于規則子段的壓縮算法偽碼如下compress_regular_segment (start, end) // 壓縮規則子段段(start end){common_value = 0 -J/ 保存公共數值While(I){χ = log2 (start);H立即得到規則子段壓縮后的數據和掩碼data = start+common_value ;mask = “ (2x_l);start = 2x+l ;continue -J/ 對新段(start end)繼續壓縮}}對于非規則子段的壓縮算法偽碼如下compress_unrelular_segment (start, end) // 壓縮非規則子段段(start end){common_value = 0 -J/ 保存公共數值While(I){χ = log2 (start);if (start == 2x){If (end >= 2x+l){//立即得到規則子段壓縮后的數據和掩碼data = start+common_value ;
5
mask = “ (2χ-1);start = 2x+l ;continue -J/ 對新段(start end)繼續壓縮}Else{common_value = common_value+2x ;start = start—common—value ;end = end-common_value ;continue ;//提取段公共數值common_value,繼續壓縮。}}else{common_value = common_value+2x ;start = start—common—value ;end = end-common_value ;continue ;//提取段公共數值common_value,繼續壓縮。}}}本發明的壓縮方法,先把表項分為數值連續的段,然后對段進行壓縮。可以實現對沒有前綴且只有一個變值元素的TCAM表項進行壓縮。經驗證,在VPWS、VPLS的捆綁應用中,使用本發明,當表項數目大于100時,壓縮率平均在50 %以上,且表項數目越多,數值越連續,壓縮效率越高。綜上所述,以上僅為本發明的較佳實施例而已,不應以此限制本發明的范圍,即凡是依本發明權利要求書及發明說明書內容所作的簡單的等效變化與修飾,皆應仍屬本發明專利涵蓋的范圍內。
權利要求
1.一種TCAM表項的壓縮方法,其特征在于包括如下步驟(1).首先把一組沒有前綴且只有一個變值元素的TCAM(TernaryContentAddressable Memory,三態內容尋址寄存器)表項,劃分為變值元素數值連續的段;(2).對于數值連續的段,系統先找出段內可以馬上進行掩碼壓縮的規則子段進行直接壓縮;而對段內不能立即壓縮的非規則子段,系統首先找出此類段公共數值,然后再進行壓縮。
2.如權利要求1所述的壓縮方法,其特征在于在添加新表項的步驟中,包括如下過程(a).確定元素值;(b).判斷該元素值是否不屬于任何段,如果屬于,結束;如果不屬于, 進行下一步;(c).判斷元素值是否在某段的邊緣,如果不在,就創建新段,其start和end 分別為元素值;如果在,進行下一步;(d).判斷元素值是否在某兩段的邊緣,如果不在,把元素值合并入步驟(c)中的該某段,如果在,把該兩段合并成一段;(e).結束。
3.如權利要求1所述的壓縮方法,其特征在于在刪除表項的步驟中,包括如下過程 (a).確定刪除表項的元素值;(b).判斷元素值是否屬于某段,如果不屬于,結束;如果屬于,進行下一步;(c).判斷元素值是否在某段的邊緣,如果不在,就創建兩個新段,范圍分別為start 元素值-1,元素值+1 end;如果在,進行下一步;(d).更新步驟(c)中的該某段;(e).結束。
4.如權利要求1所述的壓縮方法,其特征在于規則子段的壓縮包括如下過程(a). 壓縮規則子段段(start end) ; (b).保存公共數值;(c).得到規則子段壓縮后的數據和掩碼;(d).對新段(start end)繼續壓縮。
5.如權利要求1所述的壓縮方法,其特征在于非規則子段的壓縮包括如下過程(a). 壓縮非規則子段段(start end) ; (b).保存公共數值;(c).得到規則子段壓縮后的數據和掩碼;(d).對新段(start end)繼續壓縮;(e).提取段公共數值,繼續壓縮,直至非規則子段不能壓縮為止。
6.如權利要求1所述的壓縮方法,其特征在于所述步驟(1)與步驟( 之間還包括一個通過采用添加新表項或者刪除表項的方式對段進行維護的步驟。
全文摘要
本發明公開了一種TCAM(Ternary Content Addressable Memory,三態內容尋址寄存器)表項的壓縮方法,包括如下步驟首先把一組沒有前綴且只有一個變值元素的TCAM表項,劃分為變值元素數值連續的段;通過采用添加新表項或者刪除表項的方式,對段進行維護;對于數值連續的段,系統先找出段內可以馬上進行掩碼壓縮的規則子段進行直接壓縮,而對段內不能立即壓縮的非規則子段,系統首先找出此類段公共數值,然后再進行壓縮。經驗證,在VPWS、VPLS的捆綁應用中,使用本發明,當表項數目大于100時,壓縮率平均在50%以上,且表項數目越多,數值越連續,壓縮效率越高。
文檔編號H04L12/46GK102375820SQ20101025219
公開日2012年3月14日 申請日期2010年8月12日 優先權日2010年8月12日
發明者陳玉強 申請人:盛科網絡(蘇州)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1