為(wèi)此,湖(hú)南新(xīn)实网络科(kē)技有(yǒu)限公司基于FPGA内部的查找表逻辑和RAM资源,设计实现了具有(yǒu)TCAM功能(néng)的IP核——XS-TCAM-104x320。
一、XS-TCAM-104x320的基本指标
目前实现的指标:
- 1. 编译速率:125Mhz
- 2. 规则条数:320条
- 3. LUT资源:16799
- 4. RAM(M10K)资源:368
- 5. 查询周期:首次单条规则查询12周期出结果,后续连续查询则1个时钟周期出结果。
二、XS-TCAM-104x320的实现原理(lǐ)
XS-TCAM-104x320 IP,优势如下:
- 1. 支持匹配域关键字的按需扩展;
- 2. 支持规则条目的按需扩展;
- 3. 支持硬件进行规则更新(xīn);
- 4. 采用(yòng)流水化并行的处理(lǐ)方式可(kě)实现高速查找匹配;
- 5. 支持规则查找/更新(xīn)按掩码匹配;
- 6. 支持按优先级查找匹配。
2.2
设计思想
XS-TCAM-104x320
IP使用(yòng)二维数组的存储方式,并行的进行规则更新(xīn)及查找匹配,并采用(yòng)流水化的方式实现多(duō)条规则匹配查找,从而实现高效快速的分(fēn)类查找的目的。另外,此算法支持灵活的匹配域及流表表项的扩展能(néng)力,可(kě)满足将来匹配域扩展及流表表项扩展的需求。
XS-TCAM-104x320
IP是基于FPGA每个内嵌RAM块可(kě)配置成512*20的双端口RAM进行的实现, 图1為(wèi)XS-TCAM-104x320
IP基本处理(lǐ)结构图,由于RAM块為(wèi)512*20因此切分(fēn)的匹配域关键字(Key)為(wèi)9位,查找逻辑以9位Key為(wèi)查找地址对表项进行访问,得到20位的规则索引标识位,优先级选择器则根据优先级输出最高优先级的规则索引。此算法将索引0位的规则定义為(wèi)最高优先级的索引位。
图
1 XS-TCAM-104x320 IP基本处理(lǐ)结构图
参照图2,图2為(wèi)流表匹配域的存储结构图,其為(wèi)512*20的RAM存储块,在此可(kě)视為(wèi)512*20的二维数组,其中行地址512个,為(wèi)匹配域关键字(Key)字段;列地址為(wèi)20个,為(wèi)规则索引字段(Index)。图2将9位的Key作為(wèi)地址查找RAM(Key=00111_1111),查找出的结果為(wèi)此关键字段命中的20条规则的索引标识位(Index_Bitmap)為(wèi)0_0005,其中第0,2,位為(wèi)1,表示该key匹配了上述2条规则。由于0為(wèi)高优先级位,因此0号索引被输出。
图
2流表匹配域存储结构图
2.3
规则長(cháng)度扩展
对于104位的五元组信息,需12个9*20TCAM_CORE即可(kě)实现,输出的bitmap进行比特与即可(kě)得到匹配的bitmap,如图3所示;
图3
规则長(cháng)度扩展到五元组处理(lǐ)流程图
最后,通过优先级选择器选择优先级比较高的索引输出。
2.4
规则数目扩展
通过扩展TCAM_Block模块可(kě)以实现规则数目的扩展,如图4所示,通过将不同的规则对应到不同TCAM_Block模块的Bitmap中,则可(kě)以并行的扩展规则的数目。通过此方式在资源允许的情况下可(kě)以无限制的扩展。
图4
规则扩展结构图
目前基于Altera A5 FPGA
的FAST架构只实现的320条规则,若用(yòng)户需要更多(duō)表项即可(kě)按需扩展。