CN107577962B - 一种密码卡多算法并列执行的方法、系统及相关装置 - Google Patents

一种密码卡多算法并列执行的方法、系统及相关装置 Download PDF

Info

Publication number
CN107577962B
CN107577962B CN201710891937.6A CN201710891937A CN107577962B CN 107577962 B CN107577962 B CN 107577962B CN 201710891937 A CN201710891937 A CN 201710891937A CN 107577962 B CN107577962 B CN 107577962B
Authority
CN
China
Prior art keywords
function
pci
algorithm
cipher
cipher cards
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.)
Active
Application number
CN201710891937.6A
Other languages
English (en)
Other versions
CN107577962A (zh
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.)
Yuweng Information Technology Co., Ltd
Original Assignee
SHANDONG YUWENG INFORMATION 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 SHANDONG YUWENG INFORMATION TECHNOLOGY Co Ltd filed Critical SHANDONG YUWENG INFORMATION TECHNOLOGY Co Ltd
Priority to CN201710891937.6A priority Critical patent/CN107577962B/zh
Publication of CN107577962A publication Critical patent/CN107577962A/zh
Application granted granted Critical
Publication of CN107577962B publication Critical patent/CN107577962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请公开了一种密码卡多算法并列执行的方法,应用于基于FPGA构成的PCI‑E密码卡,包括:根据PCI‑E密码卡的算法个数在IP核中设置预设数量的Function,并为其配置相同的算法实例以及配置信息,以使识别终端识别为预设数量的PCI‑E密码卡;按预设规则为各Function命名对应的功能编号,并根据用户层API的指令调用各功能编号对应的Function。能够更加科学合理的使用逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。本申请还同时公开了一种密码卡多算法并列执行的系统、PCI‑E密码卡以及计算机可读存储介质,具有上述有益效果。

Description

