為此,湖南新實網(wǎng)絡(luò)科技有限公司基于FPGA內(nèi)部的查找表邏輯和RAM資源,設(shè)計實現(xiàn)了具有TCAM功能的IP核——XS-TCAM-104x320。
一、XS-TCAM-104x320的基本指標(biāo)
目前實現(xiàn)的指標(biāo):
- 1. 編譯速率:125Mhz
- 2. 規(guī)則條數(shù):320條
- 3. LUT資源:16799
- 4. RAM(M10K)資源:368
- 5. 查詢周期:首次單條規(guī)則查詢12周期出結(jié)果,后續(xù)連續(xù)查詢則1個時鐘周期出結(jié)果。
二、XS-TCAM-104x320的實現(xiàn)原理
XS-TCAM-104x320 IP,優(yōu)勢如下:
- 1. 支持匹配域關(guān)鍵字的按需擴展;
- 2. 支持規(guī)則條目的按需擴展;
- 3. 支持硬件進行規(guī)則更新;
- 4. 采用流水化并行的處理方式可實現(xiàn)高速查找匹配;
- 5. 支持規(guī)則查找/更新按掩碼匹配;
- 6. 支持按優(yōu)先級查找匹配。
2.2
設(shè)計思想
XS-TCAM-104x320
IP使用二維數(shù)組的存儲方式,并行的進行規(guī)則更新及查找匹配,并采用流水化的方式實現(xiàn)多條規(guī)則匹配查找,從而實現(xiàn)高效快速的分類查找的目的。另外,此算法支持靈活的匹配域及流表表項的擴展能力,可滿足將來匹配域擴展及流表表項擴展的需求。
XS-TCAM-104x320
IP是基于FPGA每個內(nèi)嵌RAM塊可配置成512*20的雙端口RAM進行的實現(xiàn), 圖1為XS-TCAM-104x320
IP基本處理結(jié)構(gòu)圖,由于RAM塊為512*20因此切分的匹配域關(guān)鍵字(Key)為9位,查找邏輯以9位Key為查找地址對表項進行訪問,得到20位的規(guī)則索引標(biāo)識位,優(yōu)先級選擇器則根據(jù)優(yōu)先級輸出最高優(yōu)先級的規(guī)則索引。此算法將索引0位的規(guī)則定義為最高優(yōu)先級的索引位。

圖
1 XS-TCAM-104x320 IP基本處理結(jié)構(gòu)圖
參照圖2,圖2為流表匹配域的存儲結(jié)構(gòu)圖,其為512*20的RAM存儲塊,在此可視為512*20的二維數(shù)組,其中行地址512個,為匹配域關(guān)鍵字(Key)字段;列地址為20個,為規(guī)則索引字段(Index)。圖2將9位的Key作為地址查找RAM(Key=00111_1111),查找出的結(jié)果為此關(guān)鍵字段命中的20條規(guī)則的索引標(biāo)識位(Index_Bitmap)為0_0005,其中第0,2,位為1,表示該key匹配了上述2條規(guī)則。由于0為高優(yōu)先級位,因此0號索引被輸出。

圖
2流表匹配域存儲結(jié)構(gòu)圖
2.3
規(guī)則長度擴展
對于104位的五元組信息,需12個9*20TCAM_CORE即可實現(xiàn),輸出的bitmap進行比特與即可得到匹配的bitmap,如圖3所示;

圖3
規(guī)則長度擴展到五元組處理流程圖
最后,通過優(yōu)先級選擇器選擇優(yōu)先級比較高的索引輸出。
2.4
規(guī)則數(shù)目擴展
通過擴展TCAM_Block模塊可以實現(xiàn)規(guī)則數(shù)目的擴展,如圖4所示,通過將不同的規(guī)則對應(yīng)到不同TCAM_Block模塊的Bitmap中,則可以并行的擴展規(guī)則的數(shù)目。通過此方式在資源允許的情況下可以無限制的擴展。

圖4
規(guī)則擴展結(jié)構(gòu)圖
目前基于Altera A5 FPGA
的FAST架構(gòu)只實現(xiàn)的320條規(guī)則,若用戶需要更多表項即可按需擴展。