当前位置: 首页 > 专利查询>微软公司专利>正文

用于在64位X86处理器上运行传统32位X86虚拟机的系统和方法技术方案

技术编号:2856822 阅读:531 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于在X86-64体系结构中的长超级模式和传统超级模式之间实时转换的虚拟化计算系统和方法。在这么做的时候,虚拟机,它依赖于传统32位模式,即实模式和保护模式(V86子模式、环-0子模式和环-3子模式),能够与在X86-64计算机硬件(即64位)上的其它应用程序并行运行。执行临时处理器模式上下文切换的方法包括虚拟机监控程序设置一个“虚拟=实”页、将执行处理器模式上下文切换的转换代码放在该页上、跳到该页、禁用X86-64计算机硬件的存储器管理单元(MMU)、修改模式控制寄存器来设置长超级模式位或传统超级模式位、加载新页表以及重新激活X86-64计算机硬件的MMU。

【技术实现步骤摘要】

本专利技术通常涉及虚拟机(也称为“处理器虚拟化”)和在虚拟机环境中执行的软件的领域。特别地,本专利技术直接涉及在不同于64位主机操作系统的处理器模式中运行传统32位虚拟机的方法。
技术介绍
计算机包括被设计成执行特定的系统指令集的通用中央处理单元(CPU)。具有类似的体系结构或设计规范的一组处理器被认为是同一处理器家族的成员。当前的处理器家族的示例包括由亚利桑那州菲尼克斯市的Motorola公司生产的Motorola 680X0处理器家族;由加利福尼亚州桑尼维尔市的Intel公司生产的Intel80X86处理器家族;以及由Motorola公司生产的,并在由加利福尼亚州库珀蒂诺市的Apple计算机公司生产的计算机中使用的PowerPC处理器家族。尽管一组处理器由于其类似的体系结构和设计考虑可处于同一家族中,然而根据其时钟速度和其它参数性能,家族中的处理器也会有很大的不同。每一微处理器家族执行对该处理器家族唯一的指令。处理器或处理器家族可执行的一组集体的指令被称为处理器的指令集。作为一个示例,由Intel 80X86处理器家族使用的指令集与由PowerPC处理器家族使用的指令集不兼容。Inter 80X86指令集基于复杂指令集计算机(CISC)格式。Motorola Power PC指令集基于精简指令集计算机(RISC)格式。CISC处理器使用大量的指令,其中一些可执行相当复杂的功能,但是它一般需要许多时钟周期来执行。RISC处理器使用较少数量的可用指令,来执行以更高的速率执行的一组较简单的功能。处理器家族在计算机系统之中的唯一性通常导致计算机系统的硬件体系结构的其它元件之间的不兼容性。用来自Intel 80X86处理器家族的处理器制造的计算机系统具有与用来自PowerPC处理器家族的处理器制造的计算机系统的硬件体系结构不同的硬件体系结构。由于处理器指令集以及计算机系统的硬件体系结构的唯一性,应用软件程序通常被书写成在运行特定操作系统的特定计算机系统上运行。计算机制造商希望通过令更多而不是更少的应用程序运行在与计算机制造商的产品线相关联的微处理器家族上来将其市场份额最大化。为扩展可运行在计算机系统上的操作系统和应用程序的数量,开发了一种
,其中,称为主机的具有一种类型CPU的给定计算机将包括一仿真器程序,它允许主机计算机仿真一种称为访客的CPU的不相关类型指令。由此,主机计算机将执行促使一个或多个主机指令响应于给定访客指令而被调用的应用程序。由此,主机计算机可运行为其自己的硬件体系结构设计的软件和为具有不相关硬件体系结构的计算机书写的软件两者。作为一个更具体的示例,例如,由Apple计算机制造的计算机系统可运行为基于PC的计算机系统书写的操作系统和程序。也可能使用一仿真器程序以在单个CPU上并发地操作多个不兼容的操作系统。在这一装置中,尽管每一操作系统与其它操作系统不兼容,但是仿真器程序可主宿两个操作系统之一,从而允许不兼容的操作系统在同一计算机系统上并发地运行。当在主机计算机系统上仿真访客计算机系统时,访客计算机系统被称为“虚拟机”,因为访客计算机系统仅作为一种特定硬件体系结构的纯软件表示存在于主机计算机系统中。术语仿真器、虚拟机和处理器仿真有时可互换地使用,以表示模仿或仿真一个完整的计算机系统的硬件体系结构的能力。作为一个示例,由加利福尼亚州圣马特奥市的Connectix公司创建的Virtual PC软件仿真包括Intel 80X86Pentium处理器和各种主板组件和卡的整个计算机。这些组件的操作在运行于主机上的虚拟机中仿真。在诸如具有PowerPC处理器的计算机系统等主机计算机的操作系统软件和硬件体系结构上执行的仿真器程序模仿整个访客计算机系统的操作。仿真器程序担当主机机器的硬件体系结构和由运行在被仿真的环境中的软件发送的指令之间的交换点。该仿真器程序可以是一主机操作系统(HOS),它是直接运行在物理计算机硬件上的操作系统。或者,被仿真的环境也可以是虚拟机监控程序(VMM),它是一软件层,其直接运行在硬件之上,并通过展示与VMM正在虚拟化(允许VMM不被其上运行的操作系统层注意)的硬件相同的接口来虚拟化该机器的所有资源。主机操作系统和VMM可在同一物理硬件上并排运行。英特尔(Intel)公司(圣克拉拉(Santa Clara),加利福尼亚(CA))的x86体系结构的发展演变始于16位处理器(x86-16),然后扩展到32位处理器(x86-32),而且目前正扩展到64位处理器(x86-64)。64位x86体系结构,它通常称为x86-64体系结构,正由加利福尼亚(CA)桑尼维尔(Sunnyvale)的先进微设备(Advanced MicroDevices)(AMD)公司以及英特尔开发。例如,AMD64位产品在商业上称为AMD64。但是,这里讨论的64位x86体系结构和另一个由Hewlett-Packard(帕洛阿尔托(PaloAlto),加利福尼亚(CA))和英特尔联合开发的称为IA64的64位产品间已有了不同。IA64具有在安腾(Itanium)处理器中实现的64位指令集体系结构。通常,IA64体系结构没有向后兼容性,因而由于不同的指令集,x86体系结构的软件将不运行在IA64体系结构上。因此,这里讨论的64位体系结构专门指x86-64体系结构而不是IA64体系结构。提供允许为32位传统OS编写的虚拟机运行于64位OS上的向后兼容性对软件厂商很重要,因为向后兼容性使得新32位产品更短时间推向市场并扩展了传统32位应用程序的使用。x86-64体系结构支持若干不同的操作模式,包括传统32位x86体系结构的操作模式,它如下概述。 (注如这里所使用的,术语“模式(mode)”、“子模式(sub-mode)”和“超级模式(super-mode)”用于更好地分辨不同结构的不同模式层;但是,正如本领域那些熟练技术人员所知道和易于理解的,所有这些变化通常都简称为“模式”,而忽略相关结构。)通常,实模式是同时只允许一个程序的执行的操作模式。在实模式中,程序只访问1024K的内存并使用16位数据路径。保护模式提供对虚拟内存和多任务(同时运行多于一个程序)的支持。保护模式程序可访问超过1024K的地址并使用32位数据路径。实模式是保护模式的先驱,其中每个程序需要所有内存运行并不允许在同一时间另一应用程序的执行。保护模式还包括环-0子模式、环-1子模式、环-2子模式、环-3子模式和V86子模式(虚拟8086)。(通常,当前应用程序不使用环-1和环-2子模式。)环-0子模式指Intel 80286保护模式结构。环-0子模式是最高优先级,可访问所有系统资源。环-0子模式是最优先代码,可由OS及其驱动程序使用,它们具有高信任级。环-3子模式也称为Intel 8028保护模式结构。环-3子模式是最低优先级,用于具有低信任级并由所有用户应用程序使用的代码。V86子模式指Intel 80386保护模式体系结构,是其中CPU仿真8086实模式寻址的子模式,但维护对页面调度和某些访问限制的支持。相反,x86-64体系结构支持两种主要的超级模式,即传统超级模式和长超级模式,如下概述。 x86-64体系结构传统本文档来自技高网
...

