0731-84728105
15116127200
XS-TCAM-104x320:基于FPGA的TCAM開(kāi)源實現(xiàn)(一)
發布時(shí)間:2018-03-06
     當前FAST開(kāi)源項目中通用(yòng)匹配引擎(GME)規則匹配能(néng)力有限,隻支持64條規則長度爲512比特的帶掩碼匹配功能(néng),對(duì)需要大(dà)量規則匹配的環境,隻能(néng)采用(yòng)片外(wài)的TCAM器件。
     爲此,湖南尚錦網絡科技有限公司基于FPGA内部的查找表邏輯和(hé)RAM資源,設計(jì)實現(xiàn)了(le)具有TCAM功能(néng)的IP核——XS-TCAM-104x320。目前XS-TCAM-104x320 IP的源代碼已經開(kāi)源,對(duì)提升FAST流水(shuǐ)線查表引擎的能(néng)力具有重要意義。
一、XS-TCAM-104x320的基本指标
       目前實現(xiàn)的指标:
       1.編譯速率:125Mhz
       2.規則條數:320條
       3.LUT資源:16799
       4.RAM(M10K)資源:368
       5.查詢周期:首次單條規則查詢12周期出結果,後續連續查詢則1個時(shí)鐘(zhōng)周期出結果。
二、XS-TCAM-104x320的實現(xiàn)原理(lǐ)
     針對(duì)FAST前期版本支持流表項條目少的不足,目前對(duì)查找算(suàn)法進行了(le)改進,實現(xiàn)了(le)XS-TCAM-104x320 IP,其優點如下(xià):
      1.支持按優先級查找匹配;
      2.支持硬件進行規則更新;
      3.支持規則條目的按需擴展;
      4.支持匹配域關鍵字的按需擴展;
      5.支持規則查找/更新按掩碼匹配;
      6.采用(yòng)流水(shuǐ)化并行的處理(lǐ)方式可實現(xiàn)高(gāo)速查找匹配。
1、設計(jì)思想:
     XS-TCAM-104x320 IP使用(yòng)二維數組的存儲方式,并行的進行規則更新及查找匹配,并采用(yòng)流水(shuǐ)化的方式實現(xiàn)多條規則匹配查找,從(cóng)而實現(xiàn)高(gāo)效快(kuài)速的分類查找的目的。另外(wài),此算(suàn)法支持靈活的匹配域及流表表項的擴展能(néng)力,可滿足将來(lái)匹配域擴展及流表表項擴展的需求。
     XS-TCAM-104x320 IP是基于FPGA每個内嵌RAM塊可配置成512*20的雙端口RAM進行的實現(xiàn),圖1爲XS-TCAM-104x320 IP基本處理(lǐ)結構圖,由于RAM塊爲512*20因此切分的匹配域關鍵字(Key)爲9位,查找邏輯以9位Key爲查找地址對(duì)表項進行訪問,得到(dào)20位的規則索引标識位,優先級選擇器則根據優先級輸出最高(gāo)優先級的規則索引。此算(suàn)法将索引0位的規則定義爲最高(gāo)優先級的索引位。

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

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

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

圖4 規則擴展結構圖
     目前基于Altera A5 FPGA 的FAST架構隻實現(xiàn)的320條規則,若用(yòng)戶需要更多表項即可按需擴展。
三、XS-TCAM-104x320的代碼說明(míng)
     以下(xià)爲XS-TCAM-104x320的頂層代碼其主要分爲四部分:時(shí)鐘(zhōng)複位接口、規則配置接口、匹配關鍵字Key輸入接口以及規則輸出索引号Index_ID具體如下(xià)圖5所示,其Quartus II 中代碼結構如圖6所示,代碼文(wén)件如表1所示。

圖5 XS-TCAM-104x320 IP頂層接口圖

圖6 XS-TCAM-104x320的代碼結構
     XS-TCAM-104x320的代碼文(wén)件說明(míng)如表1所示:
     目前XS-TCAM-104x320已經完成調測試,在FAST未來(lái)發展規劃中,XS-TCAM-104x320将作(zuò)爲重要的改進特性加入到(dào)FAST流水(shuǐ)線的GME中。我們後續将對(duì)XS-TCAM-104x320的使用(yòng)方法進行進一步介紹。
     目前XS-TCAM-104x320 IP代碼可訪問www.fastswitch.org,選擇“代碼”選項卡,點擊FAST UM,點擊如下(xià)按鈕開(kāi)始下(xià)載: