[发明专利]基于FPGA+NPU的高速正则表达式匹配混合系统及方法有效
申请号: | 201710036627.6 | 申请日: | 2017-01-18 |
公开(公告)号: | CN106776456B | 公开(公告)日: | 2019-06-18 |
发明(设计)人: | 苏金树;陈曙晖;赵宝康;徐成成;王小峰;王飞;张博锋;孙一品 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F15/167 | 分类号: | G06F15/167;G06F13/16;H04L12/26 |
代理公司: | 深圳市兴科达知识产权代理有限公司 44260 | 代理人: | 王翀 |
地址: | 410000 湖南省长*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga npu 高速 正则 表达式 匹配 混合 系统 方法 | ||
1.一种基于FPGA+NPU的高速正则表达式匹配方法,其特征在于包括以下步骤:
第一步,构建FPGA+NPU的软硬件结合匹配的混合系统,该系统包括正则表达匹配引擎;正则表达式匹配引擎由硬件引擎和软件引擎两部分组成,硬件引擎是通过FPGA芯片上的可编程逻辑元件布局、布线、烧录生成,软件引擎通过在NPU上软件编程实现,硬件引擎和软件引擎之间通过数据缓冲区连接;所述FPGA芯片上设计若干个硬件引擎,NPU上根据其支持的线程数实例化若干个软件线程;硬件引擎的存储器包括两级,FPGA的片上RAM作为一级存储器,存储访问概率较高的DFA状态;RAM存储器划分成多个存储块,每两个硬件引擎通过双端口RAM独占一个RAM存储块;FPGA片外DDR3SDRAM作为二级存储器,存储整个混合自动机的状态表项,混合自动机的状态表项由所有的硬件引擎和软件引擎共享;
第二步、处理正则表达式,生成混合自动机;首先将正则表达式规则集编译成一个NFA,然后将NFA再编译成混合自动机;对混合自动机的状态标识进行改写,对DFA状态标识,若该DFA状态为终止状态,则将其标识的第一个比特位置1,若该DFA为边界状态,则将其标识的第二个比特位置1;对NFA状态标识,若该NFA状态为终止状态,则将其标识的第一个比特位置1;
第三步、求解混合自动机中经常被访问的DFA状态,即高频DFA状态;首先,生成随机长度和内容的报文100MB;其次,使用编译好的混合自动机hybrid-FA对随机报文进行匹配;统计匹配过程中每个DFA状态的访问次数,将前100个DFA状态作为选定的高频状态;
第四步、混合自动机状态表项配置;混合自动机状态表项包括头部DFA状态表、NFA状态表、边界状态对应的NFA集合表、终止状态对应的规则ID表;将第二步计算的100个高频DFA状态表项配置到FPGA上每一个RAM存储块中,全部的DFA状态表、NFA状态表、边界状态对应的NFA集合表、终止状态对应的规则ID表均配置到外置的DDR3SDRAM中;
第五步、报文匹配处理流程;报文处理流程主要包括两个步骤,报文接收与报文匹配,报文匹配又分为FPGA部分硬件引擎的匹配和NPU部分的软件引擎匹配;报文接收线程直接从链路上捕获报文,去除报文头后转存至CPU内在中的报文缓冲区,硬件引擎从报文缓冲区中读取接收到的报文,随后进行匹配,硬件引擎匹配过程中若访问到边界状态,则将剩余的报文及当前的边界状态通过FPGA上的任务传输单元传递给软件引擎,由软件引擎完成剩余报文的匹配工作。
2.如权利要求1所述的一种基于FPGA+NPU的高速正则表达式匹配方法,其特征在于,所述硬件引擎和软件引擎以流水化的方式工作,网络报文的匹配先由FPGA上的硬件引擎处理,硬件引擎处理完成后,再由FPGA上的任务传输单元交由NPU的软件引擎处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710036627.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测算经营性土地收购成本的计算器
- 下一篇:数据处理装置和服务器