CN100501680C - 虚拟化虚拟机系统中的物理存储器 - Google Patents
虚拟化虚拟机系统中的物理存储器 Download PDFInfo
- Publication number
- CN100501680C CN100501680C CNB2006100040273A CN200610004027A CN100501680C CN 100501680 C CN100501680 C CN 100501680C CN B2006100040273 A CNB2006100040273 A CN B2006100040273A CN 200610004027 A CN200610004027 A CN 200610004027A CN 100501680 C CN100501680 C CN 100501680C
- Authority
- CN
- China
- Prior art keywords
- client
- physical storage
- page
- virtual machine
- processor
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种处理器包括具有存储器虚拟化支持系统的虚拟化系统,将由虚拟机上可执行的客户软件对客户-物理存储器的引用映射到对主机的主-物理存储器的引用,该客户软件在主机上也是可执行的。
Description
背景技术
虚拟化能使具有用于虚拟化的硬件和软件支持的单个主机呈现主机的多个抽象(abstraction),从而使主机的底层硬件似乎是一个或多个独立运行的虚拟机。因此每个虚拟机可起到独立完备的平台的作用。经常地,使用虚拟化技术来使多客户操作系统和/或其它客户软件(guest software)并存并且显然同时地和显然独立地在多个虚拟机上执行,而实际上是在相同硬件平台上物理地执行。虚拟机可模仿主机的硬件或交替地呈现完全不同的硬件抽象。
虚拟化系统可包括控制主机的虚拟机监控器(VMM)。VMM向在虚拟机上运行的客户软件提供一组资源(例如,处理器、存储器、IO设备)。VMM可将物理主机的一些或所有部件映射到虚拟机,并且可创建全部的虚拟部件,虚拟部件在VMM中用软件模拟,包含在虚拟机中(例如,虚拟IO设备)。因此可以说是VMM向客户软件提供了“虚拟裸机”接口。VMM使用硬件虚拟化体系结构中的设备向虚拟机提供服务并且在主机上执行的多个虚拟机之间提供保护。
当客户软件在虚拟机上执行时,如果客户软件直接在硬件平台上执行,那么由客户软件执行的某些指令(例如,访问外围设备的指令)通常会直接访问硬件。在VMM支持的虚拟化系统中,这些指令会导致到VMM的转换,在这里称作虚拟机退出。VMM用适合主机硬件和主机外围设备的方式来处理软件中的这些指令,和执行客户软件的虚拟机一致。类似地,在主机中产生的某些中断和例外需由VMM来中断和管理或在传递给客户软件提供服务之前通过VMM来适应客户软件。然后,VMM将控制转换到客户软件并且虚拟机重新开始运行。从VMM到客户软件的转换在这里称作虚拟机登录(virtual machineEntry)。
公知地,在大多数操作系统上,在机器上执行的程序可使用虚拟地址空间,虚拟地址空间是底层物理存储器系统的抽象。本领域公知地,当术语虚拟用在存储器管理的上下文中例如“虚拟地址”、“虚拟地址空间”、“虚拟存储器地址”或“虚拟存储器空间”时,指的是基于处理器的系统的公知技术,通常和操作系统结合,将底层物理存储器的抽象呈现给在基于处理器的系统上执行的过程(process)。例如,过程可访问虚拟的、连续的和线性的地址空间抽象,由底层操作系统将地址空间抽象映射到非线性的和非连续的物理存储器。虚拟的这种使用区别于同样的术语在虚拟化的上下文中的使用,在后者情况下虚拟通常指的是模拟物理机器的抽象,例如“虚拟机”、“虚拟裸机”、“虚拟硬件”、“虚拟处理器”或“虚拟网络接口”。基于这里使用术语的上下文,该术语的预期含义对本领域技术人员是明确的。
图1显示在基于处理器的系统上执行的过程,该系统包括处理器和通过总线通信耦合到处理器的存储器。参照图1,当过程105在它的虚拟地址空间115中引用(reference)存储单元110(过程虚拟存储空间)时,通过存储器管理130产生机器125的物理存储器145(机器物理存储器)中的实际地址140,可在硬件(有时合并进入处理器120)和软件(通常在机器的操作系统中)中实现存储器管理。除了其它功能,存储器管理130还将虚拟地址空间中的位置映射到机器的物理存储器中的位置。如图1所示,过程可具有和在物理机器中实际可用的存储器不同的存储器视图。在图1描述的例子中,该过程在从0到1MB的虚拟地址空间中运行,该地址空间实际上是通过存储器管理硬件和软件映射到物理存储器中的一部分,其本身具有从10到11MB的地址空间;从过程空间地址计算物理地址,可将位移135加到过程虚拟地址。从过程虚拟存储器空间到物理存储器的更复杂的映射是可能的,例如,可将相应于过程虚拟存储器的物理存储器划分成诸如页面的部分并且将其和来自物理存储器中的其它过程的页面相交织。
通常可将存储器划分成页面,每个页面包含已知数量的数据,随实施方案而变化,例如一个页面可包含4096字节的存储器。当由执行过程引用存储单元时,将它们转换成页面引用。在通常的机器中,存储器管理将对过程虚拟存储器中的页面的引用映射到机器物理存储器中的页面。一般地,存储器管理可使用页面表来指定相应于过程空间页面位置的物理页面位置。
在虚拟机环境中管理客户软件的一个方面是存储器管理。由在虚拟机中执行的客户软件来处理存储器管理对于控制诸如虚拟机监控器的系统产生了复杂性。考虑例如在32位IA—32英特尔体系结构平台(IA-32)上实现在主机上经由虚拟化执行两个虚拟机的系统。在IA—32Architecture SoftwareDeveloper’s Manual(英特软件开发者手册)(IA-32文档)中描述了该平台。IA-32平台可包含实现为IA-32处理器的部分的IA-32页面表。进一步,假设每个虚拟机本身将IA-32机器的抽象呈现给在其上执行的客户软件。在每个虚拟机上执行的客户软件可引用客户过程虚拟存储器地址,该地址又可以由客户机的存储器管理系统转换成客户-物理存储器(guest-physical memory)地址。然而,可由在主-物理存储器(host-physical memory)中的进一步的映射通过VMM和主机处理器上的硬件中的虚拟化子系统来实现客户-物理存储器本身。因此,由客户过程或客户操作系统对客户存储器的引用,包括例如对客户IA-32页面表控制寄存器的引用,必须由VMM来截取因为它们不能直接传递到主机的IA-32页面表而不进行进一步的再处理,由于客户-物理存储器实际上不直接对应于主-物理存储器而是进一步通过主机的虚拟化系统重新映射。
附图说明
图1描述了过程和物理存储器(现有技术)之间的关系。
图2抽象的描述了在一实施例中虚拟机和主机之间的关系。
图3描述了在一实施例中虚拟机环境的高层结构。
图4a和4b说明了虚拟机环境中一实施例中的处理。
图5描述了在一实施例中使用扩展分页表进行地址计算。
图6描述了在一实施例中使用分级扩展分页表进行地址计算。
图7描述在一实施例中的扩展分页表基地址指针。
图8描述了在一实施例中的扩展分页表条目。
具体实施方式
图2:图2描述了在一实施例中,特别关于客户存储器映射的在主机上执行的一个或多个虚拟机之间的关系。图2说明客户-物理存储器是如何通过主机的虚拟化系统重新映射的。例如虚拟机A,242和虚拟机B,257的每个虚拟机分别向在虚拟机上运行的客户软件呈现虚拟处理器245和255。每个机器向客户操作系统或其它客户软件提供物理存储器的抽象,分别为客户-物理存储器240和250。当客户软件在虚拟机242和257上执行时,实际上是由主机267在主机处理器265上利用主-物理存储器260来执行的。
如图2所示,在该实施例中,将起始于地址0在虚拟机A,242中呈现为物理存储器空间的客户-物理存储器240映射到主-物理存储器260中的一些连续的区域270。类似地,将虚拟机B,257中的客户-物理存储器250映射到主-物理存储器260的不同部分275。如图2所示,主机可具有1024MB的主-物理存储器。如果给每个虚拟机242和2547都分配256MB的存储器,一个可能的映射可能是给虚拟机A,242分配128—384MB的范围和给虚拟机B,257分配512—768MB的范围。虚拟机242和257都引用0—256MB的客户-物理地址空间。只有VMM知道每个虚拟机地址空间都映射到主-物理地址空间的不同部分。
在图2中所示的虚拟机和存储器映射仅是一实施例的一个代表,在其它实施例中,在主机上执行的虚拟机的实际数量可从一个变化到多个;主机和虚拟机的实际存储器大小可变并且从虚拟机到虚拟机是可变的。该例子描述了给虚拟机的简单、连续的存储器分配。在更一般的情形下,分配给虚拟机的物理存储器页面可以是不连续的并且可分布在主-物理存储器中,互相交织并且和属于VMM和其它主过程的页面交织。
例如图2所描述的,在系统中呈现为虚拟机的基于处理器的系统可尽其复杂地实现虚拟机。因此例如,虚拟机可将客户-物理存储器的全视图呈现给客户OS,并且使用由客户OS和虚拟处理器或虚拟机的其他虚拟硬件提供的存储器管理,对在虚拟机上执行的客户软件进行存储器管理。在一示例性实施例中,虚拟机可将包括IA-32硬件支持(例如用于存储器管理的页面表)的IA-32平台呈现给客户OS,并且依次在主机平台上实际地执行,该平台也是包括用于存储器管理的IA-32硬件的IA-32平台。没有额外的机制,在该实施例中的虚拟化系统必须使用(作为一可能的解决方案)IA-32页面表遮蔽(shadowing)来重新映射、划分和保护物理存储器,从而在VMM中实现物理存储器虚拟化算法。因此,例如,当客户软件试图访问虚拟机的IA-32页面表时,VMM必须将虚拟化所需的功能(例如,重新映射物理地址)覆盖到客户OS所需的功能上。
为此,VMM必须通过客户软件来捕获围绕分页机制的使用的各种事件。如IA-32文档中所述,这包括写入诸如IA-32存储器管理系统的控制寄存器(例如,CR0、CR3和C4)的控制寄存器、访问与分页和存储器访问(例如,存储器类型范围寄存器(MTRR))相联系的特定模型寄存器(MSR)、处理某些例外(例如,页面出错)。这种使用IA-32页面表来虚拟化物理存储器是复杂的并且需要巨大的性能开销。
图3:图3说明虚拟机环境300的一实施例。在该实施例中,基于处理器的平台316可执行VMM 312。该VMM,虽然一般在软件中实现,可向更高层的软件模拟和输出虚拟裸机接口。这种更高层的软件可包括标准OS、实时OS或者可以是具有有限操作系统功能的拆卸(stripped-down)环境,并且可以不包括在一些实施例中的标准OS中典型可用的OS工具。可替换地,例如,可在另一VMM中或使用另一VMM的服务来运行VMM 312。例如,可在硬件、软件、固件或一些实施例中的各种技术的组合来实现VMM。
平台硬件316可以是个人计算机(PC)、大型机、诸如个人数字助理(PDA)或“智能”移动电话的手持设备、便携式计算机、机顶盒或其他基于处理器的系统。平台硬件316包括至少一个处理器318和存储器320。处理器318可以是能执行程序的任何类型的处理器,例如微处理器、数字信号处理器、微控制器等。在实施例中,处理器可包括微代码、可编程逻辑或用于执行的硬编码逻辑。虽然图3仅显示了一个这样的处理器318,但在实施例的系统中可有一个或多个处理器。另外,处理器318可包括多个内核、支持多线程等等。存储器320可包括硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、上述设备的任意组合或各种实施例中处理器318能读取的任意其他类型的机器介质。存储器320可存储指令和/或数据用于进行程序执行和其他方法实施例。
VMM 312将一个或多个虚拟机抽象呈现给客户软件,可向各种客户提供相同或不同的抽象。图3显示两个虚拟机,302和314。诸如在各个虚拟机上运行的客户软件303和313的客户软件可包括诸如客户OS 304或306的客户OS和各种客户软件应用308和310。客户软件303和313可访问其上运行客户软件303和313并执行其他功能的虚拟机内的物理资源(例如,处理器寄存器、存储器和I/O设备)。例如,依据在虚拟机302和314中呈现的处理器的体系结构和平台,客户软件303和313预期访问所有的寄存器、高速缓存、结构、I/O设备、存储器等等。
在一实施例中,依照虚拟机控制结构(VMCS)324中存储的数据,处理器318控制虚拟机302和314的操作。VMCS 324是可包含客户软件303和313的状态、VMM 312状态、指示VMM 312希望如何控制客户软件303和313操作的执行控制信息、控制在VMM 312和虚拟机之间转换的信息等的结构。处理器318从VMCS 324读取信息来决定虚拟机的执行环境并且限制它的行为。在一实施例中,在存储器320中存储VMCS 324。在一些实施例中,使用多个VMCS结构来支持多个虚拟机。
VMM 312可能需要管理由在虚拟机302和314中运行的客户软件可访问的物理存储器。在一实施例中,为了支持物理存储器管理,处理器318提供了扩展页面表(EPT)机制。在该实施例中,VMM 312可包括物理存储器管理模块326,该模块为与在将控制转换到虚拟机302或314之前需提供的物理存储器虚拟化相联系的域提供值。这些域全体地称作EPT控制。EPT控制可包括例如,指定是否应该启动EPT机制的EPT启动指示器和一个或多个指示物理存储器虚拟化机制的形式和语义的EPT表配置控制。这些将在下面详细讨论。另外,在一实施例中,EPT表328指示物理地址转换和保护语义,VMM 312可将它们放在客户软件303和313上。
在一实施例中,在VMCS 324中存储EPT控制。可替换地,EPT控制可存在于处理器318、存储器320和处理器318的组合或其他任何存储单元中。在一实施例中,为每个虚拟机302和314维持单独的EPT控制。可替换地,为两个虚拟机维持相同的EPT控制并且在每个虚拟机登录之前由VMM 312更新。
在一实施例中,在存储器320中存储EPT表328。可替换地,EPT表328可存在于处理器318、存储器320和处理器318的组合或其他任何的存储单元中。为每个虚拟机302和314维持单独的EPT表328。可替换地,为两个虚拟机302和314维持相同的EPT表328并且在每个虚拟机登录之前由VMM 312更新。
在一实施例中,处理器318包括EPT访问逻辑322,该访问逻辑负责依据EPT启动指示器决定是否启动EPT机制。如果启动EPT机制,则处理器将客户-物理地址转换成基于EPT控制器和EPT表328的主-物理地址。
在一实施例中,其中系统300包括多个处理器或多个线程处理器,每个逻辑处理器都与单独的EPT访问逻辑322相联系,并且VMM 312为每个逻辑处理器配置EPT表328和EPT控制。
可将通过客户软件(例如,303,包括客户OS 304和应用308)访问的资源分成“优先的(privileged)”或“非优先的(non-privileged)”。对于优先的资源,VMM 312促进客户软件所需的功能而保留对这些优先资源的最终控制。进一步,每个客户软件303和313预期处理各种平台事件例如例外(例如,页面出错、一般保护出错等等),中断(例如,硬件中断、软件中断)和平台事件(例如,初始化(INIT)和系统管理中断(SMI))。这些平台事件中的一些是“优先的”,因为它们必须由VMM 312来处理以确保虚拟机302和314的正确运行和在客户软件中提供保护。客户操作系统和客户应用都试图访问优先资源并且都可以引起或经历优先事件。优先平台事件和对优先资源的访问尝试在这里全体地称作“优先事件”或“虚拟化事件”。
图4a和4b:在一实施例中,例如先前所述和在图3中描写的虚拟机环境的运行由图4a和4b中所示的处理来描述。图4a描述了在一实施例中处理发生在客户软件中的优先事件的VM环境的运行;和通过客户软件处理非优先事件的实施例的运行。图4b描述了与扩展分页表特别相关的实施例中的VM环境的运行,特别地与客户软件对客户-物理存储器的访问和由该实施例中的VMM管理硬件中的EPT机制相关。图4a和4b并未描述可能出现在例如图3所描述的环境中的所有部件或所有操作。这只是为了清楚表达。虽然在图4a和4b中表示一小组部件和一些具体的运行,但实施例中的VM环境可包括许多其他部件,并且许多其他操作会在这样的实施例中发生。
首先考虑图4a。图4a描述了在虚拟机抽象302上执行的客户软件303的一组示例性的操作,和先前在图3中描述的平台硬件316。在指示它们在系统中发生的位置的块内描述操作(例如,在VMM 312中、在客户软件303中等等)。除了先前描述的VM环境的其他部件,VM抽象302可为客户软件303在412存储虚拟机状态和其他状态信息,并且也可提供诸如虚拟网络连接或通用寄存器组的其他资源,为客户命名许多示例中的两个。当然,由其上执行VM的平台硬件316来实际提供实现VM状态、客户状态的物理资源和其他VM资源。平台硬件包括存储器320、VMCS 324和处理器318。
在440,客户软件303访问非优先资源442。非优先资源无需由VMM 312控制并且可由客户软件直接地访问,客户软件继续而不需调用VMM 312,在访问非优先资源422后允许客户继续在445的运行。非优先平台事件同样无需VMM 312(并未在图4a中显示)的介入来处理。
在405,客户软件303试图访问优先资源,和/或经历优先平台事件。当这种优先事件发生在405时,控制可以转移407到VMM 312。从客户软件到VMM312的控制转移407在这里称作虚拟机退出。在促进资源访问或另外适当处理优先事件之后,VMM 312可在432将控制返还给客户软件,然后客户软件重新开始运行,435。从VMM 312到客户软件的控制转移432称作虚拟机登录。在一实施例中,VMM 312通过执行特别设计用于触发转换的指令(这里称作虚拟机登录指令)来启动虚拟机登录,430。
在一实施例中,当虚拟机退出发生时,保存客户软件使用的处理器状态部件,410,加载VMM 312所需的处理器状态部件,并且在420在VMM 312中重新开始执行。在一实施例中,客户软件使用的处理器状态部件存储在VMCS324的客户-状态区域中,并且VMM 312所需的处理器状态部件存储在VMCS324的监控器-状态区域。在一实施例中,当从VMM 312到客户软件的转移发生时,在虚拟机退出(并且当处理虚拟机退出时可能已由VMM 312修改)保存的处理器状态部件在425恢复并且在430将控制返回给虚拟机302或314。
接着,考虑图4b。如前面所提到的,图4b描述了上述的和图4中描述的VM环境的那些运行,特别地关于扩展分页表、客户程序访问客户-物理存储器、和在一实施例中通过VMM在硬件中对EPT机制的管理。如前所述,为了清楚表达,图4b并未描述实施例中在VM环境中可能出现的所有部件或所有操作。虽然在图4a和4b中表示一小组部件和一些特定操作,但实施例中的VM环境可包括许多其他部件,并且许多其他操作会在该实施例中发生。
在图4b中描述的实施例中的VM环境的部件是客户软件303、VM 302、具有物理存储器管理模块326的VMM 312和平台硬件或物理机316。平台硬件进一步包括存储器320和具有EPT访问逻辑322的处理器318,该存储器320在该实施例中包括一组EPT表328和VMCS 324。一般地,如图4所示在450,当例如由客户软件303访问客户-物理存储器时,可由客户软件来启动平台硬件中的EPT设备的使用。将客户-物理存储器访问称作由VM 302提供的存储器的VM抽象451,该抽象又指的是物理机316。如果启动EPT机制,平台硬件316可使用EPT访问逻辑322和EPT表328,处理对客户-物理存储器的引用以将对客户-物理存储器的访问转换成对主-物理存储器320的访问。EPT运行的细节将参考下面的图5和6进行讨论。
可由VMM 312来配置EPT机制自身,VMM 312配置EPT表328和可储存于VMCS 324中的EPT控制。在该实施例中,可由VMM 312进行EPT机制的配置作为在VMM 312中优先事件405的处理之后和在VM登录430之前的物理存储器管理模块326运行的一部分。在配置EPT机制中,为了启动、使其失效或另外控制EPT机制,460,VMM 312可更新EPT表328和EPT控制。
当然,为使用和VM环境结合的扩展分页表,许多其他形式的处理也是可能的,例如,对于参照图3先前讨论的EPT控制和EPT表328的不同位置,多个VM、多个处理器、多个线程、多个客户和这些变化的组合,等等。
图5:图5显示了使用上面介绍的扩展页面表来处理的一个示例,当在虚拟机中的客户软件引用客户虚拟地址时最终计算主-物理地址。描述的例子显示了使用简单的32位虚拟寻址和简单页面表格式在IA-32平台中运行的客户软件。本领域技术人员可容易地扩展该例子,以理解例如,其他分页模式(例如,在客户软件中的64位寻址)、其他指令集体系结构(例如,体系结构,例如在可从英特尔公司获得的英特尔安腾体系结构软件开发者手册中所描述的)或其他配置。
在图5中,由在虚拟机中执行的客户软件来执行对客户虚拟地址510的引用。使用在客户中激活的存储器管理机制(即,由客户操作系统来配置)来将虚拟地址转换成客户-物理地址。通过EPT在访问主-物理地址之前,将在转换中使用的每个客户-物理地址和最终产生的客户-物理地址转换成主-物理地址。在下面的讨论中详细说明该过程。
在该例子中,CR3寄存器520中的合适位502指向在客户-物理存储器中的客户页面目录表560的基址。将该值502和来自客户虚拟地址510的高位(upper bit)相结合(依据IA-32的语义通过乘以4来适当地调整,因为在该例中,表中的每个条目是4字节)以形成客户的PD表560中的页面目录项(PDE)的客户-物理地址512。通过EPT表555转换该值512以形成页面目录项的主-物理地址504。处理器使用该主-物理地址504来访问页面目录项。
来自PDE的信息包括客户页面表570的基地址522。将该客户-物理地址522和客户虚拟地址510的位21:12相结合,适当地调整以形成客户页面表570中页面表条目的客户-物理地址532。通过EPT表565转换该客户-物理地址532以形成客户的页面表条目(PTE)的主-物理地址514。处理器使用该主-物理地址514来访问PTE。
来自PTE的信息包括被访问的客户-物理存储器中的页面的基地址542。将该值和客户虚拟地址510的低数位(low-order bit)(11:0)相结合以形成被访问的存储器的客户-物理地址552。通过EPT表575转换该值552以形成正被访问的存储器的主-物理地址524。
每次使用EPT表将客户-物理地址转换成主-物理地址,处理器也依据EPT表中的控制来确认该访问是被允许的,其将在下面描述。另外,必须理解的是虽然在图5中标记为不同的,但EPT表555、565和575在一实施例中,可以是相同组的EPT表(即,EPT表的单一组被用于所有从客户-物理到主-物理的地址转换)。
图6:图6描述了使用前面介绍的扩展页面表来进行处理的另一例子,使用多级EPT表来最终将客户-物理地址转换成主-物理地址。在图6所示的示例性实施例中,EPT基指针(EPTP)620中的合适位602指出第一级EPT表650的基址的主-物理地址,在该实施例中该地址存储在主-物理存储器中。下面将根据图7详细地讨论EPTP。在该例子中,EPT表中的条目每个为8字节。通过乘以8(例如,通过将该值左移3位)来适当地调整来自客户-物理地址610(601)的位38:30,从而获得调整的高位客户-物理地址603。将EPT表基地址值602结合(添加)调整的高位客户-物理地址位603,从而形成第一级EPT表650中的EPT表条目651的主-物理地址604。根据图8下面将讨论在第一级EPT表650中的例如651的条目和其他EPT表660和670中的条目的示例性格式。
EPT表条目651的部分是下一级EPT表660的基地址612。从客户-物理地址610的位29:21(611)形成第二调整的地址部分613。将该调整的值613结合(加上)基地址612以形成下一级EPT表660中的EPT表条目661的主-物理地址614。处理器使用该主-物理地址614来访问EPT表条目661。
来自EPT表条目661的信息包括最后的EPT表670的基地址622。将该基地址622和经过适当调整后的客户虚拟地址610的调整的位20:12(623)相结合,以形成最后的EPT表670中EPT表条目671的地址624。处理器使用该主-物理地址624来访问EPT表条目。
来自EPT表条目671的信息包括主-物理存储器690中被访问的页面的基地址632。将该页面地址值690和客户物理地址610的低数位(11:0)相结合以形成被访问的存储器的最后的主-物理地址634。
在图6所示的示例性实施例中,EPT表是分级的。在形式上它们类似常规的多级页面表。而且,在该示例中,在每个EPT表中的每个EPT表条目是8字节大小,虽然在其他实施例中该大小可能不同,但本领域技术人员将会理解改变访问表的机制。在该示例中,每个EPT表的大小为4KB。在其他实施例中,可使用不同的表大小;而且,象图6中所描述的分级中的所有表无需是相同大小。大小的这种改变可能影响从客户-物理地址到索引下一级EPT表所用的位数。对于本领域技术人员来说明显的是,许多其他的EPT表配置都是可能的。
该图中描述的分级配置显示了三个分级级别,其中两个EPT表650和660分别用作对更低级EPT表660和670的索引。在其他实施例中,在这种分级表中可能有更少,例如两级,或更多,例如四级或更多的级别。一般地,分级的级别数量可至少部分依赖于客户-物理地址的位数、每个表的大小和在每个表条目中的字节数量中的一个或多个而变化。在图6示例中的客户-物理地址是32位大小。在其他实施例中,客户-物理地址可以是不同大小的;大小的这种变化会需要EPT表的分级数量的变化,这是为了进行转换所需的。例如,如果客户-物理地址是48位,就需要4级EPT表来进行转换(假设在每级4KB的EPT表和在每个EPT表中8字节的EPT表条目)。
在图6所示的实施例中,EPT控制包括单个域、EPT指针(EPTP)。该域包含第一级EPT表的基地址。在该示例中,每个EPT是4KB的大小。
图7:如图7中所描述的典型实施例中所示,EPT基地址指针(EPTP)包括用来形成诸如在上面图6中所述的第一级EPT表的基址的基地址(在主-物理存储器中)的位。在图7所描述的例子中,位59:12形成基地址。假设位11:0和63:60为0。当然,各种位域的宽度可在其他实施例中变化,例如基地址域将依赖于特别体系结构或实施方案中的地址位数而变化。在EPTP寄存器中的剩余位在其他实施例中可用于其他目的。在一实施例中,仅通过虚拟机登录或虚拟机退出可访问EPTP寄存器。在该实施例中,在虚拟机登录时从VMCS中的EPTP域装载处理器中的EPTP寄存器,当客户软件运行时激活EPT机制。如上所示,可由在VMCS内或其他地方的其他控制位来控制该激活(以及装载EPTP域)。
图8:该图描述了EPT表中的条目的格式的示例性实施例。在该示例中,EPT表中的每个条目是8字节大小。在一实施例中,每个EPT表是4KB大小,这意味着每个EPT表页面有512个EPT表条目。如图8中的例子所示,每个EPT表条目包含存储器中的下一级EPT表或页面的基主-物理地址(ADDR)和许可以及其他配置信息。如前所述,在其他实施例中各种位域的宽度可改变,例如ADDR的宽度可依赖于特定体系结构或实施方案中的地址位数而变化。图8仅描述了2个许可位(permission bit),当前(Present)和可写(Writable)。在其他实施例中,可在每个EPT表条目中可以给出其他的许可和配置信息。例如,在一实施例中,许可位指示是否可以执行存储器的页面(即,是否可以取页面的内容并且由处理器解译成指令)。
EPT表可以是各种不同的格式。例如,可以如图6所示实现为简单的分级表。可替换地,它们可以是单级页面表(其中第一级EPT表的大小指示了客户-物理地址空间的最大尺寸。)可替换地,它们可以是某种形式的哈希表。对于本领域技术人员显而易见的是,在其他实施例中无数可能的配置都是可能的。
EPT表在主-物理存储器中可支持一个或多个页面大小。在一实施例中,在每个EPT表中的每个条目都包括一个超级页面位,该超级页面位指示EPT表的移动(walk)应该停在那一点和使用EPT表条目中的地址信息和客户-物理地址中的剩余位形成主-物理存储器地址。在图6所示的例子中,例如,如果在EPT表660中设置超级页面位,那么在主-物理存储器中最后产生的页面有2MB的大小并且通过结合客户-物理地址610的位20:0和来自EPT表660的地址位形成最后的主-物理地址。
在一些实施例中,可由虚拟机登录来启动扩展分页表和EPT地址转换机制并由虚拟机退出取消使其失效。因此,作为结果,EPT机制可能不能为客户软件或VMM软件所用以管理其自己的地址转换。而且,在这些实施例中,EPT机制可不同于并独立于客户或主机软件可用的其他常规存储器页面管理机制,例如在IA-32实施例中的IA-32分页表,虽然EPT运行可利用常规页面管理机制的特性。因此,与使用主机的虚拟化和EPT机制的客户软件的执行相对,EPT表的组织和运行可能完全不同于由处理器提供的用于常规的程序执行和直接在主机上运行的其他页面转换工具。在一实施例中,EPT机制可利用和该实施例的常规页面管理机制使用的相同格式的表,该表对于客户和VMM软件是可用的。然而,控制EPT机制的表可能仍区别于那些控制从客户-虚拟地址到客户-物理地址转换的表和不同于那些控制主-虚拟地址到主-物理地址转换的表。
虽然提供的例子可描述提供对执行单元和逻辑电路的上下文中的虚拟机系统中的物理存储器虚拟化的支持,但可使用软件的方法实现其他实施例。提供一些实施例作为软件程序产品或可包括其上已存有指令的机器或机器可读介质的软件,在由机器访问该指令时执行该实施例的过程。在其他实施例中,可由包含用于执行过程的硬布线逻辑的特定硬件部件或由编程部件和客户定制硬件部件来的任意组合来执行过程。
在先前的描述中,为了解释,阐明了许多特定细节以便提供对所述实施例的完整理解,然而,本领域技术人员将意识到可以实施许多其他实施例而不需要这些具体的细节。
根据在基于处理器的系统内数据位上的运算的算法和符号表示给出上面详细描述的一些部分。这些算法描述和表示是本领域技术人员将他们工作的内容最有效地传给本领域的其他技术人员所使用的手段。该运算是需要对物理量进行物理操作的那些运算。这些物理量可采用电的、磁的、光的或其他能被存储、传输、组合、比较和其他操作的其他物理信号。因为通常用法的原因,将这些信号称作位、值、元素、符号、字符、项、数量等时常地被证明是方便的。
然而,应当记住所有这些和类似的术语是和适当的物理量相联系的并且仅是应用于这些量的简便标记。除非特别声明否则为了描述清楚,例如“执行”、“处理”、“计算”、“推算”或“决定”等的术语指的是基于处理器的系统或类似的电子计算设备的操作和处理,在基于处理器的系统的存储器内操作并将表示为物理量的数据转变成类似表示的其他数据或其他信息存储、传输或显示设备的数据。
在该实施例的描述中,会参考相应附图。在附图中,贯穿几个视图,用相同的数字描述本质上类似的部件。可使用其他实施例并且可作结构的、逻辑的和电的改变。而且,应当理解各种实施例,虽然不同,但不必要是相互排斥的。例如,在一实施例中描述的特定特性、结构或特征也可包含在其他实施例之内。
进一步,在处理器中实现的实施例的设计可经过各种阶段,从创建到模拟到制作。表示设计的数据可表示许多方法中的设计。第一,因为在模拟中有用,可使用硬件描述语言或其他功能描述语言来表示硬件。另外,可在设计工艺的一些阶段制造具有逻辑和/或晶体管门的电路级模型。而且,在一些阶段,大多数设计达到数据表示硬件模型中各种设备的物理放置的水平。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是详细说明用于制造集成电路的掩模的不同掩模层上的各种特性的存在与否的数据。在设计的任何表示中,可以在任何形式的机器可读介质中存储数据。调制或产生用于传输这种信息的光或电波,存储器或例如盘的磁或光的存储器可以是机器可读介质。任何这些介质可“携带”或“指示”设计或软件信息。当传输指示或携带代码或设计的电载波到进行电信号的复制、缓冲或重传的程度时,制作了新的拷贝。因此,通信提供者或网络提供者可制造构成或表示实施例的物品的拷贝(载波)。
作为程序产品提供的实施例可包括具有存储其上的数据的机器可读介质,当这些数据被机器访问时可使机器依据要求保护的主题执行过程。该机器可读介质包括但不限于,软盘、光盘、DVD-ROM盘、DVD-RAM盘、DVD-RW盘、DVD+RW盘、CD-R盘、CD-RW盘、CD-ROM盘和磁—光盘、ROM、RAM、EPROM、EEPROM、磁或光卡、闪存或适合存储电子指令的其他类介质/机器可读介质。而且,实施例也可作为程序产品下载,其中通过在载波中嵌入数据信号或经由通信链接(例如,调制解调器或网络连接)的其他传播介质的方法,可从远端数据源传送程序到所需的设备。
以最基本的方式描述了许多方法,但可从任何方法中添加或删除步骤并且可从任意的描述数据中添加或删除信息而不背离要求保护的主题内容的基本范围。许多进一步的修改和调整对于本领域技术人员是显而易见的。提供特殊的实施例不是为了限制要求保护的主题内容而是为了对它进行说明。要求保护的主题内容并不是由上面提供的具体例子决定的而是仅由所附的权利要求决定的。
Claims (30)
1、一种处理器,包括:
处理器的虚拟化系统,所述虚拟化系统包括存储器虚拟化支持系统,所述存储器虚拟化支持系统包括:
分页表,用于在虚拟机上执行客户软件期间提供对客户-物理存储器的页面的引用;
逻辑,用于在虚拟机上执行客户软件期间将对客户-物理存储器的页面的引用与对客户-虚拟存储器的引用结合以提供对客户-物理存储器的引用;
扩展分页表,用于在虚拟机上执行客户软件期间将对客户-物理存储器的引用映射到对主-物理存储器的引用。
2、如权利要求1所述的处理器,其中存储器虚拟化支持系统进一步规定对访问的限制并且依据该限制控制对客户-物理存储器的存储单元的访问。
3、如权利要求1所述的处理器,其中存储器虚拟化支持系统进一步对主-物理存储器进行划分。
4、如权利要求2所述的处理器,其中虚拟化支持系统响应于违反所述限制访问存储器的尝试而转变到虚拟机监控器。
5、如权利要求1所述的处理器,其中扩展分页表进一步将对分页表中条目的引用从客户-物理存储器地址映射到主-物理存储器地址。
6、如权利要求5所述的处理器,其中扩展分页表指定对客户-物理存储器的页面的访问限制。
7、如权利要求6所述的处理器,其中对客户-物理存储器的页面的访问限制包括以下至少之一:
读取访问控制信息,
写入访问控制信息,和
执行访问控制信息。
8、如权利要求6所述的处理器,其中虚拟化系统响应于违反对客户-物理存储器的页面的访问限制,而转变到虚拟机监控器。
9、如权利要求5所述的处理器,其中扩展分页表包括多级扩展分页表。
10、如权利要求1所述的处理器,其中只有当虚拟化系统的标志设为预定值时,响应于处理器的虚拟化系统的激活而激活存储器虚拟化支持系统。
11、一种方法,包括:
访问分页表以便在虚拟机上执行客户软件期间提供对客户-物理存储器的页面的引用;
在虚拟机上执行客户软件期间将对客户-物理存储器的页面的引用与对客户-虚拟存储器的引用结合以提供对客户-物理存储器的引用;
在虚拟机上执行客户软件期间,使用扩展分页表将对客户-物理存储器的引用映射到对主-物理存储器的引用。
12、如权利要求11所述的方法,进一步包括规定对访问的限制以及依据所述限制控制对客户-物理存储器的存储单元的访问。
13、如权利要求11所述的方法,进一步包括对主-物理存储器进行划分。
14、如权利要求12所述的方法,进一步包括响应于违反限制访问存储器的尝试,虚拟化支持系统转变到虚拟机监控器。
15、如权利要求11所述的方法,进一步包括将对分页表中条目的引用从客户-物理存储器地址映射到主-物理存储器地址。
16、如权利要求15所述的方法,其中扩展分页表指定了对于客户-物理存储器的页面的访问限制。
17、如权利要求16所述的方法,其中对客户-物理存储器的页面的访问限制包括以下至少之一;
读取访问控制信息,
写入访问控制信息,和
执行访问控制信息。
18、如权利要求16所述的方法,进一步包括响应于违反对客户-物理存储器的页面的访问限制,而转变到虚拟机监控器。
19、如权利要求15所述的方法,其中扩展分页表包括多级扩展分页表。
20、如权利要求11所述的方法,进一步包括只有当虚拟化系统的标志设为预定值时,响应于处理器的虚拟化系统的激活而激活存储器虚拟化支持系统。
21、一种基于处理器的系统,包括:
处理器的虚拟化系统,所述虚拟化系统包括存储器虚拟化支持系统,所述存储器虚拟化支持系统包括:
分页表,用于在虚拟机上执行客户软件期间提供对客户-物理存储器的页面的引用;
逻辑,用于在虚拟机上执行客户软件期间将对客户-物理存储器的页面的引用与对客户-虚拟存储器的引用结合以提供对客户-物理存储器的引用;
扩展分页表,用于在虚拟机上执行客户软件期间将对客户-物理存储器的引用映射到对主-物理存储器的引用。
22、如权利要求21所述的系统,其中存储器虚拟化支持系统进一步规定对访问的限制并且依据该限制控制对客户-物理存储器的存储单元的访问。
23、如权利要求21所述的系统,其中存储器虚拟化支持系统进一步对主-物理存储器进行划分。
24、如权利要求22所述的系统,其中响应于违反限制访问存储器的尝试,虚拟化支持系统转变到虚拟机监控器。
25、如权利要求21所述的系统,其中扩展分页表进一步将对分页表中条目的引用从客户-物理存储器地址映射到主-物理存储器地址。
26、如权利要求25所述的系统,其中扩展分页表指定对客户-物理存储器的页面的访问限制。
27、如权利要求26所述的系统,其中对客户-物理存储器的页面的访问限制包括以下至少之一:
读取访问控制信息,
写入访问控制信息,和
执行访问控制信息。
28、如权利要求26所述的系统,其中虚拟化支持系统响应于违反对客户-物理存储器的页面的访问限制,而转变到虚拟机监控器。
29、如权利要求25所述的系统,其中扩展分页表包括多级扩展分页表。
30、如权利要求21所述的系统,其中只有当虚拟化系统的标志设为预定值时,响应于处理器的虚拟化系统的激活而激活存储器虚拟化支持系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/036736 | 2005-01-14 | ||
US11/036,736 US7886126B2 (en) | 2005-01-14 | 2005-01-14 | Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101354623A Division CN101533358B (zh) | 2005-01-14 | 2006-01-13 | 虚拟化虚拟机系统中的物理存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1811714A CN1811714A (zh) | 2006-08-02 |
CN100501680C true CN100501680C (zh) | 2009-06-17 |
Family
ID=36175192
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100040273A Active CN100501680C (zh) | 2005-01-14 | 2006-01-13 | 虚拟化虚拟机系统中的物理存储器 |
CN2009101354623A Active CN101533358B (zh) | 2005-01-14 | 2006-01-13 | 虚拟化虚拟机系统中的物理存储器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101354623A Active CN101533358B (zh) | 2005-01-14 | 2006-01-13 | 虚拟化虚拟机系统中的物理存储器 |
Country Status (8)
Country | Link |
---|---|
US (5) | US7886126B2 (zh) |
EP (5) | EP1681630A1 (zh) |
JP (4) | JP2006196005A (zh) |
KR (1) | KR100831488B1 (zh) |
CN (2) | CN100501680C (zh) |
ES (1) | ES2907805T3 (zh) |
PL (1) | PL3572937T3 (zh) |
TW (1) | TWI308720B (zh) |
Families Citing this family (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706942B2 (en) * | 2004-12-29 | 2014-04-22 | Intel Corporation | Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices |
US7886126B2 (en) | 2005-01-14 | 2011-02-08 | Intel Corporation | Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system |
US8214830B2 (en) * | 2005-01-19 | 2012-07-03 | Intel Corporation | Performance in a virtualization architecture with a processor abstraction layer |
US7428626B2 (en) * | 2005-03-08 | 2008-09-23 | Microsoft Corporation | Method and system for a second level address translation in a virtual machine environment |
US20060259896A1 (en) * | 2005-05-16 | 2006-11-16 | Microsoft Corporation | Maintaining reproducibility across multiple software builds |
US8387049B2 (en) * | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
US7926054B2 (en) * | 2006-03-03 | 2011-04-12 | Novell, Inc. | System, method, and computer-readable medium for virtual machine instantiation from an external peripheral device |
US7716446B1 (en) | 2006-04-27 | 2010-05-11 | Vmware, Inc. | System and method for cooperative virtual machine memory scheduling |
US7555628B2 (en) * | 2006-08-15 | 2009-06-30 | Intel Corporation | Synchronizing a translation lookaside buffer to an extended paging table |
US8949295B2 (en) | 2006-09-21 | 2015-02-03 | Vmware, Inc. | Cooperative memory resource management via application-level balloon |
US7882318B2 (en) * | 2006-09-29 | 2011-02-01 | Intel Corporation | Tamper protection of software agents operating in a vitual technology environment methods and apparatuses |
US7802050B2 (en) | 2006-09-29 | 2010-09-21 | Intel Corporation | Monitoring a target agent execution pattern on a VT-enabled system |
US8336046B2 (en) * | 2006-12-29 | 2012-12-18 | Intel Corporation | Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources |
WO2008086317A2 (en) * | 2007-01-05 | 2008-07-17 | Moka5, Inc. | Symbiotic smart peripherals |
KR100864834B1 (ko) * | 2007-04-30 | 2008-10-23 | 한국전자통신연구원 | 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법 |
JP4897578B2 (ja) | 2007-06-06 | 2012-03-14 | 株式会社日立製作所 | 仮想計算機の制御プログラムおよび仮想計算機システム |
US7925802B2 (en) * | 2007-06-21 | 2011-04-12 | Seamicro Corp. | Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric |
CN101399830B (zh) * | 2007-09-29 | 2012-06-06 | 联想(北京)有限公司 | 虚拟机系统及其共享以太网点对点协议链接的方法 |
JP2009104555A (ja) * | 2007-10-25 | 2009-05-14 | Intel Corp | Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置 |
US8522236B2 (en) * | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
US8230155B2 (en) | 2008-06-26 | 2012-07-24 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US8151032B2 (en) * | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US9740517B2 (en) * | 2008-12-29 | 2017-08-22 | Microsoft Technology Licensing, Llc | Dynamic virtual machine memory management |
JP4769308B2 (ja) * | 2009-01-20 | 2011-09-07 | 株式会社東芝 | 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法 |
US8271450B2 (en) * | 2009-10-01 | 2012-09-18 | Vmware, Inc. | Monitoring a data structure in a virtual machine and determining if memory pages containing the data structure are swapped into or out of guest physical memory |
US8583875B1 (en) | 2010-07-13 | 2013-11-12 | Vmware, Inc. | Efficient readable ballooning of guest memory by backing balloon pages with a shared page |
US8751781B2 (en) | 2010-05-28 | 2014-06-10 | Dell Products, Lp | System and method for supporting secure subsystems in a client hosted virtualization system |
US9134990B2 (en) | 2010-05-28 | 2015-09-15 | Dell Products, Lp | System and method for implementing a secure client hosted virtualization service layer in an information handling system |
US8527761B2 (en) | 2010-05-28 | 2013-09-03 | Dell Products, Lp | System and method for fuse enablement of a secure client hosted virtualization in an information handling system |
US8990584B2 (en) | 2010-05-28 | 2015-03-24 | Dell Products, Lp | System and method for supporting task oriented devices in a client hosted virtualization system |
US8639923B2 (en) | 2010-05-28 | 2014-01-28 | Dell Products, Lp | System and method for component authentication of a secure client hosted virtualization in an information handling system |
US8938774B2 (en) | 2010-05-28 | 2015-01-20 | Dell Products, Lp | System and method for I/O port assignment and security policy application in a client hosted virtualization system |
US8589702B2 (en) | 2010-05-28 | 2013-11-19 | Dell Products, Lp | System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system |
US8719557B2 (en) | 2010-05-28 | 2014-05-06 | Dell Products, Lp | System and method for secure client hosted virtualization in an information handling system |
US8458490B2 (en) | 2010-05-28 | 2013-06-04 | Dell Products, Lp | System and method for supporting full volume encryption devices in a client hosted virtualization system |
KR101077904B1 (ko) * | 2010-07-12 | 2011-10-31 | (주)이더블유비엠코리아 | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
KR101671494B1 (ko) | 2010-10-08 | 2016-11-02 | 삼성전자주식회사 | 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법 |
CN102075389B (zh) * | 2011-01-27 | 2013-02-20 | 大唐移动通信设备有限公司 | 一种调试方法和设备 |
US8479295B2 (en) * | 2011-03-30 | 2013-07-02 | Intel Corporation | Method and apparatus for transparently instrumenting an application program |
US8966477B2 (en) | 2011-04-18 | 2015-02-24 | Intel Corporation | Combined virtual graphics device |
CN102999393B (zh) * | 2011-09-13 | 2016-03-02 | 联想(北京)有限公司 | 一种数据传输的方法、装置及电子设备 |
US9146785B2 (en) * | 2011-09-14 | 2015-09-29 | Microsoft Technology Licensing, Llc | Application acceleration in a virtualized environment |
US8782351B2 (en) | 2011-10-13 | 2014-07-15 | International Business Machines Corporation | Protecting memory of a virtual guest |
US8788763B2 (en) | 2011-10-13 | 2014-07-22 | International Business Machines Corporation | Protecting memory of a virtual guest |
WO2013074071A1 (en) * | 2011-11-14 | 2013-05-23 | Intel Corporation | Regulating access to and protecting portions of applications of virtual machines |
US8726404B2 (en) | 2011-11-14 | 2014-05-13 | Intel Corporation | Regulating access to and protecting portions of applications of virtual machines |
EP2605132B1 (de) * | 2011-12-13 | 2018-05-09 | Siemens Aktiengesellschaft | Verfahren für eine Verwaltung von Speicher eines Computers mit zumindest einer virtuellen Maschine |
US9171146B2 (en) | 2011-12-14 | 2015-10-27 | Intel Corporation | Method and system for monitoring calls to an application program interface (API) function |
CN102521054B (zh) * | 2011-12-15 | 2013-07-17 | 中国人民解放军国防科学技术大学 | 一种sun4v架构下的虚拟机DMA资源分配方法 |
US9141559B2 (en) | 2012-01-04 | 2015-09-22 | Intel Corporation | Increasing virtual-memory efficiencies |
US8719546B2 (en) * | 2012-01-04 | 2014-05-06 | Intel Corporation | Substitute virtualized-memory page tables |
EP2801026A4 (en) * | 2012-01-04 | 2015-08-12 | Intel Corp | TABLES OF VIRTUALIZED SUBSTITUTION MEMORY PAGES |
EP2801025B1 (en) * | 2012-01-04 | 2018-10-24 | Intel Corporation | Increasing virtual-memory efficiencies |
US20130219146A1 (en) * | 2012-02-16 | 2013-08-22 | Micron Technology, Inc. | Method, device and system for a configurable address space for non-volatile memory |
WO2013125222A1 (ja) | 2012-02-22 | 2013-08-29 | パナソニック株式会社 | 仮想計算機システム、秘匿情報保護方法及び秘匿情報保護プログラム |
KR20130101693A (ko) * | 2012-03-06 | 2013-09-16 | 삼성전자주식회사 | 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치 |
JP5862408B2 (ja) * | 2012-03-27 | 2016-02-16 | 富士通株式会社 | エミュレーション装置、及びエミュレーションプログラム |
US9852054B2 (en) | 2012-04-30 | 2017-12-26 | Vmware, Inc. | Elastic caching for Java virtual machines |
US10152409B2 (en) | 2012-04-30 | 2018-12-11 | Vmware, Inc. | Hybrid in-heap out-of-heap ballooning for java virtual machines |
US9015203B2 (en) | 2012-05-31 | 2015-04-21 | Vmware, Inc. | Balloon object feedback for Java Virtual Machines |
US9940228B2 (en) | 2012-06-14 | 2018-04-10 | Vmware, Inc. | Proactive memory reclamation for java virtual machines |
US9330013B2 (en) * | 2012-06-28 | 2016-05-03 | Industrial Technology Research Institute | Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith |
US9477505B2 (en) * | 2012-08-14 | 2016-10-25 | Oracle International Corporation | Method for reducing the overhead associated with a virtual machine exit when handling instructions related to descriptor tables |
US10187452B2 (en) | 2012-08-23 | 2019-01-22 | TidalScale, Inc. | Hierarchical dynamic scheduling |
US9769123B2 (en) * | 2012-09-06 | 2017-09-19 | Intel Corporation | Mitigating unauthorized access to data traffic |
US9037823B2 (en) * | 2012-09-14 | 2015-05-19 | Intel Corporation | Protecting IAT/EAT hooks from rootkit attacks using new CPU assists |
US9069669B2 (en) * | 2012-10-11 | 2015-06-30 | Industrial Technology Research Institute | Method and computer system for memory management on virtual machine |
US10310973B2 (en) * | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US9015523B2 (en) * | 2012-12-20 | 2015-04-21 | Intel Corporation | Memory allocation for virtual machines using memory map |
US9330026B2 (en) * | 2013-03-05 | 2016-05-03 | Qualcomm Incorporated | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) |
KR102069273B1 (ko) | 2013-03-11 | 2020-01-22 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작방법 |
DE102013022169A1 (de) | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
US11487673B2 (en) | 2013-03-14 | 2022-11-01 | Nvidia Corporation | Fault buffer for tracking page faults in unified virtual memory system |
US20140281366A1 (en) * | 2013-03-15 | 2014-09-18 | Cognitive Electronics, Inc. | Address translation in a system using memory striping |
US10324863B2 (en) | 2013-06-24 | 2019-06-18 | Intel Corporation | Protected memory view for nested page table access by virtual machine guests |
US10055254B2 (en) | 2013-07-12 | 2018-08-21 | Bluedata Software, Inc. | Accelerated data operations in virtual environments |
WO2015069280A1 (en) * | 2013-11-08 | 2015-05-14 | Empire Technology Development, Llc | Memory deduplication masking |
TWI497296B (zh) * | 2013-12-04 | 2015-08-21 | Univ Nat Taiwan | 記憶體配置與分頁位址轉換系統及方法 |
US20150261688A1 (en) * | 2014-03-14 | 2015-09-17 | International Business Machines Corporation | Extended page table for i/o address translation |
WO2015145620A1 (ja) * | 2014-03-26 | 2015-10-01 | 株式会社日立製作所 | 計算機及びアドレス変換方法 |
FR3020160B1 (fr) * | 2014-04-16 | 2017-08-11 | Commissariat Energie Atomique | Systeme d'execution de code avec mecanisme d'hypervision en aveugle |
US9501222B2 (en) | 2014-05-09 | 2016-11-22 | Micron Technology, Inc. | Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction |
US9940458B2 (en) | 2014-08-07 | 2018-04-10 | Empire Technology Development Llc | Flag based threat detection |
US9703703B2 (en) * | 2014-12-23 | 2017-07-11 | Intel Corporation | Control of entry into protected memory views |
US9715410B2 (en) * | 2015-01-30 | 2017-07-25 | Red Hat Israel, Ltd. | Protected virtual machine function access |
CN104657086B (zh) * | 2015-02-02 | 2019-01-04 | 曙光云计算集团有限公司 | 云服务器的数据存储方法和系统 |
US9495303B2 (en) * | 2015-02-03 | 2016-11-15 | Intel Corporation | Fine grained address remapping for virtualization |
US9619401B2 (en) * | 2015-02-20 | 2017-04-11 | Wisconsin Alumni Research Foundation | Efficient memory management system for computers supporting virtual machines |
US20160246715A1 (en) * | 2015-02-23 | 2016-08-25 | Advanced Micro Devices, Inc. | Memory module with volatile and non-volatile storage arrays |
US9710393B2 (en) | 2015-06-25 | 2017-07-18 | Intel Corporation | Dynamic page table edit control |
US10474489B2 (en) | 2015-06-26 | 2019-11-12 | Intel Corporation | Techniques to run one or more containers on a virtual machine |
US9665373B2 (en) | 2015-06-26 | 2017-05-30 | Intel Corporation | Protecting confidential data with transactional processing in execute-only memory |
WO2017022014A1 (ja) * | 2015-07-31 | 2017-02-09 | 株式会社日立製作所 | 仮想計算機システムの制御方法及び仮想計算機システム |
US9946566B2 (en) | 2015-09-28 | 2018-04-17 | Intel Corporation | Method and apparatus for light-weight virtualization contexts |
US10055242B2 (en) | 2015-10-16 | 2018-08-21 | Microsoft Technology Licensing, Llc | Virtualizing audio decoding hardware |
US20170220466A1 (en) * | 2016-01-30 | 2017-08-03 | Intel Corporation | Sharing a guest physical address space among virtualized contexts |
US10515023B2 (en) | 2016-02-29 | 2019-12-24 | Intel Corporation | System for address mapping and translation protection |
US12248560B2 (en) * | 2016-03-07 | 2025-03-11 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US10241931B2 (en) * | 2016-07-29 | 2019-03-26 | Advanced Micro Devices, Inc. | Controlling access to pages in a memory in a computing device |
US10169244B2 (en) | 2016-07-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Controlling access to pages in a memory in a computing device |
US10353736B2 (en) * | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
US10983821B2 (en) * | 2016-09-26 | 2021-04-20 | Intel Corporation | Apparatus and method for a hybrid layer of address mapping for a virtualized input/output (I/O) implementation |
US11099894B2 (en) | 2016-09-28 | 2021-08-24 | Amazon Technologies, Inc. | Intermediate host integrated circuit between virtual machine instance and customer programmable logic |
US10338135B2 (en) * | 2016-09-28 | 2019-07-02 | Amazon Technologies, Inc. | Extracting debug information from FPGAs in multi-tenant environments |
US10162921B2 (en) | 2016-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Logic repository service |
US10282330B2 (en) | 2016-09-29 | 2019-05-07 | Amazon Technologies, Inc. | Configurable logic platform with multiple reconfigurable regions |
US10250572B2 (en) | 2016-09-29 | 2019-04-02 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
US10642492B2 (en) | 2016-09-30 | 2020-05-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
US11115293B2 (en) | 2016-11-17 | 2021-09-07 | Amazon Technologies, Inc. | Networked programmable logic service provider |
US10866909B2 (en) * | 2017-06-26 | 2020-12-15 | Intel Corporation | Technologies for protecting virtual machine memory |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
CN109426739B (zh) * | 2017-09-01 | 2020-10-30 | 龙芯中科技术有限公司 | 处理器和空指针攻击检测方法 |
US11194735B2 (en) * | 2017-09-29 | 2021-12-07 | Intel Corporation | Technologies for flexible virtual function queue assignment |
US12117940B2 (en) | 2017-12-05 | 2024-10-15 | Red Hat, Inc. | Host address space identifier for non-uniform memory access locality in virtual machines |
US10613990B2 (en) | 2017-12-05 | 2020-04-07 | Red Hat, Inc. | Host address space identifier for non-uniform memory access locality in virtual machines |
WO2019173937A1 (en) * | 2018-03-12 | 2019-09-19 | Intel Corporation | Improved memory-mapped input/output (mmio) region access |
US11269992B2 (en) * | 2018-03-22 | 2022-03-08 | Trulyprotect Oy | Systems and methods for hypervisor-based protection of code |
US11500665B2 (en) | 2018-08-30 | 2022-11-15 | Micron Technology, Inc. | Dynamic configuration of a computer processor based on the presence of a hypervisor |
US11182507B2 (en) | 2018-08-30 | 2021-11-23 | Micron Technology, Inc. | Domain crossing in executing instructions in computer processors |
US10915465B2 (en) | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory configured to store predefined set of domain registers for instructions being executed in computer processors |
US11481241B2 (en) * | 2018-08-30 | 2022-10-25 | Micron Technology, Inc. | Virtual machine register in a computer processor |
US10942863B2 (en) | 2018-08-30 | 2021-03-09 | Micron Technology, Inc. | Security configurations in page table entries for execution domains using a sandbox application operation |
US11914726B2 (en) | 2018-08-30 | 2024-02-27 | Micron Technology, Inc. | Access control for processor registers based on execution domains |
US10915457B2 (en) * | 2018-08-30 | 2021-02-09 | Micron Technology, Inc. | Memory access control through permissions specified in page table entries for execution domains |
US10997083B2 (en) * | 2018-09-04 | 2021-05-04 | Arm Limited | Parallel page table entry access when performing address translations |
US11954026B1 (en) * | 2018-09-18 | 2024-04-09 | Advanced Micro Devices, Inc. | Paging hierarchies for extended page tables and extended page attributes |
US10769076B2 (en) | 2018-11-21 | 2020-09-08 | Nvidia Corporation | Distributed address translation in a multi-node interconnect fabric |
US10901911B2 (en) | 2018-11-21 | 2021-01-26 | Microsoft Technology Licensing, Llc | Faster computer memory access by reducing SLAT fragmentation |
US11099874B2 (en) * | 2019-01-28 | 2021-08-24 | Red Hat Israel, Ltd. | Efficient userspace driver isolation by shallow virtual machines |
US11531627B2 (en) | 2019-03-08 | 2022-12-20 | International Business Machines Corporation | Secure storage isolation |
US11640361B2 (en) * | 2019-03-08 | 2023-05-02 | International Business Machines Corporation | Sharing secure memory across multiple security domains |
US11226904B2 (en) * | 2019-04-26 | 2022-01-18 | Hewlett Packard Enterprise Development Lp | Cache data location system |
CN110442425B (zh) * | 2019-07-19 | 2022-04-08 | 南京芯驰半导体科技有限公司 | 一种虚拟化地址空间隔离系统及方法 |
US11243801B2 (en) | 2020-03-26 | 2022-02-08 | Red Hat, Inc. | Transparent huge pages support for encrypted virtual machines |
GB2595479B (en) * | 2020-05-27 | 2022-10-19 | Advanced Risc Mach Ltd | Apparatus and method |
US11556513B2 (en) | 2020-06-30 | 2023-01-17 | Hewlett Packard Enterprise Development Lp | Generating snapshots of a key-value index |
US11461299B2 (en) | 2020-06-30 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Key-value index with node buffers |
US11461240B2 (en) | 2020-10-01 | 2022-10-04 | Hewlett Packard Enterprise Development Lp | Metadata cache for storing manifest portion |
CN114461536A (zh) * | 2020-11-10 | 2022-05-10 | 瑞昱半导体股份有限公司 | 查找表建立及内存地址查询方法 |
US12061923B2 (en) * | 2020-12-09 | 2024-08-13 | Mediatek Inc. | Memory protection for virtual machines |
GB2604629B (en) * | 2021-03-10 | 2023-06-07 | Imagination Tech Ltd | A computer system and method using a first page table and a second page table |
US11487451B2 (en) * | 2021-03-15 | 2022-11-01 | TidalScale, Inc. | Fast restart of large memory systems |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4430705A (en) * | 1980-05-23 | 1984-02-07 | International Business Machines Corp. | Authorization mechanism for establishing addressability to information in another address space |
US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
JPS59132483A (ja) * | 1983-08-12 | 1984-07-30 | Hitachi Ltd | アドレス変換装置 |
US4695950A (en) * | 1984-09-17 | 1987-09-22 | International Business Machines Corporation | Fast two-level dynamic address translation method and means |
JPS6184754A (ja) * | 1984-10-03 | 1986-04-30 | Hitachi Ltd | 拡張アドレス変換装置 |
JPH0731609B2 (ja) * | 1985-09-18 | 1995-04-10 | 日本電気株式会社 | Vmモード変更装置 |
JP2507756B2 (ja) * | 1987-10-05 | 1996-06-19 | 株式会社日立製作所 | 情報処理装置 |
US5109496A (en) * | 1989-09-27 | 1992-04-28 | International Business Machines Corporation | Most recently used address translation system with least recently used (LRU) replacement |
JPH03192445A (ja) * | 1989-12-22 | 1991-08-22 | Hitachi Ltd | 仮想計算機システム |
US5317705A (en) * | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
JPH04357540A (ja) * | 1991-03-28 | 1992-12-10 | Ricoh Co Ltd | マップドファイル仮想記憶方式 |
US5675762A (en) | 1992-04-03 | 1997-10-07 | International Business Machines Corporation | System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down |
JPH06110715A (ja) * | 1992-09-25 | 1994-04-22 | Hitachi Ltd | 仮想計算機システムにおける計算機資源の動的割付け方法 |
US5765207A (en) | 1993-06-22 | 1998-06-09 | International Business Machines Corporation | Recursive hardware state machine |
US6189074B1 (en) * | 1997-03-19 | 2001-02-13 | Advanced Micro Devices, Inc. | Mechanism for storing system level attributes in a translation lookaside buffer |
JP3607540B2 (ja) | 1999-08-18 | 2005-01-05 | エヌイーシーシステムテクノロジー株式会社 | プログラム単位メモリアクセス属性管理方式 |
US6393544B1 (en) * | 1999-10-31 | 2002-05-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for calculating a page table index from a virtual address |
US6651132B1 (en) * | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
US6907600B2 (en) * | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US6643759B2 (en) * | 2001-03-30 | 2003-11-04 | Mips Technologies, Inc. | Mechanism to extend computer memory protection schemes |
DE10127198A1 (de) * | 2001-06-05 | 2002-12-19 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten |
US6671791B1 (en) * | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
US6792521B2 (en) * | 2001-10-16 | 2004-09-14 | International Business Machines Corporation | Behavioral memory mechanism for a data processing system |
DE10208765A1 (de) | 2002-02-28 | 2003-09-18 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung |
US7124327B2 (en) | 2002-06-29 | 2006-10-17 | Intel Corporation | Control over faults occurring during the operation of guest software in the virtual-machine architecture |
US6996748B2 (en) * | 2002-06-29 | 2006-02-07 | Intel Corporation | Handling faults associated with operation of guest software in the virtual-machine architecture |
US7953588B2 (en) * | 2002-09-17 | 2011-05-31 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host |
US6895491B2 (en) * | 2002-09-26 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching |
US6970990B2 (en) | 2002-09-30 | 2005-11-29 | International Business Machines Corporation | Virtual mode virtual memory manager method and apparatus |
US6915405B2 (en) * | 2002-12-04 | 2005-07-05 | Bull Hn Information Systems Inc. | Emulated target associative memory system with a multi-digit incrementable validity counter |
US7073042B2 (en) * | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US7111145B1 (en) * | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US6981125B2 (en) * | 2003-04-22 | 2005-12-27 | International Business Machines Corporation | Method and apparatus for managing shared virtual storage in an information handling system |
US7409487B1 (en) * | 2003-06-30 | 2008-08-05 | Vmware, Inc. | Virtualization system for computers that use address space indentifiers |
US7451443B2 (en) * | 2003-10-01 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Online computer maintenance utilizing a virtual machine monitor |
US7376949B2 (en) * | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
US7552426B2 (en) * | 2003-10-14 | 2009-06-23 | Microsoft Corporation | Systems and methods for using synthetic instructions in a virtual machine |
US7222221B1 (en) * | 2004-02-06 | 2007-05-22 | Vmware, Inc. | Maintaining coherency of derived data in a computer system |
US7206915B2 (en) * | 2004-06-03 | 2007-04-17 | Emc Corp | Virtual space manager for computer having a physical address extension feature |
US7260702B2 (en) * | 2004-06-30 | 2007-08-21 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US7886293B2 (en) * | 2004-07-07 | 2011-02-08 | Intel Corporation | Optimizing system behavior in a virtual machine environment |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7330942B2 (en) * | 2004-07-31 | 2008-02-12 | Hewlett-Packard Development Company, L.P. | Method for efficient virtualization of physical memory in a virtual-machine monitor |
US7281102B1 (en) * | 2004-08-12 | 2007-10-09 | Vmware, Inc. | Restricting memory access to protect data when sharing a common address space |
US7340582B2 (en) * | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
US9058292B2 (en) * | 2004-12-29 | 2015-06-16 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US7810083B2 (en) * | 2004-12-30 | 2010-10-05 | Intel Corporation | Mechanism to emulate user-level multithreading on an OS-sequestered sequencer |
US7886126B2 (en) * | 2005-01-14 | 2011-02-08 | Intel Corporation | Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system |
US7428626B2 (en) | 2005-03-08 | 2008-09-23 | Microsoft Corporation | Method and system for a second level address translation in a virtual machine environment |
US7363463B2 (en) * | 2005-05-13 | 2008-04-22 | Microsoft Corporation | Method and system for caching address translations from multiple address spaces in virtual machines |
-
2005
- 2005-01-14 US US11/036,736 patent/US7886126B2/en not_active Expired - Lifetime
-
2006
- 2006-01-09 TW TW095100745A patent/TWI308720B/zh active
- 2006-01-10 EP EP06250089A patent/EP1681630A1/en not_active Ceased
- 2006-01-10 PL PL19160715T patent/PL3572937T3/pl unknown
- 2006-01-10 EP EP15156582.7A patent/EP2988216B1/en active Active
- 2006-01-10 EP EP21163280.7A patent/EP3905039B1/en active Active
- 2006-01-10 EP EP19160715.9A patent/EP3572937B1/en active Active
- 2006-01-10 ES ES19160715T patent/ES2907805T3/es active Active
- 2006-01-10 EP EP10183511A patent/EP2275932A1/en not_active Withdrawn
- 2006-01-13 CN CNB2006100040273A patent/CN100501680C/zh active Active
- 2006-01-13 JP JP2006006606A patent/JP2006196005A/ja active Pending
- 2006-01-13 KR KR1020060004080A patent/KR100831488B1/ko active IP Right Grant
- 2006-01-13 CN CN2009101354623A patent/CN101533358B/zh active Active
-
2010
- 2010-03-10 JP JP2010053073A patent/JP5611622B2/ja active Active
- 2010-12-17 US US12/971,911 patent/US8533428B2/en not_active Expired - Lifetime
-
2011
- 2011-12-06 JP JP2011266502A patent/JP5485249B2/ja active Active
-
2013
- 2013-03-15 US US13/837,822 patent/US10114767B2/en not_active Expired - Lifetime
-
2014
- 2014-07-15 JP JP2014145013A patent/JP5844434B2/ja active Active
- 2014-12-12 US US14/569,069 patent/US9164920B2/en not_active Expired - Lifetime
-
2018
- 2018-09-18 US US16/134,809 patent/US20190121751A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
ES2907805T3 (es) | 2022-04-26 |
JP5611622B2 (ja) | 2014-10-22 |
PL3572937T3 (pl) | 2022-04-04 |
US20150100717A1 (en) | 2015-04-09 |
US8533428B2 (en) | 2013-09-10 |
TWI308720B (en) | 2009-04-11 |
KR100831488B1 (ko) | 2008-05-22 |
JP5485249B2 (ja) | 2014-05-07 |
JP2010123148A (ja) | 2010-06-03 |
US10114767B2 (en) | 2018-10-30 |
US20110087822A1 (en) | 2011-04-14 |
US20190121751A1 (en) | 2019-04-25 |
KR20060083168A (ko) | 2006-07-20 |
EP2988216B1 (en) | 2019-03-06 |
US20130219143A1 (en) | 2013-08-22 |
JP2006196005A (ja) | 2006-07-27 |
US9164920B2 (en) | 2015-10-20 |
EP3905039A1 (en) | 2021-11-03 |
JP2012079333A (ja) | 2012-04-19 |
EP2988216A1 (en) | 2016-02-24 |
CN101533358B (zh) | 2013-02-06 |
CN1811714A (zh) | 2006-08-02 |
EP3572937A1 (en) | 2019-11-27 |
EP2275932A1 (en) | 2011-01-19 |
US7886126B2 (en) | 2011-02-08 |
US20060161719A1 (en) | 2006-07-20 |
CN101533358A (zh) | 2009-09-16 |
JP2014238850A (ja) | 2014-12-18 |
EP3572937B1 (en) | 2021-12-29 |
TW200636572A (en) | 2006-10-16 |
JP5844434B2 (ja) | 2016-01-20 |
EP3905039B1 (en) | 2024-09-04 |
EP1681630A1 (en) | 2006-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100501680C (zh) | 虚拟化虚拟机系统中的物理存储器 | |
CN101107593B (zh) | 支持虚拟机环境中的地址转换的方法及装置 | |
CN101814056B (zh) | 将翻译后援缓冲器同步到扩充的分页表 | |
US9684605B2 (en) | Translation lookaside buffer for guest physical addresses in a virtual machine | |
US8645665B1 (en) | Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses | |
WO2007002951A1 (en) | Virtualizing memory type | |
Achermann et al. | Physical addressing on real hardware in Isabelle/HOL | |
Han et al. | The storage system of PCM based on random access file system | |
Kokosa et al. | Low-Level Memory Management | |
Machanick | 2OS | |
CN101957775A (zh) | 用于支持多处理器虚拟机环境中的地址翻译的方法和装置 | |
Dandamudi et al. | Basic Computer Organization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |