基于安全处理器的虚拟机数据处理方法、装置、CPU芯片及服务器与流程

文档序号:20681529发布日期:2020-05-08 18:26阅读:115来源:国知局
基于安全处理器的虚拟机数据处理方法、装置、CPU芯片及服务器与流程

本申请涉及虚拟机技术领域,尤其涉及一种基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器。



背景技术:

当前基于安全虚拟化技术的虚拟机,由于内存使用虚拟机加密密钥加密,因此在对虚拟机进行启动、迁移等操作时需要虚拟机监视器和安全处理器的介入,虚拟机监视器和安全处理器通过交互处理虚拟机内存数据。



技术实现要素:

有鉴于此,本申请实施例提供一种基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器,能够提升虚拟机监视器和安全处理器的交互效率。

第一方面,本申请提供一种基于安全处理器的虚拟机数据处理方法,包括:虚拟机监视器将交互请求和需要处理的数据发送给安全处理器;所述安全处理器将所述需要处理的数据,分为两个以上的数据段;所述安全处理器根据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理。

根据本申请一具体实施方式,所述安全处理器将所述需要处理的数据,分为两个以上的数据段,包括:所述安全处理器,根据密码协处理器内部数据处理模块的数量和/或密码协处理器内部数据处理模块的处理速度,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器内部数据处理模块的数量。

根据本申请一具体实施方式,所述安全处理器根据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理,包括:所述安全处理器,根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中;所述密码协处理器内部不同的数据处理模块,对所述命令队列中的命令进行处理;或者,

所述安全处理器,根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中;所述密码协处理器内部不同的数据处理模块,对各自所对应的命令队列中的命令进行处理。

根据本申请一具体实施方式,所述安全处理器,根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中,包括:

所述安全处理器,针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列;其中,所述第一命令队列为所述密码协处理器内部的第一数据处理模块所对应的命令队列;所述第二命令队列为所述密码协处理器内部的第二数据处理模块所对应的命令队列;

其中,所述密码协处理器内部不同的数据处理模块,对各自所对应的命令队列中的命令进行处理,包括:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;所述第一数据处理模块和所述第二数据处理模块执行所述第一数据处理命令和第二数据处理命令。

根据本申请一具体实施方式,所述安全处理器,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中,包括:

所述安全处理器,针对第一数据段生成第一数据处理命令和第二数据处理命令,并将所述第一数据处理命令分配到第一命令队列,将所述第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将所述第三数据处理命令分配到所述第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列为密码协处理器内部的第一数据处理模块所对应的命令队列,所述第二命令队列为密码协处理器内部的第二数据处理模块所对应的命令队列;

其中,所述密码协处理器内部不同的数据处理模块,对各自命令队列中的命令处理,包括:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块处理;在所述第一数据处理模块执行完所述第一数据处理命令后,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;从所述第一命令队列读取第三数据处理命令,提交给所述第一数据处理模块;所述第二数据处理模块和所述第一数据处理模块执行所述第二数据处理命令和第三数据处理命令。

根据本申请一具体实施方式,所述需要处理的数据为虚拟机内存页信息表。

第二方面,本申请提供一种基于安全处理器的虚拟机数据处理装置,包括:虚拟机监视器,用于将交互请求和需要处理的数据发送给安全处理器;数据分段模块,用于将安全处理器收到的所述需要处理的数据,分为两个以上的数据段;数据段分配模块,用于根据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理。

根据本申请一具体实施方式,所述数据段分配模块,具体用于根据密码协处理器内部数据处理模块的数量和/或密码协处理器内部数据处理模块的处理速度,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器内部数据处理模块的数量。

根据本申请一具体实施方式,所述数据段分配模块,具体用于根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中或分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中,以使所述密码协处理器的多个数据处理模块,对所述同一命令队列中的命令或各自所对应的命令队列中的命令进行处理。

根据本申请一具体实施方式,所述数据段分配模块,具有用于:针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列;其中,所述第一命令队列为所述密码协处理器内部的第一数据处理模块所对应的命令队列;所述第二命令队列为所述密码协处理器内部的第二数据处理模块所对应的命令队列。

根据本申请一具体实施方式,所述数据段分配模块,具体用于:针对第一数据段生成第一数据处理命令和第二数据处理命令,并将所述第一数据处理命令分配到第一命令队列,将所述第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将所述第三数据处理命令分配到所述第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列为密码协处理器内部的第一数据处理模块所对应的命令队列,所述第二命令队列为密码协处理器内部的第二数据处理模块所对应的命令队列。

第三方面,本申请提供一种cpu芯片,包括:处理器核心、安全处理器和密码协处理器;其中,所述处理器核心,用于运行虚拟机监视器,以通过所述虚拟机监视器将交互请求和需要处理的数据发送给安全处理器;所述安全处理器,与所述处理器核心电连接,用于将所述需要处理的数据,分为两个以上的数据段;据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理;所述密码协处理器,与所述安全处理器电连接,用于对所述安全处理器分配的两个以上的数据段进行处理。

根据本申请一具体实施方式,所述安全处理器,具体用于:根据密码协处理器内部数据处理模块的数量和/或密码协处理器内部数据处理模块的处理速度,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器内部数据处理模块的数量。

根据本申请一具体实施方式,所述安全处理器,具体用于:根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中;所述密码协处理器内部不同的数据处理模块,对所述命令队列中的命令进行处理;或者,

所述安全处理器,具体用于:根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中;

所述密码协处理器内部不同的数据处理模块,对各自所对应的命令队列中的命令进行处理。

