0731-84728105
15116127200
基于BV算法的片上TCAM解决方案
    为此,湖南新实网络科技有限公司基于FPGA内部的查找表逻辑和RAM资源,设计实现了具有TCAM功能的IP核——XS-TCAM-104x320。

一、XS-TCAM-104x320的基本指标

目前实现的指标:
  • 1. 编译速率:125Mhz
  • 2. 规则条数:320条
  • 3. LUT资源:16799
  • 4. RAM(M10K)资源:368
  • 5. 查询周期:首次单条规则查询12周期出结果,后续连续查询则1个时钟周期出结果。

二、XS-TCAM-104x320的实现原理

XS-TCAM-104x320 IP,优势如下:
  • 1. 支持匹配域关键字的按需扩展;
  • 2. 支持规则条目的按需扩展;
  • 3. 支持硬件进行规则更新;
  • 4. 采用流水化并行的处理方式可实现高速查找匹配;
  • 5. 支持规则查找/更新按掩码匹配;
  • 6. 支持按优先级查找匹配。

2.2 设计思想

    XS-TCAM-104x320 IP使用二维数组的存储方式,并行的进行规则更新及查找匹配,并采用流水化的方式实现多条规则匹配查找,从而实现高效快速的分类查找的目的。另外,此算法支持灵活的匹配域及流表表项的扩展能力,可满足将来匹配域扩展及流表表项扩展的需求。
    XS-TCAM-104x320 IP是基于FPGA每个内嵌RAM块可配置成512*20的双端口RAM进行的实现, 图1为XS-TCAM-104x320 IP基本处理结构图,由于RAM块为512*20因此切分的匹配域关键字(Key)为9位,查找逻辑以9位Key为查找地址对表项进行访问,得到20位的规则索引标识位,优先级选择器则根据优先级输出最高优先级的规则索引。此算法将索引0位的规则定义为最高优先级的索引位。
图 1 TSN 整体实现结构图
图 1 XS-TCAM-104x320 IP基本处理结构图
    参照图2,图2为流表匹配域的存储结构图,其为512*20的RAM存储块,在此可视为512*20的二维数组,其中行地址512个,为匹配域关键字(Key)字段;列地址为20个,为规则索引字段(Index)。图2将9位的Key作为地址查找RAM(Key=00111_1111),查找出的结果为此关键字段命中的20条规则的索引标识位(Index_Bitmap)为0_0005,其中第0,2,位为1,表示该key匹配了上述2条规则。由于0为高优先级位,因此0号索引被输出。
图 2 端口调度实现结构图
图 2流表匹配域存储结构图

2.3 规则长度扩展

    对于104位的五元组信息,需12个9*20TCAM_CORE即可实现,输出的bitmap进行比特与即可得到匹配的bitmap,如图3所示;
图 2 端口调度实现结构图
图3 规则长度扩展到五元组处理流程图
    最后,通过优先级选择器选择优先级比较高的索引输出。

2.4 规则数目扩展

    通过扩展TCAM_Block模块可以实现规则数目的扩展,如图4所示,通过将不同的规则对应到不同TCAM_Block模块的Bitmap中,则可以并行的扩展规则的数目。通过此方式在资源允许的情况下可以无限制的扩展。
图 2 端口调度实现结构图
图4 规则扩展结构图
    目前基于Altera A5 FPGA 的FAST架构只实现的320条规则,若用户需要更多表项即可按需扩展。
下载该文档