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

使用仿真对物理硬件的运行时替换制造技术

技术编号:7151979 阅读:208 留言:0更新日期:2012-04-11 18:40
此处公开了用于用支持机制来替换支持与虚拟机相关联的存储器位置的硬件的各种方面。该支持机制可具有表现为包含便于虚拟机中的驱动程序的数据的存储器位置,通常包含如果从硬件中读取硬件将返回的内容。即使虚拟机移动到不包含与最近从虚拟机中移除的硬件等效的硬件的不同物理机器,从存储器位置返回的数据映像也可以与虚拟机一起移动。

【技术实现步骤摘要】
【国外来华专利技术】
当前公开的主题涉及计算领域,且更具体而言,涉及计算机虚拟化,但虚拟化只是示例性且非限制性领域。
技术介绍
诸如管理程序等虚拟机监控程序是创建虚拟机的程序,每一个虚拟机带有可由底层物理硬件资源支持的虚拟化硬件资源。当直接将硬件控制接口分配给虚拟机时,该虚拟机通常经由看起来像(对寄存器、卡上RAM等的)存储器访问的方式被给予对硬件的直接控制。然而,当虚拟机没有以及时方式对放弃硬件控制接口的请求作出响应时,可能需要最终从虚拟机上移除硬件控制接口。这一方法存在的问题是,当接口被移除时虚拟机中的设备驱动程序可能正在使用硬件控制接口,并且由此,虚拟机中相关联的驱动程序在试图从先前由硬件支持的存储器位置中读取时可能接收非预期值。例如,存储器访问的非预期丢失可留下现在每一字节被当作OxFF的存储器位置。非预期值可能导致子驱动程序崩溃、循环、或死锁。另一问题是虚拟处理器可能在任何两个指令之间的边界上被暂停,并且难以编写以及测试处理在任何这样的任意指令边界处的硬件移除的驱动程序。真实物理处理器通常以指令在其中被快速执行并且没有中断的模式操作。由此,本领域中需要解决上述问题的其他技术。
技术实现思路
此处公开了用于用支持机制来替换支持与虚拟机相关联的存储器位置的硬件的各种方法和系统。该支持机制可具有表现为包含便于虚拟机中的驱动程序的数据的存储器位置,通常包含如果从存储器中读取则硬件将返回的内容。通过提供这样的支持机制,驱动程序可以低得多的频率来检查硬件移除,从而使得驱动程序更容易编写和测试。即使虚拟机移动到不包含与最近从虚拟机中移除的硬件等效的任何硬件的不同物理机器,从存储器位置返回的数据映像现在也可以与虚拟机一起移动。除了上述方面,构成本专利技术一部分的权利要求、附图、以及文本中描述了其他方面本领域技术人员将理解,本专利技术的一个或多个方面可包括但不限于用于实现本专利技术的本文所述方面的电路和/或编程;该电路和/或编程实质上可以是被配置成实现本文所述方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。应当注意,提供本概述是为了以简化的形式介绍下面在详细描述中进一步描述的一些概念。本
技术实现思路
并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。附图说明以上的概述以及以下的详细描述在结合附图阅读时能更好地理解。为例示本专利技术,示出了本专利技术的各方面。然而,本专利技术不限于所讨论的各特定方面。包括以下附图图Ia示出了具有包括多个虚拟处理器以及对应的客操作系统的多个虚拟机的虚拟机环境;虚拟机由可包括调度器和其他组件的虚拟化层来维护,其中虚拟化层虚拟化多个虚拟机的硬件;图Ib示出了表示计算机系统中用于虚拟化环境的硬件和软件体系结构的逻辑分层的框图;图Ic描绘了其中可实现本专利技术的各方面的示例计算机系统;图2示出了示例性虚拟化计算系统;图3示出了替换虚拟化计算系统;图4描绘了示出输入/输入(I/O)空间和存储器映射的I/O(MMIO)的示例性系统框图,例如它与外围组件互连(PCI)设备有关;图5是示出随机存取存储器(RAM)可以驻留在其中的地址空间的示例性框图;图6示出了用于维护对存储器区域的可访问性的操作过程的示例,该存储器区域对应于驻留在虚拟机环境中的驱动程序的硬件设备;图7示出了用于维护对存储器区域的可访问性的操作过程的示例,该存储器区域对应于驻留在虚拟机环境中的驱动程序的硬件设备;图8示出了用于维护对存储器区域的可访问性的操作过程的示例,该存储器区域对应于驻留在虚拟机环境中的驱动程序的硬件设备;图9描绘了用于维护对存储器区域的可访问性的示例性操作过程,该存储器区域对应于驻留在虚拟机环境中的驱动程序的硬件设备;图10描绘了用于维护对存储器区域的可访问性的示例性操作过程,该存储器区域对应于驻留在虚拟机环境中的驱动程序的硬件设备;图11示出了承载参考以上图1-10讨论的计算机可执行指令的计算机可读介质。具体实施例方式概括的虚拟机在以下描述和附图中描述了某些具体细节,以提供对本专利技术的各个实施例的全面理解。通常与计算和软件技术相关联的某些公知细节将不在以下公开中描述,以避免不必要地使本专利技术的各实施例晦涩难懂。此外,相关领域的普通技术人员可以理解,他们可以无需以下描述的细节中的一个或多个而实现本专利技术的其它实施例。最后,尽管在以下公开中参考了步骤和序列来描述各个方法,但是如此的描述是为了提供本专利技术的实施例的清楚实现,且步骤以及步骤序列不应被认为是实现本专利技术所必需的。应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本专利技术的方法和装置,或其某些方面或部分,可以采用包含在诸如软盘、 CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(S卩,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其执行时,该机器成为用于实施本专利技术的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用API、可重用控件等来实现或利用结合本专利技术描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。 在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。图Ia示出了具有包括多个虚拟处理器110、112、114、116以及对应的客操作系统 130、132的多个虚拟机120、121的虚拟机环境100。虚拟机120、121由可包括调度器142和其他组件(未示出)的虚拟化层140维护,其中,虚拟化层140虚拟化多个虚拟机120、121 的硬件150。多个虚拟处理器110、112、114、116可以是底层硬件物理处理器160、162的虚拟对应物。图Ib是表示计算机系统中用于虚拟化环境的硬件和软件体系结构的逻辑分层的框图。在图Ib中,虚拟化程序180直接或间接地在物理硬件体系结构182上运行。虚拟化程序180可以是(a)与主机操作系统并排运行的虚拟机监控程序,(b)具有管理程序组件的主机操作系统,所述管理程序组件执行虚拟化,(c)硬件,或(d)微码。虚拟化程序还可以是与任何操作系统分开运行的管理程序。换言之,管理程序虚拟化程序不需要作为任何操作系统的一部分来运行,也不需要与任何操作系统并排运行。管理程序虚拟化程序相反可在所有操作系统“之下”运行,包括“根分区”。虚拟化程序180虚拟化客硬件体系结构 178(被示为虚线以示出该组件是“分区”或“虚拟机”的事实),即,实际上并不存在而是由虚拟化程序180虚拟化的硬件。客操作系统176在客硬件体系结构178上执行,而软件应用174能够在客操作系统176上执行。在图Ib的虚拟化操作环境中,即使软件应用174被设计成在一般不与主机操作系统和硬件体系结构182兼容的操作系统上运行,该软件应用 174也可在计算机系统中运行。虚拟机通常包含整个操作系统和一组应用,它们一起构成许多过程,其整体可以在虚拟机的上下文中被称为“工作负载”或“过程”。在本专利技术中,术语“过程”和“工作负载”在虚拟机上本文档来自技高网
...

【技术保护点】
1.一种当驻留在虚拟机环境中的驱动程序尝试访问与所述用于驱动程序的硬件设备对应的存储器区域时并且当所述硬件设备被配置成从计算环境中被移除时,用于维护对所述存储器区域的可访问性的方法,包括:将所述存储器区域的硬件控制接口部分配置成用由与所述硬件控制接口相关联的代码和数据指示的功能来替换,其中所述功能是在所述硬件设备已从所述计算环境中被移除时所述驱动程序可理解的;以及将所述功能配置成当所述虚拟机环境从所述计算环境被移动到不同计算环境时与所述虚拟机环境一起移动。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:D·L·格林
申请(专利权)人:微软公司
类型:发明
国别省市:US

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

1