根据本申请一具体实施方式,所述安全处理器,具体用于针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列;其中,所述第一命令队列为所述密码协处理器内部的第一数据处理模块所对应的命令队列;所述第二命令队列为所述密码协处理器内部的第二数据处理模块所对应的命令队列;

其中,所述密码协处理器,具体用于:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;所述第一数据处理模块和所述第二数据处理模块执行所述第一数据处理命令和第二数据处理命令。

根据本申请一具体实施方式,所述安全处理器,具体用于:针对第一数据段生成第一数据处理命令和第二数据处理命令,并将所述第一数据处理命令分配到第一命令队列,将所述第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将所述第三数据处理命令分配到所述第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列为密码协处理器内部的第一数据处理模块所对应的命令队列,所述第二命令队列为密码协处理器内部的第二数据处理模块所对应的命令队列;其中,所述密码协处理器,具体用于:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块处理;在所述第一数据处理模块执行完所述第一数据处理命令后,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;从所述第一命令队列读取第三数据处理命令,提交给所述第一数据处理模块;所述第二数据处理模块和所述第一数据处理模块执行所述第二数据处理命令和第三数据处理命令。

根据本申请一具体实施方式,所述需要处理的数据为虚拟机内存页信息表。

根据本申请一具体实施方式,所述密码协处理器位于所述安全处理器内部。

第四方面,本申请提供一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的方法。

本申请实施例基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器,虚拟机监视器将需要处理的数据发送给安全处理器,安全处理器将所述需要处理的数据,分为两个以上的数据段,将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块,密码协处理器内部不同的数据处理模块可对需要处理的数据进行处理,由此可提升虚拟机监视器和安全处理器的交互时间,提升交互效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请一实施例基于安全处理器的虚拟机数据处理方法流程示意图;

图2为本申请一实施例中内存页信息表的结构示意图;

图3为本申请一实施例中无数据依赖情况的数据处理时空示意图;

图4为本申请另一实施例中无数据依赖情况的数据处理时空示意图;

图5为本申请一实施例中有数据依赖情况的数据处理时空示意图;

图6为本申请另一实施例中有数据依赖情况的数据处理时空示意图;

图7为本申请另一实施例基于安全处理器的虚拟机数据处理方法流程示意图;

图8为本申请另一实施例基于安全处理器的虚拟机数据处理方法流程示意图;

图9为本申请又一实施例基于安全处理器的虚拟机数据处理方法流程示意图;

图10为本申请一实施例基于安全处理器的虚拟机数据处理装置方框图;

图11为本申请一实施例cpu芯片的方框图;

图12为本申请一实施例服务器的结构示意图。

具体实施方式

本申请实施例主要目的是提供一种基于安全处理器的虚拟机数据处理方法、cpu芯片及服务器,在安全处理器与虚拟机监视器进行数据交互时,可提高数据处理速度,提升互效率。

下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

虚拟机(vm,virtualmachine)技术就是在一个宿主计算机体系结构上模拟运行其他的客户机操作系统,模拟的客户机可以与宿主计算机是同一个体系结构,也可以是不同的体系结构。

硬件虚拟化是比较流行的虚拟化技术。硬件虚拟化直接将宿主系统的硬件系统虚拟化供虚拟机使用。硬件虚拟化使用虚拟机监视器(vmm,virtualmachinemonitor)来隔离虚拟系统与宿主硬件。vmm也可称为虚拟机管理器,其可直接运行在系统硬件上,也可以运行在宿主操作系统上。vmm实现了从虚拟资源到物理资源的映射,并利用本地物理资源进行计算。当虚拟系统访问系统资源时,vmm将接管这个请求,并将处理结果返回给虚拟机系统,这样就实现了多个硬件设备的虚拟,保证虚拟系统的有效隔离。

安全处理器是一种可独立进行密钥生成、加解密的处理器,其内部可拥有独立的处理器和存储单元,可存储密钥和特征数据。

图1为本申请一实施例基于安全处理器的虚拟机数据处理方法流程示意图,所述方法可包括如下步骤:

s100、虚拟机监视器将交互请求和需要处理的数据发送给安全处理器。

虚拟机监视器开始交互流程,可将交互请求和需要处理的数据递交给安全协处理器。其中,交互请求中,可包含对数据进行处理的处理方式,如加密、解密或计算hash值等。需要处理的数据可以是虚拟机内存数据,也可以是虚拟机内存页信息。虚拟机内存页信息中,可包括物理内存地址和物理内存长度信息,以便安全处理器可根据这些物理内存地址和物理内存长度信息读取相应的虚拟机内存数据进行相应处理。

为了便于对虚拟机内存数据进行批量处理,所述需要处理的数据也可以是虚拟机内存页信息表。虚拟机内存页信息表,可简称内存页信息表、信息表或表。在虚拟机内存页信息表中,可包括多个项目(也可称为多个表项),每个项目在内存页信息表中可依次存放。每个项目可对应至少一条需要处理的虚拟机内存页信息。内存页信息表可采用数组、列表或链表等形式。图2为本申请一实施例中内存页信息表的结构示意图。安全处理器可根据虚拟机内存页信息表中的虚拟机内存页信息,读取相应的虚拟机内存数据进行相应处理。

在一些情况下,比如在将源虚拟机的虚拟机内存数据,向目标虚拟机进行首轮迁移时,所有虚拟机内存数据,均为需要处理的虚拟机内存数据。相应的,所有虚拟机内存数据所对应的虚拟机内存页信息,均为需要处理的虚拟机内存页信息。

