CN101872328A - 在虚拟机环境中的客户机之间共享信息 - Google Patents

在虚拟机环境中的客户机之间共享信息 Download PDF

Info

Publication number
CN101872328A
CN101872328A CN201010167543A CN201010167543A CN101872328A CN 101872328 A CN101872328 A CN 101872328A CN 201010167543 A CN201010167543 A CN 201010167543A CN 201010167543 A CN201010167543 A CN 201010167543A CN 101872328 A CN101872328 A CN 101872328A
Authority
CN
China
Prior art keywords
client computer
memory address
virtual
address
virtual memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010167543A
Other languages
English (en)
Other versions
CN101872328B (zh
Inventor
R·伊利卡尔
D·纽厄尔
R·伊耶
S·马基宁尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101872328A publication Critical patent/CN101872328A/zh
Application granted granted Critical
Publication of CN101872328B publication Critical patent/CN101872328B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Abstract

公开了用于在虚拟机环境中的客户机之间共享信息的装置、方法和系统的实施例。在一个实施例中,装置包括虚拟机控制逻辑、执行单元和存储器管理单元。所述虚拟机控制逻辑在主机及其客户机之间转移对所述装置的控制。所述执行单元用于执行指令以将信息从一个客户机的虚拟地址空间中的虚拟存储器地址复制到另一客户机的虚拟地址空间中的虚拟存储器地址。所述存储器管理单元用于将所述虚拟存储器地址翻译为物理存储器地址。

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公司的Intel
Figure GSA00000098310200032
Pentium
Figure GSA00000098310200033
处理器系列、Itanium
Figure GSA00000098310200034
处理器系列或其它处理器系列、或者另一公司的另一处理器。尽管图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
Figure GSA00000098310200061
处理器系列的体系结构的页面目录和页面表,如根据本发明的实施例所修改的,和/或存储在诸如TLB 193的TLB中的表。
页面基址寄存器192可以是用于存储指针的任意寄存器或其它存储单元,所述指针指向由翻译逻辑191使用的数据结构。在一个实施例中,页面基址寄存器192可以是被称为PML4基址寄存器的CR3寄存器的一部分,所述PML4基址寄存器用于根据Pentium
Figure GSA00000098310200062
处理器系列的体系结构来存储页面映射级别4基地址。
在一个实施例中,翻译逻辑191接收由处理器120执行的指令所提供的线性地址。翻译逻辑191使用所述线性地址的部分作为指向分层表(包括页面表)的索引以执行页面移动(page walk)。所述页面表包含多个项(entries),每个项包括用于存储器130中的页面的基地址的字段,例如根据Pentium
Figure GSA00000098310200063
处理器系列的扩展存储器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 (18)

1.一种用于在多个客户机之间共享信息的装置,包括:
虚拟机控制逻辑模块,用于在主机和多个客户机之间转移对所述装置的控制;
执行单元,用于执行第一指令,以将信息从所述多个客户机中的第一客户机的虚拟地址空间中的第一虚拟存储器地址复制到所述多个客户机中的第二客户机的虚拟地址空间中的第二虚拟存储器地址,其中,所述第一指令由所述第二客户机发出;以及
存储器管理单元,用于将所述第一虚拟存储器地址翻译为第一物理存储器地址并且将所述第二虚拟存储器地址翻译为第二物理存储器地址。
2.如权利要求1所述的装置,其中所述存储器管理单元包括第一存储单元,用于存储第一虚拟存储器地址的第一部分和所述第一物理存储器地址的对应的第一部分。
3.如权利要求2所述的装置,其中所述存储器管理单元包括翻译后援缓冲器,所述翻译后援缓冲器包括所述第一存储单元。
4.如权利要求2所述的装置,其中所述第一存储单元包括标记存储单元,用于存储所述第一客户机的标识符。
5.如权利要求2所述的装置,其中第一虚拟存储器地址的第一部分是第一虚拟页面号,而所述第一物理存储器地址的对应的第一部分是第一物理页面号。
6.如权利要求2所述的装置,其中所述执行单元还用于执行第二指令,以将所述第一虚拟存储器地址的第一部分存储在所述第一存储单元中。
7.如权利要求6所述的装置,其中所述执行单元还用于执行第三指令,用于为所述第一客户机分配所述第一存储单元。
8.如权利要求7所述的装置,其中所述虚拟机控制逻辑模块包括退出逻辑模块,用于响应于所述多个客户机中的一个客户机发出所述第三指令的尝试来将对所述装置的控制转移到所述主机。
9.如权利要求1所述的装置,其中所述存储器管理单元利用用于所述第一客户机的第一地址翻译数据结构来翻译所述第一虚拟存储器地址,并利用用于所述第二客户机的第二地址翻译数据结构来翻译所述第二虚拟存储器地址。
10.如权利要求9所述的装置,进一步包括第一基址存储单元,用于存储指向所述第一地址翻译数据结构的第一指针。
11.一种用于在多个客户机之间共享信息的方法,包括:
第一客户机发出注册指令以注册共享的存储器空间;以及
第二客户机发出复制指令,其中,所述第一客户机将用于识别所述共享的存储器空间的第一虚拟存储器地址发送给所述第二客户机,并且在所述第二客户机的执行环境中,根据所述第一虚拟存储器地址将所述第二客户机的一部分存储器空间的内容复制到所述共享的存储器空间。
12.如权利要求11所述的方法,进一步包括:主机发出分配命令以分配所述共享的存储器空间给所述第一客户机。
13.如权利要求12所述的方法,进一步包括:为与所述共享的存储器空间相关的地址翻译分配翻译后援缓冲器中的项。
14.如权利要求13所述的方法,进一步包括:在与所述翻译后援缓冲器中的所述项相关的标记存储单元中存储所述第一客户机的标识符。
15.如权利要求12所述的方法,进一步包括:返回与所述共享的存储器空间相关的安全密钥给所述第一客户机。
16.如权利要求11所述的方法,进一步包括:在翻译后援缓冲器中存储所述第一虚拟存储器地址。
17.如权利要求16所述的方法,进一步包括:将所述第一虚拟存储器地址翻译为标识所述共享的存储器空间的第一物理存储器地址。
18.如权利要求17所述的方法,进一步包括:对标识所述第二客户机的所述一部分存储器空间的第二虚拟存储器地址进行翻译,以生成标识所述第二客户机的所述一部分存储器空间的第二物理存储器地址。
CN2010101675434A 2006-09-22 2007-09-24 在虚拟机环境中的客户机之间共享信息 Expired - Fee Related CN101872328B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/525,980 US7490191B2 (en) 2006-09-22 2006-09-22 Sharing information between guests in a virtual machine environment
US11/525,980 2006-09-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2007101999357A Division CN101187902B (zh) 2006-09-22 2007-09-24 在虚拟机环境中的客户机之间共享信息

Publications (2)

Publication Number Publication Date
CN101872328A true CN101872328A (zh) 2010-10-27
CN101872328B CN101872328B (zh) 2013-06-19

Family

ID=39200816

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2007101999357A Expired - Fee Related CN101187902B (zh) 2006-09-22 2007-09-24 在虚拟机环境中的客户机之间共享信息
CN2010101675434A Expired - Fee Related CN101872328B (zh) 2006-09-22 2007-09-24 在虚拟机环境中的客户机之间共享信息

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2007101999357A Expired - Fee Related CN101187902B (zh) 2006-09-22 2007-09-24 在虚拟机环境中的客户机之间共享信息

Country Status (7)

Country Link
US (1) US7490191B2 (zh)
JP (1) JP5214611B2 (zh)
CN (2) CN101187902B (zh)
DE (1) DE112007001988T5 (zh)
HK (1) HK1149343A1 (zh)
TW (1) TWI354205B (zh)
WO (1) WO2008036390A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141694A (zh) * 2015-09-11 2015-12-09 东莞市微云系统科技有限公司 一种云桌面共享数据的方法及系统
CN108959110A (zh) * 2011-12-29 2018-12-07 英特尔公司 管理员模式执行保护
CN109643291A (zh) * 2016-09-29 2019-04-16 英特尔公司 用于在虚拟化执行环境中高效使用图形处理资源的方法和设备
CN110178117A (zh) * 2017-02-24 2019-08-27 株式会社东芝 控制装置

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US8156503B2 (en) * 2008-02-12 2012-04-10 International Business Machines Corporation System, method and computer program product for accessing a memory space allocated to a virtual machine
WO2009145764A1 (en) * 2008-05-28 2009-12-03 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
CN101751345B (zh) * 2008-12-10 2012-04-11 国际商业机器公司 在主机中运行客户机的程序的模拟器和模拟方法
US20100228943A1 (en) * 2009-03-04 2010-09-09 Freescale Semiconductor, Inc. Access management technique for storage-efficient mapping between identifier domains
US8473644B2 (en) * 2009-03-04 2013-06-25 Freescale Semiconductor, Inc. Access management technique with operation translation capability
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8806496B2 (en) * 2009-09-30 2014-08-12 Intel Corporation Virtualizing a processor time counter during migration of virtual machine by determining a scaling factor at the destination platform
US8831993B2 (en) * 2010-03-19 2014-09-09 Novell, Inc. Techniques for sharing virtual machine (VM) resources
US8392628B2 (en) 2010-07-16 2013-03-05 Hewlett-Packard Development Company, L.P. Sharing memory spaces for access by hardware and software in a virtual machine environment
EP3043269B1 (en) * 2010-09-24 2017-07-26 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
US9317441B2 (en) 2011-12-22 2016-04-19 Intel Cororation Indexed page address translation to reduce memory footprint in virtualized environments
US20140007098A1 (en) * 2011-12-28 2014-01-02 Paul M. Stillwell, Jr. Processor accelerator interface virtualization
WO2013101208A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Hardware enforced memory access permissions
US8819648B2 (en) 2012-07-20 2014-08-26 International Business Machines Corporation Control flow management for execution of dynamically translated non-native code in a virtual hosting environment
US9736436B2 (en) 2012-07-25 2017-08-15 Echostar Technologies L.L.C. Systems and methods for transponder stacking
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
CN103618809A (zh) * 2013-11-12 2014-03-05 华为技术有限公司 一种虚拟化环境下通信的方法、装置和系统
EP3935931A1 (en) 2014-02-10 2022-01-12 The Climate Corporation Methods and systems for generating shared collaborative maps
US9792222B2 (en) 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
US9727480B2 (en) 2014-07-21 2017-08-08 Via Alliance Semiconductor Co., Ltd. Efficient address translation caching in a processor that supports a large number of different address spaces
CN104216801B (zh) * 2014-09-04 2017-06-16 北京联创信安科技股份有限公司 一种面向虚拟化环境的数据复制方法及系统
US20170180325A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Technologies for enforcing network access control of virtual machines
US11194735B2 (en) * 2017-09-29 2021-12-07 Intel Corporation Technologies for flexible virtual function queue assignment
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统
CN110162377A (zh) * 2018-02-14 2019-08-23 华为技术有限公司 一种通信方法和逻辑处理器
CN110392084B (zh) * 2018-04-20 2022-02-15 伊姆西Ip控股有限责任公司 在分布式系统中管理地址的方法、设备和计算机程序产品
CN109240602B (zh) * 2018-08-06 2021-01-15 联想(北京)有限公司 数据存取方法
CN114595164B (zh) * 2022-05-09 2022-08-16 支付宝(杭州)信息技术有限公司 在虚拟化平台中管理tlb高速缓存的方法和装置
CN114791854B (zh) * 2022-05-11 2023-03-24 科东(广州)软件科技有限公司 用户态虚拟机任务的调度方法、装置、设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
EP0721621B1 (en) * 1993-09-30 2002-01-30 Apple Computer, Inc. System for decentralized backing store control of virtual memory in a computer
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
JPH0822418A (ja) * 1994-07-07 1996-01-23 Mitsubishi Electric Corp 仮想アドレス空間管理装置
US5621912A (en) * 1994-12-29 1997-04-15 International Business Machines Corporation Method and apparatus for enabling monitoring of guests and native operating systems
US6029237A (en) * 1997-10-08 2000-02-22 Dell Usa, L.P. Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive
US6453392B1 (en) 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
US6961806B1 (en) 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
JP2005044363A (ja) * 2003-07-22 2005-02-17 Samsung Electronics Co Ltd 複数のスレッドを同時に処理する装置及び方法
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US7334076B2 (en) 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959110A (zh) * 2011-12-29 2018-12-07 英特尔公司 管理员模式执行保护
CN108959110B (zh) * 2011-12-29 2023-05-30 太浩研究有限公司 一种用于防止用户模式指令的管理员模式执行的处理器及其方法
CN105141694A (zh) * 2015-09-11 2015-12-09 东莞市微云系统科技有限公司 一种云桌面共享数据的方法及系统
CN105141694B (zh) * 2015-09-11 2018-10-12 广东微云科技股份有限公司 一种云桌面共享数据的方法及系统
CN109643291A (zh) * 2016-09-29 2019-04-16 英特尔公司 用于在虚拟化执行环境中高效使用图形处理资源的方法和设备
CN109643291B (zh) * 2016-09-29 2024-03-08 英特尔公司 用于在虚拟化执行环境中高效使用图形处理资源的方法和设备
CN110178117A (zh) * 2017-02-24 2019-08-27 株式会社东芝 控制装置
CN110178117B (zh) * 2017-02-24 2023-06-02 株式会社东芝 控制装置

Also Published As

Publication number Publication date
CN101187902B (zh) 2010-06-16
US7490191B2 (en) 2009-02-10
CN101187902A (zh) 2008-05-28
TW200832135A (en) 2008-08-01
WO2008036390A1 (en) 2008-03-27
CN101872328B (zh) 2013-06-19
TWI354205B (en) 2011-12-11
HK1149343A1 (en) 2011-09-30
DE112007001988T5 (de) 2009-06-18
US20080077765A1 (en) 2008-03-27
JP2010503115A (ja) 2010-01-28
JP5214611B2 (ja) 2013-06-19

Similar Documents

Publication Publication Date Title
CN101187902B (zh) 在虚拟机环境中的客户机之间共享信息
CN100587700C (zh) 在虚拟技术环境中操作的软件代理的篡改保护方法和装置
CN101351774B (zh) 将存储页面与程序相关联的页面着色的方法、装置和系统
US6003123A (en) Memory system with global address translation
US10324863B2 (en) Protected memory view for nested page table access by virtual machine guests
US8364910B2 (en) Hard object: hardware protection for software objects
EP1966706B1 (en) Identifier associated with memory locations for managing memory accesses
US8560806B2 (en) Using a multiple stage memory address translation structure to manage protected micro-contexts
US8477946B2 (en) Method and apparatus for protecting encryption keys in a logically partitioned computer system environment
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
CN1991808B (zh) 用于访客访问存储器映射的设备的方法和装置
US8549254B2 (en) Using a translation lookaside buffer in a multiple stage memory address translation structure to manage protected microcontexts
TW201713096A (zh) 用以支援保護容器的即時遷移之處理器、方法、系統和指令
US20040064668A1 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
CN101004726A (zh) 直接传送中断到虚拟处理器
CN112148425A (zh) 信任域架构内的信任域内部的可缩放虚拟机操作
CN112639779A (zh) 用于存储器地址从对象特定虚拟地址空间转换成物理地址空间的安全性配置
KR20090078563A (ko) 컨텐츠를 안전하게 공유하는 방법 및 시스템
CN104025041A (zh) 管理员模式执行保护
CN114651244A (zh) 机密计算机制
CN114641761A (zh) 机密计算机制
US11573911B2 (en) Memory access control
US20240054071A1 (en) Hardware mechanism to extend mktme protections to sgx data outside epc
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法
Murray Partitioning and protecting control program function through virtual storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1149343

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1149343

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130619

Termination date: 20200924