HK1149343B - 在虛擬機環境中的客戶機之間共享信息 - Google Patents
在虛擬機環境中的客戶機之間共享信息 Download PDFInfo
- Publication number
- HK1149343B HK1149343B HK11103453.1A HK11103453A HK1149343B HK 1149343 B HK1149343 B HK 1149343B HK 11103453 A HK11103453 A HK 11103453A HK 1149343 B HK1149343 B HK 1149343B
- Authority
- HK
- Hong Kong
- Prior art keywords
- guest
- address
- memory address
- instruction
- virtual
- Prior art date
Links
Description
本申请是2007年9月24日提交的、申请号为200710199935.7的同名专利申请的分案申请。
技术领域
本公开涉及信息处理的领域,更具体而言,涉及虚拟机环境中存储器管理的领域。
背景技术
通常,在信息处理系统中虚拟化的概念允许一个或多个操作系统(每个称为一个“OS”)的多个实例运行在单个信息处理系统上,即使每个OS被设计成具有对整个系统及其资源的完整的、直接的控制。虚拟化通常通过使用软件(如,虚拟机监视器,或称“VMM”)向每个OS提供具有虚拟资源的“虚拟机”(“VM”)来实现,所述虚拟机包括一个或多个虚拟处理器,所述OS可以对虚拟机进行完整且直接的控制,而所述VMM维护用于实现虚拟化策略的系统环境,所述虚拟化策略例如在VM(“虚拟化环境”)之间共享和/或分配物理资源。运行在VM上的每个OS和任何其它软件被称为“客户机(guest)”或“客户机软件(guest software)”,而“主机(host)”或“主机软件”是诸如VMM之类的运行在所述虚拟化环境之外并且可以了解或者不了解所述虚拟化环境的软件。
信息处理系统中的物理处理器例如可以通过支持指令进入虚拟化环境以在VM中的虚拟处理器(即,在VMM施加的限制之下的物理处理器)上运行客户机,来支持虚拟化。在虚拟化环境中,可能会“拦截”到某些诸如外部中断或者访问特权寄存器或资源的尝试之类的事件、操作和情况,即,使所述处理器退出虚拟化环境,从而VMM可以操作以例如实现虚拟化策略。物理处理器还可以支持其它的用于维护虚拟化环境的指令,并且可以包括指示或控制物理处理器的虚拟化能力的存储器或寄存器位。
支持虚拟化环境的物理处理器可以包括用于将虚拟存储器地址翻译为物理存储器地址的存储器管理单元。VMM可能需要保持对存储器管理单元的最终控制以使一个客户机的存储器空间不受另一客户机的存储器空间影响。因此,现有的在客户机之间共享信息的方法包括将每个客户机的存储器空间的部分添加到VMM的存储器空间上从而VMM能够从一个客户机的存储器空间复制信息到另一个客户机的存储器空间,使得每次客户机尝试复制信息到另一客户机时,执行对处理器的控制从所述客户机到所述VMM的转移,以及控制从所述VMM回到所述客户机的又一转移。通常,控制从客户机到VMM的每个这样的转移包括保存客户机状态和装载主机状态,而控制从VMM到客户机的每个这样的转移包括保存主机状态和装载客户机状态。
附图说明
本发明示例性地而非限制于附图进行说明。
图1举例说明了在虚拟化体系结构中的本发明的一个实施例。
图2举例说明了用于在虚拟机环境中的客户机之间共享信息的方法的本发明的一个实施例。
具体实施方式
下面描述了用于在虚拟机环境中的客户机之间共享信息的装置、方法和系统的实施例。在该描述中,为了提供对本发明的更彻底的了解,阐述了诸如组件和系统配置的许多具体细节。然而本领域技术人员应该了解,本发明可以在没有这些具体细节的情况下实现。此外,一些公知的结构、电路等没有详细示出,以免不必要地模糊本发明。
虚拟机环境的性能可以通过减少控制在客户机和主机之间转移的次数来提高。本发明的实施例可以用于减少从一个客户机复制信息到另一客户机所必需的转移的次数。从而可以改进虚拟机环境的性能,在所述虚拟机环境中每次客户机尝试复制信息到另一客户机时,执行对处理器的控制从所述客户机到所述VMM的转移,以及控制从所述VMM回到所述客户机的又一转移。可以通过不要求修改VMM的存储器管理数据结构以包括客户机存储器的共享部分来进一步提高性能。
图1举例说明了虚拟化体系结构100中的本发明的一个实施例。尽管图1显示了实现在虚拟化体系结构中的本发明,但是本发明也可实现在其它的体系结构、系统、平台或环境中。例如,本发明的一个实施例可以支持在微内核或分解的操作系统环境中的应用程序之间共享信息。
在图1中,裸平台硬件110可以是能够运行任意OS或VMM软件的任意数据处理装置。例如,裸平台硬件可以是个人计算机、大型计算机、便携计算机、手持设备、机顶盒、服务器或任意其它的计算系统的硬件。裸平台硬件110包括处理器120和存储器130。
处理器120可以是任意类型的处理器,包括通用微处理器、或数字信号处理器或微控制器,所述通用微处理器例如Intel公司的IntelPentium处理器系列、Itanium处理器系列或其它处理器系列、或者另一公司的另一处理器。尽管图1仅显示了一个这样的处理器120,但是裸平台硬件110可以包括任意数目的处理器,所述处理器包括任意数目的多核处理器和任意数目的多线程处理器,每个所述多核处理器具有任意数目的执行核,每个所述多线程处理器具有任意数目的线程。
存储器130可以是静态或动态随机存取存储器、基于半导体的只读或闪速存储器、磁或光盘存储器、可由处理器120读取的任意其它类型的介质、或这些介质的任意组合。处理器120和存储器130可以根据任一已知的方法例如通过一个或多个总线、点对点或其它有线或无线连接直接或间接地相互连接或通信。裸平台硬件110还可以包括任意数目的附加设备或连接。
除了裸平台硬件100以外,图1举例说明了VMM 140、VM 150和160、客户机操作系统152和162以及客户机应用程序154、155、164和165。
VMM 140可以是安装在裸平台硬件110上或可由裸平台硬件110访问的任意软件、固件或硬件主机,以提供VM(即,裸平台硬件110的抽象)给客户机、或者另外创建VM、管理VM以及实现虚拟化策略。在其它的实施例中,主机可以是任意VMM、管理程序、OS或能够控制裸平台硬件110的其它软件、固件或硬件。客户机可以是任意OS、包括VMM 140的另一实例的任意VMM、任意管理程序或任意应用程序或其它软件。
每个客户机希望根据在VM中提供的处理器和平台的体系结构来访问诸如裸平台硬件110的处理器和平台寄存器、存储器以及输入/输出设备之类的物理资源。图1显示了两个VM,150和160,分别具有在VM 150上安装的客户机OS 152和客户机应用程序154和155以及在VM 160上安装的客户机OS 162和客户机应用程序164和165。尽管图1仅显示了两个VM以及每个VM的两个应用程序,但在本发明的范围内可以创建任意数目的VM,并且在每个VM上可以运行任意数目的应用程序。
能够被一个客户机访问的资源可以被分类为“特权”或“非特权”资源。对于特权资源,VMM 140促进了客户机所想要的功能同时保持对资源的最终控制。非特权资源不需要由VMM 140进行控制并且可以由客户机直接访问。
此外,每个客户机OS希望处理各种事件,例如异常(如,页面故障和一般的保护故障)、中断(如,硬件中断和软件中断)以及平台事件(如,初始化和系统管理中断)。这些异常、中断和平台事件在此集中地且个别地被称为“虚拟化事件”。这些虚拟化事件的一部分被称为“特权事件”,因为它们必须由VMM 140进行处理以确保VM 150和160的正确操作、保护VMM 140不受客户机影响以及保护客户机彼此不受影响。
在任意给定时刻,处理器120可能正在执行来自VMM 140或任意客户机的指令,这样VMM 140或所述客户机可在处理器120上运行或在处理器120的控制下运行。当特权事件发生或客户机尝试访问特权资源时,控制可以从所述客户机转移到VMM 140。控制从客户机到VMM 140的转移在此被称为“VM退出”。在适当地处理了所述事件或促成对所述资源的访问之后,VMM 140可以将控制返回给客户机。控制从VMM 140到客户机的转移在此被称为“VM进入”。
处理器120包括支持虚拟化的虚拟机控制逻辑170,虚拟机控制逻辑170包括对处理器120的控制在主机(例如VMM 140)和客户机(例如客户机操作系统152和162以及客户机应用程序154、155、164和165)之间的转移。虚拟机控制逻辑170可以是处理器120内的微代码、可编程逻辑、硬编码的逻辑或任意其它形式的控制逻辑。在其它实施例中,虚拟机控制逻辑170可以在处理器中或在可由诸如存储器130的处理器访问的组件或可读取的介质中以诸如处理器抽象层的硬件、软件或固件的任意形式来实现。
虚拟机控制逻辑170包括VM进入逻辑171和VM退出逻辑172,VM进入逻辑171用于将对处理器120的控制从主机转移到客户机(即,VM进入),VM退出逻辑172用于将对处理器120的控制从客户机转移到主机(即,VM退出)。在一些实施例中,控制也可以从客户机转移到客户机或从主机转移到主机。例如,在一个支持分层虚拟化的实施例中,运行在处理器120的VM上的软件可以同时是客户机和主机(例如,运行在VM上的VMM对于控制该VM的VMM来说是客户机,而对于运行在其所控制的VM上的客户机来说是主机)。
处理器120还包括执行单元180和存储器管理单元(“MMU”)190,执行单元180用于执行如下所述的由主机或客户机发出的指令,MMU 190用于管理处理器120的虚拟和物理存储器空间。MMU 190支持使用虚拟存储器来向软件(包括运行在VM中的客户机软件以及运行在VM外的主机软件)提供用于存储和访问代码和数据的地址空间,所述地址空间大于系统中的物理存储器(例如存储器130)的地址空间。处理器120的虚拟存储器空间可以仅由运行在所述处理器上的软件可访问的地址比特的数目进行限制,而处理器120的物理存储器空间则进一步由存储器130的大小限制。MMU 190支持存储器管理模式(在该实施例中为页面调度),用于根据需要将执行软件的代码和数据交换进出存储器130。作为该模式的一部分,软件可以利用被处理器翻译为第二地址的虚拟地址来访问所述处理器的虚拟存储器空间,所述处理器可以使用所述第二地址访问所述处理器的物理存储器空间。
因此,MMU 190包括翻译逻辑191、页面基址寄存器192和翻译后援缓冲器(“TLB”)193。翻译逻辑191根据诸如页面调度的任意已知的存储器管理技术来执行地址翻译,例如将虚拟地址翻译为物理地址。如在此使用的,术语“虚拟地址”包括被认为是逻辑或线性地址的任意地址。为了执行这些地址翻译,翻译逻辑191参考存储在处理器120、存储器130、图1中未示出的裸平台硬件110中的任意其它存储单元、和/或这些组件和存储单元的任意组合中的一个或多个数据结构。所述数据结构可以包括根据Pentium处理器系列的体系结构的页面目录和页面表,如根据本发明的实施例所修改的,和/或存储在诸如TLB 193的TLB中的表。
页面基址寄存器192可以是用于存储指针的任意寄存器或其它存储单元,所述指针指向由翻译逻辑191使用的数据结构。在一个实施例中,页面基址寄存器192可以是被称为PML4基址寄存器的CR3寄存器的一部分,所述PML4基址寄存器用于根据Pentium处理器系列的体系结构来存储页面映射级别4基地址。
在一个实施例中,翻译逻辑191接收由处理器120执行的指令所提供的线性地址。翻译逻辑191使用所述线性地址的部分作为指向分层表(包括页面表)的索引以执行页面移动(page walk)。所述页面表包含多个项(entries),每个项包括用于存储器130中的页面的基地址的字段,例如根据Pentium处理器系列的扩展存储器64技术的页面表项的比特39∶12。任意页面大小(如,4千字节)可在本发明的范围内使用。因此,程序访问存储器130所使用的线性地址可以被翻译为处理器120访问存储器130所使用的物理地址。
所述线性地址和对应的物理地址可以存储在TLB 193中,从而可以在TLB 193中找到用于以后使用相同的线性地址的访问的适当的物理地址,而不需要另一页面移动。在适当的时候,TLB 193的内容可以被清洗,例如在通常由操作系统执行的软件上下文切换时。
在虚拟机环境中,为了保护一个客户机的存储器空间不被另一客户机影响,VMM 140可能需要具有对MMU 190的资源的最终控制。因此,在一个实施例中,虚拟机控制逻辑170可以包括如下逻辑,如果客户机发出意图改变页面基址寄存器192或TLB 193的内容、或者另外修改MMU 190的操作的指令时,所述逻辑引起VM退出。为了与虚拟机环境一起正确操作裸平台硬件110,所述VMM可以因此维护具有多组页面或其它数据结构(如,每个VM一组)的MMU 190,在所述虚拟机环境中每个虚拟机看起来向OS提供对其存储器管理资源的完整的控制。
在另一实施例中,MMU 190可以包括支持虚拟化的硬件。例如,翻译逻辑191可被配置为使用如上所述的由页面基址寄存器192的内容所指示的数据结构,来将线性地址翻译为物理地址。如果该翻译被执行用于客户机,则所述线性地址被称为客户机线性地址,而所产生的物理地址被称为客户机物理地址,并且执行第二翻译,以利用由第二指针所指示的第二数据结构将客户机物理地址翻译为主机物理地址。在该实施例中,页面基址寄存器192和第一翻译数据结构可以由运行在虚拟机上的OS来维护,而第二指针和第二翻译数据结构由VMM来维护。第二翻译可由VM进入来启用并由VM退出来禁用。
在该实施例中,回到执行单元180,执行单元180被配置为执行可由主机或客户机发出的指令。这些指令包括向客户机分配一部分TLB 193(和/或处理器120或裸平台硬件110中的另一结构,例如存储器130)以用于与其它客户机共享信息的指令(“分配”指令)、注册一部分客户机存储器以用于与其它客户机共享信息的指令(“注册”指令)以及用于客户机复制信息给另一客户机或从另一客户机复制信息而不会引发VM退出的指令(“复制”指令)。
所述分配指令可以具有与其相关的请求者标识符(ID)和存储器大小作为操作数、参数,或根据任意其它的明确的或隐含的方法。所述请求者ID可以是虚拟机环境中的虚拟机或分解的OS环境中的应用程序所唯一的值。所述请求者ID标识用来使其存储器空间的一部分可共享的VM或应用程序,而所述存储器大小指示所述可共享的存储器空间的大小,例如页面的数目。
所述分配指令可以仅由对MMU 190具有最终控制的实体来发出,所述实体在该实施例中是VMM 140。例如,如果所述分配指令由具有不足够特权的客户机应用程序发出,则其可被忽略,或者如果其由相信具有足够特权的客户机OS发出,则可引发VM退出。VMM140发出分配指令可以响应于通过程序调用或其它消息传送协议的客户机请求,以使其存储器空间的一部分可共享。
在该实施例中,执行单元180通过使项存储单元或TLB 193中的存储单元分配给请求信息共享的VM来执行分配指令。在其它实施例中,单独的、专用的TLB或处理器120或裸平台硬件110中的任意其它存储单元或数据结构(如,存储器130)可被用于代替TLB 193。
为了支持信息共享,TLB 193可以包括共享标记存储单元194,所述共享标记存储单元194提供与每个TLB项或任意多组TLB项相关的共享标记。因此,分配指令的执行可包括将与被分配的TLB项存储单元相关的共享标记或多个标记设置为所述请求者ID的值。被标记用于共享的TLB项在软件上下文切换时不被清除。
分配指令的执行还可使与所述被分配的TLB项存储单元相关的安全密钥在程序调用返回或其它的消息传送协议中被传输给请求者。被分配的TLB项存储单元可以通过程序调用、其它的消息传送协议或任意其它方法来释放。
所述注册指令可具有与其相关的所有权信息和访问信息作为操作数、参数,或根据任意其它的明确的或隐含的方法。所述所有权信息可以包括请求者ID的形式或任意其它形式的注册实体的身份,以及以要被共享的页面的虚拟地址的形式或任意其它形式的要共享的存储器空间的身份。所述访问信息可以包括以类似于请求者ID的ID值的形式或任意其它形式的可与其共享所述存储器空间的一个或多个实体的身份,以及诸如读权限和/或写权限的任意想要的访问权限。所述注册指令也可以将由对应的分配指令所返回的安全密钥与其相关。
在该实施例中,注册指令的执行可以包括:验证已经通过以前执行的分配指令将与所述注册指令相关的安全密钥发布给了所述注册实体,标识所分配的TLB项存储单元和相关的物理地址,以及存储由所分配的TLB项存储单元中的注册实体所提供的虚拟地址。可根据允许其被用于验证后续的复制指令将被允许的任意方法来将与所述注册指令相关的访问信息存储在例如由所述请求者ID所定位的存储单元中。在没有请求注册实体或没有向注册实体分配TLB项存储单元的情况下,注册指令可以通过存储所述访问信息来执行,而不用验证安全密钥或使用TLB项。
所述复制指令可以具有与其相关的目的地实体ID、目的地虚拟地址和源虚拟地址作为操作数、参数,或根据任意其它的明确的或隐含的方法。所述目的地实体ID可以包括以请求者ID的形式或任意其它形式的虚拟机和/或应用程序的ID。复制指令的源实体ID可以由发出所述复制指令的实体的身份所暗示。
在该实施例中,执行单元180通过以下步骤来执行复制指令:根据在从对应的注册指令中存储访问信息所使用的方法来验证所述复制指令将被允许,使MMU 190将目的地和源虚拟地址翻译为物理地址,以及使存储在由所述源物理地址所标识的存储器存储单元中的信息被复制到由所述目的地物理地址所标识的存储器存储单元中。
MMU 190通过查阅TLB 193来确定是否已经注册了用于所述目的地虚拟地址的TLB项,以将所述目的地虚拟地址翻译为目的地物理地址。如果是,则在TLB 193中找到所述目的地物理地址。如果否,则MMU 190通过利用所述目的地ID或与所述目的地ID相关的指针,而不是利用页面基址寄存器192,来进行翻译,以指向用于目的地实体的适当的数据结构,提供超出TLB 193所能容纳的项数的可扩展性。在该实施例中,翻译逻辑191包括多域翻译逻辑195,用于使该地址翻译以与单域地址翻译不同的方式执行并执行上面提到的访问控制功能。然而,由MMU 190使用的通常保护页面的任意技术可以保持不变,所述技术例如基于页面目录和/或页面表项中的状态、控制、访问或其它位或字段来生成页面错误。
对于单域地址翻译,MMU 190如前面所述地将所述源虚拟地址翻译为源物理地址。因此,可以执行两个虚拟机之间的复制而不用VM退出,允许在单个VM的执行环境中完成所述复制操作。本发明的实施例可以提供具有对多个VM域的访问的其它指令或操作(代替复制或除了复制以外)。
图2举例说明了方法200中的本发明的一个实施例,所述方法200是一种用于在虚拟机环境中的客户机之间共享信息的方法。尽管方法实施例不局限于该方面,但参考图1的虚拟化体系结构100的说明来描述图2的方法实施例。
在图2的框210中,在处理器120上运行的第一客户机执行程序调用以初始化与第二客户机的信息共享。在框212,执行VM退出以将对处理器120的控制从所述第一客户机转移到VMM 140。
在框220,VMM 140发出如上所述的分配指令。在框222,处理器120分配一个或多个TLB项存储单元给所述第一客户机。在框224,处理器120将请求者ID存储在用于所分配的TLB项存储单元的共享标记存储单元中。在框226,VMM返回安全密钥给所述第一客户机。在框228,执行VM进入以将对处理器120的控制从VMM 140转移到所述第一客户机。
在框230,所述第一客户机发出注册指令以注册用于共享的页面。在框232,处理器120验证安全密钥。在框234,处理器120在所分配的TLB项中存储所述页面的虚拟地址。在框236,处理器120存储与所述页面相关的访问信息。在框238,所述第一客户机根据任意想要的消息传递方法将共享信息(如,虚拟地址,以及有利于共享的任意其它信息)发送给所述第二客户机。
在框240,所述第二客户机接收所述共享信息。在框242,所述第二客户机发出复制指令。在框244,处理器120验证与所述目的地地址相关的访问信息。在框246,处理器120将目的地虚拟地址翻译为目的地物理地址。在框248,处理器120将源虚拟地址翻译为源物理地址。在框250,处理器120将由所述源物理地址所标识的存储器存储单元的内容复制到由所述目的地物理地址所标识的存储器存储单元。
在本发明的范围内,可以以不同的顺序、省略所示例的方框、增加另外的方框、或者利用重新排序的、省略的或另外的方框的组合来执行方法200。例如,处理器120可以在翻译目的地虚拟地址之前或与其同时来翻译源虚拟地址,例如,框246和248可以重新排列。
根据本发明一个实施例设计的处理器120或任意其它的组件或组件的一部分可以从创建到模拟到制造分阶段地进行设计。表示设计的数据可以表示多种方式的设计。首先,如在模拟中所用的,可以利用硬件描述语言或另一功能描述语言来表示硬件。此外或可选地,具有逻辑和/或晶体管门电路的电路级模型可以在设计过程的某些阶段产生。进一步地,在某些阶段,大多数设计达到可以利用表示各种设备的物理布局的数据来对设计进行建模的一个级别。在使用传统半导体制造技术的情况下,表示设备布局模型的数据可以是用于指出在用于制造集成电路的掩模的不同掩模层上有无各种特征的数据。
在所述设计的任意表示中,所述数据可被存储在任意形式的机器可读介质中。用于发送这种信息的调制的或其它方式生成的光或电波、存储器、或诸如盘片的磁或光存储介质可以是机器可读介质。任意这些介质可以“携带”或“指示”所述设计、或者在本发明实施例中使用的其它信息。当指示或携带信息的电载波被发射时,就执行电信号的复制、缓冲或重传来说,完成了一个新的复制。因此,通信提供商或网络提供商的行为可以组成制造实现本发明技术的诸如载波之类的产品的副本。
因此,公开了用于在虚拟机环境中的客户机之间共享信息的装置、方法和系统。虽然在附图中已经描述和显示了特定的实施例,但是应该了解,这样的实施例仅仅是描述性的而不是对范围宽广的本发明的限制,并且本发明不局限于所示和所描述的具体结构和方案,因为本领域普通技术人员通过研究本公开可以进行各种其它的修改。例如,在本发明的另一实施例中,请求信息共享的实体可以注册充当源而不是目的地的存储器空间。
在例如这样的成长迅速且进一步的发展不容易预见的技术领域中,所公开的实施例可以容易地在方案和细节上进行修改以利于实现技术的进步,而不脱离本公开的原则或所附权利要求的范围。
Claims (17)
1.一种用于在多个客户机之间共享信息的装置,包括:
虚拟机控制逻辑模块,用于在主机和多个客户机之间转移对所述装置的控制;
执行单元,用于执行第一指令,以将信息从所述多个客户机中的第一客户机的虚拟地址空间中的源虚拟存储器地址复制到所述多个客户机中的第二客户机的虚拟地址空间中的目的地虚拟存储器地址,而不用虚拟机退出,其中,所述第一指令由所述第二客户机发出;以及
存储器管理单元,用于将所述源虚拟存储器地址翻译为源主机物理存储器地址并且将所述目的地虚拟存储器地址翻译为目的地主机物理存储器地址,所述存储器管理单元包括第一存储单元,用于存储所述目的地虚拟存储器地址的第一部分和所述目的地主机物理存储器地址的对应的第一部分,以及标记存储单元,用于指示所述目的地虚拟存储器地址是共享的。
2.如权利要求1所述的装置,其中所述存储器管理单元包括翻译后援缓冲器,所述翻译后援缓冲器包括所述第一存储单元。
3.如权利要求1所述的装置,其中所述标记存储单元通过存储所述第一客户机的标识符来指示所述目的地虚拟存储器地址是共享的。
4.如权利要求1所述的装置,其中所述目的地虚拟存储器地址的第一部分是第一虚拟页面号,而所述目的地主机物理存储器地址的对应的第一部分是第一物理页面号。
5.如权利要求1所述的装置,其中所述执行单元还用于执行第二指令,以将所述目的地虚拟存储器地址的第一部分存储在所述第一存储单元中。
6.如权利要求5所述的装置,其中所述执行单元还用于执行第三指令,用于为所述第一客户机分配所述第一存储单元,以将所述目的地虚拟存储器地址的所述第一部分存储在所述第一存储单元中。
7.如权利要求6所述的装置,其中所述虚拟机控制逻辑模块包括退出逻辑模块,用于响应于所述多个客户机中的一个客户机发出所述第三指令的尝试来将对所述装置的控制转移到所述主机。
8.如权利要求1所述的装置,其中所述存储器管理单元利用用于所述第一客户机的第一地址翻译数据结构来翻译所述目的地虚拟存储器地址,并利用用于所述第二客户机的第二地址翻译数据结构来翻译所述源虚拟存储器地址。
9.如权利要求8所述的装置,进一步包括第一基址存储单元,用于存储指向所述第一地址翻译数据结构的第一指针。
10.一种用于在多个客户机之间共享信息的方法,包括:
虚拟机监视器发出分配指令以分配用于第一客户机的地址翻译结构的第一部分,以用于共享存储器空间;
所述第一客户机发出注册指令以注册共享的存储器空间;以及
第二客户机发出复制指令,其中,所述第一客户机将用于识别所述共享的存储器空间的第一虚拟存储器地址发送给所述第二客户机,并且在所述第二客户机的执行环境中,将所述第二客户机的一部分存储器空间的内容复制到所述共享的存储器空间,而不用虚拟机退出。
11.如权利要求10所述的方法,其中,所述地址翻译结构的第一部分包括翻译后援缓冲器中的项。
12.如权利要求11所述的方法,进一步包括:在与所述翻译后援缓冲器中的所述项相关的标记存储单元中存储所述第一客户机的标识符,以指示所述存储器空间是共享的。
13.如权利要求10所述的方法,进一步包括:所述分配指令返回与所述共享的存储器空间相关的安全密钥给所述第一客户机,并且所述注册指令验证来自所述第一客户机的所述安全密钥。
14.如权利要求10所述的方法,进一步包括:在翻译后援缓冲器中存储所述第一虚拟存储器地址。
15.如权利要求14所述的方法,进一步包括:将所述第一虚拟存储器地址翻译为标识所述共享的存储器空间的第一物理存储器地址。
16.如权利要求15所述的方法,进一步包括:对标识所述第二客户机的所述一部分存储器空间的第二虚拟存储器地址进行翻译,以生成标识所述第二客户机的所述一部分存储器空间的第二物理存储器地址。
17.一种用于在多个客户机之间共享信息的设备,包括:
处理器,用于响应于对应于请求信息共享的客户机的分配指令,将一存储单元分配给所述请求信息共享的客户机,并将所述请求信息共享的客户机的标识符存储在所分配的存储单元的共享标记存储单元中;
虚拟机控制逻辑模块,用于响应于所述客户机的信息共享请求而发出所述分配指令,并将安全密钥返回所述客户机,以将对处理器的控制从所述虚拟控制逻辑模块转移到所述客户机。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/525,980 | 2006-09-22 | ||
| US11/525,980 US7490191B2 (en) | 2006-09-22 | 2006-09-22 | Sharing information between guests in a virtual machine environment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1149343A1 HK1149343A1 (zh) | 2011-09-30 |
| HK1149343B true HK1149343B (zh) | 2014-03-21 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7490191B2 (en) | Sharing information between guests in a virtual machine environment | |
| EP1959348B1 (en) | Address translation in partitioned systems | |
| US8316211B2 (en) | Generating multiple address space identifiers per virtual machine to switch between protected micro-contexts | |
| US8661181B2 (en) | Memory protection unit in a virtual processing environment | |
| US9355262B2 (en) | Modifying memory permissions in a secure processing environment | |
| US8560806B2 (en) | Using a multiple stage memory address translation structure to manage protected micro-contexts | |
| US8549254B2 (en) | Using a translation lookaside buffer in a multiple stage memory address translation structure to manage protected microcontexts | |
| US9684605B2 (en) | Translation lookaside buffer for guest physical addresses in a virtual machine | |
| US20050132365A1 (en) | Resource partitioning and direct access utilizing hardware support for virtualization | |
| US20140108701A1 (en) | Memory protection unit in a virtual processing environment | |
| US20140380009A1 (en) | Protected memory view for nested page table access by virtual machine guests | |
| JP4668166B2 (ja) | ゲストがメモリ変換されたデバイスにアクセスする方法及び装置 | |
| US20070156968A1 (en) | Performing direct cache access transactions based on a memory access data structure | |
| US20190391814A1 (en) | Implementing firmware runtime services in a computer system | |
| US20070220231A1 (en) | Virtual address translation by a processor for a peripheral device | |
| HK1149343B (zh) | 在虛擬機環境中的客戶機之間共享信息 | |
| HK1116890A (zh) | 在虛擬機環境中的客戶機之間共享信息 |