在另一些情况下,比如在将源虚拟机的虚拟机内存数据,向目标虚拟机进行非首轮迁移时,可仅有部分虚拟机内存数据,为需要处理的虚拟机内存数据。相应的,该部分虚拟机内存数据所对应的虚拟机内存页信息,为需要处理的虚拟机内存页信息。在这些情况下,每条虚拟机内存页信息除了可包括物理内存地址以及对应的物理内存长度之外,还可包括内存页中的数据是否被修改过的标识(如可用标志位1表示修改过,用标志位0表示未修改过)。虚拟机监视器可通过扫描或查询这些标识来确定哪些虚拟机内存页信息为需要处理的虚拟机内存页信息。

虚拟机内存页信息可保存在内存控制器(也可称为内存管理器)中。虚拟机监视器可通过对虚拟机内存页信息进行扫描,从中获取需要处理的虚拟机内存页信息,并将所述数据发送给安全处理器。虚拟机监视器也可将获取的需要处理的虚拟机内存页信息,放入虚拟机内存页信息表中,并将所述虚拟机内存页信息表发送给安全处理器。

本申请中,安全处理器是指虚拟机监视器本地的安全处理器,下文中所述的密码协处理器为安全处理器本地的密码协处理器。

s102、安全处理器将所述需要处理的数据,分为两个以上的数据段。

安全处理器,可根据密码协处理器内部数据处理模块的数量,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量可小于或等于所述密码协处理器内部数据处理模块的数量。

进一步地,在某一时刻,密码协处理器内部的多个数据处理模块,可能有一个多或多个处于忙碌(正在进行处理数据)状态,其它的暂时处于空闲状态。为了充分利用密码协处理器内部空闲的数据处理模块,在一些实施方式中,安全处理器根据密码协处理器内部数据处理模块的数量,将接收到的所述数据分为两个以上的数据段,可具体包括:安全处理器可根据密码协处理器内部当前空闲的数据处理模块的数量,将所述需要处理的数据,动态划分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器内部当前空闲的数据处理模块的数量。

安全处理器,可通过查询密码协处理器内部的数据处理模块的空闲标志位,来确定空闲的数据处理模块,也可根据密码协处理器内部的数据处理模块发送的空闲中断信号来确定空闲的数据处理模块。

在一个具体例子中,对于一个包含有30个项目的内存页信息表,安全处理器通过查询密码协处理器内部的数据处理模块的空闲标志位(如为0则表示空闲),确定本地当前时刻处于空闲状态的数据处理模块的数量为3个,即数据处理模块c1、c2和c3处于空闲状态,安全处理器据此可将内存页信息表均分为3个数据段。

由于不同的虚拟机内存页的数据大小可能不同,或者密码协处理器内部不同的处理处理模块的处理速度可能不同,这样,不同的处理处理模块在处理不同的虚拟机内存页数据时,可能存在有的处理处理模块先行处理完毕,提前处于空闲状态的情况。为了适应这种情况,在一些实施方式中,对于接收到的同一内存页信息表,安全处理器可进行两次分段处理。具体地,安全处理器可先将内存页信息表分为第一基本段和第二基本段。第一基本段中包括的项目的数量可大于第二基本段中包含的项目的数量,二者可呈一定的倍数或比例关系。在一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为5∶1,在另一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为3∶1,在又一个例子中,第一基本段中包括的项目的数量,与第二基本段中包含的项目的数量的比例关系可为2∶1。

安全处理器将内存页信息表分为第一基本段和第二基本段后,可根据密码协处理器内部当前时刻空闲的数据处理模块的数量,将第一基本段分为两个以上的第一子段,并将两个以上的第一子段,分配给当前时刻空闲的不同的数据处理模块。其中,第一子段的数量,小于或等于密码协处理器内部当前时刻空闲的数据处理模块的数量。在一个例子中,安全处理器所分的第一子段的数量,与密码协处理器内部当前时刻空闲的数据处理模块的数量相等,以最大化利用密码协处理器内部当前时刻空闲的数据处理模块,提升数据处理的效率。

安全处理器在将两个以上的第一子段,分配给当前时刻空闲的不同的数据处理模块后,在等待这些数据处理模块处理数据的过程中,可确定下一时刻空闲的数据处理模块的数量,即确定下一时刻所述密码协处理器内部先行处于空闲状态的数据处理模块的数量,并根据下一时刻空闲的数据处理模块的数量,将第二基本段分为两个以上的第二子段,并将所述两个以上的第二子段,分别分配给下一时刻空闲的不同的数据处理模块。第二子段的数量,小于或等于下一时刻空闲的数据处理模块的数量。在一个例子中,安全处理器所分的第二子段的数量,与本地下一时刻空闲的数据处理模块的数量相等,以最大化利用本地下一时刻空闲的数据处理模块,进一步提升数据处理的效率。

在一个具体例子中,对于一个需要处理的虚拟机内存页信息表,该内存页信息表包含有16个项目,安全处理器先将该内存页信息表分为第一基本段d1(包含12个项目)和第二基本段d2(包含4个项目)。安全处理器通过查询密码协处理器内部的数据处理模块的空闲标志位(如为0则表示空闲),确定当前时刻本地处于空闲状态的数据处理模块的数量为3个,即数据处理模块c1、c2和c3处于空闲状态,安全处理器据此将第一基本段d1均分为3个第一子段,即d11段、d12段和d13段,并将d11段分配给数据处理模块c1处理,将d12段分配给数据处理模块c2处理,将d13段分配给数据处理模块c3处理。

安全处理器在等待数据处理模块c1、c2和c3处理数据的过程中,确定下一时刻本地空闲的数据处理模块有c1和c3(表明c1和c3相对于c2先行处于空闲状态)。安全处理器据此将第二基本段d2均分为两个第二子段,即d21段和d22段,将d21段分配给数据处理模块c1处理,将d22段分配给数据处理模块c3处理。这样,可最大化利用本地下一时刻空闲的数据处理模块,进一步提升数据处理的效率。

