CN116628717A - 数据处理方法、装置、电子设备及存储介质 - Google Patents

数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116628717A
CN116628717A CN202310603622.2A CN202310603622A CN116628717A CN 116628717 A CN116628717 A CN 116628717A CN 202310603622 A CN202310603622 A CN 202310603622A CN 116628717 A CN116628717 A CN 116628717A
Authority
CN
China
Prior art keywords
data
encryption
queue
decrypted
encrypted
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
CN202310603622.2A
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.)
Qianxin Technology Group Co Ltd
Original Assignee
Qianxin Technology Group 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 Qianxin Technology Group Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202310603622.2A priority Critical patent/CN116628717A/zh
Publication of CN116628717A publication Critical patent/CN116628717A/zh
Pending legal-status Critical Current

Links

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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

Abstract

本申请提供一种数据处理方法、装置、电子设备及存储介质,涉及通信技术领域。该方法通过将待加解密的数据放入预先设置的数据队列中,然后数据队列中的数据通过加密卡进行加解密处理后将该数据标记为已处理状态并存入数据队列,从数据队列中获取已处理状态的数据,这样CPU将待加解密的数据存入数据队列后即可返回,后续只需要有空闲时从数据队列中取出已处理的数据进行后续处理即可,从而使得CPU和加密卡可以实现异步的加解密处理,使得CPU可以有更多的资源来处理其他任务,达到将CPU和加密卡真正并行起来,提高整个加解密处理的性能。

Description

