【技术实现步骤摘要】
基于PCIe XDMA实现多进程并发的方法
[0001]本专利技术涉及密码卡及数据加密
,特别是指一种基于
PCIe XDMA
实现多进程并发的方法
。
技术介绍
[0002]信息安全越来越受到人们的关注,密码卡系统是解决信息安全问题的有效手段
。
[0003]密码卡系统主要由密码卡硬件及控制程序
、
驱动程序和应用程序三个部分组成;密码卡硬件主控为
FPGA
(
Field Programmable Gate Array
,现场可编程门阵列)芯片,控制程序采用
FPGA
硬件逻辑编程,应用程序为上位机程序,驱动程序位于逻辑程序和应用程序之间,起到上下数据传递的作用;密码卡对外采用
PCIe
(
Peripheral Component Interconnect Express
,外围组件快速互连,是一种高速串行计算机扩展总线标准)
2.0
接口,
FPGA
芯片通过
XDMA
(
Xilinx
系列
FPGA
中官方自带的
PCIE
高级
IP
)
IP
核实现了
PCIe 2.0
协议和
DMA
(
Direct Memory Access
,直接存储器访问)传输功能
。
密码卡系统结 ...
【技术保护点】
【技术特征摘要】 【专利技术属性】
1.
一种基于
PCIe XDMA
实现多进程并发的方法,用于密码卡系统,其特征在于,所述密码卡系统包括主机和连接在所述主机上的密码卡,所述主机上安装有
DPDK
,所述密码卡上设有采用
XDMA
的
FPGA
,其中,所述
FPGA
包括依次连接的
H2C DMA
传输通道
、
数据包解析模块
、
密码算法调度模块
、
密码算法模块
、
数据包整合模块和
C2H DMA
传输通道,所述密码算法模块为多个且并行运行;所述
FPGA
上的逻辑程序执行的方法包括:步骤
10
:
H2C DMA
传输通道收到主机上的应用程序经
DPDK
驱动程序发来的数据包后,经数据包解析模块对数据包进行解析和过滤;其中,所述数据包分为包头和数据两部分,在包头中定义了
proc_seq
和
enc_seq
两个字段,分别代表应用程序进程的序列号和要调用的密码算法模块的序列号;步骤
11
:符合格式要求的数据包,被送入密码算法调度模块,该模块以数据包为单位,将数据包中的数据按
enc_seq
字段的序列号分发给对应的密码算法模块;其中,每个密码算法模块被预先赋予唯一的序列号,对应数据包报文中的
enc_seq
字段;步骤
12
:密码算法模块对数据包进行运算;步骤
13
:经过密码算法模块处理后的数据包,报文中的
proc_seq
字段和
enc_seq
字段保持不变,经数据包整合模块处理后通过
C2H DMA
传输通道经
DPDK
驱动程序发送给上位机软件
。2.
根据权利要求1所述的方法,其特征在于,所述步骤
10
中,不符合报文格式要求的数据包被丢弃
。3.
根据权利要求1所述的方法,其特征在于,所述步骤
13
中,上位机软件根据
proc_seq
字段,将数据包传递给相应的应用程序
。4.
根据权利要求1所述的方法,其特征在于,所述
DPDK
驱动程序执行的方法包括:步骤
20
:发送端
DPDK
驱动程序在发送函数开始处添加锁,当其中一个通道的发送进入临界区后,其他通道会在入口处等待,直到前一个发送结束退出临界区释放锁后,下一个通道的数据才继续发送
。5.
根据权利要求4所述的方法,其特征在于,所述步骤
20
包括:步骤
201
:当主机要向密码卡发送数据时,
DPDK
驱动程序接收应用程序传递的缓存区
mbuf
的地址,其中该
mbuf
由应用程序填充了待发送的数据;步骤
202
技术研发人员:王磊,管彦亮,苏云学,刘雪飞,白家栋,宗成强,王荣欣,王培培,韩志伟,
申请(专利权)人:山东华翼微电子技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。