s104、安全处理器根据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理。

本实施例中,为提高数据处理效率,密码协处理器内部有多个数据处理模块。安全处理器可根据所述交互请求将所述两个以上的数据段,直接分配给密码协处理器内部不同的数据处理模块处理。

在一些实施方式中,密码协处理器支持一个或多个命令队列。各数据处理模块对数据段的处理可对应到具体的命令队列中的命令的执行。安全处理器可根据所述交互请求,将对数据段的处理需求转化为相应的数据处理命令,并将数据处理命令分配到密码协处理器的命令队列中。密码协处理器内部的命令读取模块,可读取命令队列中的一个命令,将该命令分配给与该命令相对应的数据处理模块处理。

在采用单一命令队列的情况下,所述安全处理器,根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中;所述密码协处理器内部不同的数据处理模块,对该同一命令队列中的命令进行处理。

在采用多个命令队列的情况下,每个命令队列可以单独提交给密码协处理器,并由与命令队列中命令相对应的数据处理模块处理。采用多个命令队列,可以提高数据的读取速度。下面的实施例中,以多命令队列为例进行说明。

在一些实施方式中,所述安全处理器根据所述交互请求将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理(步骤s104),可包括步骤:

s1041、安全处理器根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中。

安全处理器根据所述交互请求,针对每个数据段生成的数据处理命令的格式,可以包括数据的读/写模式、地址、数据处理方式以及命令执行者等。

s1042、读取各命令队列中的命令,并由与命令队列中命令相对应的数据处理模块执行。

密码协处理器内部,针对每个命令队列可有一对应的命令读取模块,每个命令读取模块可从与其对应的命令队列中读取命令,并可将读取的命令提交给对应的数据处理模块处理。应当理解的是,命令读取模块从对应的命令队列中读取命令后,可对命令进行解析,读取命令处理所需的数据,并将读取的命令处理所需要的数据提交给对应的命令处理模块。

多个命令的执行,确保了密码协处理器内部的多个数据处理模块处于工作状态,从而可提高数据处理速度,提高虚拟机监视器与安全处理器的交互效率。在一些实施方式中,多个命令可以并行执行。

在需要处理的数据为虚拟机内存页信息表时,安全处理器将虚拟机内存页信息表分为多个内存页信息表段后,分配给密码协处理器内部不同的数据处理模块处理的过程,可包括:安全处理器可针对每个内存页信息表段生成相应的数据处理命令,具体可根据针对每个内存页信息表段中的每个项目(内存页信息)生成一条数据处理命令。之后,安全处理器将生成的不同内存页信息表段所对应的数据处理命令分配到不同的命令队列中(比如分配到六个命令队列中)。密码协处理器内部的命令读取模块读取每个命令队列中的命令,并由与命令相对应的数据处理模块执行。具体地,密码协处理器内部的命令读取模块读取每个命令队列中的命令,并由与命令相对应的数据处理模块执行可包括:密码协处理器内部的命令读取模块读取每个命令队列中的命令,解析所述命令,通过内部的内存直接读取模块,读取所述命令所对应的内存页信息所对应的内存页数据,并将读取的内存页数据发送给对应的数据处理模块进行处理。多个数据处理模块处理,可提高虚拟机监视器与安全处理器的交互效率。

对于虚拟机监视器与安全处理器的一次交互过程中,安全处理器所接收到的需要处理的数据,可能只需密码协处理器内部的一个数据处理模块处理即可,一个数据处理模块的输入不依赖于另一个数据处理模块的输出。有时可能需要多个数据处理模块先后分别进行处理,即一个数据处理模块的输入依赖于另一个数据处理模块的输出。这种一个数据处理模块的输入不依赖于另一个数据处理模块的输出的数据处理,可称为无数据依赖情况的数据处理。而一个数据处理模块的输入依赖于另一个数据处理模块的输出的数据处理,可称为有数据依赖情况的数据处理。

对于无数据依赖情况的数据处理,在一些实施方式中,所述步骤s1041,可包括:安全处理器根据交互请求,针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列。其中,所述第一命令队列中的命令与所述密码协处理器内部的第一数据处理模块相对应;所述第二命令队列中的命令与所述密码协处理器内部的第二数据处理模块相对应。

相应地,所述步骤s1042,可包括:从所述第一命令队列读取第一数据处理命令,提交给第一数据处理模块处理;从所述第二命令队列读取第二数据处理命令,提交给第二数据处理模块处理;所述第一数据处理模块和所述第二数据处理模块并行执行所述第一数据处理命令和第二数据处理命令。

本实施例中,第一数据处理模块和第二数据处理模块,可对不同数据段进行并行处理,可以提供数据处理效率。

图3为本申请一实施例中无数据依赖情况的数据处理时空示意图。图3中示出了两个数据处理模块对不同数据段进行并行处理的时空图,具体地,数据处理模块1和数据处理模块2可对不同数据段进行完全的并行处理,比如可对数据段1和数据段2进行完全并行处理,对数据段3和数据段4进行完全并行处理等。

图4为本申请另一实施例中无数据依赖情况的数据处理时空示意图。图4中示出了三个数据处理模块对不同数据段进行并行处理的时空图,具体地,数据处理模块1、数据处理模块2和数据处理模块3可对不同数据段进行完全的并行处理,比如可对数据段1、数据段2和数据段3进行完全并行处理,对数据段4、数据段5和数据段6进行完全并行处理等。

