1.一种同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,应用于一种同步FPGA-CPU架构的正则表达式匹配系统,所述正则表达式匹配系统包括通信连接的CPU芯片和FPGA芯片,所述CPU芯片包括多个CPU核心,一个所述CPU核心用于控制一个服务包的正则表达式匹配处理,所述CPU核心通过一个管理员线程调度各工人线程将一个服务包下的各报文发送到所述FPGA芯片,并且通过所述管理员线程分发所述FPGA芯片返回的各报文对应的匹配结果到各所述工人线程,一个所述工人线程对应存储一个报文及所述报文对应的匹配结果,所述CPU核心对应的数据队列存储在所述CPU芯片的DMA区域中,所述服务包通过内存映射I/O技术通知所述FPGA芯片与所述数据队列之间的数据收发;所述正则表达式匹配方法包括步骤:所述管理员线程和各所述工人线程分别进行初始化;所述管理员线程分别向各所述工人线程发送就绪指令,使各所述工人线程开始“发送报文-回收结果”的循环;当一个服务包对应的所有所述工人线程的状态均置为结束时,所述管理员线程退出;其中,“发送报文-回收结果”的循环的过程包括:所述管理员线程不断读取结果队列;所述工人线程向所述FPGA芯片发送完一个报文后,开始准备接收所述FPGA芯片返回的匹配结果并将自身状态置为待命状态;在所述FPGA芯片返回匹配结果后,所述管理员线程获取所述匹配结果中的线程身份标识并查看所述线程身份标识对应的所述工人线程是否处于待命状态;所述管理员线程在所述工人线程处于待命状态时告知所述工人线程读取所述匹配结果,否则等待所述工人线程处于待命状态;所述工人线程将自身状态置为忙状态并完成所述匹配结果的读取与后处理,所述管理员线程准备下一次的数据读取。
2.根据权利要求1所述的同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,还包括步骤:所述管理员线程在设定的长时间段内未能成功读取到数据时退出。
3.根据权利要求1所述的同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,所述管理员线程在等待所述工人线程处于待命状态的过程中,允许另一个正在等待发送报文的工人线程插队传输一个报文;若没有正在等待发送报文的工人线程,则将所述数据队列内的匹配结果队列中排名靠前的设定数量个匹配结果重新排序。
4.根据权利要求1至3任一项所述的同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,所述管理员线程不断读取结果队列的过程中,若读取结果队列为空,则所述管理员线程挂起直到至少有一个工人线程获得互斥量后,恢复读取结果队列。
5.根据权利要求4所述的同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,还包括步骤:所述管理员线程维护一个定时器并在编辑读取指针后检查定时器,当定时器对CPU核心的CPU时间片计数达到特定阈值时通知更新所述FPGA芯片中的寄存器并重置定时器。
6.根据权利要求4所述的同步FPGA-CPU架构的正则表达式匹配方法,其特征在于,还包括步骤:将所述正则表达式匹配系统中的所述管理员线程切换为管理员协程,将各所述工人线程分别切换为各工人协程。
7.一种同步FPGA-CPU架构的正则表达式匹配系统,其特征在于,包括通信连接的CPU芯片和FPGA芯片,所述CPU芯片包括多个CPU核心,一个所述CPU核心用于控制一个服务包的正则表达式匹配处理,所述CPU核心通过一个管理员线程调度各工人线程将一个服务包下的各报文发送到所述FPGA芯片,并且通过所述管理员线程分发所述FPGA芯片返回的各报文对应的匹配结果到各所述工人线程,一个所述工人线程对应存储一个报文及所述报文对应的匹配结果,所述CPU核心对应的数据队列存储在所述CPU芯片的DMA区域中,所述服务包通过内存映射I/O技术通知所述FPGA芯片与所述数据队列之间的数据收发;所述正则表达式匹配系统用于实现权利要求1至6任一项所述的同步FPGA-CPU架构的正则表达式匹配方法。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的同步FPGA-CPU架构的正则表达式匹配方法的步骤。