[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN114943087A - 一种多算法核高性能sr-iov加解密系统及方法 - Google Patents

一种多算法核高性能sr-iov加解密系统及方法 Download PDF

Info

Publication number
CN114943087A
CN114943087A CN202210583322.8A CN202210583322A CN114943087A CN 114943087 A CN114943087 A CN 114943087A CN 202210583322 A CN202210583322 A CN 202210583322A CN 114943087 A CN114943087 A CN 114943087A
Authority
CN
China
Prior art keywords
algorithm
core
encryption
decryption
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210583322.8A
Other languages
English (en)
Inventor
颜昕明
何军
王亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Wise Security Technology Co Ltd
Original Assignee
Guangzhou Wise Security Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Wise Security Technology Co Ltd filed Critical Guangzhou Wise Security Technology Co Ltd
Priority to CN202210583322.8A priority Critical patent/CN114943087A/zh
Publication of CN114943087A publication Critical patent/CN114943087A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种多算法核高性能SR‑IOV加解密系统及方法,包括主机、带有多算法IP核的PCIE芯片以及若干客户机,主机和客户机之间创建有对应的共享内存,所述主机包括VF算法核管理器和PF驱动,所述PF驱动负责从所述PCIE芯片的VF信箱中断寄存器和算法IP核中断状态寄存器中接收VF信箱MSI中断信号及算法IP核完成MSI中断信号,并将算法IP核完成状态发送给主机的所述VF算法核管理器;所述VF算法核管理器负责配置和管理算法IP核及客户机的VF,将算法IP核完成状态消息写入到对应的客户机中的共享内存消息队列中,所述客户机通过共享内存消息队列获取算法IP核运行完成状态,从而实现客户机中创建的线程被唤醒后完成加解密操作程序。

Description

一种多算法核高性能SR-IOV加解密系统及方法
技术领域
本发明涉及加解密芯片技术领域,尤其涉及一种多算法核高性能SR-IOV加解密系统及方法。
背景技术
在PCIe加解密多算法核芯片中,PCIE虚拟化加密卡的加解密性能和效率变得尤为重要。
上位机使用查询的方式去检查芯片加解密工作的完成状态是低效的,加解密性能不高;使用MSI-X中断的方式,来报告芯片算法完成状态,芯片内部硬件设计会比较复杂,增大芯片面积,芯片内部及上位机PCIe驱动设计也会比较复杂,导致实现通知状态的功能的研发成本较高。
使用MSI中断的方式,来报告芯片算法完成状态,就会简单些;在PCIe设备驱动程序开发时,有时需要Mask Bits和Pending Bits字段配合防止处理器丢失中断请求。在上位机可用连续中断数较少时,当多个算法IP核在几乎同时产生多个MSI中断时,由于PCIe系统中断处理延时,还是会存在MSI中断丢失的情形,按照常规的方式去使用MSI中断,中断延时较大,会使得上位机CPU处理MSI中断的负载较重,PCIe加解密的性能效率会大大降低。
单根I/O虚拟化的中断通知开销很大,这是因为在处理中断的时候,虚拟机监视器仍然要介入其中,这就是中断虚拟化。由于物理中断处理和对虚拟中断控制器操作的陷入模拟,整个中断的过程包含了高频率的上下文切换,导致中断处理的路径变得很长。同时,在单根I/O虚拟化的环境下,中断的频率会随着虚拟机数量的增加而线性增长,因为每个虚拟功能加密卡都会独立地产生中断。
在虚拟化环境下,处理一次中断所花费的代价比原生机器要高很多。与原生机器在中断处理路径上只要做两次上下文切换不同,中断虚拟化有着更长的处理路径,包括了在虚拟机监视器和虚拟机之间的上下文切换。虚拟中断的过程是,第一次物理中断会被虚拟机监视器中的中断服务程序处理,然后一个虚拟的中断会被植入到虚拟机的中断服务程序中。在虚拟机中断服务程序的执行过程中,由于虚拟中断控制器的陷入模拟,还会有几次上下文切换。很明显可以看出,在虚拟化环境下的中断处理开销比原生机器要高非常多。事实上,SR-IOV加密卡中大量的中断处理反而增加了额外的延迟并且对高速加解密产生了不必要的负面影响。
在目前市场上,有的PCIe接口SR-IOV加密卡中,使用的客户机VF驱动程序必须和底层的VF硬件绑定,分配给客户机VM的算法IP核是固定的,当客户机没有使用加解密功能时,会浪费算法IP核的算力,并且使得别的客户机VM加解密性能受到影响,不够灵活;客户机通过VF获取密码设备资源,完成密码运算操作。由于VF之间相互隔离,因此每台虚拟密码机执行密码运算时互不影响。由于SR-IOV加密卡共享硬件资源,当同一时间内,多个算法IP核发出大量中断请求时,会造成主机不能及时处理中断请求,因此需要优化处理。
发明内容
本发明的目的在于提供一种多算法核高性能SR-IOV加解密系统及方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种多算法核高性能SR-IOV加解密系统,包括主机、带有多算法IP核的PCIE芯片以及若干客户机,主机和客户机之间创建有对应的共享内存,所述主机包括VF算法核管理器和PF驱动,所述带有多算法IP核的PCIE芯片包括设置有VF信箱中断寄存器、算法IP核中断状态寄存器和算法IP核空闲状态寄存器的算法控制器,所述PF驱动负责从所述PCIE芯片的VF信箱中断寄存器和算法IP核中断状态寄存器中接收VF信箱MSI中断信号及算法IP核完成MSI中断信号,并将算法IP核完成状态发送给主机的所述VF算法核管理器;所述VF算法核管理器负责配置和管理算法IP核及客户机的VF,用于将算法IP核完成状态消息写入到对应的客户机中的共享内存消息队列中,所述客户机通过共享内存消息队列获取算法IP核运行完成状态,从而实现客户机中创建的线程被唤醒后完成加解密操作程序。
优选的,所述VF信箱中断寄存器具有读操作清零属性,与VF信箱的中断输出信号相连接,每个比特位连接到一个VF信箱,当客户机X将共享内存VFDev地址信息写入到VFx信箱寄存器中后,产生高电平给VF信箱中断寄存器的X比特位,上位主机PF驱动在MSI ISR中读取PCIe加解密芯片的VF信箱中断寄存器时,得到比特位X值是1,随后该X比特位会变成低电平,即比特位X的值变成了0;
所述算法IP核空闲状态寄存器中的每个算法IP核对应到其中的一个比特位,当有算法核X产生加解密业务时,对应的X比特位清除成0,表示繁忙状态;当某个算法IP核X产生作业完成状态时,其对应的比特位X会被置成1,表示空闲可用状态;
所述算法IP核中断状态寄存器具有读操作清零属性,与算法IP核的中断输出信号相连接,每个比特位对应一个算法IP核,当算法IP核X完成作业操作时,输出高电平给算法IP核中断状态寄存器的X比特位,当算法IP核中断状态寄存器中某个算法IP核X对应的比特位X处于高电平时,PCIE芯片内的算法控制器读出算法IP核X的中断向量号并写入到MSI中断向量号寄存器中,每个算法IP核按特权域主机系统分配的中断向量号实时地产生MSI消息中断请求给主机,由主机PF驱动MSIISR统一处理算法IP核的完成状态中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
优选的,PCIe加解密芯片主机PF驱动软件会从PCIe配置空间的MSI相关寄存器中读取PCIe加解密芯片的PCIe3.0核的MSI Message Control寄存器中的Multiple MessageEnable字段,获取本PCIe加解密芯片主机PF可以使用的连续的中断个数。
优选的,所述共享内存是指客户机X的VFDev指向共享消息VF_Dev_ShareMsg结构类型的内存缓冲区,其中共享消息结构包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg。
本发明的另一个目的在于提供一种多算法核高性能SR-IOV加解密方法,基于所述的多算法核高性能SR-IOV加解密系统实现,包括以下步骤:
S1,主机PF驱动SR-IOV加解密系统初始化,此时所有算法IP核均为空闲状态;创建客户机m,并分配其使用对应的加密卡VFm;初始化所述客户机m及其VF驱动,分配其与PF驱动通信的共享内存VFDevm;将共享内存VFDevm地址同步到主机PF驱动;
S2,所述客户机m通过共享内存VFDevm向主机请求当前可用的算法IP核X,创建加解密线程Thread_m_X,同时创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q;
S3,待VM_m_Thread_Msg_Q获取到算法IP核X的完成状态消息,则唤醒加解密线程Thread_m_X,完成PCIE加密芯片算法控制器执行加解密过程;
S4,待该加解密操作完成后将算法IP核空闲状态寄存器中的X比特位设置为1,算法IP核中断状态寄存器对应的X比特位为高电平,产生MSI消息中断给主机PF驱动,从而实现每个算法IP核按主机分配的中断向量号实时产生MSI消息中断请求给主机,由主机PF驱动MSI ISR统一处理算法IP核的完成状态中断。
优选的,步骤S1具体包括:
S11,配置空间,内存空间映射,并为主机PF驱动分配MSI中断向量,从内存空间中读取算法IP核空闲状态寄存器即ALG_KERNEL_IDLE_Reg,并将该值赋值给算法管理器全局变量ALG_KERNEL_IDLE,比特位数量就对应到算法IP核的个数;本申请中采用32个算法IP核,那么其32个比特位就对应到32个算法IP核;
S12,创建客户机m,并分配其使用对应的加密卡VFm;初始化客户机m,VF驱动初始化,分配与PF驱动通信的共享内存VFDevm,共享内存VFDevm包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg;其中的dom_index字段客户机编号设置成m,vf_index字段加解密VF编号设置成m;
S13,由VFm驱动将VFDevm首地址信息通过PCIE接口写入到SR-IOV加解密芯片的客户机VFx驱动对应的VF信箱中断寄存器阵列中,随后产生MSI中断通知主机PF驱动,主机PF驱动MSI ISR将VFDevm地址信息取出,并将VFDevm地址转换成主机逻辑地址,供主机VF算法核管理器使用。
优选的,步骤S2中具体包括:
S21,当客户机m有加解密进程需求时,所述客户机m通过共享内存VFDevm中的AlgKernal_Req_Msg字段向主机PF驱动VF算法核管理器请求当前可用的算法IP核的编号为X,创建加解密线程Thread_m_X;
S22,创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q,客户机m创建具有较高优先级的进程:VF算法核管理任务VM_m_VF_AlgKernal_Task:
(a)检测AlgKernal_Req_Msg中如果有请求算法IP核X回应消息,则将会向VM_m_ReqAlgKernal_Msg_Q写入X消息用于唤醒将使用算法IP核的线程继续运行。
(b)检测AlgKernal_Done_Msg中如果有算法核X完成状态消息,则将会向VM_m_Thread_Msg_Q写入值为2^X的消息,用于唤醒客户机m线程Thread_m继续运行。
优选的,步骤S3具体包括:
S31,将选定算法的密钥信息组织成数据包,用户待加解密数据的主机起始PCIE总线地址StartAddr_X及长度Size_X,读写Offset置0,算法IP核编号X及其算法种类等寄存器配置信息组织成数据包,通过PCIe接口发送给加密芯片的算法IP核X;
S32,Thread_m_X向VM_m_Thread_Msg_Q获取值为2^X的消息,被阻塞住,主动放弃本线程的运行权;
S33,等待算法IP核X将待加解密数据完成加解密操作后,加密芯片发出PCIeMSI中断,由客户机m的VM_m_VF_AlgKernal_Task向客户机m内核消息对列VM_m_Thread_Msg_Q中写入2^X消息后,线程Thread_m_X被客户机m系统内核调度唤醒;
S34,线程Thread_m_X刷新待加密数据主机起始PCIE总线地址StartAddr_X处的数据高速缓存内容,而后从该地址读出加密后的数据,从而完成本次加密任务,最后释放中间件线程Thread_m_X相关资源。
优选的,步骤S33中所述等待算法IP核X将待加解密数据完成加解密操作,具体包括:
1)PCIe加密芯片内部算法控制器将ALG_KERNEL_IDLE_Reg对应的X比特位设置成0表示繁忙;
2)PCIe加密芯片内部算法控制器配合算法IP核X,使用DMA模块完成加解密操作及结果数据的搬移工作,当加密全部操作完成后,算法IP核X将ALG_KERNEL_INT_STATUS_Reg对应的X比特位置成高电平状态;
3)当目标全部的待加解密源数据加密作业操作完毕,算法控制器先将ALG_KERNEL_IDLE_Reg寄存器对应的X比特位设置成1表示空闲;同时当ALG_KERNEL_INT_STATUS_Reg对应的X比特位是高电平时,读出算法核X的中断向量号并写入MSI中断“Message Data”寄存器,为算法IP核X产生相对应的MSI消息中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
优选的,步骤S1和步骤S2中还包括:对创建的客户机m从共享内存读取AlgKernal_Req_Msg字段检查是否有请求算法IP核消息。
本发明的有益效果是:
本发明提供了一种多算法核高性能SR-IOV加解密系统及方法,该在本发明设计方案下,PCIE加解密芯片所有的加解密业务是基于算法IP核X驱动的,芯片内部可用算法核的状态寄存器ALG_KERNEL_IDLE_Reg位于PCIe内存空间中,便于上位机PCIe驱动使用配置,用户的加解密源数据存储在上位机系统内存中,由PCIE加解密芯片内部的DMA主动进行读取源数据,算法IP核进行加解密运算,完成后由内部DMA主动将加解密后的数据写回到同一内存中,直到将目标源数据全部处理完毕后,最后产生PCIe MSI消息中断,由特权域主机系统内核去处理全部的算法核MSI中断,并且与特权域主机用户空间的进程不相关,去除了VF加解密中断事件以及虚拟机监视器和客户机操作系统对物理中断和客户机中断的处理开销;由客户机高优先级进程监控共享内存AlgKernal_Done_Msg状态,唤醒相关线程,能够最大程度的提高SR-IOV加解密卡的性能;不用修改编译上位机操作系统内核,就能够适应不同的系统及应用场景;动态分配芯片内部的算法IP核,使得客户机VF性能可以达到最大化。
附图说明
图1是实施例1中提供的多算法核高性能SR-IOV加解密系统组成;
图2是实施例1中提供的算法控制器为算法IP核X、MAILBOX产生MSI中断处理示意图;
图3是实施例2中提供的任一客户机m进行加解密处理流程示意图;
图4是实施例2中PCIe加密芯片算法控制器加解密处理流程示意图;
图5是实施例2中上位主机PF驱动MSI ISR处理流程示意图;
图6是实施例2中主机PF驱动VF算法核管理器处理流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例中提供了一种多算法核高性能SR-IOV加解密系统,如图1所示,包括主机、带有多算法IP核的PCIE芯片以及若干客户机,主机和客户机之间创建有对应的共享内存,所述主机包括VF算法核管理器和PF驱动,所述带有多算法IP核的PCIE芯片包括设置有VF信箱中断寄存器、算法IP核中断状态寄存器和算法IP核空闲状态寄存器的算法控制器,所述PF驱动负责从所述PCIE芯片的VF信箱中断寄存器和算法IP核中断状态寄存器中接收VF信箱MSI中断信号及算法IP核完成MSI中断信号,并将算法IP核完成状态发送给主机的所述VF算法核管理器;所述VF算法核管理器负责配置和管理算法IP核及客户机的VF,用于将算法IP核完成状态消息写入到对应的客户机中的共享内存消息队列中,所述客户机通过共享内存消息队列获取算法IP核运行完成状态,从而实现客户机中创建的线程被唤醒后完成加解密操作程序。
本实施例中的所述带有多算法IP核的PCIE芯片包括PCIe3.0核、算法控制器、多个算法IP核,所述算法控制器包括VF信箱中断寄存器、算法IP核中断状态寄存器和算法IP核空闲状态寄存器,原理如图2所示;
所述VF信箱中断寄存器具有读操作清零属性,与VF信箱的中断输出信号相连接,每个比特位连接到一个VF信箱,当客户机X将共享内存VFDev地址信息写入到VFx信箱寄存器中后,产生高电平给VF信箱中断寄存器的X比特位,上位主机PF驱动在MSIISR中读取PCIe加解密芯片的VF信箱中断寄存器时,得到比特位X值是1,随后该X比特位会变成低电平,即比特位X的值变成了0;
所述算法IP核空闲状态寄存器中的每个算法IP核对应到其中的一个比特位,当有算法核X产生加解密业务时,对应的X比特位清除成0,表示繁忙状态;当某个算法IP核X产生作业完成状态时,其对应的比特位X会被置成1,表示空闲可用状态;
所述算法IP核中断状态寄存器具有读操作清零属性,与算法IP核的中断输出信号相连接,每个比特位对应一个算法IP核,当算法IP核X完成作业操作时,输出高电平给算法IP核中断状态寄存器的X比特位,当算法IP核中断状态寄存器中某个算法IP核X对应的比特位X处于高电平时,算法控制器读出算法IP核X的中断向量号并写入到MSI中断向量号寄存器中,每个算法IP核按特权域主机系统分配的中断向量号实时地产生MSI消息中断请求给主机,由主机PF驱动MSI ISR统一处理算法IP核的完成状态中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
本设计PCIe加解密芯片主机PF驱动软件会从PCIe配置空间的MSI相关寄存器中读取PCIe加解密芯片的PCIe3.0核的MSI Message Control寄存器中的Multiple MessageEnable字段,获取本PCIe加解密芯片主机PF可以使用的连续的中断个数,假设是4个连续中断号,读取PCIe核的MSI Message Data字段,假设读取的中断向量号数值是0x8800,那么本PCIe加解密芯片PF可用的4个中断向量号即是0x8800,0x8801,0x8802,0x8803,PCIe加解密芯片可以在合适的时机,将这四个值分别写入PCIe MSI消息Message Data字段,从而发送不同算法IP核/VF信箱的MSI消息中断给特权域主机PF驱动。见图6.上位主机PF驱动MSIISR处理流程。
本实施例中所述共享内存是指客户机X的VFDev指向共享消息VF_Dev_ShareMsg结构类型的内存缓冲区,其中共享消息结构包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg。
本实施例中的按本发明设计方案,算法IP核的个数X,可以根据加解密性能需求,定制多个算法IP核。可以根据虚拟化应用需求,定制虚拟加解密卡VF的个数X。
在本发明设计中,假设算法IP核X的最大的取值是32,即芯片内部使用32个硬件算法核,这32个算法硬件IP核是完全一样的,每个算法IP核可以支持DES/AES/SM1/SM4/HASH/UCAA等硬件算法,并且每个算法IP核按乒乓方式使用算法IP核内部的4KB第一存储单元,4KB第二存储单元。PCIe采用了全双工的传输设计,PCIe 3.0核内部包含有8个DMA发送通道,8个DMA接收通道,允许在同一时刻,同时进行DMA Tx通道发送加解密结果数据和Rx通道接收待处理源数据。假设虚拟加解密卡上VF的最大的取值是32,即芯片内部可以最多使用32个PCIE虚拟加解密卡。
本实施例中的算法IP核进行加解密的过程具体是:
PCIe加密芯片内部算法控制器接收到算法IP核X第一存储单元空闲信号,配置使用DMA Rx1 Channel从PCIE总线地址0x8000000读取第一包4K待加密数据到芯片SM1加密内核的算法4KB第一存储单元中,SM1开始加密第一存储单元的数据,并将加密结果写回到第一存储单元中。PCIe加密芯片内部算法控制器接收到算法IP核X第二存储单元空闲信号,配置使用DMA Rx2 Channel从PCIE总线地址0x8000000+4K处读取第二包4KB待加密数据到芯片SM1加密内核的算法4KB第二存储单元中;当第一存储单元中4KB的待加密数据完成后,PCIe加密芯片内部算法控制器接收到算法IP核X的加解密完成信号,配置使用DMA Tx1Channel将第一存储单元中4KB的加密后的数据写入到系统PCIE总线地址0x8000000处,从而完成第一包数据的加密。SM1开始加密第二存储单元的数据,并将加密结果写回到第二存储单元中。
PCIe加密芯片使用DMA Rx1 Channel从PCIE总线地址0x8000000+8K处读取第三包4K待加密数据到芯片SM1加密内核的算法4KB第一存储单元中,当第二存储单元中4KB的待加密数据完成后,PCIe加密芯片使用DMA Tx1 Channel将第二存储单元中4KB的加密后的数据写入到系统PCIE总线地址0x8000000+4K处,从而完成第二包数据的加密。
重复上述步骤,直到将全部的1000K数据加密完毕,同时在在本次作业的最后的一包,DMA Tx1 Channel向系统内存写完加密后的结果数据后,算法控制器先将ALG_KERNEL_IDLE_Reg对应的X比特位设定成1表示空闲,同时根据算法核X的中断请求硬件信号控制产生远程MSI消息中断。
本实施例中,当SR-IOV加解密卡插入PCIe插槽时,在上位机PF/VF驱动初始化时,本设计的PCIe加密卡驱动会创建一个可以存放32个算法核完成状态消息的“算法核完成状态消息对列VM_X_Thread_Msg_Q”,其中的消息就是每个算法IP核X对应的比特位的2的X次方数值,举例来说,当算法IP核2加解密完成并将数据传输完成后,硬件先将ALG_KERNEL_IDLE_Reg对应的比特位2设置成1,随后算法控制器为算法IP核2产生MSI消息中断给主机PF,在特权域主机PF驱动中的MSI中断服务程序中,根据算法IP核2当前所属的上位机类型,做不同的处理,如果属于特权域主机PF,则向“算法核完成状态消息对列”写入值为2^2=4的消息,用于唤醒使用算法IP核2的线程Thread_2;如果属于客户机1上VF1,则主机PF驱动中的VF算法核管理器就会向客户机1共享内存AlgKernal_Done_Msg写入值为2^2=4的消息,到此时,主机PF驱动MSI中断处理完毕。客户机1继续执行,当客户机1中的较高优先级任务“VF算法核管理任务”检测到AlgKernal_Done_Msg存在一条值为4的消息,就会取出并向VM_1_Thread_Msg_Q写入值为4的消息,用于唤醒客户机1中的加解密线程Thread_2。
实施例2
本实施例提供一种多算法核高性能SR-IOV加解密方法,基于实施例1中所记载的多算法核高性能SR-IOV加解密系统实现,包括以下步骤:
S1,主机PF驱动SR-IOV加解密系统初始化,此时所有算法IP核均为空闲状态;创建客户机m,并分配其使用对应的加密卡VFm;初始化所述客户机m及其VF驱动,分配其与PF驱动通信的共享内存VFDevm;将共享内存地址VFDevm同步到主机PF驱动;
对创建的客户机m从共享内存读取AlgKernal_Req_Msg字段检查是否有请求算法IP核消息,若有则进入步骤S2,若无则回到步骤S1中;
S2,所述客户机m通过共享内存VFDevm向主机请求当前可用的算法IP核X,创建加解密线程Thread_m_X,同时创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q;
S3,待VM_m_Thread_Msg_Q获取到算法IP核X的完成状态消息,则唤醒加解密线程Thread_m_X,完成PCIE加密芯片算法控制器执行加解密过程;
S4,待该加解密操作完成后将算法IP核空闲状态寄存器中的X比特位设置为1,算法IP核中断状态寄存器对应的X比特位为高电平,产生MSI消息中断给主机PF驱动,从而实现每个算法IP核按主机分配的中断向量号实时产生MSI消息中断请求给主机,由主机PF驱动MSI ISR统一处理算法IP核的完成状态中断。
本实施例中的步骤S1具体包括:
S11,配置空间,内存空间映射,并为主机PF驱动分配MSI中断向量,从内存空间中读取算法IP核空闲状态寄存器即ALG_KERNEL_IDLE_Reg,并将该值赋值给算法管理器全局变量ALG_KERNEL_IDLE,其32个比特位就对应到32个算法IP核;
S12,创建客户机m,并分配其使用对应的加密卡VFm;初始化客户机m,VF驱动初始化,分配与PF驱动通信的共享内存VFDevm,共享内存VFDevm包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg;其中的dom_index字段客户机编号设置成m,vf_index字段加解密VF编号设置成m;
S13,由VFm驱动将VFDevm首地址信息通过PCIE接口写入到SR-IOV加解密芯片的客户机VFx驱动对应的VF信箱中断寄存器阵列中,随后产生MSI中断通知主机PF驱动,将VFDevm地址信息取出,并将VFDevm地址转换成主机逻辑地址,供主机VF算法核管理器使用,具体原理步骤如图5所示:
上位主机PF驱动ISR,从内存空间读取VF_MAILBOX_INT_STATUS_Reg寄存器并赋值给IntStatus,此时VF_MAILBOX_INT_STATUS_Reg寄存器的值被上位机CPU读操作而被清零。对IntStatus每个比特位X,X的取值在1到32之间.将1左移X位并赋值给IntXMsg,若IntXMsg非零表示VF信箱同步信息操作,取出客户机共享内存地址并转换成特权域主机逻辑地址,供PF驱动及VF算法核管理器使用;
上位主机PF驱动ISR,从内存空间读取ALG_KERNEL_INT_STATUS_Reg寄存器并赋值给IntStatus,此时ALG_KERNEL_INT_STATUS_Reg寄存器的值被上位机CPU读操作而被清零。到此时刻,可能会有另一个算法核Y的完成状态信息被同步到上位机PCIe驱动,因为存在处理时间差,故算法核Y不会产生MSI消息中断。
针对IntStatus每个比特位X,X的取值在1到32之间.将1左移X位并赋值给IntXMsg,若IntXMsg非零,即表示算法IP核X加解密操作完成,根据X值找到对应的客户机m。
若算法IP核X对应的是客户机m操作,则向客户机m对应的共享内存AlgKernal_Done_Msg字段写入IntXMsg消息,将AlgKernal_Req_Msg字段中的算法IP核号X对应槽位值清零。否则,向主机VM_Thread_Msg_Q写入IntXMsg消息,用于唤醒主机线程Thread_X继续运行。
最后,将ALG_KERNEL_IDLE的X比特位置1,表示算法IP核X处于空闲。
本实施例中的步骤S2中具体包括:
S21,当客户机m有加解密进程需求时,所述客户机m通过共享内存VFDevm中的AlgKernal_Req_Msg字段向主机PF驱动VF算法核管理器请求当前可用的算法IP核的编号为X,创建加解密线程Thread_m_X;
S22,创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q,客户机m创建具有较高优先级的进程:VF算法核管理任务VM_m_VF_AlgKernal_Task:
(a)检测AlgKernal_Req_Msg中如果有请求算法IP核X回应消息,则将会向VM_m_ReqAlgKernal_Msg_Q写入X消息用于唤醒将使用算法IP核的线程继续运行。
(b)检测AlgKernal_Done_Msg中如果有算法核X完成状态消息,则将会向VM_m_Thread_Msg_Q写入值为2^X的消息,用于唤醒客户机m线程Thread_m继续运行。
本实施例中步骤S3任一客户机m进行加解密处理流程如图3所示,具体包括:
S31,将选定算法的密钥信息组织成数据包,用户待加解密数据的主机起始PCIE总线地址StartAddr_X及长度Size_X,读写Offset置0,算法IP核编号X及其算法种类等寄存器配置信息组织成数据包,通过PCIe接口发送给加密芯片的算法IP核X;
S32,Thread_m_X向VM_m_Thread_Msg_Q获取值为2^X的消息,被阻塞住,主动放弃本线程的运行权;
S33,等待算法IP核X将待加解密数据完成加解密操作后,加密芯片发出PCIeMSI中断,由客户机m的VM_m_VF_AlgKernal_Task向客户机m内核消息对列VM_m_Thread_Msg_Q中写入2^X消息后,线程Thread_m_X被客户机m系统内核调度唤醒;
S34,线程Thread_m_X刷新待加密数据主机起始PCIE总线地址StartAddr_X处的数据高速缓存内容,而后从该地址读出加密后的数据,从而完成本次加密任务,最后释放中间件线程Thread_m_X相关资源。
步骤S33中所述等待算法IP核X将待加解密数据完成加解密操作,如图4所示,具体包括:
1)PCIe加密芯片内部算法控制器将ALG_KERNEL_IDLE_Reg对应的X比特位设置成0表示繁忙;
2)PCIe加密芯片内部算法控制器配合算法IP核X,使用DMA模块完成加解密操作及结果数据的搬移工作,当加密全部操作完成后,算法IP核X将ALG_KERNEL_INT_STATUS_Reg对应的X比特位置成高电平状态;
3)当目标全部的待加解密源数据加密作业操作完毕,算法控制器先将ALG_KERNEL_IDLE_Reg寄存器对应的X比特位设置成1表示空闲;同时当ALG_KERNEL_INT_STATUS_Reg对应的X比特位是高电平时,读出算法核X的中断向量号并写入MSI中断“Message Data”寄存器,为算法IP核X产生相对应的MSI消息中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
在本发明设计方案下,PCIE加解密芯片所有的加解密业务是基于算法IP核X驱动的,芯片内部可用算法核的状态寄存器ALG_KERNEL_IDLE_Reg位于PCIe内存空间中,便于上位机PCIe驱动使用配置,用户的加解密源数据存储在上位机系统内存中,由PCIE加解密芯片内部的DMA主动进行读取源数据,算法IP核进行加解密运算,完成后由内部DMA主动将加解密后的数据写回到同一内存中,直到将目标源数据全部处理完毕后,最后产生PCIe MSI消息中断,由特权域主机系统内核去处理全部的算法核MSI中断,并且与特权域主机用户空间的进程不相关,去除了VF加解密中断事件以及虚拟机监视器和客户机操作系统对物理中断和客户机中断的处理开销;由客户机高优先级进程监控共享内存AlgKernal_Done_Msg状态,唤醒相关线程,能够最大程度的提高SR-IOV加解密卡的性能;不用修改编译上位机操作系统内核,就能够适应不同的系统及应用场景。
本发明设计的SR-IOV加解密卡具有如下的优点:
1.本设计的PCIe加解密芯片驱动软件根据上位主机PF驱动分配的连续中断的个数n,按顺序的方式,每n个一组,循环的将这n个中断向量写入到芯片内部每个算法IP核的ALG_KERNEL_X_MSI_IV_Reg寄存器中,每个算法IP核按特权域主机系统分配的中断向量号实时地产生MSI消息中断请求给主机,由主机PF驱动MSI ISR统一处理算法IP核的完成状态中断,并且不会与特权域主机中的用户进程有相关性。为避免中断共享及虚拟中断开销,客户机VF加解密不会产生给客户机VF的中断。在本发明设计中,使用少量的MSI中断就可以保证SR-IOV加密卡正常工作,解决SR-IOV虚拟化的中断向量短缺的问题,避免了虚拟机监视器对客户机VF开销,保证了SR-IOV系统的可扩展性。
2.每个PCIe加解密算法核完成加解密操作后,最后产生MSI消息中断,通知上位主机PF驱动作业完成状态。因为设计使用ALG_KERNEL_INT_STATUS_Reg寄存器具有读清零属性,可以减少PCIe接口上的MSI中断相关寄存器读写事务,所以相比常规的MSI使用中断掩码方式更高效。针对SR-IOV加解密高性能虚拟化面临的中断处理开销问题,在客户机VF使用中不产生中断,由主机PF驱动去处理全部的算法核MSI中断,去除了VF设备中断事件以及虚拟机监视器和客户机操作系统对物理中断和客户机中断的处理开销,从而进一步大大提高性能。
3.在PCIe多算法IP核的应用环境下,每个PCIe加密算法核完成状态可以在第一时间上传同步给上位主机PF驱动,因为算法核完成状态信息是被别的MSI中断ISR同步到上位机的,算法控制器统一管理并将中断向量号写入MSI中断“Message Data”寄存器从而产生MSI消息中断,由于系统存在处理时间差,可以减少PCIe加解密芯片发出的MSI消息中断的个数,减轻了特权域主机系统内核MSI中断处理负载,提高了主机系统处理MSI中断的效率,提高了上位机主机/客户机多线程的作业处理效率。
4.每个PCIe加密算法核完成状态,均能够同步到上位机PCIe驱动中,在任何场景下,不会出现上位机与PCIe芯片算法IP核完成状态不一致的情形,因而上位机的每个线程都能够高效正常工作并释放系统资源。
5.按本发明设计的MSI中断使用方案,硬件及软件设计比较简单,可以为PCIe加解密操作提供高效的工作方式,降低整体研发成本,缩短研发时间。
6.由主机PF驱动动态管理算法IP核,可以根据客户机使用需求动态分配使用算法IP核,客户机VF线程加解密可达到原生PCIe加解卡的性能指标最大化。
7本发明设计实现,无须修改编译上层主机操作系统内核,本SR-IOV加解密芯片具有更好的适应性,MSI中断在主机PF ISR中处理,客户机VF不会产生加解密中断。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明公开了一种基于PCIE端口的多算法核高性能SR-IOV加解密系统及方法,本SR-IOV加解密卡可以最大程度的提高MSI中断处理效率,根据算法IP核的状态,为PF及VF提供高效PCIe加解密操作。由于本设计的PCIe加解密芯片所有加解密业务是基于算法IP核X驱动的,所以只要将PCIe加解密芯片内部算法IP核的完成状态,同步到上位机主机PF驱动,并进行实时管理。在主机PF驱动ISR中通过PCIe接口读取算法核操作完成状态寄存器,就可以获得全部算法核的完成状态,同时该完成状态寄存器自动清零,这样的设计可以避免按常规方式去使用MSI:中断延时大,MSI中断丢失问题,同时当多线程使用多算法IP核密集加解密操作时,会大大减少上层主机PCIe加解密MSI中断个数,减轻主机系统内核中断处理的负载,进而提升系统加解密的性能及可以解决SR-IOV虚拟化的可扩展性面临中断向量短缺问题。针对高性能的SR-IOV虚拟化面临的中断处理开销问题,在客户机VF加解密使用中不产生中断,由主机PF驱动去处理全部的算法IP核MSI中断,去除了VF设备中断事件以及虚拟机监视器和客户机操作系统对物理中断和客户机中断的处理开销,从而进一步提高性能。主机PF驱动算法核管理器针对创建的客户机,通过共享内存消息队列的方式来管理算法IP核状态,可以根据客户机使用需求动态分配使用算法IP核,客户机VF加解密可以达到原生PCIe加解密卡最大化性能指标。本发明设计的软件实现无须修改编译上位机系统内核,本SR-IOV加解密芯片对不同的应用环境具有更好的适应性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (10)

1.一种多算法核高性能SR-IOV加解密系统,其特征在于,包括主机、带有多算法IP核的PCIE芯片以及若干客户机,主机和客户机之间创建有对应的共享内存,所述主机包括VF算法核管理器和PF驱动,所述带有多算法IP核的PCIE芯片包括设置有VF信箱中断寄存器、算法IP核中断状态寄存器和算法IP核空闲状态寄存器的算法控制器,所述PF驱动负责从所述PCIE芯片的VF信箱中断寄存器和算法IP核中断状态寄存器中接收VF信箱MSI中断信号及算法IP核完成MSI中断信号,并将算法IP核完成状态发送给主机的所述VF算法核管理器;所述VF算法核管理器负责配置和管理算法IP核及客户机的VF,用于将算法IP核完成状态消息写入到对应的客户机中的共享内存消息队列中,所述客户机通过共享内存消息队列获取算法IP核运行完成状态,从而实现客户机中创建的线程被唤醒后完成加解密操作程序。
2.根据权利要求1所述的多算法核高性能SR-IOV加解密系统,其特征在于,所述VF信箱中断寄存器具有读操作清零属性,与VF信箱的中断输出信号相连接,每个比特位连接到一个VF信箱,当客户机X将共享内存VFDev地址信息写入到VFx信箱寄存器中后,产生高电平给VF信箱中断寄存器的X比特位,上位主机PF驱动在MSI ISR中读取PCIe加解密芯片的VF信箱中断寄存器时,得到比特位X值是1,随后该X比特位会变成低电平,即比特位X的值变成了0;
所述算法IP核空闲状态寄存器中的每个算法IP核对应到其中的一个比特位,当有算法核X产生加解密业务时,对应的X比特位清除成0,表示繁忙状态;当某个算法IP核X产生作业完成状态时,其对应的比特位X会被置成1,表示空闲可用状态;
所述算法IP核中断状态寄存器具有读操作清零属性,与算法IP核的中断输出信号相连接,每个比特位对应一个算法IP核,当算法IP核X完成作业操作时,输出高电平给算法IP核中断状态寄存器的X比特位,当算法IP核中断状态寄存器中某个算法IP核X对应的比特位X处于高电平时,PCIE芯片内的算法控制器读出算法IP核X的中断向量号并写入到MSI中断向量号寄存器中,每个算法IP核按特权域主机系统分配的中断向量号实时地产生MSI消息中断请求给主机,由主机PF驱动MSI ISR统一处理算法IP核的完成状态中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
3.根据权利要求2所述的多算法核高性能SR-IOV加解密系统,其特征在于,PCIe加解密芯片主机PF驱动软件会从PCIe配置空间的MSI相关寄存器中读取PCIe加解密芯片的PCIe3.0核的MSI Message Control寄存器中的Multiple Message Enable字段,获取本PCIe加解密芯片主机PF可以使用的连续的中断个数。
4.根据权利要求2所述的多算法核高性能SR-IOV加解密系统,其特征在于,所述共享内存是指客户机X的VFDev指向共享消息VF_Dev_ShareMsg结构类型的内存缓冲区,其中共享消息结构包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg。
5.一种多算法核高性能SR-IOV加解密方法,基于权利要求1-4任一所述的多算法核高性能SR-IOV加解密系统实现,其特征在于,包括以下步骤:
S1,主机PF驱动SR-IOV加解密系统初始化,此时所有算法IP核均为空闲状态;创建客户机m,并分配其使用对应的加密卡VFm;初始化所述客户机m及其VF驱动,分配其与PF驱动通信的共享内存VFDevm;客户机m通过VFm信箱,产生MSI中断,将共享内存地址VFDevm同步到主机PF驱动;
S2,所述客户机m通过共享内存VFDevm向主机请求当前可用的算法IP核X,创建加解密线程Thread_m_X,同时创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q;
S3,待VM_m_Thread_Msg_Q获取到算法IP核X的完成状态消息,则唤醒加解密线程Thread_m_X,完成PCIE加密芯片算法控制器执行加解密过程;
S4,待该加解密操作完成后将算法IP核空闲状态寄存器中的X比特位设置为1,算法IP核中断状态寄存器对应的X比特位为高电平,产生MSI消息中断给主机PF驱动,从而实现每个算法IP核按主机分配的中断向量号实时产生MSI消息中断请求给主机,由主机PF驱动MSIISR统一处理算法IP核的完成状态中断。
6.根据权利要求5所述的多算法核高性能SR-IOV加解密方法,其特征在于,步骤S1具体包括:
S11,配置空间,内存空间映射,并为主机PF驱动分配MSI中断向量,从内存空间中读取算法IP核空闲状态寄存器即ALG_KERNEL_IDLE_Reg,并将该值赋值给算法管理器全局变量ALG_KERNEL_IDLE,比特位数量就对应到算法IP核的个数;
S12,创建客户机m,并分配其使用对应的加密卡VFm;初始化客户机m,VF驱动初始化,分配与PF驱动通信的共享内存VFDevm,共享内存VFDevm包括对应的客户机编号dom_index,加解密VF优先级propriety,对应的加解密VF编号vf_index,加解密线程数thread_Num,加解密VF请求算法IP核消息AlgKernal_Req_Msg以及算法IP核完成状态消息AlgKernal_Done_Msg;其中的dom_index字段客户机编号设置成m,vf_index字段加解密VF编号设置成m;
S13,由VFm驱动将VFDevm首地址信息通过PCIE接口写入到SR-IOV加解密芯片的客户机VFx驱动对应的VF信箱中断寄存器阵列中,随后产生MSI中断通知主机PF驱动,主机PF驱动MSI ISR将VFDevm地址信息取出,并将VFDevm地址转换成主机逻辑地址,供主机VF算法核管理器使用。
7.根据权利要求5所述的多算法核高性能SR-IOV加解密方法,其特征在于,步骤S2中具体包括:
S21,当客户机m有加解密进程需求时,所述客户机m通过共享内存VFDevm中的AlgKernal_Req_Msg字段向主机PF驱动VF算法核管理器请求当前可用的算法IP核的编号为X,创建加解密线程Thread_m_X;
S22,创建用于获取算法IP核X请求结果的客户机内核RTOS算法线程间完成状态通信的消息队列VM_m_Thread_Msg_Q及VM_m_ReqAlgKernal_Msg_Q,客户机m创建具有较高优先级的进程:VF算法核管理任务VM_m_VF_AlgKernal_Task:
(a)检测AlgKernal_Req_Msg中如果有请求算法IP核X回应消息,则将会向VM_m_ReqAlgKernal_Msg_Q写入X消息用于唤醒将使用算法IP核的线程继续运行;
(b)检测AlgKernal_Done_Msg中如果有算法核X完成状态消息,则将会向VM_m_Thread_Msg_Q写入值为2^X的消息,用于唤醒客户机m线程Thread_m继续运行。
8.根据权利要求5所述的多算法核高性能SR-IOV加解密方法,其特征在于,步骤S3具体包括:
S31,将选定算法的密钥信息组织成数据包,用户待加解密数据的主机起始PCIE总线地址StartAddr_X及长度Size_X,读写Offset置0,算法IP核编号X及其算法种类等寄存器配置信息组织成数据包,通过PCIe接口发送给加密芯片的算法IP核X;
S32,Thread_m_X向VM_m_Thread_Msg_Q获取值为2^X的消息,被阻塞住,主动放弃本线程的运行权;
S33,等待算法IP核X将待加解密数据完成加解密操作后,加密芯片发出PCIe MSI中断,由客户机m的VM_m_VF_AlgKernal_Task向客户机m内核消息对列VM_m_Thread_Msg_Q中写入2^X消息后,线程Thread_m_X被客户机m系统内核调度唤醒;
S34,线程Thread_m_X刷新待加密数据主机PCIE总线起始地址StartAddr_X处的数据高速缓存内容,而后从该地址读出加密后的数据,从而完成本次加密任务,最后释放中间件线程Thread_m_X相关资源。
9.根据权利要求8所述的多算法核高性能SR-IOV加解密方法,其特征在于,步骤S33中所述等待算法IP核X将待加解密数据完成加解密操作,具体包括:
1)PCIe加密芯片内部算法控制器将ALG_KERNEL_IDLE_Reg对应的X比特位设置成0表示繁忙;
2)PCIe加密芯片内部算法控制器配合算法IP核X,使用DMA模块完成加解密操作及结果数据的搬移工作,当加密全部操作完成后,算法IP核X将ALG_KERNEL_INT_STATUS_Reg对应的X比特位置成高电平状态;
3)当目标全部的待加解密源数据加密作业操作完毕,算法控制器先将ALG_KERNEL_IDLE_Reg寄存器对应的X比特位设置成1表示空闲;同时当ALG_KERNEL_INT_STATUS_Reg对应的X比特位是高电平时,读出算法核X的中断向量号并写入MSI中断“Message Data”寄存器,为算法IP核X产生相对应的MSI消息中断,通知上位主机PF驱动芯片算法内核已完成加解密操作。
10.根据权利要求5所述的多算法核高性能SR-IOV加解密方法,其特征在于,步骤S1和步骤S2中还包括:对创建的客户机m从共享内存读取AlgKernal_Req_Msg字段检查是否有请求算法IP核消息,若有则进入步骤S2,若无则回到步骤S1中。
CN202210583322.8A 2022-05-25 2022-05-25 一种多算法核高性能sr-iov加解密系统及方法 Pending CN114943087A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210583322.8A CN114943087A (zh) 2022-05-25 2022-05-25 一种多算法核高性能sr-iov加解密系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210583322.8A CN114943087A (zh) 2022-05-25 2022-05-25 一种多算法核高性能sr-iov加解密系统及方法

