【技术实现步骤摘要】
本专利技术涉及一种基于Bloomfilter算法和TCAM(TernaryContentAddressableMemory,三态内容寻址存储器)实现零范围扩张的高效范围匹配方法,主要用于解决报文分类中端口范围匹配,存储保护中访存地址的审查等,实现访问控制、安全过滤、带宽控制等功能,广泛应用于防火墙、路由器、交换机、分布式存储网络、可信计算安全平台等设备中。这些应用对查找性能要求很高,高速的范围匹配是其实现的技术支撑。
技术介绍
目前业界普遍使用TCAM实现高速查找表。和普通内存通过地址寻找内容不同,TCAM通过内容定位地址,它将查找输入的关键字和所有表项进行并行比较来定位关键字匹配的存储地址,根据得到的地址在RAM中索引规则内容。TCAM可以在固定的时钟周期完成查找操作,目前其时钟周期可以达到2ns,实现500MSPS的查找速率。TCAM三态特性需要使用多达16个晶体管来实现一个比特的存储,导致芯片面积较大且价格不菲,而其并行比较特性使得功耗很高,一个18Mbit的TCAM功耗高达15W。TCAM突出的问题在于其不适于实现范围匹配,它的三态性便于实现精确匹配和前缀匹配。比如TCAM可以方便地表达报文分类中的协议字段和IP地址字段,但端口范围无法直接实现。目前已有方案是将范围匹配转换成前缀匹配和精确匹配,一个范围字段往往映射出多条匹配表项,称为范围扩张(rangeexpansion)。范围扩张降低了TCAM空间使用效率,造成了较大的配置负载,提高了更新代价,同时使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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。