【技术保护点】
一种方法,用于执行多模式体系结构计算机系统(“计算机系统”)中第一模式和第二模式之间的临时处理器模式上下文切换,其特征在于,所述方法包括:建立一个“虚拟=实”页(“切换页”),其中用于所述页的虚拟地址也是用于所述页的实存储器地址;   将执行处理器模式上下文切换的一组转换代码拷贝到所述切换页;跳至所述切换页以继续执行;禁用所述计算机系统的存储器管理单元(MMU);修改模式控制寄存器来将上下文比特从所述第一模式设置成所述第二模式;为所述 第二模式加载一个新页表;以及重新激活所述计算机系统的MMU。

【技术特征摘要】
US 2004-6-30 10/883,4961.一种方法,用于执行多模式体系结构计算机系统(“计算机系统”)中第一模式和第二模式之间的临时处理器模式上下文切换,其特征在于,所述方法包括建立一个“虚拟=实”页(“切换页”),其中用于所述页的虚拟地址也是用于所述页的实存储器地址;将执行处理器模式上下文切换的一组转换代码拷贝到所述切换页;跳至所述切换页以继续执行;禁用所述计算机系统的存储器管理单元(MMU);修改模式控制寄存器来将上下文比特从所述第一模式设置成所述第二模式;为所述第二模式加载一个新页表;以及重新激活所述计算机系统的MMU。2.如权利要求1所述的方法,其特征在于,所述方法的至少一个步骤由虚拟机监控程序执行。3.如权利要求1所述的方法,其特征在于,所述方法由虚拟机监控程序执行。4.如权利要求1所述的方法,其特征在于,所述第一模式是X86-64体系结构处理器的长模式,而所述第二模式是所述X86-64体系结构处理器的传统模式。5.如权利要求1所述的方法,其特征在于,所述第二模式是X86-64体系结构处理器的长模式,而所述第一模式是所述X86-64体系结构处理器的传统模式。6.如权利要求1所述的方法,其特征在于,所述方法用来在X86-64体系结构处理器上执行传统模式中的32位环-0代码。7.如权利要求1所述的方法,其特征在于,所述方法用来在X86-64体系结构处理器上执行传统模式中的32位v86模式代码。8.一种系统,用于执行多模式体系结构计算机系统(“计算机系统”)中第一模式和第二模式之间的临时处理器模式上下文切换,其特征在于,所述系统包括用于建立一个“虚拟=实”页(“切换页”)的子系统,其中用于所述页的虚拟地址也是用于所述页的实存储器地址;用于将执行处理器模式上下文切换的一组转换代码拷贝到所述切换页的子系统;用于跳至所述切换页以继续执行的子系统;用于禁用所述计算机系统的存储器管理单元(MMU)的子系统;用于修改模式控制寄存器来将上下文比特从所述第一模式设置成所述第二模式的子系统;用于为所述第二模式加载一个新页表的子系统;以及用于重新激活所述计算机系统的MMU的子系统。9.如权利要求8所述的系统,其特征在于,包括一个虚拟机监控程序。10.如权利要求8所述的系统,其特征在于,所述系统是用于虚拟机监控程序的子系统。11.如权利要求8所述的系统,其特征在于,所述第一模式是X86-64体系结构处理器的长模式,而所述第二模式是所述X86-64体系结构处理器的传统模式。12.如权利要求8所述的系统,其特征在于,所述第二模式是X86-64体系结构处理器的长模式,而所述第一模式是所述X86-64体系结构处理器的传统模式。13.如权利要求8所述的系统,其特征在于,所述方法用来在X86-64体系结构处理器上执行传统模式中的32位环-0代码。14.如权利要求1所述的方法,其特征在于,所述方法用来在X86-64体系结构处理器上执行传统模式中的32位v86模式代码。15.一种计算机可读介质,包括用于执行多模式体系结构计算机系统(“计算机系统”)中第一模式和第二模式之间的临时处理器模式上下文切换的计算机可读指令,其特征在于,所述计算机...

【专利技术属性】
技术研发人员:RA维嘉EP托劳特
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1