数据处理方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,具体而言,涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
随着密码法的推广,在通信领域使用国家商用密码代替国际算法用来做组网传输时候的加解密算法,保证传输数据的安全性的需求越来越广泛,国家商用密码即国家密码局认定的国产密码算法,即商用密码,实现了对数据进行加密、解密、认证等功能,主要算法包括对称加密算法sm1和sm4、椭圆曲线非对称加密算法sm2和杂凑算法sm3。
使用国密算法的产品,一般都内置国产加密卡(简称:加密卡),加密卡是内部实现了国产密码算法的芯片,用户通过安装相应的驱动,设备插上加密卡可以直接调用相应的国密算法。
现有技术中,往往采用多线程或者协程的方式去同步调用国密加密卡,从而使得国密加密卡的性能达到最大化。然而,该同步的调用方式无法使得加密卡与CPU达到较佳的配合效果,例如,在调度加密卡或者等待加密卡返回数据过程中,都会造成CPU资源的无效占用,从而使得整机效果往往达不到加密卡的最大性能。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置、电子设备及存储介质,用以改善现有的方式性能差的问题。
第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
从所述数据队列中获取已处理状态的数据。
在上述实现过程中,通过将待加解密的数据放入预先设置的数据队列中,然后数据队列中的数据通过加密卡进行加解密处理后将该数据标记为已处理状态并存入数据队列,从数据队列中获取已处理状态的数据,这样CPU将待加解密的数据存入数据队列后即可返回,后续只需要有空闲时从数据队列中取出已处理的数据进行后续处理即可,从而使得CPU和加密卡可以实现异步的加解密处理,使得CPU可以有更多的资源来处理其他任务,达到将CPU和加密卡真正并行起来,提高整个加解密处理的性能。
可选地,所述将待加解密的数据放入预先设置的数据队列中,包括:
获取所述预先设置的数据队列的内核态内存地址;
根据建立的所述内核态内存地址与用户态内存地址之间的映射关系,将待加解密的数据放入所述用户态内存地址的数据队列中。
在上述实现过程中,避免了需要将待加解密的数据从用户态拷贝到内核驱动,再从内核驱动映射到加密卡的数据队列的问题,而是直接可以将待加解密的数据放入用户态内存地址的数据队列中即可,不需要拷贝到内核态,如此可达到直接在用户态进行数据的存取,减少中断的调用,从而提高性能。
可选地,所述用户态内存地址通过环形存储区来管理。如此可无锁地操作数据队列中的数据,减少锁的使用,提升性能。
可选地,所述将待加解密的数据放入预先设置的数据队列中,包括:
获取所述待加解密的数据的相关参数,所述相关参数包括数据长度、加解密算法和/或重入函数;
将所述数据和所述相关参数封装为对应的操作单元;
将所述操作单元放入预先设置的数据队列中。
在上述实现过程中,通过将数据和相关参数封装为操作单元后再放入数据队列中,如此加密卡一次性即可获取到全部的数据,无需二次调用,提高了加密卡的性能。
可选地,所述将所述数据和所述相关参数封装为对应的操作单元,包括:
调用加解密框架,通过所述加解密框架将所述数据和所述相关参数封装为对应的操作单元。如此减少CPU的操作,提升CPU性能。
可选地,所述加解密框架根据所述加密卡的数量配置每个加密卡对应的数据队列的数量,并将每个加密卡对应的数据队列与对应的CPU核绑定,每个CPU核对应一个数据队列。如此通过加解密框架来实现数据队列的配置,从而将底层加密卡与上层业务解耦,提升代码的易用性,扩展性更强。
可选地,所述通过所述加解密框架将所述数据和所述相关参数封装为对应的操作单元,包括:
通过所述加解密框架根据所述数据队列对应的加密卡所支持的数据格式,将所述数据和所述相关参数封装为对应的操作单元。如此可减少加密卡的操作,提升加密卡的性能。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
数据添加模块,用于将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
数据取出模块,用于从所述数据队列中获取已处理状态的数据。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据处理方法的流程图;
图2为本申请实施例提供的一种内存地址映射的示意图;
图3为本申请实施例提供的一种加解密框架支持多加密卡的示意图;
图4为本申请实施例提供的一种数据处理装置的结构框图;
图5为本申请实施例提供的一种用于执行数据处理方法的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供一种数据处理方法,该方法通过将待加解密的数据放入预先设置的数据队列中,然后数据队列中的数据通过加密卡进行加解密处理后将该数据标记为已处理状态并存入数据队列,从数据队列中获取已处理状态的数据,这样CPU将待加解密的数据存入数据队列后即可返回,后续只需要有空闲时从数据队列中取出已处理的数据进行后续处理即可,从而使得CPU和加密卡可以实现异步的加解密处理,使得CPU可以有更多的资源来处理其他任务,达到将CPU和加密卡真正并行起来,提高整个加解密处理的性能。
请参照图1,图1为本申请实施例提供的一种数据处理方法的流程图,该方法包括如下步骤:
步骤S110:将待加解密的数据加入预先设置的数据队列中。
其中,数据队列是预先创建的,用于存放待加解密的数据以及加解密后的数据。CPU从网卡中接收到待加解密的数据后,将待加解密的数据加入到预先设置的数据队列中后即可返回,然后CPU即可去处理其他任务。设备中的加密卡可从数据队列中取出数据并进行加解密处理后将该数据标记为已处理状态并存入数据队列。
在一些实施方式中,CPU将数据加入数据队列后,可以通知加密卡对数据队列中的数据进行加解密处理,或者加密卡可以实时或采用轮询的方式从数据队列中取出数据来进行加解密处理。
数据队列可以是一个先进先出队列,数据队列中的数据通过加密卡进行加解密处理,加密卡将处理后的数据标记为已处理状态后并存入数据队列,也即,加密卡可从数据队列中取出数据进行加解密处理后,可将该数据标记为已处理状态,比如将该数据添加一个表征已处理的标识,并连同标识存入数据队列中。
步骤S120:从数据队列中获取已处理状态的数据。
在一些实施方式中,CPU可以采用轮询的方式从数据队列中获取已处理状态的数据,或者在CPU处于空闲时再从数据队列中获取已处理状态的数据。
比如,CPU会循环读取数据队列中每个数据的数据状态,查看其是否标记有已处理状态,如果有,则表示这些数据已经被加密卡所处理完,则将该数据取出,继续处理该数据的后续流程,比如数据转发流程。对于没有标记已处理状态的数据,则继续等待加密卡的处理。
在一些实施方式中,数据队列可以有多个,不同的数据类型可以放入不同的数据队列中,或者采用不同加解密算法数据放入不同的数据队列中,或者CPU也可根据各个数据队列的繁忙程度来选择数据队列,其各个数据队列的繁忙程度可通过数据队列中已处理数据的数量来确定,比如CPU每次选择已处理数据最多的数据队列来存放需要加解密的数据。
加密卡内部可以设置不同的处理通道,不同的处理通道用于处理不同数据队列中的数据,这样可以实现多个数据队列中的数据的并行处理,提高处理效率。
在上述实现过程中,通过将待加解密的数据放入预先设置的数据队列中,然后数据队列中的数据通过加密卡进行加解密处理后将该数据标记为已处理状态并存入数据队列,从数据队列中获取已处理状态的数据,这样CPU将待加解密的数据存入数据队列后即可返回,后续只需要有空闲时从数据队列中取出已处理的数据进行后续处理即可,从而使得CPU和加密卡可以实现异步的加解密处理,使得CPU可以有更多的资源来处理其他任务,达到将CPU和加密卡真正并行起来,提高整个加解密处理的性能。
在上述实施例的基础上,为了减少CPU的中断调用,提高其资源利用率,还可以获取预先设置的数据队列的内核态内存地址,根据建立的数据队列的内核态内存地址与用户态内存地址之间的映射关系,将待加解密的数据放入用户态内存地址的数据队列中。
通常在Linux操作系统中,用户态内存地址中每个进程都是独立存在的地址空间,内核态内存地址是所有进程共享的,并且用户态内存地址和内核态内存地址相互隔离,用户态和内核态内存地址不可以直接进行相互访问。所以,本申请实施例中可以采用用户态驱动技术,预先将加密卡的硬件数据队列的内核态内存地址映射到用户态内存地址,如图2所示,这样就避免了需要将待加解密的数据从用户态拷贝到内核驱动,再从内核驱动映射到加密卡的数据队列的问题,而是直接可以将待加解密的数据放入用户态内存地址的数据队列中即可,不需要拷贝到内核态,如此可达到直接在用户态进行数据的存取效果,减少中断的调用,从而提高性能。
在上述实施例的基础上,用户态内存地址可通过环形存储区来管理,环形存储区是系统动态分配的一段连续的数据存储区域,其工作过程是通过头和尾两个索引在这段连续的存储区域进行数据的读出和写入,增强了数据存储的可靠性。且采用环形存储区来管理用户态内存地址可以无锁的操作数据队列里面的数据,减少锁的使用,进一步提高了CPU的性能。
在上述实施例的基础上,为了进一步减少CPU的操作,提高性能,还可以在将待加解密的数据放入预先设置的数据队列之前,先获取待加解密的数据的相关参数,该相关参数包括数据长度、加解密算法和/或重入函数,然后将数据和相关参数封装为对应的操作单元,最后将操作单元放入预先设置的数据队列中。
这里的相关参数是由CPU获取的,CPU在获取到待加解密的数据后,可先对数据进行预处理,即获取其相关参数,然后将数据和这些相关参数封装成对应的操作单元,操作单元可以理解为是针对加密卡来说的,加密卡每次针对一个操作单元进行数据的加解密或哈希操作。通过操作单元,可以通过一个统一的接口调用密卡,在操作单元里面指定调用的操作类型,如对称加解密、哈希或者加解密和哈希的链式操作,如果不封装为操作单元,那么在链式操作的情况下,需要分别单独调用加密卡获取信息就需要至少两次,如先获取数据,然后再获取加解密算法等信息。本申请实施例中将这些信息和数据封装为操作单元后,加密卡只需一次就可以获取到全部的信息,并且一次完成所有的操作,提高了加解密的效率。
可以理解地,相关参数中的加解密算法可以是指加解密算法的ID、哈希算法的ID等,链式操作类型如先相关参数中的重入函数用于指示CPU对数据的后续操作,如转发等,在实际应用中,相关参数中还可包含其它涉及到加解密的信息。
在上述实现过程中,通过将数据和相关参数封装为操作单元后再放入数据队列中,如此加密卡一次性即可获取到全部的数据,无需多次调用,提高了加密卡的性能。
在上述实施例的基础上,为了适应多个加密卡的应用场景,本申请实施例中还设计一个加解密框架,该加解密框架用于对接多个加密卡的接口,所以在封装操作单元时,还可以调用加解密框架,通过加解密框架来将数据和相关参数根据不同的加密卡类型封装为对应的操作单元。
如图3所示,其加解密框架可以是部署在CPU中的,可以理解为是CPU与加密卡之间通信的媒介,即CPU只需要获取数据的相关参数后传递给加解密框架,然后由加解密框架来将数据和相关参数封装为操作单元,并将操作单元加入到预先设置的数据队列中。
加解密框架还可用于调用其数据队列对应的加密卡的接口,以通过接口调用对应的加密卡对数据队列中的数据进行加解密处理。
也即,加解密框架可用于管理多个加密卡的接口,这些加密卡的接口直接对加解密框架开放,CPU的上层逻辑并不需要关心内部设置有多少数量的加密卡,比如在增删加密卡时,只需要通过加解密框架进行管理即可,无需CPU的上层逻辑知晓,如此可便于加密卡的扩展。
在一些实施方式中,加解密框架还可根据加密卡的数量配置每个加密卡对应的数据队列的数量,并将每个加密卡对应的数据队列与对应的CPU核绑定,每个CPU核对应一个数据队列。
如图3中,假设设备中设置有2个加密卡,那么加解密框架会根据加密卡的数量,先配置对应的数据队列,当然这里的数据队列的分配跟CPU核数有关,比如一个CPU核对应一个数据队列,有2个加密卡和4个CPU核,则每个加密卡分配2个数据队列。
并且,加解密框架将每个数据队列与对应的CPU核进行绑定,每个CPU核会对应一个转发进程,每个转发进程用于管理自己的数据队列。这样设备接收到待加解密的数据后,可先将待加解密的数据按照四元组或者五元组信息进行哈希,按照哈希值进行CPU核的分配,如此可将获取到的待加解密的数据分配给对应的CPU核,然后该CPU核再获取该数据的相关参数,传输给加解密框架,加解密框架对数据和相关参数进行封装为操作单元后,将操作单元添加到该CPU核对应的数据队列中。
在一些实施方式中,加密卡的数据队列也可以无需与CPU核预先绑定,而是CPU核可以动态选择相应的数据队列,而每个加密卡的数量也可根据实际需求来设置,比如现在有2个加密卡,根据实际需求为每个加密卡配置2个数据队列,然后将这4个数据队列的内核态内存地址映射到用户态内存地址。某个CPU核接收到待加解密的数据时,可以根据数据的类型、加解密算法、或者数据队列的繁忙程度来选择将数据加入哪个数据队列,或者此时也可根据负载均衡的算法来选择数据队列,比如每个CPU核按照均分的方式来选择,如这一次选择了第一个数据队列,则下一次来的待加解密的数据则选择第二个数据队列,如此循环选择,这样可以确保各个数据队列中待处理的数据是比较均衡的,使得两个加密卡实现负载均衡。
在另一些实施方式中,也可根据数据的加密要求来选择,比如两个加密卡,其中一个加密卡的加密安全性如果更高,如果数据的加密需求是安全性更高的需求,则可以选择加密安全性更高的一个加密卡对应的数据队列。
或者,也可以将数据的地址信息(如源IP地址或目的IP地址)进行哈希计算,获得一个哈希值,然后将哈希值与数据队列的总个数进行取余计算,获得一个余数,然后将其操作单元添加到与其余数相同的编号的数据队列中。
在上述实施例的基础上,通过加解密框架封装操作单元的方式中,还可以通过加解密框架根据数据队列对应的加密卡所支持的数据格式,将数据和相关参数封装为对应的操作单元。
其中,数据格式可以是指加密卡所支持的加解密算法的格式,不同的加密卡可能所支持的数据格式不同,所以为了便于加密卡对数据的加解密处理,提高处理效率,将数据和相关参数按照其所支持的数据格式封装为对应的操作单元后添加到预先设置的数据队列中,如此加密卡获取到操作单元后可快速对数据进行相应的加解密处理。
在本申请实施例中,加解密框架还可支持链式加密操作,链式加密操作比如链式密码和哈希操作、链式哈希和密码操作等。加解密框架对上层业务屏蔽了链式加密操作的过程,如果底层加密卡支持链式加密操作,则按照上述方式封装好操作单元后将操作单元添加到对应的数据队列即可,然后由加密卡从数据队列中获取数据处理;如果底层加密卡不支持链式加密操作,如链式加密操作中涉及对称算法和哈希算法,则加密卡在从数据队列中获取数据处理时,加解密框架会先调用加密卡的对称算法接口,然后再调用哈希算法接口,然后再将数据返回,而上层业务并不会感知到整个过程。
加解密框架会屏蔽掉底层不同加密卡的接口,这些加密卡的接口对上层CPU来说是不可见的,CPU将数据放入数据队列后,会调用加解密框架,由加解密框架根据数据队列来确定调用哪个加密卡的接口,从而实现加密卡从数据队列中获取数据进行处理。
在上述实现过程中,本申请实施例中通过设计加解密框架,以此来提高代码的易用性,将上层业务代码和底层代码解耦,新增加密卡时,只需要更改底层代码即可,不需要更改上层代码逻辑。
请参照图4,图4为本申请实施例提供的一种数据处理装置200的结构框图,该装置200可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置200包括:
数据添加模块210,用于将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
数据取出模块220,用于从所述数据队列中获取已处理状态的数据。
可选地,所述数据添加模块210,用于获取所述预先设置的数据队列的内核态内存地址;根据建立的所述内核态内存地址与用户态内存地址之间的映射关系,将待加解密的数据放入所述用户态内存地址的数据队列中。
可选地,所述用户态内存地址通过环形存储区来管理。
可选地,所述数据添加模块210,用于获取所述待加解密的数据的相关参数,所述相关参数包括数据长度、加解密算法和/或重入函数;将所述数据和所述相关参数封装为对应的操作单元;将所述操作单元放入预先设置的数据队列中。
可选地,所述数据添加模块210,用于调用加解密框架,通过所述加解密框架将所述数据和所述相关参数封装为对应的操作单元。
可选地,所述加解密框架根据所述加密卡的数量配置每个加密卡对应的数据队列的数量,并将每个加密卡对应的数据队列与对应的CPU核绑定,每个CPU核对应一个数据队列。
可选地,所述数据添加模块210,用于通过所述加解密框架根据所述数据队列对应的加密卡所支持的数据格式,将所述数据和所述相关参数封装为对应的操作单元。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
请参照图5,图5为本申请实施例提供的一种用于执行数据处理方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器310,例如CPU,至少一个通信接口320,至少一个存储器330和至少一个通信总线340。其中,通信总线340用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口320用于与其他节点设备进行信令或数据的通信。存储器330可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器330可选的还可以是至少一个位于远离前述处理器的存储装置。存储器330中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器310执行时,电子设备执行上述图1所示方法过程。
可以理解,图5所示的结构仅为示意,所述电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:
将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
从所述数据队列中获取已处理状态的数据。
综上所述,本申请实施例提供一种数据处理方法、装置、电子设备及存储介质,该方法通过将待加解密的数据放入预先设置的数据队列中,然后数据队列中的数据通过加密卡进行加解密处理后将该数据标记为已处理状态并存入数据队列,从数据队列中获取已处理状态的数据,这样CPU将待加解密的数据存入数据队列后即可返回,后续只需要有空闲时从数据队列中取出已处理的数据进行后续处理即可,从而使得CPU和加密卡可以实现异步的加解密处理,使得CPU可以有更多的资源来处理其他任务,达到将CPU和加密卡真正并行起来,提高整个加解密处理的性能。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
从所述数据队列中获取已处理状态的数据。
2.根据权利要求1所述的方法,其特征在于,所述将待加解密的数据放入预先设置的数据队列中,包括:
获取所述预先设置的数据队列的内核态内存地址;
根据建立的所述内核态内存地址与用户态内存地址之间的映射关系,将待加解密的数据放入所述用户态内存地址的数据队列中。
3.根据权利要求2所述的方法,其特征在于,所述用户态内存地址通过环形存储区来管理。
4.根据权利要求1所述的方法,其特征在于,所述将待加解密的数据放入预先设置的数据队列中,包括:
获取所述待加解密的数据的相关参数,所述相关参数包括数据长度、加解密算法和/或重入函数;
将所述数据和所述相关参数封装为对应的操作单元;
将所述操作单元放入预先设置的数据队列中。
5.根据权利要求4所述的方法,其特征在于,所述将所述数据和所述相关参数封装为对应的操作单元,包括:
调用加解密框架,通过所述加解密框架将所述数据和所述相关参数封装为对应的操作单元。
6.根据权利要求5所述的方法,其特征在于,所述加解密框架根据所述加密卡的数量配置每个加密卡对应的数据队列的数量,并将每个加密卡对应的数据队列与对应的CPU核绑定,每个CPU核对应一个数据队列。
7.根据权利要求6所述的方法,其特征在于,所述通过所述加解密框架将所述数据和所述相关参数封装为对应的操作单元,包括:
通过所述加解密框架根据所述数据队列对应的加密卡所支持的数据格式,将所述数据和所述相关参数封装为对应的操作单元。
8.一种数据处理装置,其特征在于,所述装置包括:
数据添加模块,用于将待加解密的数据放入预先设置的数据队列中,其中,所述数据队列中的数据通过加密卡进行加解密处理,且所述加密卡将处理后的数据标记为已处理状态并存入所述数据队列;
数据取出模块,用于从所述数据队列中获取已处理状态的数据。
9.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一所述的方法。
CN202310603622.2A 2023-05-25 2023-05-25 数据处理方法、装置、电子设备及存储介质 Pending CN116628717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310603622.2A CN116628717A (zh) 2023-05-25 2023-05-25 数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310603622.2A CN116628717A (zh) 2023-05-25 2023-05-25 数据处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116628717A true CN116628717A (zh) 2023-08-22

