基于(yú)BV算法的(de)片上(shàng)TCAM解決方案
爲(wéi / wèi)此,衡陽小九網絡科技有限責任公司基于(yú)FPGA内部的(de)查找表邏輯和(hé / huò)RAM資源,設計實現了(le/liǎo)具有TCAM功能的(de)IP核——XS-TCAM-104x320。
一、XS-TCAM-104x320的(de)基本指标
目前實現的(de)指标:
- 1. 編譯速率:125Mhz
- 2. 規則條數:320條
- 3. LUT資源:16799
- 4. RAM(M10K)資源:368
- 5. 查詢周期:首次單條規則查詢12周期出(chū)結果,後續連續查詢則1個(gè)時(shí)鍾周期出(chū)結果。
二、XS-TCAM-104x320的(de)實現原理
XS-TCAM-104x320 IP,優勢如下:
- 1. 支持匹配域關鍵字的(de)按需擴展;
- 2. 支持規則條目的(de)按需擴展;
- 3. 支持硬件進行規則更新;
- 4. 采用流水化并行的(de)處理方式可實現高速查找匹配;
- 5. 支持規則查找/更新按掩碼匹配;
- 6. 支持按優先級查找匹配。
2.2
設計思想
XS-TCAM-104x320
IP使用二維數組的(de)存儲方式,并行的(de)進行規則更新及查找匹配,并采用流水化的(de)方式實現多條規則匹配查找,從而(ér)實現高效快速的(de)分類查找的(de)目的(de)。另外,此算法支持靈活的(de)匹配域及流表表項的(de)擴展能力,可滿足将來(lái)匹配域擴展及流表表項擴展的(de)需求。
XS-TCAM-104x320
IP是(shì)基于(yú)FPGA每個(gè)内嵌RAM塊可配置成512*20的(de)雙端口RAM進行的(de)實現, 圖1爲(wéi / wèi)XS-TCAM-104x320
IP基本處理結構圖,由于(yú)RAM塊爲(wéi / wèi)512*20因此切分的(de)匹配域關鍵字(Key)爲(wéi / wèi)9位,查找邏輯以(yǐ)9位Key爲(wéi / wèi)查找地(dì / de)址對表項進行訪問,得到(dào)20位的(de)規則索引标識位,優先級選擇器則根據優先級輸出(chū)最高優先級的(de)規則索引。此算法将索引0位的(de)規則定義爲(wéi / wèi)最高優先級的(de)索引位。

圖
1 XS-TCAM-104x320 IP基本處理結構圖
參照圖2,圖2爲(wéi / wèi)流表匹配域的(de)存儲結構圖,其爲(wéi / wèi)512*20的(de)RAM存儲塊,在(zài)此可視爲(wéi / wèi)512*20的(de)二維數組,其中行地(dì / de)址512個(gè),爲(wéi / wèi)匹配域關鍵字(Key)字段;列地(dì / de)址爲(wéi / wèi)20個(gè),爲(wéi / wèi)規則索引字段(Index)。圖2将9位的(de)Key作爲(wéi / wèi)地(dì / de)址查找RAM(Key=00111_1111),查找出(chū)的(de)結果爲(wéi / wèi)此關鍵字段命中的(de)20條規則的(de)索引标識位(Index_Bitmap)爲(wéi / wèi)0_0005,其中第0,2,位爲(wéi / wèi)1,表示該key匹配了(le/liǎo)上(shàng)述2條規則。由于(yú)0爲(wéi / wèi)高優先級位,因此0号索引被輸出(chū)。

圖
2流表匹配域存儲結構圖
2.3
規則長度擴展
對于(yú)104位的(de)五元組信息,需12個(gè)9*20TCAM_CORE即可實現,輸出(chū)的(de)bitmap進行比特與即可得到(dào)匹配的(de)bitmap,如圖3所示;

圖3
規則長度擴展到(dào)五元組處理流程圖
最後,通過優先級選擇器選擇優先級比較高的(de)索引輸出(chū)。
2.4
規則數目擴展
通過擴展TCAM_Block模塊可以(yǐ)實現規則數目的(de)擴展,如圖4所示,通過将不(bù)同的(de)規則對應到(dào)不(bù)同TCAM_Block模塊的(de)Bitmap中,則可以(yǐ)并行的(de)擴展規則的(de)數目。通過此方式在(zài)資源允許的(de)情況下可以(yǐ)無限制的(de)擴展。

圖4
規則擴展結構圖
目前基于(yú)Altera A5 FPGA
的(de)FAST架構隻實現的(de)320條規則,若用戶需要(yào / yāo)更多表項即可按需擴展。