0731-84728105
15116127200
基于BV算法的(de)片上TCAM解決方案
    為(wèi)此,湖南新實網絡科(kē)技有(yǒu)限公司基于FPGA內(nèi)部的(de)查找表邏輯和(hé)RAM資源,設計實現了具有(yǒu)TCAM功能的(de)IP核——XS-TCAM-104x320。

一(yī)、XS-TCAM-104x320的(de)基本指标

目前實現的(de)指标:
  • 1. 編譯速率:125Mhz
  • 2. 規則條數:320條
  • 3. LUT資源:16799
  • 4. RAM(M10K)資源:368
  • 5. 查詢周期:首次單條規則查詢12周期出結果,後續連續查詢則1個時鍾周期出結果。

二、XS-TCAM-104x320的(de)實現原理(lǐ)

XS-TCAM-104x320 IP,優勢如(rú)下:
  • 1. 支持匹配域關鍵字的(de)按需擴展;
  • 2. 支持規則條目的(de)按需擴展;
  • 3. 支持硬件進行(xíng)規則更新;
  • 4. 采用流水化并行(xíng)的(de)處理(lǐ)方式可(kě)實現高(gāo)速查找匹配;
  • 5. 支持規則查找/更新按掩碼匹配;
  • 6. 支持按優先級查找匹配。

2.2 設計思想

    XS-TCAM-104x320 IP使用二維數組的(de)存儲方式,并行(xíng)的(de)進行(xíng)規則更新及查找匹配,并采用流水化的(de)方式實現多條規則匹配查找,從而實現高(gāo)效快速的(de)分類查找的(de)目的(de)。另外,此算法支持靈活的(de)匹配域及流表表項的(de)擴展能力,可(kě)滿足将來匹配域擴展及流表表項擴展的(de)需求。
    XS-TCAM-104x320 IP是基于FPGA每個內(nèi)嵌RAM塊可(kě)配置成512*20的(de)雙端口RAM進行(xíng)的(de)實現, 圖1為(wèi)XS-TCAM-104x320 IP基本處理(lǐ)結構圖,由于RAM塊為(wèi)512*20因此切分的(de)匹配域關鍵字(Key)為(wèi)9位,查找邏輯以9位Key為(wèi)查找地(dì)址對表項進行(xíng)訪問,得到20位的(de)規則索引标識位,優先級選擇器則根據優先級輸出最高(gāo)優先級的(de)規則索引。此算法将索引0位的(de)規則定義為(wèi)最高(gāo)優先級的(de)索引位。
圖 1 TSN 整體實現結構圖
圖 1 XS-TCAM-104x320 IP基本處理(lǐ)結構圖
    參照圖2,圖2為(wèi)流表匹配域的(de)存儲結構圖,其為(wèi)512*20的(de)RAM存儲塊,在此可(kě)視(shì)為(wèi)512*20的(de)二維數組,其中行(xíng)地(dì)址512個,為(wèi)匹配域關鍵字(Key)字段;列地(dì)址為(wèi)20個,為(wèi)規則索引字段(Index)。圖2将9位的(de)Key作為(wèi)地(dì)址查找RAM(Key=00111_1111),查找出的(de)結果為(wèi)此關鍵字段命中的(de)20條規則的(de)索引标識位(Index_Bitmap)為(wèi)0_0005,其中第0,2,位為(wèi)1,表示該key匹配了上述2條規則。由于0為(wèi)高(gāo)優先級位,因此0号索引被輸出。
圖 2 端口調度實現結構圖
圖 2流表匹配域存儲結構圖

2.3 規則長(cháng)度擴展

    對于104位的(de)五元組信息,需12個9*20TCAM_CORE即可(kě)實現,輸出的(de)bitmap進行(xíng)比特與即可(kě)得到匹配的(de)bitmap,如(rú)圖3所示;
圖 2 端口調度實現結構圖
圖3 規則長(cháng)度擴展到五元組處理(lǐ)流程圖
    最後,通過優先級選擇器選擇優先級比較高(gāo)的(de)索引輸出。

2.4 規則數目擴展

    通過擴展TCAM_Block模塊可(kě)以實現規則數目的(de)擴展,如(rú)圖4所示,通過将不同的(de)規則對應到不同TCAM_Block模塊的(de)Bitmap中,則可(kě)以并行(xíng)的(de)擴展規則的(de)數目。通過此方式在資源允許的(de)情況下可(kě)以無限制的(de)擴展。
圖 2 端口調度實現結構圖
圖4 規則擴展結構圖
    目前基于Altera A5 FPGA 的(de)FAST架構隻實現的(de)320條規則,若用戶需要更多表項即可(kě)按需擴展。
下載該文檔