Family

ID=87612885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310603622.2A Pending CN116628717A (zh) 2023-05-25 2023-05-25 数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116628717A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272352A (zh) * 2023-11-21 2023-12-22 北京国科天迅科技股份有限公司 多核并行加解密方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117272352A (zh) * 2023-11-21 2023-12-22 北京国科天迅科技股份有限公司 多核并行加解密方法、装置、计算机设备和存储介质
CN117272352B (zh) * 2023-11-21 2024-01-30 北京国科天迅科技股份有限公司 多核并行加解密方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
WO2023087938A1 (zh) 数据处理方法、可编程网卡设备、物理服务器及存储介质
EP3460658A1 (en) Data transmission method and apparatus
CN109302466B (zh) 数据处理方法、相关设备及计算机存储介质
WO2013136522A1 (ja) 計算機システム及び計算機間のデータ通信方法
WO2016101288A1 (zh) 一种远程直接数据存取方法、设备和系统
CN108984465B (zh) 一种消息传输方法及设备
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
US8989220B2 (en) High speed variable bandwidth ring-based system
CN113614722A (zh) 网络功能虚拟化基础设施中的进程到进程安全数据移动
JP2021028820A (ja) リソース管理のための方法、装置、電子機器及び記憶媒体
CN113449346B (zh) 微处理器、数据处理方法、电子设备和存储介质
US9215294B2 (en) Management of communications between a client equipment and a server equipment providing to the client equipment computer resources represented according to a file system
CN116628717A (zh) 数据处理方法、装置、电子设备及存储介质
US20230071723A1 (en) Technologies for establishing secure channel between i/o subsystem and trusted application for secure i/o data transfer
WO2022073429A1 (zh) 数据管理方法、装置及系统、存储介质
CN110866262A (zh) 一种软硬件协同工作的异步加解密系统和方法
CN114266035B (zh) 一种高性能密码卡及配置方法
CN113449347B (zh) 微处理器、数据处理方法、电子设备和存储介质
CN109857553B (zh) 内存管理方法及装置
US11671382B2 (en) Technologies for coordinating access to data packets in a memory
CN112035900B (zh) 一种高性能密码卡以及其通信方法
CN109062671A (zh) 一种轻量级的高性能互连网络软件虚拟化方法
WO2013147773A1 (en) Shared buffers for processing elements on a network device
CN112035866B (zh) 一种数据加密方法、装置、设备和计算机可读存储介质
CN105512075B (zh) 高速输出、输入接口电路及数据传输方法

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