一种密码卡多算法并列执行的方法、系统及相关装置
技术领域
本申请涉及计算机信息安全通信技术领域,特别涉及一种密码卡多算法并列执行的方法、系统、PCI-E密码卡以及计算机可读存储介质。
背景技术
随着数字办公化的普及,如何对数字办公中产生的机密数据文件进行保存是当今研究的重点,主要存在软件加密和硬件加密的两种方式,其中,硬件加密通常是采用密码卡,旨在通过密码卡中包含多种加密算法对机密数据文件进行加密。
当前密码卡接口协议主要采用PCI(Peripheral Component Interconnect,外设部件互连标准)和PCI-E(peripheral component interconnect express串行计算机扩展总线标准)为主,目前高端性能的密码卡主要是采用FPGA(Field-Programmable GateArray,即现场可编程门阵列)平台的PCI-E密码卡,且市面上的PCI-E密码卡多采取的是传统运算流程模式,即按照写命令、写数据、等待结果、返回的步骤依次执行,而为保证关键数据去不被改写或覆盖,整个流程一般会采用上锁机制,即在写命令下发到结果返回之间只能单线程或串行执行,造成了即使密码卡支持多种算法的前提下,仍在同一时间或同一时间间隔内只存在一个算法处于与运算状态,严重浪费了固有硬件提供的逻辑计算资源,降低了计算效率。
所以,如何提供一种对PCI-E密码卡固有硬件提供的逻辑计算资源使用更加科学合理、利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态的密码卡多算法并联执行机制是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种密码卡多算法并列执行的方法、系统、PCI-E密码卡以及计算机可读存储介质,其应用于基于FPGA构成的PCI-E密码卡,能够更加科学合理的使用PCI-E密码卡固有硬件提供的逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。
为解决上述技术问题,本申请提供一种密码卡多算法并列执行的方法,应用于基于FPGA构成的PCI-E密码卡,该方法包括:
根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,所述Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,所述算法实例包括所述PCI-E密码卡中所有的算法;
按预设规则为各所述Function命名对应的功能编号,并根据用户层API的指令调用各所述功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
可选的,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function,包括:
获取所述PCI-E密码卡上设置的算法芯片的数量以及总计算性能;
获取所述PCI-E密码卡中各算法占用所述总计算性能的百分比数值;
根据各所述百分比数值以及各所述算法使用频率计算得到所述预设数量。
可选的,为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡,包括:
将所述算法实例和所述配置信息的数量均复制为所述预设数量;
为每个所述Function配置一个所述算法实例和所述配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡。
可选的,按预设规则为各所述Function命名对应的功能编号,包括:
根据计算出的所述预设数量,依次为各所述Function命名对应的功能编号;其中,所述功能编号的命名从编号0起始、每次增加1。
可选的,根据用户层API的指令调用各所述功能编号对应的Function,包括;
所述用户层API获取到各所述Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
所述目标Function根据所述调用信息执行相应的运算操作。
本申请还提供了一种密码卡多算法并列执行的系统,应用于基于FPGA构成的PCI-E密码卡,该系统包括:
Function设置单元,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,所述Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
算法及信息配置单元,用于为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,所述算法实例包括所述PCI-E密码卡中所有的算法;
匹配调用单元,用于按预设规则为各所述Function命名对应的功能编号,并根据用户层API的指令调用各所述功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
可选的,所述算法及信息配置单元包括:
算法程序配置子单元,用于将所述算法实例和所述配置信息的数量均复制为所述预设数量;
算法功能模块形成子单元,用于为每个所述Function配置一个所述算法实例和所述配置信息,以使所述识别终端将完成配置的各Function识别为多个PCI-E密码卡;
编号命名子单元,用于根据计算出的所述预设数量,依次为各所述Function命名对应的功能编号;其中,所述功能编号的命名从编号0起始、每次增加1。
可选的,所述匹配调用单元包括:
关键字提取子单元,用于所述用户层API获取到各所述Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
查询子单元,用于所述目标Function根据所述调用信息执行相应的运算操作。
本申请还提供了一种基于FPGA构成的PCI-E密码卡,该PCI-E密码卡包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所述的密码卡多算法并列执行的方法的步骤。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所述的密码卡多算法并列执行的方法的步骤。
本申请所提供的一种密码卡多算法并列执行的方法,应用于基于FPGA构成的PCI-E密码卡,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,所述Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;按预设规则为各所述Function命名对应的功能编号,并根据用户层API的指令调用各所述功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
显然,本申请所提供的技术方案,在充分考虑到该PCI-E密码卡固有硬件所提供的逻辑计算资源的基础上,设置预设数量的Function,并为各Function配置完整的、包含全部算法的算法实例和识别配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡,即效果完全等同于安装了预设数量的传统物理PCI-E密码卡。该方法更加科学合理的使用PCI-E密码卡固有硬件提供的逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。本申请同时还提供了一种密码卡多算法并列执行的系统、PCI-E密码卡以及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种密码卡多算法并列执行的方法的流程图;
图2为本申请实施例所提供的另一种密码卡多算法并列执行的方法的流程图;
图3为本申请实施例所提供的一种密码卡多算法并列执行的系统的结构框图;
图4为本申请实施例所提供的另一种密码卡多算法并列执行的系统的结构框图。
具体实施方式
本申请的核心是提供一种密码卡多算法并列执行的方法,其应用于基于FPGA构成的PCI-E密码卡,能够更加科学合理的使用PCI-E密码卡固有硬件提供的逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合图1,图1为本申请实施例所提供的一种密码卡多算法并列执行的方法的流程图。
其具体包括以下步骤:
S101:根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
本步骤旨在根据PCI-E密码卡上包含的算法个数在基于FPGA构成的PCI-E密码卡上的IP核(Intellectual Property core,知识产权核)中设置预设数量的Function,其中,该Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息。
其中,该预设数量并不是随意设定的,受到PCI-E密码卡上算法芯片数量以及这些固有硬件所提供的逻辑计算资源的限制,因为每个算法的使用都需要占用部分逻辑计算资源和计算通道等,故需要综合考虑这些限制因素来合理设定该预设数量。
具体方式多种多样,例如,虽然每个PCI-E密码卡上都配置了多种算法,但每种算法的使用频率可以会出现较大的差异,不同的算法占用的逻辑计算资源也不同,可以根据该使用频率和各算法占用的逻辑计算资源数进行运算得出该预设数量;也可以根据其它影响因素或实际应用场景的特殊要求进行改变,此处并不做具体限定。
S102:为各Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,算法实例包括PCI-E密码卡中所有的算法;
在S101的基础上,本步骤旨在为各Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡。换句话说,就是通过本步骤的设置方式,尤其是为各Function配置相同的配置信息,使得经过这样设置的一个PCI-E密码卡能够被识别终端(例如PC或其它终端设备)识别为多个物理PCI-E密码卡。
同时,由于为各Function配置了相同的算法实例,该算法实例包含了该PCI-E密码卡中的所有种类算法,即经过这样设置,每个Function在功能上来说,都是一致的,均可完成任意下发的算法计算任务,但实际是由一个物理的PCI-E密码卡设置而来的,可以说起到了“欺骗”识别终端的目的。
具体如何为各Function配置相同的算法实例以及配置信息方式多种多样,只需要能够达成目的即可,此处并不做具体限定。
S103:按预设规则为各Function命名对应的功能编号,并根据用户层API的指令调用各功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
在S102完成配置的基础上,本步骤旨在按预设规则为各Function命名对应的功能编号,并根据用户层API(Application Programming Interface,应用程序编程接口)的指令调用各功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。其中,为各Function命名是为了利用不同的功能编号区分各Function,并根据该功能编号判断对应的Function是否处于占用状态,以便根据用户层API的指令调用处于空闲状态的Function并行调用多个算法。
其中,该预设规则的表现形式多种多样,例如,从01开始计数,每个Function增加1,即按照01、02、03……的方式为各Function进行功能编号命名;也可以按照100、200、300……的方式进行命名;或者根据实际情况下结合其它识别终端的识别方式加入中英文在内来区别等等,此处并不做具体的限定,可以自行判断并选取合适的规则进行功能编号的命名。
至于如何调用多个Function并行执行多算法同时处理的方式也有很多,例如,可以根据为各Function命名的功能编号建立一个轮询表,按照一定的排序方式建立这个轮询表,该轮询表上可附加对应Function实时所处的状态,即是否正在执行计算任务或处于空闲状态等,每次通过用户层API的指令下发来的计算任务可以按照不同的选取原则在该轮询表中选取处于空闲状态的Function,直至所有Function均处于执行计算任务的状态。
基于上述技术方案,本申请实施例提供的一种密码卡多算法并列执行的方法,在充分考虑到该PCI-E密码卡固有硬件所提供的逻辑计算资源的基础上,设置预设数量的Function,并为各Function配置完整的、包含全部算法的算法实例和识别配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡,即效果完全等同于安装了预设数量的传统物理PCI-E密码卡。该方法更加科学合理的使用PCI-E密码卡固有硬件提供的逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。
以下结合图2,图2为本申请实施例所提供的另一种密码卡多算法并列执行的方法的流程图。
其具体包括以下步骤:
S201:获取PCI-E密码卡上设置的算法芯片的数量以及总计算性能;
S202:获取PCI-E密码卡中各算法占用总计算性能的百分比数值;
S203:根据各百分比数值以及各算法使用频率计算得到预设数量;
S201、S202以及S203旨在首先获取该PCI-E密码卡上设置的算法芯片的数量以及总计算性能、各算法占用总计算性能的百分比数值,紧接着根据历史数据获取各算法使用频率,最后根据各算法所占百分比数值、使用频率综合计算得到该预设数量,以保证在该预设数量下,既能充分利用现有PCI-E密码卡固有硬件所提供的逻辑计算资源,又不会设置过多导致PCI-E密码卡超负载运行,保持一个高效、稳定的运行状态。
S204:将算法实例和配置信息的数量均复制为预设数量;
S205:为每个Function配置一个算法实例和配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;
本实施例采用复制的方式,首先将算法实例和配置信息的数量均复制为与预设数量等同,并为每个Function各配置一个算法实例和配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡。
S206:根据计算出的预设数量,依次为各Function命名对应的功能编号;其中,功能编号的命名从编号0起始、每次增加1;
本步骤根据S203计算出的预设数量,按照从编号0开始,每个Function增加1的方式为各Function命名对应的功能编号。
S207:用户层API获取到各Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
在S206的基础上,本步骤旨在由用户层API获取到各Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function。其中,该设备句柄是一种可以访问设备空间的特殊指针,即在利用用户层API获取到设备句柄后,就可以像读写普通文件一样,对密码卡设备进行读写与IO操作。
S208:目标Function根据调用信息执行相应的运算操作。
基于上述技术方案,本申请实施例提供的一种密码卡多算法并列执行的方法,在充分考虑到该PCI-E密码卡固有硬件所提供的逻辑计算资源的基础上,设置预设数量的Function,并为各Function配置完整的、包含全部算法的算法实例和识别配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡,即效果完全等同于安装了预设数量的传统物理PCI-E密码卡。该方法更加科学合理的使用PCI-E密码卡固有硬件提供的逻辑计算资源、硬件资源利用率更高,使得同一时间或同一时间间隔内有多种算法均处于运算状态,显著提升运算效率。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到更具本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图3,图3为本申请实施例所提供的一种密码卡多算法并列执行的系统的结构框图。
该系统可以包括:
Function设置单元100,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
算法及信息配置单元200,用于为各Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,算法实例包括PCI-E密码卡中所有的算法;
匹配调用单元300,用于按预设规则为各Function命名对应的功能编号,并根据用户层API的指令调用各功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
其中,Function设置单元100包括:
参数获取子单元,用于获取PCI-E密码卡上设置的算法芯片的数量以及总计算性能;
数值计算子单元,用于获取PCI-E密码卡中各算法占用总计算性能的百分比数值;
预设数量获取子单元,用于根据各百分比数值以及各算法使用频率计算得到预设数量。
其中,算法及信息配置单元200包括:
算法程序配置子单元,用于将算法实例和配置信息的数量均复制为预设数量;
算法功能模块形成子单元,用于为每个Function配置一个算法实例和配置信息,以使识别终端将完成配置的各Function识别为多个PCI-E密码卡;
编号命名子单元,用于根据计算出的预设数量,依次为各Function命名对应的功能编号;其中,功能编号的命名从编号0起始、每次增加1。
其中,匹配调用单元300包括:
关键字提取子单元,用于用户层API获取到各Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
查询子单元,用于目标Function根据调用信息执行相应的运算操作。
以上各单元可以应用于以下的一个具体的实际例子中:
由于现有支持多种算法的密码卡,在同一时间内只有一种算法在运行,无疑造成了计算资源的浪费。本实施例是在不增加物理PCI-E密码卡的数量的前提下,使得同一时间或同一时间间隔内存在多种算法同时运行,或者同一时间或同一时间间隔内同种算法的并列运行。
可以参见图4,图4为本申请实施例所提供的另一种密码卡多算法并列执行的系统的结构框图,以下为具体实现步骤:
1、配置PCI-E IP核:将Function配置为多个,每个Function的子项,包括地址空间,中断,厂商ID,设备ID等均配置成相同;
2、数据流控制:根据PCI-E IP核的Function接口将向密码卡写入的数据进行数据流分组。需要考虑三个部分,从设备读写,DMA(Direct Memory Access,直接内存存取)读,DMA写的具体实现;
3、从设备读写:根据各Function的不同直接连通至不同的算法实例;
4、DMA读操作:主机端可能同时发送多个DMA请求,所以DMA读模块需要包括一个DMA寄存器组FIFO(First Input First Output,先入先出队列),用来缓存没有及时处理的DMA请求,该FIFO的大小至少容纳8个DMA寄存器组。每个寄存器组除了包括地址,长度等必须的信息外,还需要指示Function Number。DMA状态机,读取DMA寄存器组FIFO中的寄存器组,进行DMA读操作,并把读取的结果,根据Function的不同,将结果输入至不同的算法实例。
5、DMA写操作:主机端可能同时发送多个DMA请求,所以DMA写模块需要包括一个DMA寄存器组FIFO,用来缓存没有及时处理的DMA请求,该FIFO的大小至少容纳8个DMA寄存器组。每个寄存器组除了包括地址,长度等必须的信息外,还需要指示Function的功能编号。DMA状态机,读取DMA寄存器组FIFO中的寄存器组,进行DMA写操作,DMA写操作需要的数据,根据Function功能编号的不同,从不同的算法实例中获取。
6、不同的算法实例可能需要使用同一算法芯片进行运算,所以,对于算法芯片的控制,需要采用仲裁方式。拥有芯片控制权的算法实例,只有该算法运算完全结束后,才能释放控制权。
本实施例是将FPGA中PCI-E IP核的function设置为多个,可以设置为1~8个,并根据Function序号分配资源,以及算法实例的复制,从而保证不同Function的运算互不干扰。
将上述具体内容包含在内的整体流程可以为下述步骤:
以Linux中调用为例:
步骤一:安装设备驱动程序,安装完后,查看设备节点,可以发现N个设备节点,且这些节点的资源互相独立,等同于安装了多个PCI-E密码卡;
步骤二:用户层打开设备并获取返回的设备句柄,可以获取N个。建立N个线程,每个线程对应一张密码卡。实际调用时,可以查询线程的状态,调用空闲的线程进行运算。
步骤三:用户层通过不同的设备句柄,进行密码卡读写操作。设备句柄不同对应的PCI-E配置空间的Function也不同。
步骤四:FPGA的PCI-E IP拥有Function接口,可以输出各Function序号。根据Function序号,调用相应的Function执行下发的计算任务。
本申请还提供了一种基于FPGA构成的PCI-E密码卡,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该设置装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种密码卡多算法并列执行的方法,应用于基于FPGA构成的PCI-E密码卡,其特征在于,包括:
根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,所述Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,所述算法实例包括所述PCI-E密码卡中所有的算法;
按预设规则为各所述Function命名对应的功能编号,并根据用户层API的指令调用各所述功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
2.根据权利要求1所述方法,其特征在于,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function,包括:
获取所述PCI-E密码卡上设置的算法芯片的数量以及总计算性能;
获取所述PCI-E密码卡中各算法占用所述总计算性能的百分比数值;
根据各所述百分比数值以及各所述算法使用频率计算得到所述预设数量。
3.根据权利要求1或2所述方法,其特征在于,为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡,包括:
将所述算法实例和所述配置信息的数量均复制为所述预设数量;
为每个所述Function配置一个所述算法实例和所述配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡。
4.根据权利要求3所述的方法,其特征在于,按预设规则为各所述Function命名对应的功能编号,包括:
根据计算出的所述预设数量,依次为各所述Function命名对应的功能编号;其中,所述功能编号的命名从编号0起始、每次增加1。
5.根据权利要求4所述的方法,其特征在于,根据用户层API的指令调用各所述功能编号对应的Function,包括;
所述用户层API获取到各所述Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
所述目标Function根据所述调用信息执行相应的运算操作。
6.一种密码卡多算法并列执行的系统,应用于基于FPGA构成的PCI-E密码卡,其特征在于,包括:
Function设置单元,根据PCI-E密码卡的算法个数在IP核中设置预设数量的Function;其中,所述Function至少包括地址空间、中断、厂商ID以及设备ID在内的配置信息;
算法及信息配置单元,用于为各所述Function配置相同的算法实例以及配置信息,以使识别终端将完成配置的位于同一PCI-E密码卡上的各Function识别为预设数量的PCI-E密码卡;其中,所述算法实例包括所述PCI-E密码卡中所有的算法;
匹配调用单元,用于按预设规则为各所述Function命名对应的功能编号,并根据用户层API的指令调用各所述功能编号对应的Function,以并行调用多算法同时执行相应的算法运算。
7.根据权利要求6所述的系统,其特征在于,所述算法及信息配置单元包括:
算法程序配置子单元,用于将所述算法实例和所述配置信息的数量均复制为所述预设数量;
算法功能模块形成子单元,用于为每个所述Function配置一个所述算法实例和所述配置信息,以使所述识别终端将完成配置的各Function识别为多个PCI-E密码卡;
编号命名子单元,用于根据计算出的所述预设数量,依次为各所述Function命名对应的功能编号;其中,所述功能编号的命名从编号0起始、每次增加1。
8.根据权利要求7所述的系统,其特征在于,所述匹配调用单元包括:
关键字提取子单元,用于所述用户层API获取到各所述Function返回的设备句柄,并将至少包括算法调用命令、参数、目标计算数据在内的调用信息通过PCI-E协议发送至目标Function;
查询子单元,用于所述目标Function根据所述调用信息执行相应的运算操作。
9.一种基于FPGA构成的PCI-E密码卡,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述密码卡多算法并列执行的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述密码卡多算法并列执行的方法的步骤。
CN201710891937.6A 2017-09-27 2017-09-27 一种密码卡多算法并列执行的方法、系统及相关装置 Active CN107577962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710891937.6A CN107577962B (zh) 2017-09-27 2017-09-27 一种密码卡多算法并列执行的方法、系统及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710891937.6A CN107577962B (zh) 2017-09-27 2017-09-27 一种密码卡多算法并列执行的方法、系统及相关装置

