当前位置: 首页 > 专利查询>刘航天专利>正文

基于BF_TCAM实现零范围扩张的高效范围匹配方法组成比例

技术编号:14564625 阅读:90 留言:0更新日期:2017-02-05 21:56
本发明专利技术提出了一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,解决了目前基于TCAM实现范围匹配方法存在的存储利用率低、功耗大的问题,主要应用包括报文分类中端口范围匹配,存储保护中访存地址的审查等。本发明专利技术高效性体现在:高效存储、高速查找及低功耗。其特点在于,SMLCP算法将范围匹配过程分解为前缀匹配和特征区间比对两个步骤,从而便于使用TCAM技术,使TCAM存储利用率达到100%。根据SMLCP算法设计了BF_TCAM模型,按前缀长度对范围进行分类处理,使用Bloom filter对关键字过滤,屏蔽无关项参与比较,从而大幅降低功耗。使用流水线技术减小电路关键路径长度,使查找操作在一个时钟周期内完成。

【技术实现步骤摘要】

本专利技术涉及一种基于Bloomfilter算法和TCAM(TernaryContentAddressableMemory,三态内容寻址存储器)实现零范围扩张的高效范围匹配方法,主要用于解决报文分类中端口范围匹配,存储保护中访存地址的审查等,实现访问控制、安全过滤、带宽控制等功能,广泛应用于防火墙、路由器、交换机、分布式存储网络、可信计算安全平台等设备中。这些应用对查找性能要求很高,高速的范围匹配是其实现的技术支撑。
技术介绍
目前业界普遍使用TCAM实现高速查找表。和普通内存通过地址寻找内容不同,TCAM通过内容定位地址,它将查找输入的关键字和所有表项进行并行比较来定位关键字匹配的存储地址,根据得到的地址在RAM中索引规则内容。TCAM可以在固定的时钟周期完成查找操作,目前其时钟周期可以达到2ns,实现500MSPS的查找速率。TCAM三态特性需要使用多达16个晶体管来实现一个比特的存储,导致芯片面积较大且价格不菲,而其并行比较特性使得功耗很高,一个18Mbit的TCAM功耗高达15W。TCAM突出的问题在于其不适于实现范围匹配,它的三态性便于实现精确匹配和前缀匹配。比如TCAM可以方便地表达报文分类中的协议字段和IP地址字段,但端口范围无法直接实现。目前已有方案是将范围匹配转换成前缀匹配和精确匹配,一个范围字段往往映射出多条匹配表项,称为范围扩张(rangeexpansion)。范围扩张降低了TCAM空间使用效率,造成了较大的配置负载,提高了更新代价,同时使TCAM的功耗问题雪上加霜。文献“面向存储和功耗优化的TCAM报文分类算法研究(2013年解放军信息工程大学硕士论文)”提出一种基于域转换的范围匹配算法DTRM(DomainTransformationforRangeMatch),充分利用TCAM表项中的冗余位压缩规则集,理想情况下可使范围扩张因子达到1.21以下,TCAM空间利用率提高到82%以上。文献“基于TCAM的范围匹配方法——C-TCAM(通信学报,2012,33(1):31-37)”提出一种基于TCAM的范围匹配方法C-TCAM(CompressedTCAM),通过二级压缩将2个扩展后的表项压缩成一个,最坏情况下范围扩张因子为W-1或W-2(W为关键字位宽,如端口号位宽为16),同时减少查找过程中无效表项参与比较来降低功耗。文献“Space-EfficientTCAM-BasedClassificationUsingGrayCoding(IEEETRANSACTIONSONCOMPUTERS,2012,61(1):18-30)”提出了基于格雷码的范围编码方法SRGE(ShortRangeGrayEncoding),利用格雷码相邻编码之间只有一位不同的特点对规则集进行压缩,但随着范围长度增加格雷编码效率大打折扣,只适用于较小范围,最坏情况下扩展因子达到了2W-2。报文分类中要同时匹配源端口和目的端口两个字段,上述文献为代表的范围匹配方案扩张因子是单字段下的平方,大幅增加了规则表项,造成大量存储冗余,同时提高了更新操作的复杂性和TCAM功耗,如最差情况下DTRM造成49倍扩张,C-TCAM造成225倍扩张,SRGE造成784倍扩张,同时DTRM和C-TCAM每条表项需要额外使用32个比特。文献“AFastRangeMatchingArchitecturewithUnitStorageExpansionRatioandHighMemoryUtilizationusingSBiCAMforPacketClassification(2014AnnualIEEEIndiaConference)”提出一种用于范围查找的新型存储器结构SBiCAM(SmartBinaryContentAddressableMemory),无需规则扩展,直接实现关键字与表项并行比较大小,而传统的TCAM只能判断是否相等,因而可实现高效的范围匹配。但其缺陷显而易见,SBiCAM是一种新型电路,投入实际应用尚需时日,从TCAM的发展历程可以判断SBiCAM即使投入生产也要经历一段漫长历程才能达到较理想的性能以满足应用需求。近年来出现TCAM分块存储策略,按照前缀长度进行分类存储,实现了前缀子集内表项的随机存放,提高了更新性能,而且查找操作只涉及TCAM部分区域,大幅降低了TCAM工作功耗,其中引入Bloomfilter对前缀分类处理是最近几年的一个创新。文献“LongestPrefixMatchingUsingBloomFilters(IEEE/ACMTRANSACTIONSONNETWORKING,2006,14(2):397-409)”利用Bloom_filter算法先对关键字的前缀长度进行预判断,再利用哈希查找表搜索前缀值,最差情况下需要使用N/2(N为前缀子集表项的最大数目)次哈希查找实现匹配,查找性能较TCAM差许多;文献“基于并行BP神经网络的路由查找算法(通信学报,2012,33(2):61-68)”提出BF_BP模型,第一步与文献“LongestPrefixMatchingUsingBloomFilters”相似,使用Bloomfilter匹配前缀长度,第二步利用BP反射神经网络实现前缀值匹配,然而其不足之处在于神经网络相比TCAM配置与更新要花费较长时间,需要多次训练实现神经单元学习。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于Bloomfilter算法和TCAM实现零范围扩张的高效范围匹配算法,以解决基于TCAM实现范围匹配方法存在的存储利用率低、功耗大的问题,本算法高效性体现在:高效存储、高速查找及低功耗。为达到上述目的,本专利技术具体方案如下。一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,适用于网络设备中端口范围匹配、存储保护中访存地址审查,设计了基于最长共同前缀的分段匹配(SegmentedMatchonLongestCommonPrefix,SMLCP)算法,将范围匹配转化为前缀匹配和特征区间比对两个步骤,实现了零范围扩张,使TCAM存储空间利用率达到100%;根据SMLCP算法设计了BF_TCAM模型,结合Bloomfilter的前缀分类处理优势和TCAM的高速查找特性,在保持高性能的同时大幅降低TCAM功耗;范围区间[s,t]内任意一整数点x,其二进制编码可以分为最长共同前缀和偏移量两段,其中LCP是区间内所有整数点的最长共同前缀,如LCP([37,57])=001*_****是范围[37,57]的LCP,40的二进制编码分为001*_****和01000两部分,*表示不关心;SMLCP算法利用范围区间的这种特性,将匹配过程分段进行,其具体步骤如下:步骤一,查找与关键字x任意长度前缀相匹配的范围区间,至多有W个范围的LCP与x相匹配,W为x二进制编码位宽;步骤二,根据x的偏移量精确挑选出匹配的范围。算法的关键在于第一步将搜索范围缩小至W个以下,从而大幅减小了查找范围。使用分类处理思想,根据前缀长度划分范围子集,各子集独立并行处理,能够随机插入或删除表项,支持增本文档来自技高网
...
基于BF_TCAM实现零范围扩张的高效范围匹配方法

