CN101488097B - 在虚拟机操作中用于管理机器状态的方法和系统 - Google Patents

在虚拟机操作中用于管理机器状态的方法和系统 Download PDF

Info

Publication number
CN101488097B
CN101488097B CN2009100098598A CN200910009859A CN101488097B CN 101488097 B CN101488097 B CN 101488097B CN 2009100098598 A CN2009100098598 A CN 2009100098598A CN 200910009859 A CN200910009859 A CN 200910009859A CN 101488097 B CN101488097 B CN 101488097B
Authority
CN
China
Prior art keywords
state
machine state
value
virtual machine
machine
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.)
Expired - Fee Related
Application number
CN2009100098598A
Other languages
English (en)
Other versions
CN101488097A (zh
Inventor
S·贝内特
G·奈格尔
E·科塔-罗布尔斯
S·耶亚辛
A·卡吉
M·科祖赫
R·乌利希
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 CN101488097A publication Critical patent/CN101488097A/zh
Application granted granted Critical
Publication of CN101488097B publication Critical patent/CN101488097B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

提供了用于控制虚拟机(VM)和虚拟机监视器(VMM)之间的转换的方法和系统。处理器在完成所述转换之前使用状态动作指示符来加载和/或存储机器状态的相关元素。所述状态动作指示符可以存储在虚拟机控制结构(VMCS)中,可以是预定的和/或动态计算的。在一些实施例中,加载的值可以从所述VMCS直接获取,可以是预定的和/或动态计算的。在一些实施例中,存储的值可以从机器状态直接获取,可以是预定的和/或动态计算的。

Description

在虚拟机操作中用于管理机器状态的方法和系统
本申请为2003年12月4日提交的题为“在虚拟机操作中用于管理机器状态的方法和系统”的中国申请200380106501.8的分案申请。
技术领域
本发明的实施例总体上涉及计算机系统,具体来讲,涉及计算机系统内虚拟机操作的操作管理和/或控制。
背景技术
虚拟机系统允许划分物理机,因此机器的底层硬件表现为一个或多个独立操作的虚拟机(VM)。虚拟机监视器(VMM)在计算机上运行,并且为其他软件提供一个或多个VM的抽象。每个VM可以起自包含平台的作用,运行其自身的操作系统(OS)和/或应用软件。把在VM内执行的软件统称为客户软件。
所述客户软件期望这样操作,就好像它是在专用计算机上而不是在VM上运行。也就是说,所述客户软件期待控制各种事件并且有权访问计算机(例如物理机)上的硬件资源。所述物理机的硬件资源可以包括一个或多个处理器、驻留在所述处理器上的资源(例如控制寄存器、高速缓冲存储器及其他)、存储器(以及驻留在存储器中的结构,例如描述符表)以及驻留在所述物理机中的其他资源(例如,输入输出设备)。所述事件可以包括中断、异常、平台事件(例如初始化(INIT)或者系统管理中断(SMI)等等)。
在需要时,所述VMM可以将客户软件状态交换进出(swap in andout)物理机的处理器、设备、存储器以及寄存器。所述处理器可以在VM和VMM之间的转换期间交换进出某些状态。在某些情况下,所述VMM可以通过允许直接访问底层的物理机来增强VM的性能。当在客户软件中正在以非特权方式执行操作时,所述方式限制对所述物理机的访问,或者当不会使用物理机中VMM希望保持控制的硬件资源来操作时,这是尤其适用的。可以认为所述VMM是所述VM的主机。
每当客户的操作可能影响VMM或者任何未执行VM的正确执行时,所述VMM恢复控制。通常,所述VMM审查这种操作,在允许所述操作进行到底层物理机或者代表客户模拟操作之前,确定是否存在问题。例如,当客户访问I/O设备时、当其试图改变机器配置(例如通过改变控制寄存器值)时、当其试图访问存储器的某些区域等等时,所述VMM可能需要恢复控制。
支持VM操作的现有物理机使用这样一种结构来控制VM的执行环境,此处将所述结构称为虚拟机控制结构(VMCS)。把所述VMCS存储在存储器的区域中,并且例如包含客户状态、VMM状态以及控制信息,所述控制信息表明在客户执行期间,在什么条件下所述VMM希望恢复控制。物理机中的一个或多个处理器读取来自于VMCS的信息,以便确定VM和VMM的执行环境,并且适当地约束客户软件的行为。
当发生转入(即,进入)VM或者转出(即,退出)VM时,所述物理机的处理器将加载并且存储机器状态。常规的体系结构执行加载并且存储指令编码和机器行为的预定状态集,如以类似于其他系统结构的方式在处理器规范中定义的那样。所述VMM被直接编码为这些规范。这种结构限制了所述VMM的实现方式的灵活性。
因此,需要用于进入和退出VM的技术的改进的实现方式。这些实现方式和技术应该允许更好地管理和控制VM操作。
发明内容
按照本发明的一个方面,提供了一种用于管理虚拟机转换的处理器,其中所述处理器用于通过评估状态动作指示符来确定所述虚拟机转换期间采取的涉及机器状态元素的适当动作。
附图说明
图1是依照本发明一个实施例的VM体系结构的图表。
图2A是依照本发明一个实施例的管理VM转换操作的流程图。
图2B是依照本发明一个实施例在VM转换期间、用于加载机器状态的方法的流程图。
图2C是依照本发明一个实施例在VM转换期间、用于存储机器状态的方法的流程图。
图3是依照本发明一个实施例在VM转换期间、用于执行加载操作的方法的流程图。
图4是依照本发明一个实施例在VM转换期间、用于执行存储操作的方法的流程图。
图5是依照本发明一个实施例在VM转换期间、用于确定状态动作指示符的值的方法流程图。
具体实施方式
现在描述在VM操作期间用于管理转换的新颖的方法、设备和系统。在随后对实施例的详细描述中参照了附图,其中它作为本发明一部分并且通过举例说明而非限制的方式示出,可以根据这些描述实施本发明的特殊实施例。这些实施例被充分详细地描述,以便使本领域普通技术人员可以理解和实现它们,然而应该理解的是,也可以利用其他实施例,并且可以在不脱离本公开内容的精神和范围的情况下,可以做出结构上、逻辑上和电气上的改变。因此,不应该将以下的详细说明认为是限制性的目的,此处所公开的本发明的实施例的范围由所附权利要求书定义。
图1举例说明了虚拟机环境100的一个实施例,其中可以操作本发明。在此实施例中,物理机110包括计算平台,它例如能够执行标准操作系统(OS)或者虚拟机监视器(VMM),例如VMM 125。虽然通常以软件来实现,不过所述VMM 125可以模拟并且向高级软件输出机器接口。这种高层软件可以包括标准的或者实时OS,可以是具有有限OS功能的高度可移去的操作环境,可不必包括传统的OS工具等等。可替换地,所述VMM 125例如可以在另一VMM内或者在其上运行。所述VMM例如可以例如以硬件、软件以及固件来实现,或者通过各种技术的组合来实现。VMM以及它们的典型特征和功能是本领域普通技术人员所熟知的。
所述物理机110可以是个人计算机(PC)、大型机、手持设备、便携式计算机、机顶盒、智能器具或者任意其他计算系统或设备。所述物理机110包括处理器112以及存储器120。另外,物理机110可以包括各种其他输入/输出设备,未示出。
所述处理器112可以是能够执行软件的任何类型的处理器,诸如微处理器、数字信号处理器、微控制器等等。所述处理器112可以包括微代码、宏代码、软件、可编程逻辑或者硬编码逻辑,用于完成本发明方法的实施例的执行。虽然图1中只示出了一个这种处理器112,但是应该理解的是,在所述系统中可以存在一个或多个处理器。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、可由处理器112读取的任何其他类型的机器介质或者是上述设备的任意组合。存储器120可以存储用于完成本发明方法实施例的执行的指令和/或数据。
所述VMM 125向其他软件(即,“客户软件”)提供一个或多个虚拟机(VM)的抽象,其可以向各个客户提供相同或不同的抽象。图1示出了三个VM,即132、142和152。在每个VM上运行的客户软件可以包括客户OS,诸如客户OS 134、144或者154,并且可以包括各种客户软件应用程序136、146和156。客户OS 134、144和154中的每一个期待访问所述VM 132、142和152中的物理资源(例如,处理器112、寄存器、存储器120和I/O设备),其上可以运行客户OS 134、144或者154并且用于处理各种事件,所述事件包括在VM 132、142和152的操作期间、由系统设备生成的中断。
所述处理器112依照存储在VMCS 122中的数据来控制VM 132、142和152的操作。可以把VMCS 122存储在存储器120中(如图1所示),存储在处理器112内,存储在任意其他位置或者存储在存储位置的任意组合中。所述VMCS 122给VMM 125和客户软件的机器状态提供存储空间。另外,它可以包括指示符来限制或者控制VM的操作,并且控制VM和所述VMM 125之间的转换。所述VMCS 122是可由所述VMM 125访问的。所述VMCS不必是存储器或者存储空间的连续区域。因此,在一些实施例中,所述VMCS可以从多个存储器或者存储位置逻辑组装并且访问。
把从VMM 125到客户软件的转换称作“VM进入”。把从客户软件到所述VMM 120的转换称作“VM退出”。把VM进入和VM退出通称为“VM转换”。在一个实施例中,VMM 125可以通过执行特殊的指令来启动VM进入以便令VM进入。在一个实施例中,可以通过所述VM来显式地请求VM退出(例如,通过执行专用指令来生成所述VM退出)。在一些实施例中,所述VM不直接请求转换,而是某些事件(例如,保护故障、中断等等)或者VM执行的指令根据所述VMCS
122中的控制或者虚拟机系统的体系结构(例如,如果在所述VMCS中设置了特殊的控制位,那么INVLPG指令的执行令VM退出;所有出现的非屏蔽中断都令VM退出)来要求VM退出。
在VM转换期间,所述处理器112可以作用于机器状态的各种元素。正如本领域普通技术人员将理解的那样,可以把机器状态与例如处理器、I/O设备、芯片组等等中的各种体系结构组件相关联。据此,本发明各种实施例的描述使用扩充了一些组件的常规意义内的短语“机器状态”,该组件按照传统不应将其视作体系结构。由此,机器状态可以包括:通用以及浮点寄存器(例如,在称为IA-32ISA的英特尔奔腾IV的指令集系统结构(ISA)中,EAX,EDX,ST3等等)、控制寄存器(例如在所述IA-32ISA中,CR0、CR3等等)、指令指针(例如,在所述IA-32ISA中,EIP)、处理标志(例如,在IA-32ISA中,EFLAGS等等)、模型特定的寄存器(MSR:Model Specific Register)(例如,在IA-32ISA中,DEBUGCTL、MTRR、TSC等等)、段寄存器(例如,在所述IA-32ISA中,CS、SS、TR等等,其包括选择器、基点(base)、限点(limit)和AR字节字段)、附加内部(体系结构或者非体系结构)机器状态(例如,休眠状态、可中断性信息、状态机状态)、涉及存储器管理的状态(例如,PDPTR、转换后备缓冲器(TLB)内容)、芯片组寄存器、I/O设备状态及其他。相应地,列表上面给出的信息的例子不是穷举,并且可以利用其他信息来扩充。此外,本领域普通技术人员很容易认识到此处提供的缩写字。
所述VM系统100提供了弹性的体系结构来实现这样一种机制,当在客户VM(例如132,142以及152)和主机VMM 125之间的转换(例如进入和退出)期间管理机器状态的加载和/或存储时,使用这种机制。
图2A举例说明了依照本发明一个实施例的用于管理VM转换操作的一种方法200的流程图。所述过程可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等)、软件(例如在通用计算机系统或者专用机上执行)或者两者的结合。
在210,所述处理器检测是否即将发生VM转换。所述VM转换可以是VM退出或者VM进入。据此,在220,执行检验以便确定所述VM转换是否为VM退出操作。
如果所述处理器处理的是VM进入,那么所述处理器可以执行多个操作,以便准备把控制从VMM转移到VM。例如,在230,所述处理器可以存储VMM机器状态,在240,加载VM机器状态,并且在最后在250,把控制转移到VM。
如果所述处理器处理的是VM退出,那么所述处理器可以执行多个操作,以便准备把控制从VM转移到VMM。例如,在260,所述处理器可以存储VM机器状态,在270,加载VMM机器状态,并且在最后在280,把控制转移到VMM。
在图2B和图2C中分别示出了在VM转换期间、加载(例如在图2的240和/或在270)并且存储(例如在图2中的230和/或在260)机器状态的方法的实施例。
应该理解的是,在VM进入或者VM退出处理期间可以发生其他动作,这些动作没有在图2A、2B和2C中描述。例如,需要确保在VM进入或者VM退出时被加载的状态的合法性和一致性。
图2B举例说明了在VM转换期间加载状态的方法202。所述方法可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如在通用计算机系统或者专用机上执行)或者两者的结合。
最初在222,它确定是否还剩余有其余需要处理的机器状态的任意元素。如果没有剩余机器状态元素要处理,那么所述方法终止。否则,在232,确定控制位值。下面详细讨论这些控制位以及它们的确定过程。如在242所确定的那样,如果没有设置所述位(该位具有0值),那么控制返回到222。否则(设置该位具有值1),那么在252,确定机器状态的相应元素的值。下面将讨论该值的确定过程。然后,在262,把此值安置在所述机器状态中。然后在222,把控制返回以便确定是否剩余更多的机器状态元素。
图2C举例说明了在VM转换期间用于存储机器状态的方法204。所述方法可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如在通用计算机系统或者专用机上执行)或者两者的结合。
最初在224,确定是否剩余有机器状态的任意元素需要处理。如果没有剩余机器状态元素要处理,那么所述方法终止。否则,在234,确定控制位值。下面详细讨论这些控制位以及它们的确定过程。如在244所确定的那样,如果没有设置所述位(该位具有0值),那么控制返回到224。否则(设置该位具有值1),那么在254,确定对应于机器状态的元素的值。下面将讨论该值的确定过程。然后在264存储此值。然后在224,把控制返回以便确定是否剩余更多的机器状态元素。
在一个实施例中,所述VMCS包括在所述VMM控制下的两组控制位。把这些控制位称为VM进入控制和VM退出控制。所述VM进入控制通知处理器在VM进入期间、应该存储什么样的VMM机器状态以及应该加载什么样的VM机器状态。所述VM退出控制通知处理器在VM退出期间、应该存储什么样的VM机器状态以及应该加载什么样的VMM机器状态。
仅仅就举例来说,可以把所述VM进入控制表示为具有长度为6的位串,其中所述位串中的每个位单元识别或者表示机器状态特定元素上的动作或者非动作。例如,所述位串中的位单元以及机器状态的相关元素可以描述如下:
  位单元   处理器动作以及相关的机器状态元素
  0   存储-VMM-DR7
  1   存储-VMM-CR3
  2   存储-VMM-CR4
  3   加载-客户-DR7
  4   加载-客户-CR3
  5   加载-客户-CR4
按类似方式,所述VM退出控制可以表示为具有长度为4的VMCS内的位串。同样,所述位串中的位单元以及机器状态元素的相关动作可以描述如下:
  位单元   处理器动作以及相关的机器状态元素
  0   存储-客户-CR3
  1   存储-客户-CR4
  2   加载-VMM-CR3
  3   加载-VMM-CR4
在VM进入时,如果所述VMM已经在所述VM进入控制(位数0)中设置了“存储-VMM-DR7”位,那么所述处理器将存储DR7寄存器的当前值。在一个实施例中,把所述DR7寄存器的值存储在所述VMCS中。反之,如果清除所述VM进入控制中的“存储-VMM-DR7”,那么所述处理器不存储所述DR7寄存器值。所述“存储-VMM-CR3”以及“存储-VMM-CR4”VM进入控制位(例如,位数分别是1和2)以类似方式表现。
同样,如果所述VMM已经设置了“加载-客户-DR7”VM进入控制位(例如,位数4),那么所述处理器将加载DR7寄存器。在一个实施例中,把加载的值包括在所述VMCS中的客户VM的DR7字段中。如果清除所述“加载-客户-DR7”VM进入控制位,那么所述处理器不加载所述DR7寄存器。此外,所述“加载-客户-CR3”以及“加载-客户-CR4”控制位(例如,位数分别为4和5)依照类似的方式来表现。所述VM退出控制位以类似方式来工作,以便控制在VM退出时客户VM机器状态的存储以及主机VMM机器状态的加载。
在此例子中,所述VM进入和VM退出控制不控制机器状态的相同元素,这是因为所述VM进入控制包括表示DR7的位,而VM退出控制不包括。然而,正如本领域中普通技术人员易于理解的是,所述VM进入和VM退出控制可以控制机器状态的相同元素,并且这种表示预定将落入本发明的各种实施例的范围内。另外,不应该把此实例中表示的机器状态的特定选择视为限制。
虽然上述提及的例子提供了理解本发明一个实施例的例证说明,但是那不意味着如此来限制本发明。例如,在所有情况下,加载的值不必是所述VMCS中的值,并且所存储的值不必是直接来自于机器状态的值(如上述实施例中所述那样)。
在上文给出的例子中,所述处理器可以从所述VMCS或者向所述VMCS加载或者存储机器状态的元素值。可替换地,所述处理器可以加载或者存储机器状态的元素的固定值。此外,所述处理器可以加载或者存储动态计算的值。最后,所述处理器可以不采取任何涉及机器状态元素的动作(不加载或者存储值)。下面将描述用于确定将加载或者存储的值的这种替代机制。
所述处理器可以加载或者存储机器状态元素的固定值(即,恒定的或者预定的)。例如,所述处理器可以在VM退出时把固定值加载到所述EFLAGS寄存器中。也就是说,没有在所述VMCS中表示的VMMEFLAGS。相反,在把控制转移到所述VMM之前,所述处理器强制处理器中的寄存器具有固定或者预定值(例如,0x2或者其他值)。以这样的方式,所述处理器被“强加”机器状态的元素值。依照类似方式,所述处理器可以强加在VM进入时存储到VMCS的值,强加在VM进入时加载到机器状态的值,和/或强加在VM退出时存储到所述VMCS的值。
以这种方式,不是所有的机器状态元素都需要在所述VMCS中被显式表示。这种技术在不需创建大型或者难控制(unruly)的VMCS的情况下,可以提供弹性的机制,以便覆盖机器状态的附加元素。另外,这种机器状态或者所存储值的强制可以通过减少对VMCS的所需访问次数并且通过减少在VM进入和/或VM退出时所需要的一致性和错误检查,来改善VM退出和VM进入的实现方式的性能。
此外,所述处理器可以计算值,该值然后被加载到机器状态或者被存储到所述VMCS中。这种计算的值是基于机器状态的一个或多个元素值、所述VMCS中包括的值等等来动态地确定。例如,在VM退出时载入到所述EIP寄存器中的值可以通过加载来自于所述VMCS的VMM EIP字段值并且加载用这个EIP值加载EIP寄存器来计算,其中所述EIP值是通过一些已计算的值来扩充的,其中所述已计算的值取决于所述VM退出的情况。
机器状态的元素的动态计算可以允许VMM更加有效的实现。例如,在上文给出的例子中,在VM退出时动态计算EIP可以允许所述VMM构造个体VM退出源的句柄(handler),以此消除对在VMM软件中解码所述退出原因的需要。
最后,所述处理器在VM转换期间可以不采取任何涉及机器状态的元素的动作。例如,当从VM转移到所述VMM时,所述处理器可以保持通用寄存器(例如,在所述IA-32ISA中EAX、EDX等等中)的值不变。
所述处理器通过评估“状态动作指示符”来确定VM转换期间采取的涉及机器状态元素的适当动作。所述状态动作指示符确定应该采取什么动作。状态动作指示符的值(“状态动作指示符值”)可以命令处理器从所述VMCS加载状态信息或者向所述VMCS存储状态信息。所述状态动作指示符值可以给处理器强加待加载或存储的固定或预定值,以便相对于被考虑的机器状态的特定元素而不采取任何动作,或者加载或者存储已计算的值。
上述的VM进入和VM退出控制是状态动作指示符的例子。在此例子中,所述处理器使用所述VMCS的字段作为状态动作指示符。在所述VM进入或者VM退出控制中的每个位对应于机器状态的单个元素。如果设置一个位,它向处理器表明应该从所述VMCS加载或者向所述VMCS存储机器状态的元素;如果将其清除,那么把机器状态的元素忽略。在可替代的实施例中,如果将要加载机器状态的元素或者强制为固定值,那么可以确定单个位。在进一步的实施例中,所述状态动作指示符可以大于单个位,并且可以编码更复杂的行为。例如,所述状态动作指示符可以是2位,允许4个值,以便区别如上所述的加载、强制、计算和忽略机制。
可以把状态动作指示符与特殊的VM转换(例如利用所有VM退出)相关联、与机器状态的特定元素(如上面详述的VM进入和VM退出控制的实施例中)相关联、和/或与机器状态的多个元素(例如,在VM退出时控制处理器中所有通用寄存器的加载的单个状态动作指示符)相关联。
状态动作指示符值可以根据从所述VMCS(如在上面例子中所述的那样)获取的值来确定,可以是固定的(即预定的)值,或者可以是动态计算的值。下面讨论这样可能性的每一个。
可以在所述VMM的控制之下把状态动作指示符存储在所述VMCS中。下面详细地讨论把状态动作指示符存储在所述VMCS中的例子。
状态动作指示符可以是预定的。如果所述状态动作指示符的值是固定的或者预定的值,那么所述VMM不能直接控制在VM转换时、处理器对机器状态对应元素采取的动作。例如,在VM进入处理期间、所述处理器可以不断地不存储EIP寄存器的值,在VM进入处理期间、从所述VMCS不断地加载所述EIP寄存器的客户值,和/或在VM退出处理期间不断地加载所述EIP寄存器。
状态动作指示符可以是动态计算的。如果所述状态动作指示符是动态计算的值,那么状态动作指示符可以取决于与机器状态的一个或多个元素、所述VMCS中的一个或多个字段等等相关联的一个或多个值。
例如,在所述IA-32ISA中,跟随VM进入或者VM退出、如果所述处理器将使用物理地址扩展(将依照PAE模式),那么所述处理器从所述VMCS加载页面目录指针表(PDPTR)的入口。如果所述处理器不会处于PAE模式,那么把所述处理器中的所述PDTR强制为0。为了确定处理器是否会处于PAE模式,所述处理器审查所述CR4寄存器中的PAE位。由此,可以说所述处理器已经做出动态确定或者计算了状态动作指示符值。如果所述PAE位被设置,那么所述状态动作指示符令所述处理器“从所述VMCS中加载”。如果所述PAE位被清除,那么所述状态动作指示符命令处理器“强制该值”(例如强制为0值)。应注意的是,此处描述的用于确定所述处理器是否将会处于PAE模式的处理被简化,以便清楚地阐明本发明的各种实施例。做出此确定需要更多的处理,这是本领域普通技术人员很容易意识到的并且理解的。
在另一例子中,如果段的选择器的值是非零的或者如果所述处理器处于V86模式,那么所述处理器可以加载段寄存器的基点与限点字段。为了做出此确定,所述处理器审查两个机器状态信息:在考虑之中的段的选择器值以及在EFLAGS寄存器中VM位的值。如果所述选择器是非零的或者如果EFLAGS中的所述VM位被设置,那么命令所述处理器“从所述VMCS加载”,否则,所述处理器不采取任何动作。应注意的是,此处描述的用于确定是否必需加载基点与限点字段的处理被简化,以便清楚地阐明本发明的各种实施例。做出此确定需要更多的处理,这是本领域普通技术人员很容易意识到的并且理解的。
正如现在对于本领域普通技术人员显而易见的那样,此处所述的方法可用于在VMM和VM之间的转换期间、动态地控制机器状态的加载和存储。通过使用VMCS和具有灵活指令逻辑的处理器可以进行进入和退出VMM的转换,如上面举例说明的那样。此外,机器状态的每个元素和由处理器采取的动作不必在所述VMCS内被肯定的声明或者单独地表示。
图3举例说明了依照本发明一个实施例在VM转换期间、用于执行机器状态元素的加载操作的方法300的流程图。图3可以在机器的处理器的设计中实现。所述方法可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如在通用计算机系统或者专用机上执行)或者两者的结合。
在310,所述处理器确定在考虑之中的机器状态元素的状态动作指示符。在320,所述处理器审查所述状态动作指示符。如果所述状态动作指示符值表明在考虑之中的机器状态的元素将要从所述VMCS中加载,那么在330,加载机器状态元素的值,并且在335,将其安装到在考虑之中的机器状态的对应元素中。然而,如果所述状态动作指示符值表明在考虑之中的机器状态的元素将要被强制,如在340所确定的那样,那么在350,所述处理器把预定的或者强制的值安装到机器状态的对应元素中。此外,所述状态动作指示符值可以表明对于在考虑之中的机器状态的元素而言,所述处理器将不会采取任何动作,在360,在这种情况下,所述处理器不采取任何动作(所述处理器不修改在考虑之中的机器状态的元素)。
如果在360评估所述状态动作指示符是否定的(它不表明就在考虑之中的机器状态的元素而论不需要动作),那么可以推断需要一种动态计算。当然,在一些实施例中,可以执行状态动作指示符的肯定检验,以便在没有做出任何推断的情况下来确定是否需要计算。据此,在370计算在考虑之中的机器状态的元素值,并且在380,将其安装在机器状态的元素内。所述处理器可以通过审查机器状态的一个或多个元素、审查所述VMCS中的值、和/或审查控制指示符值等等来动态地计算机器状态的元素值。此外,一旦完成审查,所述处理器就可以执行一个或多个转换(例如计算)以便生成在考虑之中的机器状态的元素值。由此,所述处理器可以使用各种数据并且执行各种动作,以便生成机器状态的元素值。
为机器状态的每个元素重复方法300,不过没有在图3中对其进行描述。另外,如上所述,可以把每个状态动作指示符与机器状态的一个或多个元素相关联。
图4举例说明了依照本发明一个实施例的在VM转换期间、用于执行机器状态元素的存储的方法400的流程图。所述方法400是在处理器体系结构内实现的。所述方法可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(诸如在通用计算机系统或者专用机上执行的)或者两者的结合。
在410,所述处理器确定在考虑之中的机器状态元素的状态动作指示符。在420,所述处理器审查所述状态动作指示符。如果所述状态动作指示符需要把在考虑之中的机器状态的元素存储在所述VMCS中,那么在430,把在考虑之中的机器状态的元素存储到所述VMCS的一个或多个字段中。如果情况不是这样,那么在440,检查所述状态动作指示符值,以便确定是否将要把固定值存储至所述VMCS,并且如果是这样的话,那么在450,把所述固定值存储到所述VMCS的一个或多个字段中。在一些情况下,所述状态动作指示符值可以命令处理器不执行任何动作,如在460所描述的那样。
在470,动态地确定对应于机器状态的元素的值。然后,在480,把计算的值存储到所述VMCS的一个或多个字段中。所述处理器可以通过审查机器状态的一个或多个元素,审查所述VMCS中的值和/或审查控制指示符值等,来动态地计算所述值。此外,一旦完成审查,所述处理器就可以执行一个或多个转换(例如,计算)以便产生所述计算的值,所述计算的值被存储在所述VMCS的一个或多个字段中。由此,所述处理器可以使用各种数据并且执行各种动作,以便生成计算的值。
可以为机器状态的每个元素重复方法400,不过没有在图4中对其进行描述。另外,如上所述,可以把每个状态动作指示符与机器状态的一个或多个元素相关联。
图5举例说明了依照本发明一个实施例的在VM转换操作(例如,图3中的块310和图4中的块410)期间、用于确定状态动作指示符值的方法500的流程图。所述方法可以通过处理逻辑来执行,所述逻辑可以包括硬件(例如电路、专用逻辑、可编程逻辑、微代码等等)、软件(诸如在通用计算机系统或者专用机上执行的)或者两者的结合。
在505,所述处理器确定在考虑之中的机器状态的元素、被处理的VM转换的类型以及状态加载或者存储是否正在处理。基于所确定的信息,在507,所述处理器确定所述体系结构是否规定了与机器状态的此元素相关联的状态动作指示符是固定的,从所述VMCS加载的或者计算的。
在510,如果所述状态动作指示符是固定的,那么在520,确定固定的状态动作指示符值。
在530,如果将要从所述VMCS获取状态动作指示符,那么在540,把所述状态动作指示符值从所述VMCS加载。
在550,如果将要动态地确定或者计算所述状态动作指示符,那么在550,执行所述计算过程以便确定所述状态动作指示符值。所述动态的确定或者计算过程例如可以包括:加载在所述VMCS内的各种字段(包括控制矢量字段值),审查机器状态的各种元素,审查VM和/或VMM状态的各种元素,审查一个或多个控制指示符值,和/或对审查信息的转换(例如,执行计算)。
在一些实施例中,状态动作指示符值的确定以及评估可以不是显式的。所述处理器可以依照特定情形要求特定动作的知识来设计。例如,处理器中的逻辑可以无条件地把机器状态的元素强制为特殊值,而不用显式地评估任何状态动作指示符值。因此,不应该把参照图5描述的显式检验视为限制。
本发明的实施例提供了VM转换的改善处理。这是通过在使用VMCS的所述处理器内灵活的具现处理来实现的,但是不需要完全依赖于在所述VMCS内提供的信息来执行VM转换。
现在,本领域普通技术人员将理解的是,依照本发明各种实施例的处理器的实现方式可以在VM转换期间管理并且控制机器状态的加载和存储。具体来讲,这些实施例向所述VMM提供了灵活性,以便规定在VM转换期间机器状态的加载和存储的语义,如所述体系结构允许的那样。这不必利用严格的VMCS来实现,其解决机器状态的元素的所有实例,并且不是在VM转换时机器状态的所有存储和加载都需要由所述VMM通过所述VMCS中的控制来显式地引导。
应该理解的是,上述描述是例证性的,而不是限制性的。当回顾上述描述时,许多其他的实施例对于本领域中普通技术人员是显而易见的。因此,本发明的实施例的范围应该参照所附权利要求书连同授予这种权利要求书的等价物的全部范围一起来确定。
需要强调的是,遵照37C.F.R.§1.72(b)的规定提供了摘要,该规定要求摘要允许读者快速地确定所公开的技术的特性和要旨。提交所述摘要是基于这样的认识,即不会使用它来解释或者限制权利要求书p的范围或者意义。
在上述具体实施方式中,为了公开的精练,在单个实施例中集合了各种特征。所公开的这种方法不应该被解释为反映这样的意图,即,所要求的本发明的实施例要求比在每个权利要求中清楚讲述的特征更多的特征。相反,如随后权利要求书反映的那样,发明的主题少于单个公开的实施例的所有特征。由此如下权利要求书被并入所述具体实施方式的描述,每个权利要求坚持其自身作为独立的示例性实施例。

Claims (8)

1.一种用于管理虚拟机转换的装置,包括:
用于通过评估状态动作指示符来确定所述虚拟机转换期间采取的涉及机器状态的元素的适当动作的部件,其中,一个或多个状态动作指示符的一个或多个值被使用来确定机器状态的一个或多个关联元素上的至少一个动作,以及
用于访问虚拟机控制结构的部件,所述虚拟机控制结构包括两组控制位,第一组控制位用于在进入虚拟机时识别所述机器状态的元素以便存储以及识别所述机器状态的元素以便加载,第二组控制位用于在从所述虚拟机退出时识别所述机器状态的元素以便存储以及识别所述机器状态的元素以便加载。
2.如权利要求1所述的装置,其中所述动作是将所述机器状态的元素的值存入存储器中的虚拟机控制结构。
3.如权利要求1所述的装置,其中所述动作是加载来自存储器中的虚拟机控制结构的所述机器状态的元素的值。
4.如权利要求1所述的装置,进一步包括通过下列操作之一来确定一个或多个状态动作指示符的一个或多个值的部件:
从虚拟机控制结构获取一个或多个字段值;
确定一个或多个固定值;和
计算一个或多个计算值。
5.如权利要求2所述的装置,其中在使用步骤中,至少一个动作的每一个执行如下操作中的至少一个:
把所述机器状态的一个或多个关联元素存储至虚拟机控制结构(VMCS)中的一个或多个字段;
把一个或多个固定值存储至所述虚拟机控制结构中的一个或多个字段;并且
把一个或多个计算值存储至所述虚拟机控制结构中的一个或多个字段。
6.如权利要求5所述的装置,其中在存储一个或多个计算值的步骤中,通过以下操作来确定一个或多个计算值:
审查下列至少其中一项:
所述机器状态的元素;
所述虚拟机控制结构中的值;和
控制指示符;以及
转换所审查的值以便形成所述一个或多个计算值。
7.如权利要求3所述的装置,其中在使用步骤中,至少一个动作的每一个执行如下操作的至少一个:
从虚拟机控制结构(VMCS)中的一个或多个字段加载所述机器状态的一个或多个关联元素;
把一个或多个计算出的机器状态值加载到所述机器状态的一个或多个关联元素中;并且
把一个或多个固定值加载到所述机器状态的一个或多个关联元素中。
8.如权利要求7所述的装置,其中在加载一个或多个计算出的机器状态值的步骤中,通过以下操作来确定一个或多个计算值:
审查下列至少其中一项:
所述机器状态的元素;
所述虚拟机控制结构中的值;和
控制指示符值;以及
转换所审查的值以便形成所述一个或多个计算值。
CN2009100098598A 2002-12-19 2003-12-04 在虚拟机操作中用于管理机器状态的方法和系统 Expired - Fee Related CN101488097B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/324,591 2002-12-19
US10/324,591 US7793286B2 (en) 2002-12-19 2002-12-19 Methods and systems to manage machine state in virtual machine operations
US10/324591 2002-12-19

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801065018A Division CN100472454C (zh) 2002-12-19 2003-12-04 在虚拟机操作中用于管理机器状态的方法和系统

Publications (2)

Publication Number Publication Date
CN101488097A CN101488097A (zh) 2009-07-22
CN101488097B true CN101488097B (zh) 2013-12-25

Family

ID=32593494

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2009100098598A Expired - Fee Related CN101488097B (zh) 2002-12-19 2003-12-04 在虚拟机操作中用于管理机器状态的方法和系统
CNB2003801065018A Expired - Fee Related CN100472454C (zh) 2002-12-19 2003-12-04 在虚拟机操作中用于管理机器状态的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2003801065018A Expired - Fee Related CN100472454C (zh) 2002-12-19 2003-12-04 在虚拟机操作中用于管理机器状态的方法和系统

Country Status (8)

Country Link
US (1) US7793286B2 (zh)
JP (4) JP4937514B2 (zh)
KR (1) KR100737666B1 (zh)
CN (2) CN101488097B (zh)
AU (1) AU2003298951A1 (zh)
DE (1) DE10393679B9 (zh)
TW (1) TWI253585B (zh)
WO (1) WO2004061659A2 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7802085B2 (en) * 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US7490070B2 (en) * 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
WO2006011994A2 (en) * 2004-06-26 2006-02-02 Transvirtual Systems, Llc System for emulating wang vs programs
US20060004667A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US20060064699A1 (en) * 2004-09-21 2006-03-23 Bonk Ted J Method and system for processing resource allocations
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8627315B2 (en) 2004-12-31 2014-01-07 Intel Corporation Apparatus and method for cooperative guest firmware
US7904903B2 (en) * 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
CN100420202C (zh) * 2005-10-20 2008-09-17 联想(北京)有限公司 计算机管理系统以及计算机管理方法
US7877485B2 (en) * 2005-12-02 2011-01-25 International Business Machines Corporation Maintaining session states within virtual machine environments
WO2007065307A2 (en) * 2005-12-10 2007-06-14 Intel Corporation Handling a device related operation in a virtualization environment
US7900204B2 (en) * 2005-12-30 2011-03-01 Bennett Steven M Interrupt processing in a layered virtualization architecture
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
WO2007115425A1 (en) * 2006-03-30 2007-10-18 Intel Corporation Method and apparatus for supporting heterogeneous virtualization
US8607228B2 (en) * 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
CN101154130B (zh) * 2006-09-30 2012-07-04 联想(北京)有限公司 一种虚拟机系统及其电源管理方法
CN101206582B (zh) * 2006-12-22 2010-10-06 联想(北京)有限公司 一种虚拟机系统及其处理方法
US8291410B2 (en) * 2006-12-29 2012-10-16 Intel Corporation Controlling virtual machines based on activity state
US7765374B2 (en) * 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US8296775B2 (en) * 2007-01-31 2012-10-23 Microsoft Corporation Efficient context switching of virtual processors by managing physical register states in a virtualized environment
CN101267334B (zh) * 2007-03-13 2011-01-26 联想(北京)有限公司 一种动态分配设备的方法及装置
US7975267B2 (en) * 2007-03-30 2011-07-05 Bennett Steven M Virtual interrupt processing in a layered virtualization architecture
US8099274B2 (en) * 2007-03-30 2012-01-17 International Business Machines Corporation Facilitating input/output processing of one or more guest processing systems
US8046540B2 (en) * 2007-04-26 2011-10-25 Sap Ag Shared closures on demand
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
CN101334751B (zh) * 2007-06-29 2010-04-14 联想(北京)有限公司 虚拟机监视器识别客户操作系统中进程的方法及装置
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
DE102007053474A1 (de) 2007-11-09 2009-05-14 Giesecke & Devrient Gmbh Datenträger und Verfahren zum Betreiben eines Mikroprozessors eines Datenträgers
US8839237B2 (en) * 2007-12-31 2014-09-16 Intel Corporation Method and apparatus for tamper resistant communication in a virtualization enabled platform
US8261028B2 (en) * 2007-12-31 2012-09-04 Intel Corporation Cached dirty bits for context switch consistency checks
US20100115509A1 (en) * 2008-10-31 2010-05-06 International Business Machines Corporation Power optimization via virtualization opportunity
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
CN101916207B (zh) * 2010-08-28 2013-10-09 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
US9223611B2 (en) 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
CN102609314A (zh) * 2012-01-18 2012-07-25 浪潮(北京)电子信息产业有限公司 一种虚拟机量化管理方法和系统
US9146762B2 (en) * 2012-08-23 2015-09-29 Citrix Systems, Inc. Specialized virtual machine to virtualize hardware resource for guest virtual machines
JP5608797B2 (ja) * 2013-07-31 2014-10-15 株式会社日立製作所 仮想化プログラム、仮想計算機システム及び計算機システム制御方法
DE112015006934T5 (de) * 2015-09-25 2018-06-14 Intel Corporation Verschachtelte Virtualisierung für virtuelle Maschinenexits
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10243746B2 (en) 2017-02-27 2019-03-26 Red Hat, Inc. Systems and methods for providing I/O state protections in a virtualized environment
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
CN111273969B (zh) * 2020-01-20 2021-08-10 腾讯科技(深圳)有限公司 状态切换方法、装置、设备和存储介质
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US11580035B2 (en) 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
JPS6057438A (ja) * 1983-09-08 1985-04-03 Hitachi Ltd 仮想計算機システム制御装置
JPS61184644A (ja) * 1985-02-12 1986-08-18 Hitachi Ltd 仮想計算機システム制御方式
US4740893A (en) * 1985-08-07 1988-04-26 International Business Machines Corp. Method for reducing the time for switching between programs
JPH0814795B2 (ja) * 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
JPH0754470B2 (ja) * 1986-03-24 1995-06-07 株式会社日立製作所 仮想計算機システムの制御方法
JP2523653B2 (ja) * 1987-07-08 1996-08-14 株式会社日立製作所 仮想計算機システム
JPS6474632A (en) * 1987-09-16 1989-03-20 Fujitsu Ltd Control transfer system for virtual computer
US5079737A (en) * 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5016161A (en) * 1989-04-12 1991-05-14 Sun Microsystems, Inc. Method and apparatus for the flow control of devices
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
JP2902746B2 (ja) * 1990-07-27 1999-06-07 富士通株式会社 仮想計算機制御方式
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
JPH04308940A (ja) * 1991-04-05 1992-10-30 Hitachi Ltd 仮想計算機システムにおける資源の自動割当て管理方式
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
JPH0695898A (ja) * 1992-09-16 1994-04-08 Hitachi Ltd 仮想計算機の制御方法および仮想計算機システム
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
FR2703800B1 (fr) * 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
JPH06348867A (ja) * 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
JPH0793221A (ja) * 1993-09-28 1995-04-07 Hitachi Ltd 仮想計算機システム及びその制御方法
US5459869A (en) * 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5684881A (en) * 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5539828A (en) * 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5978481A (en) * 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
JP3693721B2 (ja) * 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
US6178509B1 (en) * 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) * 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
JPH10134008A (ja) * 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) * 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US6272637B1 (en) * 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US5987557A (en) * 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6282657B1 (en) * 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
US6148379A (en) * 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6339815B1 (en) * 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6230248B1 (en) * 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US6272533B1 (en) * 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
US6321314B1 (en) * 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6158546A (en) * 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) * 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
EP1269425A2 (en) * 2000-02-25 2003-01-02 Identix Incorporated Secure transaction system
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
GB0022949D0 (en) * 2000-09-19 2000-11-01 Sgs Thomson Microelectronics Processing instruction words
US7818808B1 (en) * 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP昭62-221736A 1987.09.29

Also Published As

Publication number Publication date
AU2003298951A8 (en) 2004-07-29
JP4937514B2 (ja) 2012-05-23
JP5384605B2 (ja) 2014-01-08
JP2009163751A (ja) 2009-07-23
JP2013214325A (ja) 2013-10-17
WO2004061659A3 (en) 2005-07-28
DE10393679B4 (de) 2008-05-29
DE10393679T5 (de) 2005-10-20
KR20050085766A (ko) 2005-08-29
CN100472454C (zh) 2009-03-25
JP5746275B2 (ja) 2015-07-08
JP5068778B2 (ja) 2012-11-07
CN101488097A (zh) 2009-07-22
TWI253585B (en) 2006-04-21
KR100737666B1 (ko) 2007-07-09
WO2004061659A2 (en) 2004-07-22
US7793286B2 (en) 2010-09-07
CN1726470A (zh) 2006-01-25
TW200411537A (en) 2004-07-01
AU2003298951A1 (en) 2004-07-29
JP2006510120A (ja) 2006-03-23
US20040123288A1 (en) 2004-06-24
JP2012074074A (ja) 2012-04-12
DE10393679B9 (de) 2015-12-10

Similar Documents

Publication Publication Date Title
CN101488097B (zh) 在虚拟机操作中用于管理机器状态的方法和系统
US4347565A (en) Address control system for software simulation
TWI550516B (zh) 用於警告追蹤中斷之電腦程式產品、電腦系統及方法
US7917740B1 (en) Virtualization assist for legacy x86 floating point exception handling
Bugnion et al. Bringing virtualization to the x86 architecture with the original vmware workstation
TWI407366B (zh) 具有微代碼之微處理器、在微處理器中儲存資料的方法、以及使用於計算裝置之電腦程式產品
EP2115582B1 (en) Controlling instruction execution in a processing environment
US6895460B2 (en) Synchronization of asynchronous emulated interrupts
US8464028B2 (en) Redirection table and predictor for fetching instruction routines in a virtual machine guest
US4031517A (en) Emulation of target system interrupts through the use of counters
KR101673435B1 (ko) 공동 설계 프로세서에서 격리된 실행 환경의 생성
Wulf et al. Overview of the Hydra operating system development
TWI540510B (zh) 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法
HUE024981T2 (en) Convert a message-interrupted message to an I / O adapter event notification
CN103500137A (zh) 虚拟化性能计数器
US20110010707A1 (en) Virtual machine device and methods thereof
US10949207B2 (en) Processor core supporting a heterogeneous system instruction set architecture
US10248785B2 (en) Application memory protection using a host page table switching virtual machine function
TWI533223B (zh) 用於由一程式提供給另一程式之對警告追蹤設施之存取之電腦程式產品、電腦系統及其方法
US5408622A (en) Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion
Bian Implement a virtual development platform based on QeMU
EP2115574B1 (en) Employing a buffer to facilitate instruction execution
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPH0193831A (ja) 仮想計算機のオペランドアクセス制御方式
Gribbin Development of 360/370 Architecture-A Plain Man's View

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131225

Termination date: 20201204