对于有数据依赖情况的数据处理,在一些实施方式中,所述步骤s1041,可包括:安全处理器,针对第一数据段生成第一数据处理命令和第二数据处理命令,并将第一数据处理命令分配到第一命令队列,将第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将第三数据处理命令分配到第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列中的命令与密码协处理器内部的第一数据处理模块相对应,所述第二命令队列中的命令与密码协处理器内部的第二数据处理模块相对应。

相应地,所述步骤s1042,可包括:

从所述第一命令队列读取第一数据处理命令,由第一数据处理模块执行所述第一数据处理命令,即对第一数据段进行处理进行第一次处理;

在所述第一数据处理模块执行完所述第一数据处理命令后,从所述第二命令队列读取第二数据处理命令,由第二数据处理模块执行所述第二数据处理命令,即所述第一数据段经由第一数据处理模块进行第一次处理后,再由第二数据处理模块进行第二次处理;

在第二数据处理模块对第二数据处理命令开始处理后,从第一命令队列读取第三数据处理命令,由第一数据处理模块执行所述第三数据处理命令,即由第一数据处理模块对第二数据段进行第一次处理。

所述第二数据处理模块和所述第一数据处理模块并行执行所述第二数据处理命令和第三数据处理命令,即可对第二数据段和第一数据段进行至少部分的并行处理,从而提高数据处理效率。

本实施例中,第一数据处理模块和第二数据处理模块,可先后对同一数据段所对应的虚拟机内存数据,进行有数据依赖情况的数据处理。

图5为本申请一实施例中有数据依赖情况的数据处理时空示意图。图5中示出了两个数据处理模块对不同数据段进行并行处理的时空图,具体地,数据处理模块1和数据处理模块2可对不同数据段进行部分并行处理,比如可对数据段1和数据段2进行部分并行处理。

图6为本申请另一实施例中有数据依赖情况的数据处理时空示意图。图6中示出了四个数据处理模块对不同数据段进行并行处理的时空图,具体地,数据处理模块1和数据处理模块2可对同一数据段进行两级流水处理,对不同数据段进行部分并行处理,比如可对数据段1和数据段2分别进行两级流水处理,对数据段1和数据段2进行部分并行处理;同理,数据处理模块3和数据处理模块4可对同一数据段进行两级流水处理,对不同数据段进行部分并行处理,比如可对数据段4和数据段5分别进行两级流水处理,对数据段4和数据段5进行部分并行处理。在其它实施例中,可对同一数据段进行三级、四级或五级等多级处理。

本申请实施例基于安全处理器的虚拟机数据处理方法、装置、电子设备及存储介质,虚拟机监视器将需要处理的数据发送给安全处理器,安全处理器将所述需要处理的数据,分为两个以上的数据段,将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块,密码协处理器内部不同的数据处理模块可对需要处理的数据进行并行处理,由此可提升虚拟机监视器和安全处理器的交互时间,提升交互效率。

下面分别对无数据依赖情况和有数据依赖情况的数据处理过程分别进行示例说明。为了说明原理,以下实施例中只列出两个数据处理模块来做示例。

无数据依赖情况的数据处理

图7为本申请一实施例基于安全处理器的虚拟机数据处理方法流程示意图,参看图7,本实施例的数据处理方法,可包括步骤:

s300、递交交互请求及数据给安全处理器。

虚拟机监视器开始交互流程,将交互请求和需要处理的数据递交给安全协处理器,并等待安全处理器返回处理结果。

s302、接收交互请求及数据。

安全处理器接收虚拟机监视器发送的交互请求,获取需要处理的数据。

s304、处理交互请求并对数据进行分段。

安全处理器处理交互请求,解析交互请求中的交互请求信息,获取对所述数据进行处理的方式(如加密、解密、计算hash值等)。

安全处理器将接收到的需要处理的数据分为两个数据段,即分为第一数据段和第二数据段。

安全处理器将接收到的虚拟机内存页信息表分为两个数据段的过程,可参看图1所示实施例中步骤s102的相关内容,在此不再赘述。

s306、将数据段分配给密码协处理器内部的第一数据处理模块和第二数据处理模块。

安全处理器将两个数据段,分配给密码协处理器内部两个数据处理模块,具体地,可将第一数据段分配给密码协处理器内部的第一数据处理模块,将第二数据段分配给密码协处理器内部的第二数据处理模块。

s308、第一数据处理模块和第二数据处理模块并行处理数据。

第一数据处理模块和第二数据处理模块,对第一数据段和第二数据段对应的虚拟机内存数据进行并行处理,比如进行并行加密处理。

安全处理器将两个数据段,分配给密码协处理器内部两个数据处理模块并行处理的过程,可参看图1所示实施例中步骤s104的相关内容,在此不再赘述。

s310、等待密码协处理器内部的所有数据处理模块处理结束。

安全处理器等待密码协处理器的第一数据处理模块和第二数据处理模块处理结束。

s312、返回处理结果,等待下一次交互请求。

安全处理器向虚拟机监视器返回处理结果,等待下一次交互请求。

s314、接收安全处理器返回的处理结果。

虚拟机监视器接收安全处理器返回的处理结果后,交互请求结束。

本实施例中,对于无数据依赖情况的数据,密码协处理器的多个数据处理模块可以并行处理,从而提高交互效率。

有数据依赖情况的数据处理

图8为本申请一实施例基于安全处理器的虚拟机数据处理方法流程示意图,参看图8,本实施例的数据处理方法,可包括步骤:

s400、递交交互请求及数据给安全处理器。

虚拟机监视器开始交互流程,将交互请求和数据递交给安全协处理器。

s402、接收交互请求及数据。

安全处理器接收虚拟机监视器递交的交互请求,获取需要处理的数据。

s404、处理交互请求并对数据进行分段。

安全处理器处理交互请求,解析交互请求中的交互请求信息,获取对所述数据进行处理的处理方式(如加密或解密等)。

安全处理器将获取到的需要处理的数据分为两个以上的数据段。

安全处理器将获取到的需要处理的数据分为两个数据段的过程,可参看图1所示实施例中步骤s102的相关内容,在此不再赘述。

s406、取一个数据段提交给密码协处理器的第一数据处理模块。

安全处理器先取一个数据段并提交给密码协处理器的第一数据处理模块处理,并等待处理结束。

s408、密码协处理器的第一数据处理模块处理数据段。

密码协处理器的第一数据处理模块,对数据段可根据交互请求中的处理方式进行处理。

s410、等待密码协处理器的第一数据处理模块处理结束。

在密码协处理器的第一数据处理模块处理数据段的过程中,安全处理器等待密码协处理器的第一数据处理模块处理结束。

s412、将已被第一数据处理模块处理的数据段提交给密码协处理器的第二数据处理模块。

在密码协处理器的第一数据处理模块处理结束后,安全处理器将已被第一数据处理模块处理的数据段,提交给密码协处理器的第二数据处理模块处理。

s414、密码协处理器的第二数据处理模块处理已被第一数据处理模块处理过的数据段。

数据段由密码协处理器的第一数据处理模块处理后,密码协处理器的第二数据处理模块对该数据段做进一步处理。

s416、取下一个数据段提交给密码协处理器的第一数据处理模块。

在密码协处理器,将已被第一数据处理模块处理的数据段提交给密码协处理器的第二数据处理模块后,密码协处理器的第一数据处理模块处于空闲状态,此时,安全处理器取下一个数据段提交给密码协处理器的第一数据处理模块处理。

安全处理器将两个数据段,分配给密码协处理器内部两个数据处理模块并行处理的过程,可参看图1所示实施例中步骤s104的相关内容,在此不再赘述。

s418、密码协处理器的第一数据处理模块处理下一个数据段。

s420、等待密码协处理器的所有数据处理模块处理结束。

安全处理器等待密码协处理器的第一数据处理模块和第二数据处理模块处理结束。

s422、判断所有数据段是否均已被密码协处理器的第一数据处理模块处理。

安全处理器检查是否所有的数据段均已被密码协处理器的第一数据处理模块处理。若所有数据段均已被密码协处理器的第一数据处理模块处理,则执行步骤s424,否则执行步骤s412。

s424、取最后一个已被第一数据处理模块处理但未被第二数据处理模块处理的数据段提交给密码协处理器的第二数据处理模块。

在所有数据段均已被密码协处理器的第一数据处理模块处理后,安全处理器取最后一个已被第一数据处理模块处理但未被第二数据处理模块处理的数据段,提交给密码协处理器的第二数据处理模块处理。

s426、密码协处理器的第二数据处理模块处理已被第一数据处理模块处理过未被第二数据处理模块处理过的数据段。

密码协处理器的第二数据处理模块,处理已被第一数据处理模块处理过的最后一个数据段。

s428、等待密码协处理器的第二数据处理模块处理结束。

安全处理器等待密码协处理器的第二数据处理模块对最后一个数据段处理结束。

s430、返回结果,等待下一次交互请求。

s432、获取安全处理器返回的结果。

虚拟机监视器获取安全处理器返回的结果后,交互请求结束。

本实施例中,对于有数据依赖情况的数据,分段后,其中一个数据段先由密码协处理器的第一数据处理模块处理后,再提交给密码协处理器的第二数据处理模块处理;在第二数据处理模块处理的过程中,将下一个数据段提交给第一数据处理模块处理,这样,在第二数据处理模块处理数据段的过程中,第一数据处理模块也可同时对另一个数据段进行处理,实现数据段的并行(至少部分并行)处理,从而提高交互效率。

下面结合基于安全虚拟化技术的虚拟机迁移流程,对本申请实施例进行示例说明。

在基于安全虚拟化技术的虚拟机迁移时,发送端虚拟机监视器需要通过本地的安全处理器对虚拟机内存数据先进行加密,然后对加密后的数据计算杂凑值(hash值)。加密处理采用sm4分组加密算法,计算杂凑值采用sm3密码杂凑算法。密码协处理器共有两个加密引擎模块:sm4引擎模块和sm3引擎模块。sm3引擎模块的输入依赖于sm4引擎模块的输出,因此存在数据依赖。

图9为本申请一实施例基于安全处理器的虚拟机数据处理方法流程示意图,参看图9,本实施例的数据处理方法,可包括步骤:

s500、递交交互请求及数据给安全处理器。

发送端虚拟机监视器开始交互流程,将交互请求和数据递交给本地的安全协处理器。

s502、接收交互请求及数据。

安全处理器接收虚拟机监视器递交的交互请求,并获取需要处理的数据。

s504、处理交互请求并对数据进行分段。

安全处理器处理交互请求,解析交互请求中的交互请求信息,获取对所述数据进行处理的处理方式:先加密处理,后计算hash值。

安全处理器将需要处理的数据分为两个以上的数据段。安全处理器将需要处理的数据分为两个数据段的过程,可参看图1所示实施例中步骤s102的相关内容,在此不再赘述。

s506、取一个数据段提交给密码协处理器的sm4引擎模块做加密处理。

sm4引擎模块是基于sm4算法的加密处理模块,通过sm4引擎模块可对数据段采用sm4算法进行加密处理。sm4算法是一种分组密码算法。安全处理器取一个数据段提交给密码协处理器的sm4引擎模块,以使sm4引擎模块对该数据段做加密处理。

安全处理器先取一个数据段并提交给密码协处理器的sm4引擎模块做加密处理,并等待处理结束。

s508、密码协处理器的sm4引擎模块加密数据段。

密码协处理器的sm4引擎模块,接收安全处理器提交的数据段后,对该数据段进行加密处理。

s510、等待密码协处理器的sm4引擎模块处理结束。

在密码协处理器的sm4引擎模块加密数据段的过程中,安全处理器等待密码协处理器的sm4引擎模块处理结束。

s512、将已被sm4引擎模块处理但未计算hash值的数据段提交给密码协处理器的sm3引擎模块处理。

sm3引擎模块是基于sm3算法的处理模块,通过sm3引擎模块可对数据段采用sm3算法计算杂凑值(hash值),以用于在数据迁移过程中对数据的完整性进行验证。sm3是一种密码散列函数标准,主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。

在密码协处理器的sm4引擎模块加密结束后,安全处理器将已被sm4引擎模块加密的数据段提交给密码协处理器的sm3引擎模块处理。

s514、密码协处理器的sm3引擎模块计算已被sm4引擎模块加密过的数据段的hash值。

数据段由密码协处理器的sm4引擎模块加密后,密码协处理器的sm3引擎模块对该数据段做进一步处理,计算已被sm4引擎模块加密过的数据段的hash值。

s516、取下一个数据段未被sm4引擎模块加密的数据段提交给密码协处理器的sm4引擎模块。

密码协处理器的sm4引擎模块处理结束后,安全处理器将该数据段提交给密码协处理器的sm3引擎模块计算hash值,但是不等待sm3引擎模块处理结束,安全处理器取一个未被sm4引擎模块加密的数据段,提交给sm4引擎模块做加密处理。

s518、密码协处理器的sm4引擎模块加密下一个数据段。

s520、等待密码协处理器的所有加密引擎模块处理结束。

安全处理器等待密码协处理器的sm4引擎模块和sm3引擎模块处理结束。

s522、判断所有数据段是否均已被密码协处理器的sm4引擎模块加密。

安全处理器检查是否所有的数据段均已被加密,若所有数据段均已被密码协处理器的sm4引擎模块加密,则执行步骤s524,否则执行步骤s512。

s524、取最后一个已被sm4引擎模块加密但未计算hash值的数据段提交给密码协处理器的sm3引擎模块。

在所有数据段均已被密码协处理器的sm4引擎模块加密后,安全处理器取最后一个已被sm4引擎模块加密但未被sm3引擎模块计算过hash值的数据段提交给密码协处理器的sm3引擎模块。

s526、密码协处理器的sm3引擎模块计算已被sm4引擎模块加密过的数据段的hash值。

密码协处理器的sm3引擎模块,计算已被sm4引擎模块加密过的最后一个数据段的hash值。

s528、等待密码协处理器的sm3引擎模块处理结束。

安全处理器等待密码协处理器的sm3引擎模块对最后一个数据段处理结束。

s530、返回结果,等待下一次交互请求。

s532、获取安全处理器返回的结果。

虚拟机监视器接获取返回结果后处理内存数据,完成交互流程。

本实施例中,安全处理器将两个数据段,分配给密码协处理器内部两个数据处理模块并行处理的过程,可参看图1所示实施例中步骤s104的相关内容,在此不再赘述。

本实施例中,对有数据依赖情况的数据分段后,其中一个数据段先由密码协处理器的sm4引擎模块加密后,再提交给密码协处理器的sm3引擎模块计算hash值;在sm3引擎模块计算hash值的过程中,将下一个数据段提交给sm4引擎模块加密,这样,在sm3引擎模块计算hash值的过程中,sm4引擎模块也可同时对另一个数据段进行加密处理,实现数据段的并行(至少部分并行)处理,从而提高交互效率。

图10为本申请一实施例基于安全处理器的虚拟机数据处理装置的框图,参看图10,本实施例的虚拟机数据处理装置10,包括:虚拟机监视器12、数据分段模块14和数据段分配模块16;其中,虚拟机监视器12,用于将交互请求和需要处理的数据发送给安全处理器;数据分段模块14,用于根据所述交互请求将安全处理器收到的所述需要处理的数据,分为两个以上的数据段;数据段分配模块16,用于将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块处理。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请实施例还提供另一种基于安全处理器的虚拟机数据处理装置,本实施例虚拟机数据处理装置的结构与图10所示虚拟机数据处理装置10的结构基本相同,不同之处在于,本实施例中,所述数据分段模块14,可具体用于根据密码协处理器内部数据处理模块的数量和/或密码协处理器内部数据处理模块的处理速度,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器内部数据处理模块的数量;数据段分配模块16,用于根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中或分配到密码协处理器内部不同的数据处理模块各自所对应的命令队列中。

密码协处理器,内部具有不同的数据处理模块,用于对所述同一命令队列中的命令或各自命令队列中的命令进行并行处理。

本实施例的装置,可以用于执行图7至图9所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请实施例还提供另一种基于安全处理器的虚拟机数据处理装置,本实施例的虚拟机数据处理装置的结构与图10所示虚拟机数据处理装置10的结构基本相同,不同之处在于,本实施例中,所述数据段分配模块16,具有用于:针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列;其中,所述第一命令队列为所述密码协处理器内部的第一数据处理模块所对应的命令队列;所述第二命令队列为所述密码协处理器内部的第二数据处理模块所对应的命令队列。

其中,所述密码协处理器,可包括:第一命令读取模块,用于从所述第一命令队列读取第一数据处理命令,将第一数据处理命令提交给第一数据处理模块;第二命令读取模块,用于从所述第二命令队列读取第二数据处理命令,将第二数据处理命令提交给第二数据处理模块;所述第一数据处理模块和所述第二数据处理模块并行执行所述第一数据处理命令和第二数据处理命令。

