TCAM

TCAM

TCAM (ternary content addressable memory)是一種三態內容定址存儲器,主要用於快速查找ACL、路由等表項。

基本介紹

  • 外文名:ternary content addressable memory
  • 簡稱:TCAM
  • 性質:三態內容定址存儲器
  • 作用:用於快速查找ACL、路由
簡介,特點,查找操作,相關組件,FM,SDM,生產商,相關用途,套用,

簡介

它是從CAM的基礎上發展而來的。一般的CAM存儲器中每個bit位的狀態只有兩個,“0”或“1”,而TCAM中每個bit位有三種狀態,除掉“0”和“1”外,還有一個“don’t care”狀態,所以稱為“三態”,它是通過掩碼來實現的,正是TCAM的這個第三種狀態特徵使其既能進行精確匹配查找,又能進行模糊匹配查找,而CAM沒有第三種狀態,所以只能進行精確匹配查找。

特點

1、TCAM 表內所有條目都可以並行訪問,比如,如果你有100條ACL,TCAM能一次就能對比這100條ACL進行對比操作,過去如果有100條ACL的話,需要第一條ACL對比完後再對比第二條,然後第三條,直至N條,效率很明顯沒有TCAM高。
2、TCAM得結構已經經過了最佳化,支持更抽象的操作,通常是基於二進制關鍵字匹配,查詢相當快
如FIB TCAM中每個表項都有對應的下一條,而每個下一條又維護了下一條鄰居的MAC。
2、正因為有上邊的這些特性,所以無論表內有多少條數目,性能都不會減弱。
3、TCAM 包含多組的Mask 與Value 對應關係,對應比例為1:8,一個Mask可對應8個Value。最長掩碼位於TCAM頂部,如255.255.255.255位於最頂部,用於最長匹配,提升查找速率。
4、Mask 用於表示Value 的匹配方法,1 為必須比較並匹配,0 為不用比較。
5、TCAM的可用掩碼、值模式、LOU表項有限,如果訪問列表很大或需要很多第四層運算,TCAM表和暫存器很可能溢出。
6、TCAM成本比較高,存儲空間的單位價格高於普通的sram,而且耗能也遠遠高於sram
7、由於TCAM的並行查找特性和三態,存儲必須以前綴形式來存儲,比如一個range需要拆分成幾個更小的可以表示成前綴形式的range才可以存儲在TCAM中

查找操作

1、從包的內容中讀取相關欄位(如,前綴、掩碼等)
2、創建查找關鍵字(lookup key)
3、用lookup key和TCAM中的Value段對比,如果匹配了某Value,則將該Value和對應的Mask關聯
4、返回最長匹配結果(值(Value)+掩碼(Mask))=結果)

相關組件

FM

(特性管理器)
在創建或配置訪問列表後,FM軟體將匹配語句編譯(合併)為TCAM表項,這樣就可以以幀轉發速度查詢TCAM

SDM

(交換資料庫管理器)
在某些Catelyst交換機中,可以將TCAM劃分為不同的功能區域,SDM軟體將配置或調整TCAM分區,Catelyst4500 和6500交換機,TCAM是固定的,不能分區。

生產商

主要有:
1.XeL(雄立科技)
2.Netlogic
這二家分別將TCAM器件稱作Intelligent Search Engine(ISE) 和Knowledge-based Processor(KBP)。

相關用途

主要有:
1).ATM Switching設備中的VCI/VPI轉發和ATM-to-MPLS or ATM-to-TCP-Flow地址映射表項的存儲和查找;
2).Ethernet Switching設備中的二層MAC地址、ARP/RARP解析和三層IP路由表項的存儲和查找;
3).Emerging Protocols and functions方面的MPLS label表項的存儲和查找;
4).Packet Classification業務中的Enforce security、Enforce departmental policies和QOS檢測表項的存儲和查找;
5).安全防護設備中的FIB/LBT、MFIB及ACL表項存儲和查找。

套用

傳統的表項查找方法有很多,主要有:線型查找法、二叉樹查找法、哈希表查找等,這些查找方法都是基於SRAM的軟體查找方法,共同特點是查找速度慢。線型查找法需要遍歷表中的所有表項;二叉樹查找法需要遍歷樹中大多數節點,而且查找速度受樹的深度影響較大;哈希表查找法是軟體查找中較快的一種方法,它是根據設定的哈希函式H(key)和處理衝突方法將一組關鍵字映象到一個有限的地址區間上,並以關鍵字在地址區間中的象作為記錄在表中的存儲位置,這種表稱為哈希表或散列,所得存儲位置稱為哈希地址或散列地址。雖然哈希表查找法相對來說比較快,但還是滿足不了高速實時通信系統(如40G/100G POS)的極速查找需求。 基於硬體的TCAM查找法正是在這種背景下提出的,用此方法進行查找時,整個表項空間的所有數據在同一時刻被查詢,查找速度不受表項空間數據大小影響,每個時鐘周期完成一次查找,平均查找速度是基於SRAM算法查找的6倍,最好情況下,能達到128倍。
TCAM的硬體設計方式
TCAM器件的硬體設計方式一般有三種,如下圖所示:
tcam硬體設計原理圖tcam硬體設計原理圖
網路處理器NP從報文頭中把需要查找的信息提取出來,這個待查找的信息要整理成跟TCAM所存表項的格式一致,稱之為KEY。KEY作為TCAM的輸入數據,經過與表項對照,如果有匹配的表項,就把該表項所在的地址作為輸出,稱之為Index。然後將Index作為RAM的地址輸入,從RAM里得到所需查找的信息,稱之為Data。最後將Data返回給發起查找操作的NP,至此完成一次查找操作。
TCAM在高端路由器中的套用及查找過程
TCAM在高端路由器中的套用TCAM在高端路由器中的套用
CAM和TCAM的基本存儲單元
cam存儲單元圖cam存儲單元圖
tcam存儲單元圖tcam存儲單元圖

相關詞條

熱門詞條

聯絡我們