[发明专利]一种基于FPGA的并行字符串匹配算法有效

专利信息
申请号: 201810307836.4 申请日: 2018-04-08
公开(公告)号: CN108628953B 公开(公告)日: 2022-02-15
发明(设计)人: 黄以华;殷海元 申请(专利权)人: 中山大学
主分类号: G06F16/9032 分类号: G06F16/9032
代理公司: 广州粤高专利商标代理有限公司 44102 代理人: 林丽明
地址: 510275 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 fpga 并行 字符串 匹配 算法
【权利要求书】:

1.一种基于FPGA的并行字符串匹配算法,其特征在于:通过FPGA并行处理在一个时钟周期找到模式字符串前j个字符的子串,以及它的前缀和后缀的最大公共元素值,通过前缀和后缀的最大公共元素值可直接得到并输出NEXT数组,利用NEXT数组可实现多个模式的模式字符串并行匹配,根据实现的NEXT函数,每一个模式对应一个匹配引擎,同时对不同的NEXT函数值和模式字符串,实现的一对多同时比较,最后根据匹配的标志输出最终的匹配结果。

2.根据权利要求1所述的基于FPGA的并行字符串匹配算法,其特征在于:所述模式字符串前j个字符的子串,以及它的前缀和后缀的最大公共元素值的具体寻找过程如下:

步骤1:列出前j=2个字符的子串到除去模式字符串本身的最大的子串;

步骤2:分别比较步骤1中每一个子串的相同大小的前后缀,如果比较相等,输出用一位标志位s=1表示;

步骤3:每一个子串所有的比较的输出标志位s作为一个优先级编码器的输入,编码器输出即可得到所述模式字符串前j个字符所构成的字符串最大的前后缀的公共元素值;

步骤4:通过NEXT函数值与前j个字符的子串,它的前后缀的最大公共元素值的关系转而得到NEXT数组。

3.根据权利要求2所述的基于FPGA的并行字符串匹配算法,其特征在于:所述得到NEXT数组的具体过程如下:

根据NEXT函数值的定义知,NEXT[1]=0;如果最大公共元素值Max[1]=0,也就是说,j=2时,前2字符是不等的,可得NEXT[2]=1;即如果得到的Max值为零,那么就等于1;如果,最大公共元素值不为零,那么就满足NEXT[j]=Max[j-1];即可一一对应NEXT函数值。

4.根据权利要求2所述的基于FPGA的并行字符串匹配算法,其特征在于:在所述模式字符串前j个字符的子串,以及它的前缀和后缀的最大公共元素值的实现方式如下:

步骤1:在模式字符串存储中按地址为分别可得到前j个字符的子串,每一个子串由8bit的ASCII码表示,j的值等于字节的数目;

步骤2:根据步骤1中的得到的j字节的二进制数,通过相应位的比较器,比较器输出1bit,相等输出为1,否则为0;

步骤3:根据每一个前j个字符的子串,它每一个比较器输出由高位到低位作为编码器的输入,以最高位优先级编码,得到对应第j位的Max值。

5.根据权利要求3所述的基于FPGA的并行字符串匹配算法,其特征在于:实现NEXT函数值的方式如下:

步骤1:根据得到Max值,此处用到比较器,判断Max值是否为零,然后在不为零的情况用到加法器执行加1操作,否则不执行,直接对应为赋值为1;

步骤2:根据上面比较器和加法器共同作用的结果后,依次按地址存放得到NEXT函数值。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810307836.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top