[发明专利]一种基于硬件查找表的模式字符的查找方法有效
申请号: | 201611249587.5 | 申请日: | 2016-12-29 |
公开(公告)号: | CN106649836B | 公开(公告)日: | 2019-11-29 |
发明(设计)人: | 陈振家;何洪楷 | 申请(专利权)人: | 武汉新芯集成电路制造有限公司 |
主分类号: | G06F16/9032 | 分类号: | G06F16/9032;G06F16/903;G06F16/901 |
代理公司: | 31272 上海申新律师事务所 | 代理人: | 俞涤炯<国际申请>=<国际公布>=<进入 |
地址: | 430205 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 硬件 查找 模式 字符 方法 | ||
本发明涉及存储器技术领域,尤其涉及一种基于硬件查找表的模式字符的查找方法,存储区包括多个存储单元,存储单元于存储区内的访问地址的编址方式对应一预定编码字符集,还提供一模式字符串,存储单元的位宽等于模式字符串的字符长度,存储单元的每一位分别顺序对应模式字符串中的每个字符,通过将存储区中对应模式字符串中每个字符的存储单元的对应位,置逻辑值1,从而通过读取对应位实现模式字符的查找;上述技术方案采用硬件实现方式的查找匹配过程,不占用CPU资源,提高系统并行处理能力,利用硬件运行速度快的特点,在若干个硬件时钟周期内即可得到匹配结果,能对实时输入的高速待匹配数据流进行实时的查找匹配结果输出。
技术领域
本发明涉及存储器技术领域,尤其涉及一种基于硬件查找表的模式字符的查找方法。
背景技术
字符串匹配即对一段数据进行指定字符串的查找匹配,可用于对带有指定特征字符串的一段数据进行筛选、过滤等应用。
现有字符串匹配方法多采用高级编程语言(如C语言,Java等)编程的软件方式实现匹配算法,例如:哈希、KMP算法等,通过不同的查找顺序减少得到匹配结果的时间。
但是,用高级编程语言编程运行于CPU(Central Processing Unit,中央处理器),以软件的形式实现字符串匹配的方法并行处理能力相对较差,速度相对较慢,需考虑运行软件算法的CPU调度问题,不适合用于对实时高速数据流进行字符串匹配。
发明内容
针对上述问题,本发明提出了一种基于硬件查找表的查找模式字符串的方法,所述硬件查找表包括至少一个存储区;
所述存储区包括多个存储单元,所述存储单元于所述存储区内的访问地址的编址方式对应一预定编码字符集,还提供一模式字符串,所述存储单元的位宽等于所述模式字符串的字符长度,所述存储单元的每一位分别顺序对应所述模式字符串中的每个字符;
还包括以下步骤:
步骤S1,将所述存储区中,对应所述模式字符串中每个字符的所述存储单元的对应位,置逻辑值1;
步骤S2,获取一目标字符串;
步骤S3,读取所述目标字符串的第一位;
步骤S4,定义读取到的所述字符为当前字符;
步骤S5,以所述预定编码字符集对所述当前字符进行解码,以获取所述当前字符对应的编码;
步骤S6,根据所述编码于所述存储区查找对应的所述存储单元;
步骤S7,于所述步骤S6查找到的所述存储单元中获取第一位;
步骤S8,判断所述步骤S7中获取的所述第一位的值是否为1,如果是则提供一数字值N,定义N=1,并执行所述步骤S9,如果否执行所述步骤S17;
步骤S9,判断所述模式字符串的字符长度是否等于1,如果是执行步骤S16;
步骤S10,判断所述目标字符串剩余的字符长度是否小于所述模式字符串的长度-N,如果是执行步骤S18;
步骤S11,读取所述目标字符串的下一位,定义读取到的字符为第二当前字符;
步骤S12,以所述预定编码字符集对所述第二当前字符进行解码,以获取所述第二当前字符对应的编码;
步骤S13,根据所述编码于所述存储区查找对应的所述存储单元;
步骤S14,令N=N+1,于所述步骤S13查找到的所述存储单元中获取第N位;
步骤S15,判断所述步骤S14中获取的所述第N位的值是否为1,如果是返回执行所述步骤S11,如果否执行所述步骤S17;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉新芯集成电路制造有限公司,未经武汉新芯集成电路制造有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611249587.5/2.html,转载请声明来源钻瓜专利网。