论文部分内容阅读
正则表达式是一种热门的字符匹配技术,在BGP路由协议中得到了重要的应用,本文的研究内容的是如何提高正则表达式的匹配速度。在BGP路由协议中,正则表达式通过软件实现的方式用于路由信息过滤,但大量的过滤事务和自身效率问题在一定程度上影响了BGP的性能,如何提高正则表达式的匹配速度是解决问题的关键。在这样的项目需求下,本研究课题应运而生。经过对国内外关于正则表达式的实现技术进行了调研,本文提出了一种新的正则表达式实现技术,它以BGP网络路由协议的应用为背景,以嵌入式平台为运行环境,采用了POSIX正则表达式库的软件算法,结合软件平台的灵活和硬件平台的高效,使得嵌入式Linux软件系统和FPGA硬件协同工作,通过硬件加速的方式完成了对正则表达式的匹配。具体实施中,系统被划分成了软件系统模块、硬件系统模块和负责软硬件通信的接口等三个组成部分。输入的正则表达式和字符串首先进入软件系统模块,它基于嵌入式Linux软件系统实现,结合堆栈技术,把正则表达式编译成为机器能识别并执行的执行码指令,并生成fastmap数据。因为软件系统模块和硬件系统模块的实现平台不同,运行速度级别也有差异,故通信接口负责它们之间的数据传输。硬件系统模块基于FPGA实现,结合堆栈技术,根据得到的执行码、字符串和fastmap数据来完成正则表达式的匹配计算,得到最终是否匹配的结果。在整体设计中,系统具有“硬件加速”、“默认使用最短匹配原则”和“放弃计算匹配细节”等独到的设计特点,系统内部高效运作,很好地完成了设计任务。文章在最后给出的逻辑测试和性能测试证明,系统不仅很好地完成了设计逻辑,并且拥有良好的加速效果,表明了本次科研设计是成功的。本文的创新和贡献在于:(1)总结了当前各种正则表达式的实现技术,结合了软件解决方案和硬件解决方案的优点,创新出软硬件协同工作的解决方案。(2)在嵌入式领域上提高了正则表达式的匹配速度,有力地支持了路由器等设备,拓展了正则表达式在嵌入式平台上的应用领域。