CN107632878B - 一种密码卡算法资源的分配方法、***及相关装置 - Google Patents
一种密码卡算法资源的分配方法、***及相关装置 Download PDFInfo
- Publication number
- CN107632878B CN107632878B CN201710891146.3A CN201710891146A CN107632878B CN 107632878 B CN107632878 B CN 107632878B CN 201710891146 A CN201710891146 A CN 201710891146A CN 107632878 B CN107632878 B CN 107632878B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- current version
- examples
- virtual current
- cipher card
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种密码卡算法资源的分配方法,应用于SR‑IOV环境下,包括:将密码卡包含的算法进行种类划分,得到常用型算法和非常用型算法;将常用型算法的算法程序进行复制得到M个虚拟常用型算法实例,并按预设命名规则分配算法ID,得到M个不同的算法ID;当收到常用型算法的调用命令时,执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;通过算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个虚拟常用型算法实例均处于占用状态。该分配方法逻辑计算资源分配更加科学合理、利用率更高。本申请还同时公开了一种密码卡算法资源的分配***、密码卡及计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及计算机信息安全通信技术领域,特别涉及一种密码卡算法资源的分配方法、***、密码卡及计算机可读存储介质。
背景技术
SR-IOV技术是一种虚拟化技术,由用户软件、虚拟机监控器、设备驱动、BIOS、支持VF(Virtual Function,虚拟功能)的PCI-E(Peripheral Component InterconnectExpress,快速外设组件互连)设备等组成的一整套技术,一个物理PCI-E设备可以把自身虚拟为多个虚拟PCI-E设备,提供给多个不同的虚拟机访问。
在现有技术中,一个基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)构成的PCI-E密码卡设置有一定数量的VF,且为每个VF配置一套完整的算法资源,一来这样简单、易行,但是会浪费该PCI-E密码卡固有的硬件逻辑计算资源,但同样受限于密码卡有限的逻辑计算资源,不可能无限制的增加VF的数量,更不可能在VF的数量较多时为每个VF均提供一套完整的算法资源。
所以,如何提供一种逻辑计算资源分配更加科学合理、利用率更高的密码卡算法资源分配机制是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种密码卡算法资源的分配方法、***、密码卡及计算机可读存储介质,其应用于SR-IOV环境下,将按算法使用频率划分出的常用型算法复制为多个,使得复制出的多个常用型算法实例均可以执行算法运算,在资源分配更加合理的基础上显著提高了该PCI-E密码卡的逻辑计算资源的利用率。
为解决上述技术问题,本申请提供一种密码卡算法资源的分配方法,应用于SR-IOV环境下,该分配方法包括:
将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法;
将所述常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
当收到所述常用型算法的调用命令时,在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
通过所述算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个所述虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的所述调用命令。
可选的,将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法,包括:
在预设周期内统计所述密码卡中包含的各算法的使用频率;
判断各所述使用频率是否超过阈值;
若超过,将所述使用频率超过所述阈值的算法划分为常用型算法;
若未超过,将所述使用频率未超过所述阈值的算法划分为非常用型算法。
可选的,在将所述常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例之前,还包括:
获取构成所述密码卡的FPGA逻辑单元的总计算性能以及各所述算法程序占用所述总计算性能的百分比数值;
根据各所述百分比数值以及各所述使用频率计算得到所述预设数量M。
可选的,为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID之后,还包括:
按预设排序规则将M个不同的算法ID进行排序,得到算法排序表;
采集各所述算法ID对应的虚拟常用型算法实例的工作状态;
将各所述工作状态附加在所述算法排序表中对应算法ID的预设位置,得到算法状态查询表。
可选的,在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID,包括;
依次判断各所述虚拟常用型算法实例是否处于所述空闲状态;
若是,则获取处于所述空闲状态的虚拟常用型算法实例对应的算法ID;
若M个所述虚拟常用型算法实例均处于占用状态,则重新开始轮询,直至存在处于所述空闲状态的虚拟常用型算法实例。
本申请还提供了一种密码卡算法资源的分配***,应用于SR-IOV环境下,该分配***包括:
划分单元,用于将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法;
复制单元,用于将所述常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
ID分配单元,用于为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
轮询查找单元,用于在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
调用执行单元,用于通过所述算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个所述虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的所述调用命令。
可选的,所述划分单元包括:
使用频率统计子单元,用于在预设周期内统计所述密码卡中包含的各算法的使用频率;
阈值判断子单元,拥有判断各所述使用频率是否超过阈值;
常用型划分子单元,用于将所述使用频率超过所述阈值的算法划分为常用型算法;
非常用型划分子单元,用于所述使用频率未超过所述阈值的算法划分为非常用型算法。
可选的,所述轮询查找单元包括:
空闲状态判断子单元,用于依次判断各所述虚拟常用型算法实例是否处于所述空闲状态;
空闲处理子单元,用于获取处于所述空闲状态的虚拟常用型算法实例对应的算法ID;
均占用处理子单元,用于重新开始轮询,直至存在处于所述空闲状态的虚拟常用型算法实例。
本申请还提供了一种基于SR-IOV的密码卡,该密码卡包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所述的密码卡算法资源的分配方法的步骤。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所述的密码卡算法资源的分配方法的步骤。
本申请所提供的一种密码卡算法资源的分配方法,应用于SR-IOV环境下,将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法;将所述常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;当收到所述常用型算法的调用命令时,在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;通过所述算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个所述虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的所述调用命令。
显然,本申请所提供的技术方案,在充分考虑到该PCI-E密码卡上具备的固有逻辑计算资源的基础上,将按算法使用频率划分出的常用型算法复制为多个,当然,复制的数量收到逻辑计算资源的限制,并使得复制出的多个常用型算法实例均可以执行算法运算,在资源分配更加合理的基础上显著提高了该PCI-E密码卡的逻辑计算资源的利用率。本申请同时还提供了一种密码卡算法资源的分配***、密码卡及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种密码卡算法资源的分配方法的流程图;
图2为本申请实施例所提供的另一种密码卡算法资源的分配方法的流程图;
图3为本申请实施例所提供的一种密码卡算法资源的分配***的结构框图;
图4为本申请实施例所提供的一种密码卡算法资源的分配***中算法状态表的示意图;
图5为本申请实施例所提供的另一种密码卡算法资源的分配***的结构框图。
具体实施方式
本申请的核心是提供一种密码卡算法资源的分配方法,其应用于SR-IOV环境下,将按算法使用频率划分出的常用型算法复制为多个,使得复制出的多个常用型算法实例均可以执行算法运算,在资源分配更加合理的基础上显著提高了该密码卡的逻辑计算资源的利用率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合图1,图1为本申请实施例所提供的一种密码卡算法资源的分配方法的流程图。
其具体包括以下步骤:
S101:将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法;
本步骤旨在将密码卡上包含的至少两种算法按照是否常用进行种类划分,得到分属常用型算法和非常用型算法两大类。
具体依据何种参数将密码卡包含的算法划分为这两类的方式多种多样,例如,可以在一定周期内采集各算法的使用次数或使用频率,并结合设定的某个阈值来判断某种算法具体属于常用型算法还是非常用型算法;也可以根据其它参数或特殊要求进行分类,可以将十分复杂、耗费逻辑计算资源的算法归为非常用型算法,因为除非处于最高级别的加密算法,通常情况下用到该类型算法的机会和次数较少。例如,对数据文件进行压缩的标准有好几种,包括RAR、ZIP、7Z等,其中,大部分软件都会默认选取RAR或ZIP的格式,因为这两种格式已经能够符合大部分用户的需求,除非有着特殊的要求,在自行选取符合要求的压缩标准。
S102:将常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
在S101的基础上,本步骤旨在将划分出的常用型算法的算法程序复制为预设数量M,以得到M个虚拟常用型算法实例。其中,该算法程序包含所有属于常用型算法的算法,即假设该常用型算法包括SM1、SM2(两种加密算法)这两种算法的情况下,该算法程序就包含了SM1、SM2这两种算法的执行代码或其它能够实现相同运算步骤的数据文件。
S103:为M个虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
在S102复制完成的基础上,本步骤为这M个虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID,以便于后续步骤中通过算法ID进行寻找对应的虚拟常用型算法实例来执行下发的计算任务。
其中,该预设命名规则的表现方式多种多样,例如,从01开始计数,每个虚拟常用型算法实例增加1,即按照01、02、03……的方式为各虚拟常用型算法实例进行功能编号命名;也可以按照100、200、300……的方式进行命名;或者根据实际情况下结合识别方式加入中英文在内来区别等等,此处并不做具体的限定,可以自行判断并选取合适的规则进行功能编号的命名。
S104:当收到常用型算法的调用命令时,在M个虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
在S103完成命名的基础上,本步骤旨在当收到常用型算法的调用命令时,采用轮询的方式遍历所有的虚拟常用型算法实例,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID。
其中,轮询查找的方式多种多样,例如,可以首先在命名完成后,将代表M个虚拟常用型算法实例的M个算法ID按预设排序生成一个轮询表,并通过在该轮询表中加入算法ID对应的虚拟常用型算法实例所处的状态将计算任务下发;也可以采用生成空闲序列的方式,按预设周期查询一次所有虚拟常用型算法实例的状态,并只将处于空闲状态的虚拟常用型算法实例的算法ID加入该空闲序列等方式,此处并不做具体限定,可以根据实际情况下各方法的实现难度、耗时以及其它影响因素综合考虑和选择最合适的方法。
S105:通过算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的调用命令。
在S104的基础上,本步骤旨在通过算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的调用命令。以最终实现M个虚拟常用型算法实例同时处理计算任务,当然,个数M一定会受到密码卡固有硬件所提供的逻辑计算资源的限制,不可能无限制的增加,但因仅仅只将常用型算法的算法程序进行复制,可以在很大程度上增加个数M的数量。
同时,也可以考虑到最大程度上利用最常用的算法,可以限制该常用型算法包含的算法数,假设该常用型算法只均匀包含2种算法,就算有3中算法都较为常用,但是依旧也选取前两个最常用的算法划分入常用型算法,并复制为预设数量M,如此一来可以进一步提高个数M的数量。
基于上述技术方案,本申请实施例提供的一种密码卡算法资源的分配方法,在充分考虑到该PCI-E密码卡上具备的固有逻辑计算资源的基础上,将按算法使用频率划分出的常用型算法复制为多个,当然,复制的数量受到逻辑计算资源的限制,并使得复制出的多个常用型算法实例均可以执行算法运算,在资源分配更加合理的基础上显著提高了该密码卡的逻辑计算资源的利用率。
以下结合图2,图2为本申请实施例所提供的另一种密码卡算法资源的分配方法的流程图。
本实施例是针对上一实施例中除S105以外的其它步骤所做出的一种限定,其它步骤与上一实施例大体相同,相同部分可参见上一实施例相关部分,在此不再赘述。
其具体包括以下步骤:
S201:在预设周期内统计密码卡中包含的各算法的使用频率;
S202:判断各使用频率是否超过阈值;
S203:将使用频率超过阈值的算法划分为常用型算法;
S204:将使用频率未超过阈值的算法划分为非常用型算法;
以上四个步骤旨在首先统计预设周期内各算法的使用频率,接下来判断是否超过设定能够被划分为常用型算法的阈值,即将超过阈值的算法的划分为常用型算法,未超过阈值的算法的划分为费常用型算法。
S205:获取构成密码卡的FPGA逻辑单元的总计算性能以及各算法程序占用总计算性能的百分比数值;
S206:根据各百分比数值以及各使用频率计算得到预设数量M;
S205和S206两步骤旨在利用获取到的构成密码卡的FPGA逻辑单元的总计算性能以及各算法程序占用总计算性能的百分比数值,并利用该算法对应的百分比数值结合各算法使用频率综合计算出该预设数量M。
S207:将常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
本实施例采用复制的方式,将所有属于该常用型算法的算法对应的算法执行代码复制为预设数量M,以得到M个虚拟常用型算法实例。
S208:为M个虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
S209:按预设排序规则将M个不同的算法ID进行排序,得到算法排序表;
在S208的基础上,本步骤旨在按预设排序规则将将M个不同的算法ID进行排序,得到算法排序表。其中,该预设排序规则的表现形式多种多样,例如,采用从小到大的顺序、随机或者其它存在的特殊要求进行排序等等,此处并不做具体限定,可以根据实际情况下不同排序方式是否造成影响来选择。
S210:采集各算法ID对应的虚拟常用型算法实例的工作状态;
在S209的基础上,本步骤旨在采集各算法ID对应的虚拟常用型算法实例的工作状态,即根据每个算法ID对应的虚拟常用型算法实例是否处于计算状态判断处于占用状态还是空闲状态,以便于记录处于某种状态的虚拟常用型算法实例供后续步骤使用。
S211;将各工作状态附加在算法排序表中对应算法ID的预设位置,得到算法状态查询表;
在S210的基础上,将各虚拟常用型算法实例对应的工作状态附加在该算法排序表中对应算法ID的预设位置,以得到算法状态查询表。其中,该预设位置以最容易获取到为准即可,当然,也可以在其它特殊要求的限制下改变附加位置。同时,附加的状态信息的表现形式也多种多样,可以是一个类似于左右开关的标识,置于左端为空闲状态,置于右端为占用状态;也可以是额外多出的一个描述信息等等,此处并不做具体限定。
S212:依次判断各虚拟常用型算法实例是否处于空闲状态;
S213:获取处于空闲状态的虚拟常用型算法实例对应的算法ID;
S214:重新开始轮询,直至存在处于空闲状态的虚拟常用型算法实例。
S213和S214分别对应S212中判断的两种结果,前者为存在处于空闲状态的虚拟常用型算法实例,后者为不存在处于空闲状态的虚拟常用型算法实例,全部的虚拟常用型算法实例均处于占用状态。
针对前者可以直接获取处于空闲状态的虚拟常用型算法实例对应的算法ID,后者则可以重新开始轮询,直至存在处于空闲状态的虚拟常用型算法实例。
基于上述技术方案,本申请实施例提供的一种密码卡算法资源的分配方法,在充分考虑到该密码卡上具备的固有逻辑计算资源的基础上,将按算法使用频率划分出的常用型算法复制为多个,当然,复制的数量收到逻辑计算资源的限制,并使得复制出的多个常用型算法实例均可以执行算法运算,在资源分配更加合理的基础上显著提高了该密码卡的逻辑计算资源的利用率。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到更具本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图3,图3为本申请实施例所提供的一种密码卡算法资源的分配***的结构框图。
该分配***可以包括:
划分单元100,用于将密码卡包含的至少两种算法进行种类划分,得到常用型算法和非常用型算法;
复制单元200,用于将常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
ID分配单元300,用于为M个虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
轮询查找单元400,用于在M个虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
调用执行单元500,用于通过算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的调用命令。
其中,划分单元100包括:
使用频率统计子单元,用于在预设周期内统计密码卡中包含的各算法的使用频率;
阈值判断子单元,拥有判断各使用频率是否超过阈值;
常用型划分子单元,用于将使用频率超过阈值的算法划分为常用型算法;
非常用型划分子单元,用于使用频率未超过阈值的算法划分为非常用型算法。
其中,轮询查找单元400包括:
空闲状态判断子单元,用于依次判断各虚拟常用型算法实例是否处于空闲状态;
空闲处理子单元,用于获取处于空闲状态的虚拟常用型算法实例对应的算法ID;
均占用处理子单元,用于重新开始轮询,直至存在处于空闲状态的虚拟常用型算法实例。
进一步的,在复制单元200执行之前,还可以包括:
参数获取单元,用于获取构成密码卡的FPGA逻辑单元的总计算性能以及各算法程序占用总计算性能的百分比数值;
数量计算单元,用于根据各百分比数值以及各使用频率计算得到预设数量M。
进一步的,在ID分配单元300执行之后,还可以包括:
排序单元,用于按预设排序规则将M个不同的算法ID进行排序,得到算法排序表;
状态采集单元,用于采集各算法ID对应的虚拟常用型算法实例的工作状态;
算法状态表生成单元,用于将各工作状态附加在算法排序表中对应算法ID的预设位置,得到算法状态查询表。
以上各单元可以应用于以下的一个具体的实际例子中:
本实施例选用基于FPGA构成的在SR-IOV环境下的密码卡,旨在对密码卡自身固有硬件所提供的逻辑计算资源进行整合优化,来达到提高资源利用率的目的,下面为整体步骤流程:
1、对密码卡的密码算法模块进行分类,分为常用型和非常用型;
2、采用算法模块复制的方法对常用型算法复制成多个,具体个数受到FPGA逻辑资源的制约,并分配算法ID号。算法ID号,是对同种算法的不同模块进行区分;
3、建立一个算法状态表,方便查询特定算法特定ID的使用情况;
4、当虚拟机向PCI-E设备发送算法调用请求时,PCI-E设备轮询算法状态表,直至其中一个算法ID空闲,可以参见图4所示;
5、选用空闲算法ID对应的算法模块进行算法运算。
请参见图5,在以上整体流程的基础上,详细、具体的流程可以为下面的方式:
首先定义算法状态表采用双端口RAM(random access memory,随机存取存储器)的形式实现,端口A可写,端口B可读,其中,读写异步进行,每种算法对应一个双端口RAM。对算法ID进行编号,以其ID编号为地址进行访问。定义双端口RAM的输出值为Q,输入值为D,Q为“0”,表示此ID对应的算法模块空闲,否则表示此ID对应的算法模块正忙,且每种算法都有唯一对应的算法查询状态机。
步骤一:虚拟机向PCI-E设备发送算法调用请求;
步骤二:PCI-E设备将接收到的算法命令,参数,原始数据等,存放到对应的VF(虚拟功能)中。当收到完整的算法请求时,即满足算法开始运算所需要的全部条件时,VF将算法调用请求按照算法的区别放到不同的算法队列中,进行统一排队。例如SM4算法的队列包含所有VF的SM4请求,SM2算法的队列包含所有VF的SM2请求,这两个队列之间不存在关联。算法队列采用FIFO的形式,FIFO中的每个数据表示当前要求算法运算的PF number及VFnumber。
步骤三:算法查询状态机,通过端口B轮询算法状态表,如果轮询到某个算法ID对应的Q为“0”时,则记录当前算法ID,继续查询算法队列,依据其中的PF number及VFnumber,向对应VF发送算法运算允许信号以及算法ID。之后通过端口A将此算法ID对应的值置“1”,即D=1。然后算法ID+1,继续查询。如果查询的算法ID的Q不为“0”,则算法ID+1,继续查询。当查询的地址超过ID的最大值时,返回ID=0,继续查询。
步骤四:VF收到算法运算允许信号及算法ID,之后启动算法运算。将命令,参数,原始数据发送到算法ID对应的算法模块中。算法模块运算完后,将结果存储在VF对应的存储器中。运算结束,通过端口A将此算法ID对应的值置“0”,即D=0。
本申请还提供了一种基SR-IOV的密码卡,可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然该设置装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (7)
1.一种密码卡算法资源的分配方法,应用于SR-IOV环境下,其特征在于,包括:
在预设周期内统计密码卡中包含的各算法的使用频率;
判断各所述使用频率是否超过阈值;
若超过,将所述使用频率超过所述阈值的算法划分为常用型算法;
若未超过,将所述使用频率未超过所述阈值的算法划分为非常用型算法;
获取构成所述密码卡的FPGA逻辑单元的总计算性能以及各所述算法程序占用所述总计算性能的百分比数值;
根据各所述百分比数值以及各所述使用频率计算得到预设数量M;
将所述常用型算法的算法程序复制为所述预设数量M的份数,得到M个虚拟常用型算法实例;
为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
当收到所述常用型算法的调用命令时,在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
通过所述算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个所述虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的所述调用命令。
2.根据权利要求1所述的分配方法,其特征在于,为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID之后,还包括:
按预设排序规则将M个不同的算法ID进行排序,得到算法排序表;
采集各所述算法ID对应的虚拟常用型算法实例的工作状态;
将各所述工作状态附加在所述算法排序表中对应算法ID的预设位置,得到算法状态查询表。
3.根据权利要求1或2所述的分配方法,其特征在于,在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID,包括;
依次判断各所述虚拟常用型算法实例是否处于所述空闲状态;
若是,则获取处于所述空闲状态的虚拟常用型算法实例对应的算法ID;
若M个所述虚拟常用型算法实例均处于占用状态,则重新开始轮询,直至存在处于所述空闲状态的虚拟常用型算法实例。
4.一种密码卡算法资源的分配***,应用于SR-IOV环境下,其特征在于,包括:
划分单元,用于在预设周期内统计密码卡中包含的各算法的使用频率;判断各所述使用频率是否超过阈值;若超过,将所述使用频率超过所述阈值的算法划分为常用型算法;若未超过,将所述使用频率未超过所述阈值的算法划分为非常用型算法;
参数获取单元,用于获取构成密码卡的FPGA逻辑单元的总计算性能以及各算法程序占用总计算性能的百分比数值;
数量计算单元,用于根据各百分比数值以及各使用频率计算得到预设数量M;
复制单元,用于将所述常用型算法的算法程序复制为预设数量M,得到M个虚拟常用型算法实例;
ID分配单元,用于为M个所述虚拟常用型算法实例按预设命名规则分配算法ID,得到M个不同的算法ID;
轮询查找单元,用于在M个所述虚拟常用型算法实例中执行空闲轮询操作,直至得到处于空闲状态的虚拟常用型算法实例对应的算法ID;
调用执行单元,用于通过所述算法ID调用对应的虚拟常用型算法实例执行算法运算操作,直至M个所述虚拟常用型算法实例均处于占用状态,以并行处理数量不超过M的所述调用命令。
5.根据权利要求4所述的分配***,其特征在于,所述轮询查找单元包括:
空闲状态判断子单元,用于依次判断各所述虚拟常用型算法实例是否处于所述空闲状态;
空闲处理子单元,用于获取处于所述空闲状态的虚拟常用型算法实例对应的算法ID;
均占用处理子单元,用于重新开始轮询,直至存在处于所述空闲状态的虚拟常用型算法实例。
6.一种基于SR-IOV的密码卡,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述密码卡算法资源的分配方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述密码卡算法资源的分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710891146.3A CN107632878B (zh) | 2017-09-27 | 2017-09-27 | 一种密码卡算法资源的分配方法、***及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710891146.3A CN107632878B (zh) | 2017-09-27 | 2017-09-27 | 一种密码卡算法资源的分配方法、***及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107632878A CN107632878A (zh) | 2018-01-26 |
CN107632878B true CN107632878B (zh) | 2018-10-16 |
Family
ID=61101907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710891146.3A Active CN107632878B (zh) | 2017-09-27 | 2017-09-27 | 一种密码卡算法资源的分配方法、***及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107632878B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897601A (zh) * | 2018-06-29 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种基于虚拟化的fpga使用方法、***及相关装置 |
CN118245233A (zh) * | 2024-05-28 | 2024-06-25 | 山东三未信安信息科技有限公司 | 云密码卡算力控制***及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023893A (zh) * | 2010-11-04 | 2011-04-20 | 北京曙光天演信息技术有限公司 | 一种加密卡内并行处理实现方法 |
CN106874065A (zh) * | 2017-01-18 | 2017-06-20 | 北京三未信安科技发展有限公司 | 一种支持硬件虚拟化的*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392625B2 (en) * | 2010-06-25 | 2013-03-05 | Intel Corporation | Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system |
-
2017
- 2017-09-27 CN CN201710891146.3A patent/CN107632878B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023893A (zh) * | 2010-11-04 | 2011-04-20 | 北京曙光天演信息技术有限公司 | 一种加密卡内并行处理实现方法 |
CN106874065A (zh) * | 2017-01-18 | 2017-06-20 | 北京三未信安科技发展有限公司 | 一种支持硬件虚拟化的*** |
Also Published As
Publication number | Publication date |
---|---|
CN107632878A (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983449B (zh) | 数据处理的方法和存储*** | |
US20150333977A1 (en) | Methods and apparatus related to management of unit-based virtual resources within a data center environment | |
WO2020119029A1 (zh) | 分布式任务调度方法、***及存储介质 | |
CN109800558B (zh) | 密码服务板卡以及密码服务装置 | |
CN102027453A (zh) | 用于在虚拟环境中优化中断处理的***和方法 | |
CN107632878B (zh) | 一种密码卡算法资源的分配方法、***及相关装置 | |
CN102063338A (zh) | 一种请求独占资源的方法及装置 | |
CN103761146A (zh) | 一种MapReduce动态设定slots数量的方法 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN102662889A (zh) | 中断处理方法、中断控制器及处理器 | |
EP3537281A1 (en) | Storage controller and io request processing method | |
CN111176829A (zh) | 虚拟化处理***中的物理功能和虚拟功能的灵活资源分配 | |
CN107577962B (zh) | 一种密码卡多算法并列执行的方法、***及相关装置 | |
CN111464331A (zh) | 一种线程创建的控制方法、***及终端设备 | |
CN104123188A (zh) | 一种资源分配方法及相关装置 | |
CN116483740B (zh) | 内存数据的迁移方法、装置、存储介质及电子装置 | |
CN111290858B (zh) | 输入输出资源管理方法、装置、计算机设备和存储介质 | |
WO2021227789A1 (zh) | 存储空间的分配方法、装置、终端及计算机可读存储介质 | |
CN116089477B (zh) | 分布式训练方法及*** | |
CN106411545A (zh) | 一种业务属性的计数方法及装置 | |
US10846265B2 (en) | Method and apparatus for accessing file, and storage system | |
CN111158595A (zh) | 企业级异构存储资源调度方法及*** | |
CN110245130A (zh) | 数据去重方法、装置、计算机设备及存储介质 | |
CN116401045A (zh) | 一种对msix中断向量弹性池化管理的方法及装置 | |
CN115658326A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
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: No.12, Chuhe North Road, gaoqu District, Weihai City, Shandong Province Patentee before: SHANDONG FISHERMAN INFORMATION TECHNOLOGY Co.,Ltd. |