[发明专利]基于TCAM的非确定性有限自动机的匹配方法和装置有效
| 申请号: | 201210021964.5 | 申请日: | 2012-01-31 |
| 公开(公告)号: | CN103226551A | 公开(公告)日: | 2013-07-31 |
| 发明(设计)人: | 董群峰;彭坤杨 | 申请(专利权)人: | 中国科学技术大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京凯特来知识产权代理有限公司 11260 | 代理人: | 郑立明;黄晓军 |
| 地址: | 230026 安*** | 国省代码: | 安徽;34 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 tcam 确定性 有限 自动机 匹配 方法 装置 | ||
1.一种基于TCAM的非确定性有穷状态自动机的匹配方法,其特征在于,包括:
对非确定性有穷状态自动机NFA的状态和活跃状态子集进行编码,将所述NFA的每个状态转移边用一个三态内容寻址存储器TCAM条目表示,每个TCAM条目由匹配域和目的域组成,所述匹配域包括:源状态域、输入字符域,所述目的域包括目的状态域或者包括目的状态域和掩码域;
将所述NFA的源活跃状态子集的编码和输入字符的编码的拼接作为搜索关键词,按照所述搜索关键字在所述NFA的所有TCAM条目的匹配域中进行搜索,将获取的目的活跃状态子集的编码作为输出结果,所述源活跃状态子集为所述NFA当前所有同时活跃的状态的集合,所述目的活跃状态子集为在所述NFA中输入所述输入字符、进行状态转换后,得到的同时活跃的状态的集合。
2.根据权利要求1所述的基于TCAM的非确定性有穷状态自动机的匹配方法,其特征在于,对所述NFA的状态和活跃状态子集进行编码,包括:
将所述活跃状态子集编码为一个活跃向量,该活跃向量由所述活跃状态子集中包括的每个状态所归属的兼容组中的活跃码进行拼接得到,所述兼容组是由若干NFA状态组成的集合,该集合中的状态两两之间都不能同时活跃,每个自循环状态单独组成一个自循环兼容组,所述自循环状态是NFA中转移到自身的边超过了一定阈值的状态,所述活跃码为所述兼容组为组内每个状态各自分配的一个唯一的非全0的编码。
3.根据权利要求1所述的基于TCAM的非确定性有穷状态自动机的匹配方法,其特征在于,所述的将非确定性有穷状态自动机NFA的每个状态转移边用一个三态内容寻址存储器TCAM条目表示,每个TCAM条目由匹配域和目的域组成,包括:
将所述TCAM条目的目的域分两种方法表示:方法一,所述目的域仅由目的状态域组成,所述目的状态域存放的是目的活跃状态子集的活跃向量;方法二,所述目的域由目的状态域和掩码域组成,所述掩码域的长度为自循环兼容组的数目,即为每个自循环兼容组依次分配一个比特;若所述自循环兼容组在所述掩码域中的掩码值为“1”,则在目的状态域中存储所述自循环兼容组在目的活跃状态子集中的活跃码与所述自循环兼容组在源活跃状态子集中的活跃码的异或结果,否则直接存储所述自循环兼容组在目的活跃状态子集中的活跃码;
所述编码NFA中所有的状态转移的方法为:
枚举所述NFA中所有的状态转移,将每一个状态转移所对应的源状态域、输入字符域和目的域存储在一个TCAM条目中,所述源状态域中存储源状态的编码,所述输入字符域中存储输入字符的编码,所述目的域中的目的状态域中存储目的状态的编码;
或者;
获取所述NFA中的每个输入字符c的有效集Ec,该Ec是所有自循环状态以及所有对所述输入字符有转移边的NFA状态的集合,针对每个输入字符计算Ec与所述NFA中每一个活跃状态子集S的交集,这些交集组成的集合记为Ic,即Ic=∪s(Ec∩S),将Ic中的各个交集按集合大小的非递增顺序进行排序;
依次处理排过序的所述Ic中的每一个交集Ec∩S,为每一个交集Ec∩S生成一个新的TCAM条目,在所述新的TCAM条目的输入字符域中存储输入字符的编码;
所述Ec∩S的活跃向量按如下方式生成,对Ec∩S中的每一个状态s,设置s所在的兼容组的编码为s的活跃码,对每一个自循环状态s′,若s′∈Ec但则设置s′所在的兼容组的编码为“0”,其他的兼容组的编码均设置为全“*”,将所有兼容组的编码组合成活跃向量,在所述新的TCAM条目的源状态域中存储所述活跃向量;
对Ec∩S中的所有状态,计算它们经过所述输入字符所转移到的目的状态的集合记为D,在所述新的TCAM条目的目的状态域中存储所述D的活跃向量;
当所述目的域中包含掩码域时,则对Ec∩S中的每一个自循环状态s′,在掩码域中为s′分配一个比特,判断s′是否存在一条边经过所述输入字符转移到自身,如果是,则在s′的掩码域中设置s′所在的兼容组的编码为1;否则,在s′的掩码域中设置s′所在的兼容组的编码为0;
当所述目的域包含掩码域时,则对Ec∩S中的每一个自循环状态s′,若s′所在的兼容组在掩码域中的值为1,则s′的目的状态域中存储s′在目的状态域中的编码与s′在源状态域中的编码的异或结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210021964.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:访问数据库的方法和装置以及数据库管理系统
- 下一篇:隔离型高速数据采集卡