Publications (2)

Publication Number Publication Date
CN107577962A CN107577962A (zh) 2018-01-12
CN107577962B true CN107577962B (zh) 2018-08-21

Family

ID=61039929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710891937.6A Active CN107577962B (zh) 2017-09-27 2017-09-27 一种密码卡多算法并列执行的方法、系统及相关装置

Country Status (1)

Country Link
CN (1) CN107577962B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110334248B (zh) * 2019-06-26 2020-09-01 京东数字科技控股有限公司 一种系统配置信息处理方法和装置
CN110928604B (zh) * 2019-11-11 2023-05-02 北京天融信网络安全技术有限公司 基于无锁环状队列的密码卡异步调用方法
CN112532381A (zh) * 2020-11-16 2021-03-19 航天信息股份有限公司 基于密码卡的数据处理方法、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290569A (zh) * 2008-05-06 2008-10-22 国网南京自动化研究院 一种采用多密码芯片并行数据处理的方法
CN102135950A (zh) * 2011-03-10 2011-07-27 中国科学技术大学苏州研究院 基于星型互联架构的片上异构多核系统及其通信方法
CN104820657A (zh) * 2015-05-14 2015-08-05 西安电子科技大学 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103237021A (zh) * 2013-04-08 2013-08-07 浪潮集团有限公司 一种基于fpga芯片的pci-e的高速密码卡
CN205507633U (zh) * 2016-03-31 2016-08-24 无锡市同威软件有限公司 一种基于FPGA的高性能运算PCI-e加速卡

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290569A (zh) * 2008-05-06 2008-10-22 国网南京自动化研究院 一种采用多密码芯片并行数据处理的方法
CN102135950A (zh) * 2011-03-10 2011-07-27 中国科学技术大学苏州研究院 基于星型互联架构的片上异构多核系统及其通信方法
CN104820657A (zh) * 2015-05-14 2015-08-05 西安电子科技大学 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型

