XS-TCAM-104x320:基于FPGA的TCAM开源实现(一)
发布时间:2018-03-06
当前FAST开源项目中通用(yòng)匹配引擎(GME)规则匹配能(néng)力有(yǒu)限,只支持64条规则長(cháng)度為(wèi)512比特的带掩码匹配功能(néng),对需要大量规则匹配的环境,只能(néng)采用(yòng)片外的TCAM器件。
為(wèi)此,湖(hú)南新(xīn)实网络科(kē)技有(yǒu)限公司基于FPGA内部的查找表逻辑和RAM资源,设计实现了具有(yǒu)TCAM功能(néng)的IP核——XS-TCAM-104x320。目前XS-TCAM-104x320 IP的源代码已经开源,对提升FAST流水線(xiàn)查表引擎的能(néng)力具有(yǒu)重要意义。
一、XS-TCAM-104x320的基本指标
目前实现的指标:
1.编译速率:125Mhz
2.规则条数:320条
3.LUT资源:16799
4.RAM(M10K)资源:368
5.查询周期:首次单条规则查询12周期出结果,后续连续查询则1个时钟周期出结果。
二、XS-TCAM-104x320的实现原理(lǐ)
针对FAST前期版本支持流表项条目少的不足,目前对查找算法进行了改进,实现了XS-TCAM-104x320 IP,其优点如下:
1.支持按优先级查找匹配;
2.支持硬件进行规则更新(xīn);
3.支持规则条目的按需扩展;
4.支持匹配域关键字的按需扩展;
5.支持规则查找/更新(xīn)按掩码匹配;
6.采用(yòng)流水化并行的处理(lǐ)方式可(kě)实现高速查找匹配。
1、设计思想:
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、规则長(cháng)度扩展
对于104位的五元组信息,需12个9*20TCAM_CORE即可(kě)实现,输出的bitmap进行比特与即可(kě)得到匹配的bitmap,如图3所示;
图3 规则長(cháng)度扩展到五元组处理(lǐ)流程图
最后,通过优先级选择器选择优先级比较高的索引输出。
3、规则数目扩展
通过TCAM_Block模块可(kě)以实现规则数目的扩展,如图4所示,通过将不同的规则对应到不同TCAM_Block模块的Bitmap中,则可(kě)以并行的扩展规则的数目。通过此方式在资源允许的情况下可(kě)以无限制的扩展。
图4 规则扩展结构图
目前基于Altera A5 FPGA 的FAST架构只实现的320条规则,若用(yòng)户需要更多(duō)表项即可(kě)按需扩展。
三、XS-TCAM-104x320的代码说明
以下為(wèi)XS-TCAM-104x320的顶层代码其主要分(fēn)為(wèi)四部分(fēn):时钟复位接口、规则配置接口、匹配关键字Key输入接口以及规则输出索引号Index_ID具體(tǐ)如下图5所示,其Quartus II 中代码结构如图6所示,代码文(wén)件如表1所示。
图5 XS-TCAM-104x320 IP顶层接口图
图6 XS-TCAM-104x320的代码结构
XS-TCAM-104x320的代码文(wén)件说明如表1所示:
目前XS-TCAM-104x320已经完成调测试,在FAST未来发展规划中,XS-TCAM-104x320将作為(wèi)重要的改进特性加入到FAST流水線(xiàn)的GME中。我们后续将对XS-TCAM-104x320的使用(yòng)方法进行进一步介绍。
目前XS-TCAM-104x320 IP代码可(kě)访问www.fastswitch.org,选择“代码”选项卡,点击FAST UM,点击如下按钮开始下载: