一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种异构化处理器间相互模拟方法与流程

2022-02-25 20:11:04 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种异构化处理器间相互模拟方法。


背景技术:

2.虚拟机(virtual machine,vm)是在硬件平台上模拟一个或者多个独立的和实际底层硬件相同的执行环境。虚拟化技术是将计算机的各种实体资源,予以抽象、转换后创建某种特定虚拟对象的做法,包括虚拟的计算机硬件平台、存储设备和计算机网络资源等。虚拟化技术通过在软件和硬件中间引进虚拟化层,将宿主机的各种资源进行逻辑的抽象转换,实现了软/硬件分离。用户无需关注硬件的具体实现即可在虚拟化的操作系统环境中运行应用程序,提高了资源的利用率和安全性。hypervisor是一种运行在物理服务器和操作系统之间的中间层软件,hypervisor的核心要素之一是页映射器,页映射器通过页表映射方式将物理硬件指向特定操作系统(guest或 hypervisor)的页(page),以满足各种进程运行及数据读写等事件。
3.物理硬件(尤其是物理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的架构、制造商、版本等物理硬件基础信息。
4.然而,对于云平台而言,如果用户暴露底层的物理硬件信息会丧失虚拟硬件隔离性及用户体验一致性。通常而言,无论是在物理机中启动部署虚拟机,还是在虚拟机执行迁移过程中,如果被用户感知到底层硬件出现差异,均会导致用户体验下降。


技术实现要素:

5.本发明的目的在于揭示一种基于异构化处理器间相互模拟方法,用以在异构化场景中实现同架构但制造商和/或版本不同的物理cpu之间的相互模拟,并实现避免被用户感知到底层物理硬件之间的差异。
6.为实现上述发明目的,本发明提供了一种异构化处理器间相互模拟方法,包括以下步骤:
7.s1、在内核空间中将物理处理器所包含的寄存器hfgrtr_el2中的 midr_el1位的
值置为1;
8.s2、使用硬件加速模块向内核空间添加模拟虚拟处理器的寄存器 midr_el1,并写入待模拟物理处理器中所包含的寄存器midr_el1的值;
9.s3、在虚拟化管理程序中添加待模拟物理处理器的型号,并将由所述待模拟物理处理器所包含的寄存器midr_el1的值传入已经添加至内核空间中的虚拟处理器所包含已经被模拟的所述寄存器midr_el1。
10.作为本发明的进一步改进,所述步骤s3执行完毕后,还包括:通过虚拟化管理程序在待模拟物理处理器所在物理机启动虚拟机,并为所述虚拟机选择已添加的待模拟物理处理器的型号。
11.作为本发明的进一步改进,还包括:预配置包含多个待模拟物理处理器中所包含的寄存器midr_el1的值的集合,并将所述集合传入虚拟化管理程序中。
12.作为本发明的进一步改进,还包括:建立寄存器midr_el1的值与多个待模拟物理处理器的制造商和/或型号的映射关系,以在在虚拟化管理程序中添加待模拟物理处理器的制造商和/或型号后,向内核空间发起调用所述映射关系事件,并根据所述待模拟物理处理器的制造商和/或型号确定写入待模拟物理处理器中所包含的寄存器midr_el1的值。
13.作为本发明的进一步改进,用以对服务器集群中至少两个物理机所部署的异构化处理器相互模拟,其中,异构化处理器为具有相同逻辑架构且不同制造商和/或不同版本的物理处理器。
14.作为本发明的进一步改进,所述物理处理器为基于arm架构的物理处理器。
15.作为本发明的进一步改进,所述物理机包括:基于arm架构的物理计算机、平板电脑或者可穿戴电子设备。
16.与现有技术相比,本发明的有益效果是:
17.通过本发明,实现了对多个异构化物理cpu或者包含异构化物理 cpu的物理机之间差异化硬件信息的屏蔽,实现了同架构但制造商和/或版本不同的物理cpu的异构化场景中异构化处理器之间的相互模拟,并实现了避免被用户感知到底层物理硬件之间的差异的技术效果,并提高了用户体验。
附图说明
18.图1为本发明一种异构化处理器间相互模拟方法的整体流程图;
19.图2为基于图1所示出的一种异构化处理器间相互模拟方法在两个物理机之间相互执行迁移的整体拓扑图;
20.图3为物理处理器所包含的寄存器hfgrtr_el2的字段说明,其中,第25位的名称为midr_el1;
21.图4为在内核空间中添加模拟虚拟处理器的寄存器midr_el1的字段说明。图5为用户与app在用户空间中通过guest内核访问位于内核空间的kvm的示意图。
具体实施方式
22.下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、
或者结构上的等效变换或替代,均属于本发明的保护范围之内。
23.参图1至图5所示出的本发明一种异构化处理器间相互模拟方法(以下或简称“方法”)的一种具体实施方式。
24.该方法旨在实现基于arm架构(例如armv8架构)的物理cpu之间执行相互模拟操作,实现对一种物理cpu对另一种物理cpu执行模拟,并从用户空间(user space)而言对用户予以屏蔽,用以实现异构化场景中异构化处理器之间的相互模拟,并实现了避免被用户感知到底层物理硬件之间的差异的技术效果。尤其的,通过该方法避免了对物理cpu执行纯软件全虚拟化过程中因影子页表进行寻址的过程因客户机本身原因或者客户机页表和影子页表不一致所导致的异常,一旦出现缺页异常事件,会产生vm-exit 事件,并陷入到vmm(virtual machine monitor,虚拟机监视器)。同时,由于影子页表基于软件实现gva(客户机虚拟地址,guestvirtual address) 到hpa(宿主机物理地址,host physical address)的映射关系,客户机页表和和影子页表的同步也比较复杂,因此存在计算开销过大及性能损失较大的缺陷。
25.参图5所示,用户与app(程序或者应用或者接口)在用户空间中通过 guest内核访问位于内核空间的kvm。kvm提供cpu和内存的虚级化,以及客户机的i/o拦截。guest内核的i/o被kvm拦截后交由qemu处理。修改过的被kvm虚拟机使用的qemu代码,以运行在用户空间,提供硬件i/o虚拟化,通过ioctl/dev/kvm设备和kvm交互。
26.参图1所示,在本实施例中,该异构化处理器间相互模拟方法,包括以下步骤s1~步骤s4。该方法用以对服务器集群中至少两个物理机(即物理机 1与物理机2)所部署的异构化处理器相互模拟,其中,异构化处理器为具有相同逻辑架构且不同制造商(implementer)和/或不同版本(revision)的物理处理器。物理处理器为基于arm架构的物理处理器。参图4所示,对于64位的armv8架构物理cpu而言,寄存器midr_el1是描述物理cpu 的主id寄存器,0~3位表征版本(revision),24~31位表征制造商 (implementer)。因此,在本实施例中,只要版本不同和/或制造商不同的两个物理cpu,对用户而言,均构成异构化处理器。进一步的,该物理机包括:基于arm架构的物理计算机、平板电脑或者可穿戴电子设备。例如,物理机1中部署一个或者多个均为armv8架构的鲲鹏920型物理cpu,物理机 2中部署一个或者多个均为armv8架构的飞腾2000型物理cpu。
27.为简化描述,本实施例所揭示的该方法涉及基于鲲鹏920型物理cpu(以下简称“鲲鹏920”或者“基准物理处理器”)模拟飞腾2000型物理cpu(以下简称“飞腾2000”或者“待模拟物理处理器”)的模拟场景,以实现用户所对物理机1与物理机2中所部署的物理处理器均认为是鲲鹏920,以屏蔽客观上物理机2中所部署的一个或者多个飞腾2000,且不屏蔽物理机2中部署的一个或者多个鲲鹏920。当然,鲲鹏920与飞腾2000之间可以相互模拟,只要确保基于相同架构即可。
28.步骤s1、在内核空间中将物理处理器所包含的寄存器hfgrtr_el2中的midr_el1位的值置为1。步骤s1由物理机内核软件执行。寄存器 hfgrtr_el2是细粒度读取陷入事件寄存器,用以提供对系统寄存器的 mrs的陷阱和mrc读取的控制。寄存器hfgrtr_el2仅在实现feat_fgt 时才存在;否则,对hfgrtr_el2的直接访问将未定义(undefined)。参图 3所示,寄存器hfgrtr_el2中bit[25](即第25位)为寄存器midr_el1,并通过midr_el1位的值置为1以在后续在物理机2中所创建的虚拟机读取寄存器midr_el1的值时以陷入物理机2的虚拟
化管理程序(hypervisor) 中,以便于虚拟化管理程序模拟。
[0029]
步骤s2、使用硬件加速模块(例如linux系统的kvm)向内核空间(即 kernel space)添加模拟虚拟处理器的寄存器midr_el1,并写入待模拟物理处理器(即飞腾2000)中所包含的寄存器midr_el1的值。前述模拟虚拟处理器是指鲲鹏920的寄存器midr_el1。飞腾2000中同样包含与鲲鹏 920相同的寄存器midr_el1,且仅仅是飞腾2000中所含寄存器midr_el1 的值与鲲鹏920中所含寄存器midr_el1的值不同。由此,形成了向kvm_1 中vcpu_1(图5中由物理机1中的pcpu_1,即鲲鹏920)所包含的寄存器 midr_el1对vcpu_2(图5中由物理机2中的pcpu_2,即飞腾2000)所包含的寄存器midr_el1的模拟功能。寄存器midr_el1用于保存表征物理处理器的制造商信息与版本信息。
[0030]
步骤s3、在虚拟化管理程序(例如qemu)中添加待模拟物理处理器的型号,并将由所述待模拟物理处理器(即图5中的pcpu_2)所包含的寄存器midr_el1的值(例如0x00000000701f6622)传入已经添加至内核空间中的虚拟处理器(即图5中的vcpu_2)所包含已经被模拟的所述寄存器 midr_el1。前述被模拟的所述寄存器midr_el1向内核空间中添加模拟虚拟处理器的寄存器midr_el1的操作参前述步骤s2所示。
[0031]
具体的,在本实施例中,前述传入已经添加至内核空间中的虚拟处理器所包含已经被模拟的所述寄存器midr_el1的核心代码具体如下:
[0032][0033]
步骤s4、通过虚拟化管理程序(hypervisor)在待模拟物理处理器所在物理机(例如物理机2)启动虚拟机,并为所述虚拟机选择已添加的待模拟物理处理器的型号。
[0034]
顺序执行上述步骤s1~步骤s4,可在物理机2启动虚拟机后,用户可在物理机2所启动的虚拟机后,通过客户端的ui界面中键入/proc/cpuinfo的命令行后,对客观上为飞腾2000所查看到的物理处理器均被修改为与物理机1 中的鲲鹏920相同制造商及相同版本的物理处理器。同时,由于该方法读取物理机1与物理机2中的物理处理器的制造商信息与版本信息的过程均发生在虚拟机初始化阶段,并在物理机2所创建的虚拟机落盘运行后不会对物理机2所创建的虚拟机造成任何性能损失,且有利于节约物理机2的资源开销。同时,异构化处理器间通过本方法可屏蔽逻辑上位于底层的物理机中所部署的异构化处理器并通过虚拟化技术所创建的虚拟机之间的隔离性,以确保用户体验。通过该方法对服务器集群中的多个物理机执行相互模拟后,可满足诸如图2中在异构化场景中的物理机之间执行的迁移操作等计算机事件,以降低将某个物理机因资源不足或者故障在hypervisor的引导执行的迁移操作过程中不会被用户所感知,以防止逻辑上位于底层的物理硬件信息向用户予
以暴露。
[0035]
优选的,在本实施例中,该方法还包括:预配置包含多个待模拟物理处理器中所包含的寄存器midr_el1的值的集合,并将所述集合传入虚拟化管理程序中。同时,建立寄存器midr_el1的值与多个待模拟物理处理器的制造商和/或型号的映射关系,以在在虚拟化管理程序中添加待模拟物理处理器的制造商和/或型号后,向内核空间发起调用所述映射关系事件,并根据所述待模拟物理处理器的制造商和/或型号确定写入待模拟物理处理器中所包含的寄存器midr_el1的值。基于上述技术手段可实现更多不同制造商制造的物理处理器、或者同一制造商的不同版本的物理处理器、或者不同制造商制造的不同版本的物理处理器之间执行集中的相互模拟,从而在后续重新部署已经记录虚拟化管理程序并携带并表征物理处理器的制造商信息与版本信息的物理处理器,从而间接地提高了由多个物理机所组成的服务器集群运行,尤其是通过虚拟化技术部署的虚拟机过程中的简便性,并对所创建的全部虚拟机避免向用户暴露底层的物理硬件信息。只要形成了前述映射关系,均可在内核空间中被kvm所调用,从而进一步提高了异构化处理器间执行相互模拟的效率。
[0036]
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
[0037]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0038]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献