基于PCIeXDMA实现多进程并发的方法与流程

文档序号:36280432发布日期:2023-12-06 22:57阅读:92来源:国知局
基于的制作方法

本发明涉及密码卡及数据加密,特别是指一种基于pcie xdma实现多进程并发的方法。


背景技术:

1、信息安全越来越受到人们的关注,密码卡系统是解决信息安全问题的有效手段。

2、密码卡系统主要由密码卡硬件及控制程序、驱动程序和应用程序三个部分组成;密码卡硬件主控为fpga(field programmable gate array,现场可编程门阵列)芯片,控制程序采用fpga硬件逻辑编程,应用程序为上位机程序,驱动程序位于逻辑程序和应用程序之间,起到上下数据传递的作用;密码卡对外采用pcie(peripheral componentinterconnect express,外围组件快速互连,是一种高速串行计算机扩展总线标准)2.0接口,fpga芯片通过xdma(xilinx系列fpga中官方自带的pcie高级ip)ip核实现了pcie 2.0协议和dma(direct memory access,直接存储器访问)传输功能。密码卡系统结构图参见图1。

3、xdma是fpga自带的pcie ip核,该ip核里封装了pcie协议的事务层、数据链路层和物理层,并在事务层留出数据端口用于进行开发。xdma以内存空间作为数据交互的基础,通过操作dma描述符来实现数据传输;dma描述符包括源地址、目的地址和dma长度等信息。xdma数据传输方向分为主机到板卡h2c(host to card)和板卡到主机c2h(card to host),该ip核还提供多条用户中断线,用于向主机生成中断。xdma ip核具有以下特点:支持轮询模式;支持多种数据位宽;支持64位源地址、目的地址和描述符地址;支持用户可配置接口;支持包括msi(message signaled interrupt,信息信号中断)和msi-x(message signaledinterrupt extended,扩展的信息信号中断)在内的多种中断机制;可支持每个描述符256mb的数据传输;支持描述符连续获取;支持pcie事务dma引擎。

4、pcie密码卡在实际使用中,会面临上位机应用程序多进程并发的需求,即多个应用程序进程同时访问pcie密码卡的不同密码算法模块进行密码运算;为满足多进程并发的需求,一般采用多密码算法模块与多dma通道相结合的方式,使用一个通道去对应一个应用进程;由于当前pcie 2.0 xdma ip核最多能支持两个dma通道,在超过两个进程的情况下,无法满足一个通道去对应一个进程;因此,如何在现有的pcie 2.0 xdma基础上,去满足多进程并发的需求,成为当前需要解决的问题。


技术实现思路

1、本发明要解决的技术问题是提供一种基于pcie xdma实现多进程并发的方法,以满足应用程序多进程并发的需求,并提升系统密码运算速度。

2、为解决上述技术问题,本发明提供技术方案如下:

3、一种基于pcie xdma实现多进程并发的方法,用于密码卡系统,所述密码卡系统包括主机和连接在所述主机上的密码卡,所述主机上安装有dpdk,所述密码卡上设有采用xdma的fpga,其中,所述fpga包括依次连接的h2c dma传输通道、数据包解析模块、密码算法调度模块、密码算法模块、数据包整合模块和c2h dma传输通道,所述密码算法模块为多个且并行运行;

4、所述fpga上的逻辑程序执行的方法包括:

5、步骤10:h2c dma传输通道收到主机上的应用程序经dpdk驱动程序发来的数据包后,经数据包解析模块对数据包进行解析和过滤;其中,所述数据包分为包头和数据两部分,在包头中定义了proc_seq和enc_seq两个字段,分别代表应用程序进程的序列号和要调用的密码算法模块的序列号;

6、步骤11:符合格式要求的数据包,被送入密码算法调度模块,该模块以数据包为单位,将数据包中的数据按enc_seq字段的序列号分发给对应的密码算法模块;其中,每个密码算法模块被预先赋予唯一的序列号,对应数据包报文中的enc_seq字段;

7、步骤12:密码算法模块对数据包进行运算;

8、步骤13:经过密码算法模块处理后的数据包,报文中的proc_seq字段和enc_seq字段保持不变,经数据包整合模块处理后通过c2h dma传输通道经dpdk驱动程序发送给上位机软件。

9、本发明具有以下有益效果:

10、本发明提供的基于pcie xdma实现多进程并发的方法,在现有的pcie 2.0 xdma基础上,从底层fpga硬件逻辑程序、驱动程序和上位机应用程序三个部分进行设计,相互配合,满足了应用程序多进程并发的需求,并提升了系统密码运算速度。



技术特征:

1.一种基于pcie xdma实现多进程并发的方法,用于密码卡系统,其特征在于,所述密码卡系统包括主机和连接在所述主机上的密码卡,所述主机上安装有dpdk,所述密码卡上设有采用xdma的fpga,其中,所述fpga包括依次连接的h2c dma传输通道、数据包解析模块、密码算法调度模块、密码算法模块、数据包整合模块和c2h dma传输通道,所述密码算法模块为多个且并行运行;

2.根据权利要求1所述的方法,其特征在于,所述步骤10中,不符合报文格式要求的数据包被丢弃。

3.根据权利要求1所述的方法,其特征在于,所述步骤13中,上位机软件根据proc_seq字段,将数据包传递给相应的应用程序。

4.根据权利要求1所述的方法,其特征在于,所述dpdk驱动程序执行的方法包括:

5.根据权利要求4所述的方法,其特征在于,所述步骤20包括:

6.根据权利要求4所述的方法,其特征在于,所述dpdk驱动程序执行的方法还包括:

7.根据权利要求1-6中任一所述的方法,其特征在于,应用程序侧设有软件开发工具库sdk和后台服务程序,应用程序侧执行的方法包括:

8.根据权利要求7所述的方法,其特征在于,应用程序侧执行的方法还包括:


技术总结
本发明公开了一种基于PCIe XDMA实现多进程并发的方法,属于密码卡及数据加密技术领域,其从底层FPGA硬件逻辑、驱动程序和上位机应用程序三个部分进行设计,通过FPGA硬件编程设计了多个不同的密码算法模块,多个密码算法模块之间并行运行,实现了以数据包为单位的数据分发和密码运算;驱动程序在FPGA逻辑程序的基础上进行了XDMA IP核DPDK的实现,提供了逻辑上多个写通道的支持;应用程序以驱动实现为基础,实现了整个读写逻辑上的多通道支持,保障多个应用程序进程能够并发访问PCIe密码卡;本发明既满足了多进程并发的需求,又充分利用了FPGA硬件实现密码运算的速度优势,提升了系统的密码运算速度。

技术研发人员:王磊,管彦亮,苏云学,刘雪飞,白家栋,宗成强,王荣欣,王培培,韩志伟
受保护的技术使用者:山东华翼微电子技术股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1