本实施例的装置,可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本申请实施例还提供另一种基于安全处理器的虚拟机数据处理装置,本实施例的虚拟机数据处理装置的结构与图10所示虚拟机数据处理装置10的结构基本相同,不同之处在于,本实施例中,所述数据段分配模块16,具体用于:针对第一数据段生成第一数据处理命令和第二数据处理命令,并将所述第一数据处理命令分配到第一命令队列,将所述第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将所述第三数据处理命令分配到所述第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列为密码协处理器内部的第一数据处理模块所对应的命令队列,所述第二命令队列为密码协处理器内部的第二数据处理模块所对应的命令队列。

其中,所述密码协处理器,可包括:第一命令读取模块,用于从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块处理;第二命令读取模块,用于在所述第一数据处理模块执行完所述第一数据处理命令后,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;第一命令读取模块,还用于从所述第一命令队列读取第三数据处理命令,提交给所述第一数据处理模块;所述第二数据处理模块和所述第一数据处理模块并行执行所述第二数据处理命令和第三数据处理命令。

本实施例的装置,可以用于执行图8至图9所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图11为本申请一实施例cpu芯片的框图,参看图11,本申请实施例cpu芯片20,也可称为多处理器集成系统,或简称为处理器,其包括:处理器核心22、安全处理器24、密码协处理器26;其中,所述处理器核心22,也可称为处理核、核心(core)或内核,用于运行虚拟机监视器,以通过所述虚拟机监视器将交互请求和需要处理的数据发送给安全处理器24;所述安全处理器24,与所述处理器核心22电连接,用于将所述需要处理的数据,分为两个以上的数据段;据所述交互请求将所述两个以上的数据段,分配给密码协处理器26内部不同的数据处理模块处理;所述密码协处理器26,与所述安全处理器24电连接,用于对所述安全处理器24分配的两个以上的数据段进行处理。

处理器核心22和安全处理器24可采用相同架构的处理器,比如均可采用x86架构的处理器,也可采用不同架构的处理器,比如处理器核心22采用x86架构的处理器,而安全处理器24采用arm架构的处理器。

本实施例的cpu芯片,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在一些实施方式中,所述安全处理器24,可具体用于:根据密码协处理器26内部数据处理模块的数量和/或密码协处理器26内部数据处理模块的处理速度,将所述需要处理的数据分为两个以上的数据段,所述数据段的数量小于或等于所述密码协处理器26内部数据处理模块的数量。

在一些实施方式中,所述安全处理器24,可具体用于:根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到同一命令队列中;所述密码协处理器26内部不同的数据处理模块,对所述命令队列中的命令进行处理;或者,

所述安全处理器24,具体用于:根据所述交互请求,针对每个数据段生成数据处理命令,并将针对不同数据段的数据处理命令,分配到密码协处理器26内部不同的数据处理模块各自所对应的命令队列中;

所述密码协处理器26内部不同的数据处理模块,对各自所对应的命令队列中的命令进行处理。

在一些实施方式中,所述安全处理器24,具体用于针对第一数据段生成第一数据处理命令,并将第一数据处理命令分配到第一命令队列,针对第二数据段生成第二数据处理命令,并将第二数据处理命令分配到第二命令队列;其中,所述第一命令队列为所述密码协处理器26内部的第一数据处理模块所对应的命令队列;所述第二命令队列为所述密码协处理器26内部的第二数据处理模块所对应的命令队列;

其中,所述密码协处理器26,具体用于:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;所述第一数据处理模块和所述第二数据处理模块并行执行所述第一数据处理命令和第二数据处理命令。

本实施方式的cpu芯片,可以用于执行图7所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在一些实施方式中,所述安全处理器24,具体用于:针对第一数据段生成第一数据处理命令和第二数据处理命令,并将所述第一数据处理命令分配到第一命令队列,将所述第二数据处理命令分配到第二命令队列;针对第二数据段生成第三数据处理命令和第四数据处理命令,并将所述第三数据处理命令分配到所述第一命令队列,将第四数据处理命令分配到第二命令队列;其中,所述第一命令队列为密码协处理器26内部的第一数据处理模块所对应的命令队列,所述第二命令队列为密码协处理器26内部的第二数据处理模块所对应的命令队列;

其中,所述密码协处理器26,具体用于:从所述第一命令队列读取第一数据处理命令,提交给所述第一数据处理模块处理;在所述第一数据处理模块执行完所述第一数据处理命令后,从所述第二命令队列读取第二数据处理命令,提交给所述第二数据处理模块;从所述第一命令队列读取第三数据处理命令,提交给所述第一数据处理模块;所述第二数据处理模块和所述第一数据处理模块并行执行所述第二数据处理命令和第三数据处理命令。

本实施方式的cpu芯片,可以用于执行图8及图9所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在一些实施方式中,所述需要处理的数据为虚拟机内存页信息表。

在一些实施方式中,所述密码协处理器位于所述安全处理器内部,即集成在所述安全处理器内部,以提高集成度。在另一些实施方式中,所述密码协处理器位于所述安全处理器外部。

图12为本申请一实施例服务器的方框图,参看图12,所述服务器可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;所述处理器42通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的虚拟机数据处理方法。

服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

本申请实施例基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器,虚拟机监视器将需要处理的数据发送给安全处理器,安全处理器将所述需要处理的数据,分为两个以上的数据段,将所述两个以上的数据段,分配给密码协处理器内部不同的数据处理模块,密码协处理器内部不同的数据处理模块可对需要处理的数据进行处理,由此可提升虚拟机监视器和安全处理器的交互时间,提升交互效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本申请时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1