Publications (1)

Publication Number Publication Date
CN114943087A true CN114943087A (zh) 2022-08-26

Family

ID=82908463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210583322.8A Pending CN114943087A (zh) 2022-05-25 2022-05-25 一种多算法核高性能sr-iov加解密系统及方法

Country Status (1)

Country Link
CN (1) CN114943087A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117633914A (zh) * 2024-01-25 2024-03-01 深圳市纽创信安科技开发有限公司 基于芯片的密码资源调度方法、设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117633914A (zh) * 2024-01-25 2024-03-01 深圳市纽创信安科技开发有限公司 基于芯片的密码资源调度方法、设备和存储介质
CN117633914B (zh) * 2024-01-25 2024-05-10 深圳市纽创信安科技开发有限公司 基于芯片的密码资源调度方法、设备和存储介质

Similar Documents

Publication Publication Date Title
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
US11943340B2 (en) Process-to-process secure data movement in network functions virtualization infrastructures
EP3554025B1 (en) Method for forwarding packet and physical host
CN107515775B (zh) 一种数据传输方法及装置
US9710310B2 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
EP3206124B1 (en) Method, apparatus and system for accessing storage device
US10621138B2 (en) Network communications using pooled memory in rack-scale architecture
CN114662136B (zh) 一种基于pcie通道的多算法ip核的高速加解密系统及方法
EP3211530B1 (en) Virtual machine memory management method, physical main machine, pcie device and configuration method therefor, and migration management device
CN114095251B (zh) 一种基于dpdk与vpp的sslvpn实现方法
US20190042151A1 (en) Hybrid framework of nvme-based storage system in cloud computing environment
US20220300448A1 (en) Peripheral component interconnect express device and method of operating the same
US20210149603A1 (en) Communication apparatus, communication method, and computer program product
CN114817965A (zh) 基于多算法ip核实现msi中断处理的高速加解密系统及方法
KR100799305B1 (ko) 다중 암호엔진을 사용하는 고성능 암호화 장치
CN114943087A (zh) 一种多算法核高性能sr-iov加解密系统及方法
CN114547663B (zh) 基于usb接口的高速芯片实现数据加解密及读取的方法
US20220179805A1 (en) Adaptive pipeline selection for accelerating memory copy operations
US7469309B1 (en) Peer-to-peer data transfer method and apparatus with request limits
CN114662162B (zh) 实现动态分配vf的多算法核高性能sr-iov加解密系统及方法
CN116136790A (zh) 任务处理方法和装置
Zhang et al. NVMe-over-RPMsg: A Virtual Storage Device Model Applied to Heterogeneous Multi-Core SoCs
CN117573041B (zh) 一种改进vhost-scsi提升虚拟化存储性能的方法
US20240111561A1 (en) Requesting power management metrics for a parallel accelerated processor for a virtual function
Anderson et al. High-Performance Interface Architectures for Cryptographic Hardware

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination