CN101533358B - 虚拟化虚拟机系统中的物理存储器 - Google Patents

虚拟化虚拟机系统中的物理存储器 Download PDF

Info

Publication number
CN101533358B
CN101533358B CN2009101354623A CN200910135462A CN101533358B CN 101533358 B CN101533358 B CN 101533358B CN 2009101354623 A CN2009101354623 A CN 2009101354623A CN 200910135462 A CN200910135462 A CN 200910135462A CN 101533358 B CN101533358 B CN 101533358B
Authority
CN
China
Prior art keywords
address
processor
virtual machine
client
software
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
Application number
CN2009101354623A
Other languages
English (en)
Other versions
CN101533358A (zh
Inventor
S·本尼特
A·安德森
G·奈格尔
R·桑卡兰
R·乌利格
L·史密斯三世
D·罗杰斯
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 CN101533358A publication Critical patent/CN101533358A/zh
Application granted granted Critical
Publication of CN101533358B publication Critical patent/CN101533358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • 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/657Virtual address space management

Abstract

本发明涉及虚拟化虚拟机系统中的物理存储器,公开了一种处理器,包括具有存储器虚拟化支持系统的虚拟化系统,将由虚拟机上可执行的客户软件对客户-物理存储器的引用映射到对主机的主-物理存储器的引用,该客户软件在主机上也是可执行的。

Description

虚拟化虚拟机系统中的物理存储器
本申请是分案申请,其母案申请的申请号为200610004027.3,申请日为2006年1月13日,发明名称为“虚拟化虚拟机系统中的物理存储器”。
背景技术
虚拟化能使具有用于虚拟化的硬件和软件支持的单个主机呈现主机的多个抽象(abstraction),从而使主机的底层硬件似乎是一个或多个独立运行的虚拟机。因此每个虚拟机可起到独立完备的平台的作用。经常地,使用虚拟化技术来使多客户操作系梳和/或其它客户软件(guest software)并存并且显然同时地和显然独立地在多个虚拟机上执行,而实际上是在相同硬件平台上物理地执行。虚拟机可模仿主机的硬件或交替地呈现完全不同的硬件抽象。
虚拟化系统可包括控制主机的虚拟机监控器(VMM)。VMM向在虚拟机上运行的客户软件提供一组资源(例如,处理器、存储器、IO设备)。VMM可将物理主机的一些或所有部件映射到虚拟机,并且可创建全部的虚拟部件,虚拟部件在VMM中用软件模拟,包含在虚拟机中(例如,虚拟IO设备)。因此可以说是VMM向客户软件提供了“虚拟裸机”接口。VMM使用硬件虚拟化体系结构中的设备向虚拟机提供服务并且在主机上执行的多个虚拟机之间提供保护。
当客户软件在虚拟机上执行时,如果客户软件直接在硬件平台上执行,那么由客户软件执行的某些指令(例如,访问外围设备的指令)通常会直接访问硬件。在VMM支持的虚拟化系统中,这些指令会导致到VMM的转换,在这里称作虚拟机退出。VMM用适合主机硬件和主机外围设备的方式来处理软件中的这些指令,和执行客户软件的虚拟机一致。类似地,在主机中产生的某些中断和例外需由VMM来中断和管理或在传递给客户软件提供服务之前通过VMM来适应客户软件。然后,VMM将控制转换到客户软件并且虚拟机重新开始运行。从VMM到客户软件的转换在这里称作虚拟机登录(virtual machine Entry)。
公知地,在大多数操作系统上,在机器上执行的程序可使用虚拟地址空间,虚拟地址空间是底层物理存储器系统的抽象。本领域公知地,当术语虚拟用在存储器管理的上下文中例如“虚拟地址”、“虚拟地址空间”、“虚拟存储器地址”或“虚拟存储器空间”时,指的是基于处理器的系统的公知技术,通常和操作系统结合,将底层物理存储器的抽象呈现给在基于处理器的系统上执行的过程(process)。例如,过程可访问虚拟的、连续的和线性的地址空间抽象,由底层操作系统将地址空间抽象映射到非线性的和非连续的物理存储器。虚拟的这种使用区别于同样的术语在虚拟化的上下文中的使用,在后者情况下虚拟通常指的是模拟物理机器的抽象,例如“虚拟机”、“虚拟裸机”、“虚拟硬件”、“虚拟处理器”或“虚拟网络接口”。基于这里使用术语的上下文,该术语的预期含义对本领域技术人员是明确的。
图1显示在基于处理器的系统上执行的过程,该系统包括处理器和通过总线通信耦合到处理器的存储器。参照图1,当过程105在它的虚拟地址空间115中引用(reference)存储单元110(过程虚拟存储空间)时,通过存储器管理130产生机器125的物理存储器145(机器物理存储器)中的实际地址140,可在硬件(有时合并进入处理器120)和软件(通常在机器的操作系统中)中实现存储器管理。除了其它功能,存储器管理130还将虚拟地址空间中的位置映射到机器的物理存储器中的位置。如图1所示,过程可具有和在物理机器中实际可用的存储器不同的存储器视图。在图1描述的例子中,该过程在从0到1MB的虚拟地址空间中运行,该地址空间实际上是通过存储器管理硬件和软件映射到物理存储器中的一部分,其本身具有从10到11MB的地址空间;从过程空间地址计算物理地址,可将位移135加到过程虚拟地址。从过程虚拟存储器空间到物理存储器的更复杂的映射是可能的,例如,可将相应于过程虚拟存储器的物理存储器划分成诸如页面的部分并且将其和来自物理存储器中的其它过程的页面相交织。
通常可将存储器划分成页面,每个页面包含已知数量的数据,随实施方案而变化,例如一个页面可包含4096字节的存储器。当由执行过程引用存储单元时,将它们转换成页面引用。在通常的机器中,存储器管理将对过程虚拟存储器中的页面的引用映射到机器物理存储器中的页面。一般地,存储器管理可使用页面表来指定相应于过程空间页面位置的物理页面位置。
在虚拟机环境中管理客户软件的一个方面是存储器管理。由在虚拟机中执行的客户软件来处理存储器管理对于控制诸如虚拟机监控器的系统产生了复杂性。考虑例如在32位IA-32英特
Figure G2009101354623D00021
体系结构平台(IA-32)上实现在主机上经由虚拟化执行两个虚拟机的系统。在IA-32
Figure G2009101354623D00031
Architecture SoftwareDeveloper’s Manual(英特
Figure G2009101354623D00032
软件开发者手册)(IA-32文档)中描述了该平台。IA-32平台可包含实现为IA-32处理器的部分的IA-32页面表。进一步,假设每个虚拟机本身将IA-32机器的抽象呈现给在其上执行的客户软件。在每个虚拟机上执行的客户软件可引用客户过程虚拟存储器地址,该地址又可以由客户机的存储器管理系统转换成客户-物理存储器(guest-physical memory)地址。然而,可由在主-物理存储器(host-physicalmemory)中的进一步的映射通过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或者可以是具有有限操作系统功能的拆卸(sttripped-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的操作。VMCS324是可包含客户软件303和313的状态、MM312状态、指示VMM312希望如何控制客户软件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上。
在一实施例中,在VMCS324中存储EPT控制。可替换地,EPT控制可存在于处理器318、存储器320和处理器318的组合或其他任何存储单元中。在一实施例中,为每个虚拟机302和314维持单独的EPT控制。可替换地,为两个虚拟机维持相同的EPT控制并且在每个虚拟机登录之前由VMM312更新。
在一实施例中,在存储器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)”。对于优先的资源,VMM312促进客户软件所需的功能而保留对这些优先资源的最终控制。进一步,每个客户软件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中重新开始执行。在一实施例中,客户软件使用的处理器状态部件存储在VMCS 324的客户-状态区域中,并且VMM312所需的处理器状态部件存储在VMCS 324的监控器-状态区域。在一实施例中,当从VMM 312到客户软件的转移发生时,在虚拟机退出(并且当处理虚拟机退出时可能已由VMM 312修改)保存的处理器状态部件在425恢复并且在430将控制返回给虚拟机302或314。
接着,考虑图4b。如前面所提到的,图4b描述了上述的和图4中描述的VM环境的那些运行,特别地关于扩展分页表、客户程序访问客户-物理存储器、和在一实施例中通过VMM在硬件中对EPT机制的管理。如前所述,为了清楚表达,图4b并未描述实施例中在VM环境中可能出现的所有部件或所有操作。虽然在图4a和4b中表示一小组部件和一些特定操作,但实施例中的VM环境可包括许多其他部件,并且许多其他操作会在该实施例中发生。
在图4b中描述的实施例中的VM环境的部件是客户软件303、VM302、具有物理存储器管理模块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机制的配置作为在VMM312中优先事件405的处理之后和在VM登录430之前的物理存储器管理模块326运行的一部分。在配置EPT机制中,为了启动、使其失效或另外控制EPT机制,460,VMM312可更新EPT表328和EPT控制。
当然,为使用和VM环境结合的扩展分页表,许多其他形式的处理也是可能的,例如,对于参照图3先前讨论的EPT控制和EPT表328的不同位置,多个VM、多个处理器、多个线程、多个客户和这些变化的组合,等等。
图5:图5显示了使用上面介绍的扩展页面表来处理的一个示例,当在虚拟机中的客户软件引用客户虚拟地址时最终计算主-物理地址。描述的例子显示了使用简单的32位虚拟寻址和简单页面表格式在IA-32平台中运行的客户软件。本领域技术人员可容易地扩展该例子,以理解例如,其他分页模式(例如,在客户软件中的64位寻址)、其他指令集体系结构(例如,Inter
Figure G2009101354623D00091
体系结构,例如在可从英特尔公司获得的英特尔安腾体系结构软件开发者手册中所描述的)或其他配置。
在图5中,由在虚拟机中执行的客户软件来执行对客户虚拟地址510的引用。使用在客户中激活的存储器管理机制(即,由客户操作系统来配置)来将虚拟地址转换成客户-物理地址。通过EPT在访问主-物理地址之前,将在转换中使用的每个客户-物理地址和最终产生的客户-物理地址转换成主-物理地址。在下面的讨论中详细说明该过程。
在该例子中,CR3寄存器520中的合适位502指向在客户-物理存储器中的客户页面目录表560的基址。将该值502和来自客户虚拟地址510的高位(upperbit)相结合(依据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 (20)

1.一种用于执行主机上的主机软件的处理器,所述主机软件用于控制在虚拟机上执行的客户软件的操作,所述处理器包括:
第一控制寄存器,用于存储指向第一多个页面表的第一指针以用于将第一地址转换到第二地址,第一地址在客户的线性虚拟地址空间中,第二地址在虚拟机的物理地址空间中;和
第二控制寄存器,用于存储指向第二多个页面表的第二指针以用于将第二地址转换到第三地址,第三地址在主机的物理地址空间中。
2.如权利要求1所述的处理器,其中主机软件是虚拟机监控器。
3.如权利要求1所述的处理器,其中主机软件将根据在虚拟机控制结构中所存储的数据来控制客户软件的操作。
4.如权利要求3所述的处理器,包括逻辑,所述逻辑用于根据在虚拟机控制结构中所存储的指示器来确定处理器是否将使用所述第二多个页面表来把第二地址转换到第三地址。
5.如权利要求3所述的处理器,其中第二控制寄存器被从虚拟机控制结构装载第二指针。
6.如权利要求1所述的处理器,其中第三地址是能被处理器访问的存储器中的页面的基地址。
7.如权利要求6所述的处理器,其中第二多个页面表包括许可信息。
8.如权利要求7所述的处理器,其中许可信息指示页面是否是当前的。
9.如权利要求7所述的处理器,其中许可信息指示页面是否是可写的。
10.如权利要求7所述的处理器,其中许可信息指示页面是否是可执行的。
11.一种用于执行主机上的主机软件的方法,所述主机软件用于控制在虚拟机上执行的客户软件的操作,所述方法包括:
在虚拟机上执行客户软件期间,使用处理器中的第一控制寄存器所指向的第一多个页面表来将第一地址转换到第二地址,第一地址在客户软件的线性虚拟地址空间中,第二地址在虚拟机的物理地址空间中;和
在虚拟机上执行客户软件期间,使用处理器中的第二控制寄存器所指向的第二多个页面表来将第二地址转换到第三地址,第三地址在主机的物理地址空间中。
12.如权利要求11所述的方法,其中主机软件是虚拟机监控器。
13.如权利要求11所述的方法,其中主机软件将根据在虚拟机控制结构中所存储的数据来控制客户软件的操作。
14.如权利要求13所述的方法,还包括结合处理器执行指令以用于将处理器的控制从主机软件转移到客户软件而从虚拟机控制结构加载第二控制寄存器。
15.如权利要求11所述的方法,还包括走查所述第二多个页面表以将第二地址转换到第三地址。
16.如权利要求11所述的方法,其中第三地址是能被处理器访问的存储器中的页面的基地址,并且还包括响应于页面出错而将处理器的控制从容户软件转移到主机软件。
17.一种用于执行主机上的主机软件的系统,所述主机软件用于控制在虚拟机上执行的客户软件的操作,所述系统包括:
存储器;和
处理器,包括:
第一控制寄存器,用于存储指向存储器中的第一多个页面表的第一指针以用于将第一地址转换到第二地址,第一地址在客户软件的线性虚拟地址空间中,第二地址在虚拟机的物理地址空间中;和
第二控制寄存器,用于存储指向存储器中的第二多个页面表的第二指针以用于将第二地址转换到第三地址,第三地址在主机的物理地址空间中。
18.如权利要求17所述的系统,其中主机软件将根据在存储器中的虚拟机控制结构中所存储的数据来控制客户软件的操作。
19.如权利要求18所述的系统,其中将利用第二指针从虚拟机控制结构加载第二控制寄存器。
20.如权利要求17所述的系统,其中第三地址是存储器中的页面的基地址。
CN2009101354623A 2005-01-14 2006-01-13 虚拟化虚拟机系统中的物理存储器 Active CN101533358B (zh)

Applications Claiming Priority (3)

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
US11/036,736 2005-01-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100040273A Division CN100501680C (zh) 2005-01-14 2006-01-13 虚拟化虚拟机系统中的物理存储器

Publications (2)

Publication Number Publication Date
CN101533358A CN101533358A (zh) 2009-09-16
CN101533358B true CN101533358B (zh) 2013-02-06

Family

ID=36175192

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2009101354623A Active CN101533358B (zh) 2005-01-14 2006-01-13 虚拟化虚拟机系统中的物理存储器
CNB2006100040273A Active CN100501680C (zh) 2005-01-14 2006-01-13 虚拟化虚拟机系统中的物理存储器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2006100040273A Active CN100501680C (zh) 2005-01-14 2006-01-13 虚拟化虚拟机系统中的物理存储器

Country Status (8)

Country Link
US (5) US7886126B2 (zh)
EP (5) EP3572937B1 (zh)
JP (4) JP2006196005A (zh)
KR (1) KR100831488B1 (zh)
CN (2) CN101533358B (zh)
ES (1) ES2907805T3 (zh)
PL (1) PL3572937T3 (zh)
TW (1) TWI308720B (zh)

Families Citing this family (141)

* Cited by examiner, † Cited by third party
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
US8095931B1 (en) * 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
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
US8601470B2 (en) * 2007-01-05 2013-12-03 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
US8151032B2 (en) 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8230155B2 (en) * 2008-06-26 2012-07-24 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
US8719557B2 (en) 2010-05-28 2014-05-06 Dell Products, Lp System and method for secure client hosted virtualization 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
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
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
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
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
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
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
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资源分配方法
EP2801026A4 (en) * 2012-01-04 2015-08-12 Intel Corp TABLES OF VIRTUALIZED SUBSTITUTION MEMORY PAGES
US8719546B2 (en) * 2012-01-04 2014-05-06 Intel Corporation Substitute virtualized-memory page tables
EP2801025B1 (en) * 2012-01-04 2018-10-24 Intel Corporation Increasing virtual-memory efficiencies
US9141559B2 (en) 2012-01-04 2015-09-22 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 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US10152409B2 (en) 2012-04-30 2018-12-11 Vmware, Inc. Hybrid in-heap out-of-heap ballooning for java virtual machines
US9852054B2 (en) 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching 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
US9191435B2 (en) 2012-08-23 2015-11-17 TidalScale, Inc. Selective data migration or remapping of virtual processors to provide required data accessibility to processor cores
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
US9128843B2 (en) 2012-10-11 2015-09-08 Industrial Technology Research Institute Method and computer system for memory management on virtual machine system
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
US9767036B2 (en) 2013-03-14 2017-09-19 Nvidia Corporation Page state directory for managing unified virtual memory
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
US10740148B2 (en) * 2013-07-12 2020-08-11 Hewlett Packard Enterprise Development Lp Accelerated data operations in virtual environments
US9619168B2 (en) * 2013-11-08 2017-04-11 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
US9665373B2 (en) 2015-06-26 2017-05-30 Intel Corporation Protecting confidential data with transactional processing in execute-only memory
WO2016205977A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Techniques to run one or more containers on virtual machine
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
US20210026950A1 (en) * 2016-03-07 2021-01-28 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
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
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
US10613990B2 (en) 2017-12-05 2020-04-07 Red Hat, Inc. Host address space identifier for non-uniform memory access locality in virtual machines
DE112018007268T5 (de) * 2018-03-12 2020-11-26 Intel Corporation Verbesserter speicher-abgebildeter eingabe/ausgabe (mmio) -regionszugriff
US11269992B2 (en) * 2018-03-22 2022-03-08 Trulyprotect Oy Systems and methods for hypervisor-based protection of code
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
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
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
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
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 瑞昱半导体股份有限公司 查找表建立及内存地址查询方法
US20220179677A1 (en) * 2020-12-09 2022-06-09 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492323A (zh) * 2002-09-17 2004-04-28 �Ҵ���˾ 多处理器地址转换的高效仿真方法和系统
CN1512354A (zh) * 2002-12-27 2004-07-14 英特尔公司 用于后期重映射虚拟机存储器页面的机制

Family Cites Families (50)

* Cited by examiner, † Cited by third party
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
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
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
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
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
US7376949B2 (en) * 2003-10-01 2008-05-20 Hewlett-Packard Development Company, L.P. Resource allocation and protection in a multi-virtual environment
US7451443B2 (en) * 2003-10-01 2008-11-11 Hewlett-Packard Development Company, L.P. Online computer maintenance utilizing a virtual machine monitor
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1492323A (zh) * 2002-09-17 2004-04-28 �Ҵ���˾ 多处理器地址转换的高效仿真方法和系统
CN1512354A (zh) * 2002-12-27 2004-07-14 英特尔公司 用于后期重映射虚拟机存储器页面的机制

Also Published As

Publication number Publication date
CN100501680C (zh) 2009-06-17
JP2006196005A (ja) 2006-07-27
EP1681630A1 (en) 2006-07-19
US7886126B2 (en) 2011-02-08
US8533428B2 (en) 2013-09-10
PL3572937T3 (pl) 2022-04-04
ES2907805T3 (es) 2022-04-26
EP2988216B1 (en) 2019-03-06
TW200636572A (en) 2006-10-16
JP2010123148A (ja) 2010-06-03
EP2275932A1 (en) 2011-01-19
US20150100717A1 (en) 2015-04-09
JP2012079333A (ja) 2012-04-19
JP5611622B2 (ja) 2014-10-22
US20110087822A1 (en) 2011-04-14
TWI308720B (en) 2009-04-11
US20190121751A1 (en) 2019-04-25
EP2988216A1 (en) 2016-02-24
US20060161719A1 (en) 2006-07-20
EP3572937B1 (en) 2021-12-29
US9164920B2 (en) 2015-10-20
EP3572937A1 (en) 2019-11-27
JP5485249B2 (ja) 2014-05-07
CN101533358A (zh) 2009-09-16
US20130219143A1 (en) 2013-08-22
EP3905039A1 (en) 2021-11-03
KR20060083168A (ko) 2006-07-20
CN1811714A (zh) 2006-08-02
KR100831488B1 (ko) 2008-05-22
US10114767B2 (en) 2018-10-30
JP2014238850A (ja) 2014-12-18
JP5844434B2 (ja) 2016-01-20

Similar Documents

Publication Publication Date Title
CN101533358B (zh) 虚拟化虚拟机系统中的物理存储器
CN101107593B (zh) 支持虚拟机环境中的地址转换的方法及装置
CN101814056B (zh) 将翻译后援缓冲器同步到扩充的分页表
US9684605B2 (en) Translation lookaside buffer for guest physical addresses in a virtual machine
US6895491B2 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
CN100504789C (zh) 控制虚拟机的方法
US20070005870A1 (en) Virtualizing memory type
CN104081346A (zh) 用于使用跟踪数据消除处理器间中断来支持多处理器虚拟机环境中的地址转换的方法和设备
Han et al. The storage system of PCM based on random access file system
Alvarez et al. Main Memory Management on Relational Database Systems
Chen et al. Software TLB Management Method Based on Balanced Binary Tree
Kokosa et al. Low-Level Memory Management
CN101957775A (zh) 用于支持多处理器虚拟机环境中的地址翻译的方法和装置

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