Also Published As

Publication number Publication date
CN107577962A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
US9639459B2 (en) I/O latency and IOPs performance in thin provisioned volumes
US11573946B2 (en) Management of memory usage using usage analytics
CN107577962B (zh) 一种密码卡多算法并列执行的方法、系统及相关装置
US9501313B2 (en) Resource management and allocation using history information stored in application's commit signature log
US9817754B2 (en) Flash memory management
CN103778017A (zh) 改进虚拟处理器调度的亲和性
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
CN108197309A (zh) 一种服务器资产信息存储的方法、系统及可读存储介质
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
CN109492024A (zh) 数据处理方法、装置、计算机设备以及存储介质
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US9069621B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
EP3516515B1 (en) Scheduling of tasks in a multiprocessor device
TWI663548B (zh) 用於時間配量儀器之電腦程式產品、電腦系統及方法
CN104679575A (zh) 输入输出流的控制系统及其方法
CN109634524A (zh) 一种数据处理守护进程的数据分区配置方法、装置及设备
CN110535724B (zh) 应用程序网络读写限制方法、装置、电子设备及存储介质
US11360702B2 (en) Controller event queues
US10572387B2 (en) Hardware control of CPU hold of a cache line in private cache where cache invalidate bit is reset upon expiration of timer
CN107515816A (zh) 一种数据统计的方法及服务器
CN109426563A (zh) 一种进程管理方法及装置
CN107632878B (zh) 一种密码卡算法资源的分配方法、系统及相关装置
US8806121B2 (en) Intelligent storage provisioning within a clustered computing environment
CN105659216A (zh) 多核处理器系统的缓存目录处理方法和目录控制器
US10339049B2 (en) Garbage collection facility grouping infrequently accessed data units in designated transient memory area

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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and system for cipher card multi-algorithm parallel execution and relevant devices

Effective date of registration: 20190604

Granted publication date: 20180821

Pledgee: Weihai City Commercial Bank Limited by Share Ltd high tech branch

Pledgor: Shandong Yuweng Information Technology Co., Ltd.

Registration number: 2019990000516

PE01 Entry into force of the registration of the contract for pledge of patent right
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 264200 No. 12-1, Chuhe North Road, chucun Town, gaoqu District, Weihai City, Shandong Province

Patentee after: Yuweng Information Technology Co., Ltd

Address before: 264210 No. 12, Chuhe North Road, gaoqu District, Weihai City, Shandong Province

Patentee before: Shandong yuweng Information Technology Co., Ltd

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20211222

Granted publication date: 20180821

Pledgee: Weihai City Commercial Bank Limited by Share Ltd. high tech branch

Pledgor: Yuweng Information Technology Co.,Ltd.

Registration number: 2019990000516

PM01 Change of the registration of the contract for pledge of patent right
PM01 Change of the registration of the contract for pledge of patent right

Change date: 20211222

Registration number: 2019990000516

Pledgor after: Yuweng Information Technology Co.,Ltd.

Pledgor before: SHANDONG FISHERMAN INFORMATION TECHNOLOGY CO.,LTD.