一种异构化处理器间相互模拟方法技术

技术编号:32456301 阅读:15 留言:0更新日期:2022-02-26 08:35
本发明专利技术提供了一种异构化处理器间相互模拟方法,包括:在内核空间中将物理处理器所包含的寄存器HFGRTR_EL2中的MIDR_EL1位的值置为1;使用硬件加速模块向内核空间添加模拟虚拟处理器的寄存器MIDR_EL1,并写入待模拟物理处理器中所包含的寄存器MIDR_EL1的值;在虚拟化管理程序中添加待模拟物理处理器的型号,并将由待模拟物理处理器所包含的寄存器MIDR_EL1的值传入已经添加至内核空间中的虚拟处理器所包含已经被模拟的寄存器MIDR_EL1。本发明专利技术实现了在异构化场景中对差异化硬件信息的屏蔽,实现了异构化场景中异构化处理器之间的相互模拟并提高了用户体验。互模拟并提高了用户体验。互模拟并提高了用户体验。

【技术实现步骤摘要】
一种异构化处理器间相互模拟方法


[0001]本专利技术涉及计算机
,尤其涉及一种异构化处理器间相互模拟方法。

技术介绍

[0002]虚拟机(Virtual Machine,VM)是在硬件平台上模拟一个或者多个独立的和实际底层硬件相同的执行环境。虚拟化技术是将计算机的各种实体资源,予以抽象、转换后创建某种特定虚拟对象的做法,包括虚拟的计算机硬件平台、存储设备和计算机网络资源等。虚拟化技术通过在软件和硬件中间引进虚拟化层,将宿主机的各种资源进行逻辑的抽象转换,实现了软/硬件分离。用户无需关注硬件的具体实现即可在虚拟化的操作系统环境中运行应用程序,提高了资源的利用率和安全性。Hypervisor是一种运行在物理服务器和操作系统之间的中间层软件,Hypervisor的核心要素之一是页映射器,页映射器通过页表映射方式将物理硬件指向特定操作系统(Guest或 Hypervisor)的页(Page),以满足各种进程运行及数据读写等事件。
[0003]物理硬件(尤其是物理CPU)全虚拟化依赖Trap

and

emulation,即陷入模式和模拟仿真。物理CPU全虚拟化通过将GUEST OS需求的特权指令通过VMM(虚拟机管理器,例如Hypervisor)自动捕获的方式运行后返回至 GUEST OS。当GUEST OS有特权指令产生时,VMM将其自动捕获,将 GUEST OS所请求的特权指令进行截获,然后通过VMM运行之后将结果返回给GUEST OS。VMM会使用模拟仿真将特权指令模拟仿真的方式执行一遍。在构建公有云或者私有云或者混合云的服务器集群中通常部署多个物理机,每个物理机至少包括一个物理CPU。因物理机资源不足所引发虚拟机迁移或者因物理机更换所引发的虚拟机迁移时,如果两个物理机所部署的物理CPU属于同架构但不同制造商的场景(以下简称“异构化场景”)执行迁移时会被用户所感知。例如飞腾公司制造的飞腾2000与华为公司制造的鲲鹏 920均基于ARMv8架构的物理CPU所构成的异构化场景。飞腾2000部署于物理机1,鲲鹏920部署于物理机2。用户(User)通过键入/proc/cpuinfo 的命令行,即可查看服务器集群(Server Cluster)中不同物理机所配置的物理CPU的架构、制造商、版本等物理硬件基础信息。
[0004]然而,对于云平台而言,如果用户暴露底层的物理硬件信息会丧失虚拟硬件隔离性及用户体验一致性。通常而言,无论是在物理机中启动部署虚拟机,还是在虚拟机执行迁移过程中,如果被用户感知到底层硬件出现差异,均会导致用户体验下降。

技术实现思路

[0005]本专利技术的目的在于揭示一种基于异构化处理器间相互模拟方法,用以在异构化场景中实现同架构但制造商和/或版本不同的物理CPU之间的相互模拟,并实现避免被用户感知到底层物理硬件之间的差异。
[0006]为实现上述专利技术目的,本专利技术提供了一种异构化处理器间相互模拟方法,包括以下步骤:
[0007]S1、在内核空间中将物理处理器所包含的寄存器HFGRTR_EL2中的 MIDR_EL1位的
值置为1;
[0008]S2、使用硬件加速模块向内核空间添加模拟虚拟处理器的寄存器 MIDR_EL1,并写入待模拟物理处理器中所包含的寄存器MIDR_EL1的值;
[0009]S3、在虚拟化管理程序中添加待模拟物理处理器的型号,并将由所述待模拟物理处理器所包含的寄存器MIDR_EL1的值传入已经添加至内核空间中的虚拟处理器所包含已经被模拟的所述寄存器MIDR_EL1。
[0010]作为本专利技术的进一步改进,所述步骤S3执行完毕后,还包括:通过虚拟化管理程序在待模拟物理处理器所在物理机启动虚拟机,并为所述虚拟机选择已添加的待模拟物理处理器的型号。
[0011]作为本专利技术的进一步改进,还包括:预配置包含多个待模拟物理处理器中所包含的寄存器MIDR_EL1的值的集合,并将所述集合传入虚拟化管理程序中。
[0012]作为本专利技术的进一步改进,还包括:建立寄存器MIDR_EL1的值与多个待模拟物理处理器的制造商和/或型号的映射关系,以在在虚拟化管理程序中添加待模拟物理处理器的制造商和/或型号后,向内核空间发起调用所述映射关系事件,并根据所述待模拟物理处理器的制造商和/或型号确定写入待模拟物理处理器中所包含的寄存器MIDR_EL1的值。
[0013]作为本专利技术的进一步改进,用以对服务器集群中至少两个物理机所部署的异构化处理器相互模拟,其中,异构化处理器为具有相同逻辑架构且不同制造商和/或不同版本的物理处理器。
[0014]作为本专利技术的进一步改进,所述物理处理器为基于ARM架构的物理处理器。
[0015]作为本专利技术的进一步改进,所述物理机包括:基于ARM架构的物理计算机、平板电脑或者可穿戴电子设备。
[0016]与现有技术相比,本专利技术的有益效果是:
[0017]通过本专利技术,实现了对多个异构化物理CPU或者包含异构化物理 CPU的物理机之间差异化硬件信息的屏蔽,实现了同架构但制造商和/或版本不同的物理CPU的异构化场景中异构化处理器之间的相互模拟,并实现了避免被用户感知到底层物理硬件之间的差异的技术效果,并提高了用户体验。
附图说明
[0018]图1为本专利技术一种异构化处理器间相互模拟方法的整体流程图;
[0019]图2为基于图1所示出的一种异构化处理器间相互模拟方法在两个物理机之间相互执行迁移的整体拓扑图;
[0020]图3为物理处理器所包含的寄存器HFGRTR_EL2的字段说明,其中,第25位的名称为MIDR_EL1;
[0021]图4为在内核空间中添加模拟虚拟处理器的寄存器MIDR_EL1的字段说明。图5为用户与APP在用户空间中通过Guest内核访问位于内核空间的KVM的示意图。
具体实施方式
[0022]下面结合附图所示的各实施方式对本专利技术进行详细说明,但应当说明的是,这些实施方式并非对本专利技术的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、
或者结构上的等效变换或替代,均属于本专利技术的保护范围之内。
[0023]参图1至图5所示出的本专利技术一种异构化处理器间相互模拟方法(以下或简称“方法”)的一种具体实施方式。
[0024]该方法旨在实现基于ARM架构(例如ARMv8架构)的物理CPU之间执行相互模拟操作,实现对一种物理CPU对另一种物理CPU执行模拟,并从用户空间(User Space)而言对用户予以屏蔽,用以实现异构化场景中异构化处理器之间的相互模拟,并实现了避免被用户感知到底层物理硬件之间的差异的技术效果。尤其的,通过该方法避免了对物理CPU执行纯软件全虚拟化过程中因影子页表进行寻址的过程因客户机本身原因或者客户机页表和影子页表不一致所导致的异常,一旦出现缺页异常事件,会产生VM

Exit 事件,并陷入到VMM(Virtual Machine Moni本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异构化处理器间相互模拟方法,其特征在于,包括以下步骤:S1、在内核空间中将物理处理器所包含的寄存器HFGRTR_EL2中的MIDR_EL1位的值置为1;S2、使用硬件加速模块向内核空间添加模拟虚拟处理器的寄存器MIDR_EL1,并写入待模拟物理处理器中所包含的寄存器MIDR_EL1的值;S3、在虚拟化管理程序中添加待模拟物理处理器的型号,并将由所述待模拟物理处理器所包含的寄存器MIDR_EL1的值传入已经添加至内核空间中的虚拟处理器所包含已经被模拟的所述寄存器MIDR_EL1。2.根据权利要求1所述的异构化处理器间相互模拟方法,其特征在于,所述步骤S3执行完毕后,还包括:通过虚拟化管理程序在待模拟物理处理器所在物理机启动虚拟机,并为所述虚拟机选择已添加的待模拟物理处理器的型号。3.根据权利要求2所述的异构化处理器间相互模拟方法,其特征在于,还包括:预配置包含多个待模拟物理处理器中所包含的寄存器MIDR_EL1的值的集合,并将所...

【专利技术属性】
技术研发人员:仇大玉
申请(专利权)人:华云数据控股集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1