【技术保护点】
一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,适用于网络设备中端口范围匹配、存储保护中访存地址审查,其特征在于:提出SMLCP算法将范围匹配转化为前缀匹配和特征区间比对两个步骤,实现零范围扩张,使TCAM存储空间利用率达到100%;根据SMLCP算法设计了BF_TCAM模型,结合Bloom filter的前缀分类处理优势和TCAM的高速查找特性,在保持高性能的同时大幅降低TCAM功耗;范围区间[s,t]内任意一整数点x,其二进制编码分为最长共同前缀和偏移量两段,其中LCP是区间内所有整数点的最长共同前缀;SMLCP算法利用范围区间的这种特性,将匹配过程分段进行,其具体步骤如下:步骤一,查找与关键字x任意长度前缀相匹配的范围区间,至多有W个范围的LCP与x相匹配,W为x二进制编码位宽;步骤二,根据x的偏移量精确挑选出匹配的范围。

【技术特征摘要】
1.一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,适用于网络设备中端
口范围匹配、存储保护中访存地址审查,其特征在于:提出SMLCP算法将范围匹配转化
为前缀匹配和特征区间比对两个步骤,实现零范围扩张,使TCAM存储空间利用率达到
100%;根据SMLCP算法设计了BF_TCAM模型,结合Bloomfilter的前缀分类处理优势
和TCAM的高速查找特性,在保持高性能的同时大幅降低TCAM功耗;范围区间[s,t]内
任意一整数点x,其二进制编码分为最长共同前缀和偏移量两段,其中LCP是区间内所
有整数点的最长共同前缀;SMLCP算法利用范围区间的这种特性,将匹配过程分段进行,
其具体步骤如下:
步骤一,查找与关键字x任意长度前缀相匹配的范围区间,至多有W个范围的LCP
与x相匹配,W为x二进制编码位宽;
步骤二,根据x的偏移量精确挑选出匹配的范围。
2.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其
特征在于:使用分类处理思想,根据前缀长度划分范围子集,各子集独立并行处理,能
够随机插入或删除表项,支持增量更新,提高更新性能;利用Bloomfilter对关键字
各长度前缀进行预判断,过滤无关范围子集参与比较,降低功耗;针对Bloomfilter
无法删除元素的缺陷设计Bloomfilter计数器,将位数组的每一位扩展为计数器,每
增加或删除一个元素时执行加1或减1操作;设计BF_TCAM模型,分为前缀预处理单元,
TCAM_RAM单元,更新单元和状态单元;BFPP单元对关键字进行判断,筛选出关键字所
在的前缀子集;TCAM_RAM单元存储所有范围的LCP、特征区间及附属信息,每个前缀子
集对应一组TCAM_RAM,由片选信号进行选择;更新单元维护Bloomfilter计数器,实
时更新BFPP单元的Bloomfilter和TCAM_RAM,减少电路资源开销;状态单元记录工作
状态,指示关键字是否有效;利用SMLCP特征区间比对特点优化了比较器设计,降低电
路资源开销。
3.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其
特征在于:配置过程分为4个步骤:
步骤1、获取范围区间;
步骤2、计算范围区间的lcp,根据LCP前缀长度划分子集;
步骤3、首先训练各子集的Bloomfilter计数器,对每个范围的LCP进行K组哈希
计算,记录训练结果,当学习完所有范围后更新BFPP单元Bloomfilter的位数组,对
应Bloomfilter计数器不为0的位被置1;
步骤4、配置TCAM和RAM,根据前缀长度找到相应TCAM块存入lcp值,范围的特

\t征区间和附属信息存入RAM相应位置,该步骤与步骤3在时间上同步,没有序要求,完
成配置。
4.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其
特征在于:查找过程分为3个步骤:
步骤1、前缀预处理,Bloomfilter对关键字各个长度前缀进行运算,将命中的前
缀子集标记在匹配向量match_vector中,过滤掉其它子集,选中ma...

【专利技术属性】
技术研发人员:刘航天方开莎
申请(专利权)人:刘航天方开莎
类型:发明
国别省市:河南;41

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1