CN1692332A - 处理与虚拟机体系结构中客户软件的操作相关联的故障 - Google Patents

处理与虚拟机体系结构中客户软件的操作相关联的故障 Download PDF

Info

Publication number
CN1692332A
CN1692332A CNA038199033A CN03819903A CN1692332A CN 1692332 A CN1692332 A CN 1692332A CN A038199033 A CNA038199033 A CN A038199033A CN 03819903 A CN03819903 A CN 03819903A CN 1692332 A CN1692332 A CN 1692332A
Authority
CN
China
Prior art keywords
fault
failure message
client software
page
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA038199033A
Other languages
English (en)
Other versions
CN100468324C (zh
Inventor
R·乌尔利希
A·安德森
S·贝内特
E·科塔-罗布尔斯
S·耶亚辛
A·卡吉
G·奈格尔
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 CN1692332A publication Critical patent/CN1692332A/zh
Application granted granted Critical
Publication of CN100468324C publication Critical patent/CN100468324C/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
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Abstract

在一个实施例中,接收关于与客户软件的操作相关联的故障的故障信息。此外,确定故障信息是否满足一个或多个故障过滤标准。如果该确定为肯定,则允许客户软件忽略该故障。

Description

处理与虚拟机体系结构中客户软件的操作相关联的故障
发明领域
一般来说,本发明涉及虚拟机,更具体来说,涉及处理与虚拟机体系结构中客户软件的操作相关联的故障。
发明背景
传统的虚拟机监控器(VMM)通常在计算机上运行,并为其它软件提供一个或多个虚拟机的抽象。各虚拟机可用作自含式平台,运行它自己的“客户操作系统”(即VMM接纳的操作系统(OS))和其它软件,这些统称为客户软件。客户软件预期工作起来就象它在专用计算机而不是虚拟机上运行一样。也就是说,客户软件预期控制各种事件并有权访问硬件资源。硬件资源可包括处理器驻留资源(例如控制寄存器)、驻留在存储器中的资源(例如描述符表)以及驻留在基础硬件平台上的资源(例如输入-输出装置)。事件可包括中断、异常、平台事件(例如初始化(INIT)或系统管理中断(SMI))等。
在虚拟机环境中,VMM应当能够具有对这些事件和硬件资源的最终控制,以便提供在虚拟机上运行的客户软件的适当操作,以及用于从在虚拟机上运行的客户软件及在它们之间保护。为了实现这个目的,当客户软件访问受保护资源时或者其它事件(诸如中断或异常)出现时,VMM通常接收控制。
例如,当页面错误(即与地址转换操作相关联的异常)在客户软件的操作期间出现时,控制被转移到VMM,VMM则确定客户软件或VMM本身是否需要处理页面错误。如果页面错误需要由客户软件处理,则控制重新转移到客户软件。由于不需要由VMM处理的页面错误(以及其它异常和中断)相当频繁地发生,因此存在与VMM和客户软件之间的这种控制转移相关联的大量性能成本。
附图简介
在附图的各图中通过举例而不是限制的方式来说明本发明,附图中相似的参考标号表示类似的元件,其中:
图1说明本发明可在其中工作的虚拟机环境的一个实施例;
图2是因故障而利用控制转移过滤标准过滤VM出口的过程的一个实施例的流程图;
图3-5说明因故障而利用控制转移过滤标准过滤VM出口的过程的示范实施例;
图6是因故障而利用故障过滤标准和控制转移过滤标准过滤故障和VM出口的过程的一个实施例的流程图;
图7-8说明利用故障过滤标准过滤故障的过程的示范实施例;以及
图9是定义故障过滤标准和控制转移过滤标准的过程的一个实施例的流程图。
实施例描述
描述处理与虚拟机体系结构中的客户软件的操作相关联的故障的方法和装置。为了说明,以下描述中提出了大量具体细节,以便透彻地理解本发明。然而,本领域的技术人员十分清楚,即使没有这些具体细节,也可以实施本发明。
以下详细描述的某些部分是以对计算机系统的寄存器或存储器中的数据位进行操作的算法和符号表示来提供的。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其它技术人员最有效地传达其工作实质的方式。算法在这里以及一般被认为是产生所希望结果的独立运算序列。运算是物理量的那些要求的物理处理。这些量通常但不一定采取电或磁信号的形式,它们能够被存储、传送、组合、比较以及以其它方式处理。主要为了普通使用的原因,将这些信号称作位、值、元素、符号、字符、项目、数字等,已经证明有时非常方便。
但应当记住,所有这些及类似的术语要与适当物理量相关联,并且只是应用于这些量的便捷标记。若没有明确说明,从以下论述中显而易见,在本发明中,采用诸如“处理”或“计算”或“运算”或“确定”等术语的论述可表示计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置处理表示为计算机系统的寄存器和存储器中的物理(电子)量的数据并将其转换为类似地表示为计算机系统存储器或寄存器或者其它这类信息存储、传送或显示装置中的物理量的其它数据。
在实施例的以下详细描述中,参照附图,附图以图解说明的方式示出可实施本发明的具体实施例。附图中,相似的标号描述若干视图中基本相似的元件。对这些实施例进行充分详细的描述,使本领域的技术人员能够实施本发明。可采用其它实施例,并且可进行结构、逻辑以及电气变更,而没有背离本发明的范围。此外,大家理解,本发明的各种实施例虽然有所不同,但不一定是相互排斥的。例如,在一个实施例中描述的特定功能、结构或特征可包含在其它实施例中。因此,以下详细描述不是限制性的,本发明的范围仅由所附权利要求以及这些权利要求涵盖的全部等效范围来限定。
图1说明本发明可在其中工作的虚拟机环境100的一个实施例。在此实施例中,裸平台硬件116包括计算平台,它可以例如能够运行标准操作系统(OS)或虚拟机监控器(VMM)、如VMM 112。VMM 112虽然通常以软件实现,但可模拟裸机接口并将其输出到较高层软件。这种较高层软件可包括标准或实时OS,可以是具有有限操作系统功能性的严重剥离的操作环境,可以不包括传统的OS工具,等等。或者,例如VMM 112可以在另一个VMM之中或之上运行。VMM及其典型特征和功能性是本领域的技术人员熟知的,并且可例如以软件、固件或通过各种技术的组合来实现。
平台硬件116可以属于个人计算机(PC)、大型计算机、手持装置、便携计算机、机顶盒或其它任何计算系统。平台硬件116包括处理器118、存储器120以及可能的其它未示出的平台硬件(例如输入-输出装置)。
处理器118可以是能够运行软件的任何类型的处理器,诸如微处理器、数字信号处理器、微控制器等等。处理器118可包括用于完成本发明的方法实施例运行的微码、可编程逻辑或硬编码逻辑。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、以上装置的任何组合、或者处理器118可读的其它任何类型的机器媒体。存储器120可存储用于完成本发明的方法实施例运行的指令或数据。
VMM 112为其它软件(即“客户”软件)提供一个或多个虚拟机(VM)的抽象。VMM 112可向各种客户提供相同或不同的抽象。图1表示两个这样的VM、即102和114,但VMM 112可支持多于或少于2个的VM。在各VM上运行的客户软件可包括诸如客户OS 104或106等客户OS以及各种客户软件应用程序108和110。客户OS和软件应用程序在本文中统称客户软件103和115。客户软件103和105预期访问客户软件正在其中运行的VM 102和114中的物理资源(例如处理器寄存器、存储器和I/O装置)。VMM 112便于对客户软件所需资源的访问,同时保持对平台硬件116内资源的最终控制。
此外,客户软件103和115预期处理各种事件,诸如异常、中断以及平台事件(例如初始化(INIT)和系统管理中断(SMI))。这些事件中的一部分是“特许的”,因为它们必须由VMM 112来处理,以便确保VM 102、114和客户软件103、115的正确工作,以及用于从客户软件103和115及在其之间保护。对于特许事件,VMM 112便于客户软件所需的功能性,同时保持对这些特许事件的最终控制。便于客户软件的功能性的动作可包括VMM 112的一部分上的大量活动。VMM 112的活动及其特性不应当限制本发明的范围。
除了特许事件之外,还存在大量“非特许事件”,它们在客户软件的操作期间出现,但不需要由VMM 112处理,因而不要求控制向VMM 112转移。在一个实施例中,提供一种过滤机制来区分特许事件与非特许事件。通过这种过滤机制,利用一个或多个过滤标准来评估与当前事件(例如异常)相关联的信息,从而确定对当前事件的控制是属于客户软件还是被转移到VMM 112。这些过滤标准在本文中称作控制转移过滤标准。与当前事件相关联的信息在本文中称作故障信息。
在另一个实施例中,提供一种过滤机制以识别可能被忽视的某些非特许事件,因为在当前事件时存在的其它因素表明客户软件可完成期望的操作,而不损害VMM 112或其它VM的安全性及正确操作。在此实施例中,利用一个或多个过滤标准来评估与当前事件相关联的故障信息,从而确定当前事件是否可被忽视(即,是否允许客户软件完成期望的操作)。这些过滤标准在本文中称作故障过滤标准。
在一个实施例中,过滤标准(控制转移过滤标准和/或故障过滤标准)采用在虚拟机控制结构(VMCS)122中的一个或多个指定字段中存储的数据来定义。不同的VM可采用来自不同VMCS存储映象的数据,但图1中仅示出一个这样的VMCS。VMCS 122可驻留在存储器120中,并且可由处理器118维护。应当指出,其它任何数据结构(例如芯片内高速缓存、文件、查找表等)可用来存储VMCS 122或者与过滤机制相关联的字段,而不失一般性。下面更详细地描述过滤机制的各种实施例。
在一个实施例中,如果过滤机制确定当前事件必须由VMM 112处理,则控制被转移到VMM 112。然后,VMM 112可处理该事件,以及把控制重新转移到客户软件。在一个实施例中,控制从VMM 112到客户软件的转移通过执行特殊指令来实现。控制从VMM到客户软件的转移在本文中称作VW入口,控制从客户软件到VMM的转移在本文中称作VM出口,VM出口的可能原因(例如特许的异常和中断以及特许的平台事件)在本文中称作虚拟化事件。
在一个实施例中,当VM出口出现时,控制在VMCS 122中描述的特定入口点(例如指令指针值)被传递给VMM 112。在另一个实施例中,控制在通过重定向结构(例如IntelPentiumIV的处理器指令集体系结构(ISA)中的中断描述符表(在本文中称作IA-32 ISA))引导之后被传递到VMM 112。或者,本领域已知的其它任何机制都可用来把控制从客户软件转移到VMM 112。
包括异常、中断和平台事件的特许和非特许事件在本文中称作故障。故障可由处理器上指令的执行来产生。例如,访问存储器的操作可因调页和分段保护机制而产生各种故障。各故障与故障信息相关联。故障信息可表征为动态、静态或半动态故障信息。动态故障信息在故障时或接近故障时产生。动态故障信息的实例包括误码,它由异常产生,并直接取决于出错操作的特性或者准备通过导致页面错误的写存储器操作写入存储器的数据值。
静态或半静态故障信息可能具有相同的值,而与故障的定时无关。半静态故障信息的一个实例是各种控制寄存器中很少改变的位的设定,例如IA-32 ISA中CRO寄存器中的高速缓存禁用(CD)或写保护(WP)位。静态故障信息的一个实例是处理器实现的版本(例如通过IA-32 ISA中的CPUID指令来报告那样)。
一般来说,故障信息可包括故障标识符、相关故障误码、与故障相关联的附加数据值或者这些数据项的任何组合。故障标识符可以是用来区分这个特定故障与其它故障的值。误码可包含多个值,其中每个值指示特定条件的出现。附加数据值可表示连接到出错指令或故障触发条件的其它任何数据。另外,附加数据值可表示在故障产生期间计算的数据。附加数据值的一些实例包括在故障时被请求写入特定位置的数据、在故障时被访问的地址、导致故障的指令的地址、在故障时存储器的状态等。
可参照IA-32 ISA中的页面错误来说明故障信息的一个实例。在IA-32 ISA中,页面错误由等于14的故障标识符来标识。因此,当页面错误出现时,通过经由条目14处的中断描述符表(IDT)引导到故障处理器,控制被传递到故障处理器。(产生页面错误的)被访问地址被存储在控制寄存器(CR2)中。另外,在把控制传递到故障处理器之前,页面错误产生误码,它被推入堆栈,供故障处理器使用。误码包含四位,它通知故障处理器什么条件导致页面错误。具体来说,误码中的位0表明错误是否由用于地址转换的页面表中的非当前页面引起,误码中的位1表明错误访问是否为写入,误码中的位2表明访问是否在处理器处于用户模式时被发起,以及误码中的位3表明错误是否由页面目录中设置为1的保留位引起。
附加数据值可与页面错误相关联。相关附加数据值的实例包括导致页面错误的被访问地址(CR2)、出错指令的地址、客户软件在出现页面错误时尝试写入页面表分级结构中的不可写页面的数据值、物理和客户线性存储器中的页面表的地址等等。
现在将描述利用控制转移过滤标准的过滤机制的一些实施例。控制转移过滤标准可手动或以编程方式来定义。控制转移过滤标准随特定故障、误码形式、ISA、附加数据值的存在、VMM的特性及其它因素而改变。控制转移过滤标准的复杂度和表达标准所需的元素数量取决于误码中包含的值的数量、附加数据值的数量、以及需要(和不需要)引起向VMM的转换的误码值和/或附加数据值的可能组合的数量。例如,当需要考虑大量这类组合时,控制转移过滤标准可能要求对误码和/或其它故障信息及一组预定数据执行若干运算(例如算术和/或布尔逻辑运算)。
在一些实施例中,预定数据存储在VMCS的指定字段中,如上所述。在其它实施例中,预定数据可被硬编码(例如在计算机程序、可编程逻辑、微码或处理器的硬编码逻辑中)。
图2是因故障而利用控制转移过滤标准过滤VM出口的过程200的一个实施例的流程图。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
参照图2,过程200从处理逻辑接收故障信息(处理框202)开始。故障信息可涉及在允许操作继续进行到完成的情况下已出现或将出现的故障。故障信息包括标识该故障的故障标识符。在一些实施例中,故障信息还包括与该故障相关联的误码和/或附加数据值。
在判定框204,确定故障信息是否满足一个或多个控制转移过滤标准。如果在判定框204进行的确定为否定,即,故障信息不满足控制转移过滤标准,则控制转到VMM(处理框206),它处理该故障,然后可把控制重新转移到客户OS。否则,如果在判定框204进行的确定为肯定,即,故障信息满足控制转移过滤标准,则控制仍属于客户软件。然后,可允许客户软件处理该故障。
在备选实施例中,如果故障信息不满足控制转移过滤标准,则控制被转到VMM(如果故障信息满足控制转移过滤标准,则控制仍属于客户软件)。
如上所述,控制转移过滤标准的复杂度取决于各种因素。在一个实施例中,控制转移过滤标准可能只要求将故障信息与某个值进行比较(例如,如果误码大于10,则产生VM出口,或者如果误码等于0×4,则产生VM出口,等等)。在另一个实施例中,控制转移过滤标准可能要求将故障信息与若干值进行比较。例如,需要引起到VMM的转换的误码值可事先确定,以及当前误码可与这些预定值进行比较以识别匹配。预定值可存储在指定字段中(例如在图1的VMCS 122中),或者被硬编码在计算机程序、可编程逻辑、微码或处理器的硬编码逻辑中。在其它实施例中,可能要求过滤机制对故障信息和一组预定值执行一个或多个布尔逻辑和/或算术运算。
图3-5说明因故障而利用控制转移过滤标准过滤VM出口的过程的示范实施例。这些过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
参照图3,过程300从处理逻辑在客户软件操作期间检测故障的出现(处理框301)开始。在处理框302,处理逻辑接收标识故障并且可包含与故障有关的其它信息的故障信息。在判定框303,处理逻辑确定故障信息是否包含与故障相关联的误码。如果该确定为肯定,则处理逻辑确定(在处理框304)以下表达式的值(真或假):
EC AND MASK=MATCH        (1)
其中EC为误码,AND为逐位布尔逻辑算子,“=”为逐位比较算子,MASK为在第一字段、本文称作掩码字段中存储的预定数据,以及MATCH为在第二字段、本文称作匹配字段中存储的预定数据。
各掩码字段和匹配字段的大小取决于相应误码的大小。在一些实施例中,掩码字段和匹配字段的宽度与误码的大小相同。在其它实施例中,掩码字段和匹配字段的宽度可以与误码的大小不同。例如,掩码字段和匹配字段可小于误码,并且可以仅把某些位映射到表达式1中。
此外,在图3所示的一个实施例中,处理逻辑还采用重定向图中的相应控制位来进一步确定是否产生VM出口。重定向图表示由VMM维护的一组控制位,用于配置哪些虚拟化事件将产生VM出口。被咨询的控制位对应于导致当前故障的虚拟化事件。例如,虚拟化事件可以是页面错误、外部中断或客户软件对调试寄存器的访问,其中的每个在重定向图中具有相关位。在一个实施例中,重定向图包含在图1的VMCS 122中。在一个实施例中,重定向图是VMCS 122中的单字段。在其它实施例中,在VMCS 122中要求多个字段来详细描述重定向图。
如果在判定框303作出的确定为否定(即故障信息没有包含与此故障相关联的误码),或者处理逻辑在判定框304确定表达式1中的等式成立(即经由逐位AND算子与掩码字段中存储的数据组合的误码匹配在匹配字段中存储的数据),则在一个实施例中,重定向图中的相应控制位的值被用来确定是否产生VM出口(处理框306)。例如,如果控制位被置位,则处理逻辑将产生VM出口(处理框313);否则,处理逻辑将把故障传递给客户软件(处理框312)。
如果表达式1中的等式不成立,则处理逻辑对重定向位图中的控制位的值取反(处理框308),并使用这个取反值来确定是否产生VM出口(处理框310)。如果取反值被置位,则处理逻辑产生VM出口(处理框314);否则,故障将被引导到客户软件(处理框312)。在另一个实施例中,如果如判定框304中所确定的那样,等式不成立,则处理逻辑可使用控制位的实际值,如果等式成立,则使用控制位的取反值。
在图3的过程300中掩码字段和匹配字段与控制位的使用可采用与IA-32ISA页面错误相关联的误码(本文中称作页面错误误码或PFEC)的各种值作为实例来说明。以下实例假定在表达式1的等式不成立时存在控制位的取反(如图3所示)。
如上所述,PFEC包括四位。为了实现PFEC值的所有可能组合所需的结果,掩码字段、匹配字段和控制位中的每个应当具有特定设定。例如,为了对所有页面错误产生VM出口,控制位可被设置为1,掩码字段位的值将设置为0×0,以及匹配字段的值将设置为0×0。或者,为了得到同样的性能,控制位可被设置为0,掩码字段设置为0×0,以及匹配字段设置为0×F(注意,有匹配、掩码字段及控制位值的许多设定都提供相同的功能性)。在另一个实例中,为了对于因监督程序写入当前页面而导致的页面错误产生VM出口,控制位将设置为1,掩码字段的值将设置为0×F,以及匹配字段的值将设置为0×3。这些值确保只对产生等于0×3的误码的页面故障出现VM出口。在又一个实例中,为了对于因非当前页面或保留位违反而导致的页面错误产生VM出口,控制位将设置为0,掩码字段的值将设置为0×9(即只有位0和3被设置为1),以及匹配字段的值将设置为0×1。这将对指示当前页面(即位0被设置为1)以及无保留位违反(即位3被清除为0)的那些之外的所有页面错误产生VM出口。
在另一个实施例(未示出)中,没有使用控制位。也就是说,处理逻辑根据表达式1的结果来确定是否把控制转到VMM(即产生VM出口)。如果表达式1中评估的等式成立(即经由逐位AND算子与掩码字段中存储的数据组合的误码匹配在匹配字段中存储的数据),则满足控制转移过滤标准,以及与误码相关联的故障将由客户操作系统处理。否则(即经由AND算子与掩码字段中存储的数据组合的误码不匹配在匹配字段中存储的数据),则不满足控制转移过滤标准,并产生VM出口,把控制转到VMM。
图3所示实施例中使用的控制位的取反增加了实现误码值的各种组合的预期结果(即VM出口结果或无VM出口结果)时的灵活性。例如,下表说明包含两位的误码的值的各种组合的两种可能的预期结果:
  误码位   预期结果1   预期结果2
  0   0   出口   无出口
  0   1   无出口   出口
  1   0   出口   无出口
  1   1   出口   无出口
如果掩码字段位的值等于(11),匹配字段的值等于(01),以及控制位等于0,则图3所示的过程300的实施例可得到预期结果1。如果掩码字段位的值等于(11),匹配字段的值等于(01),以及控制位被设置为1,则可得到预期结果2。
应当指出,预期结果2不要求使用控制位(即预期结果2仅要求掩码=(11)以及匹配=(01))。但是,如果不使用控制位的取反,或者更多字段没有包含在确定是否产生VM出口的过程中,则无法得到预期结果1。
采用四个指定字段用于确定是否产生VM出口的控制转移过滤过程的一个实施例如图4所示。参照图4,过程400可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程400从处理逻辑在客户软件操作期间检测故障的出现(处理框401)开始。在图4所示实施例中,假定所有故障产生误码,在处理框402处理逻辑接收这些误码。随后,处理逻辑采用逐位AND算子将误码与第一掩码字段中存储的数据组合(处理框404)以及与第二掩码字段中存储的数据组合(处理框406)。即,第一组合的结果INT1=ECAND MASK1以及第二组合的结果INT2=EC AND MASK2。
此外,在判定框408,处理逻辑确定第一组合INT1是否匹配第一匹配字段中存储的数据(MATCH1),或者第二组合INT2是否匹配第二匹配字段中存储的数据(MATCH2)。如果找到任何匹配,则处理逻辑产生VM出口(处理框410)。或者,如果没有发现任何匹配,则故障被插入客户操作系统(处理框409)。
控制转移过滤标准可采用更复杂的算术或布尔逻辑和/或附加字段,以便为预期结果提供更大的灵活性,如图5所示。参照图5,过程500可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程500从处理逻辑在客户软件操作期间检测故障的出现(处理框501)开始。在处理框502,处理逻辑接收故障信息。如处理框503所确定的那样,如果故障信息包含误码,则处理逻辑采用逐位AND算子将误码与第一掩码字段中存储的数据组合(处理框504)以及与第二掩码字段中存储的数据组合(处理框506)。即,第一组合的结果INT1=EC AND MASK1以及第二组合的结果INT2=EC ANDMASK2。
此外,在判定框508,处理逻辑确定在第一组合INT1中是否设置了任何位,或者第二组合INT2是否匹配在匹配字段中存储的数据(MATCH)。在一个实施例中(图5中未示出),如果任一个确定为肯定,则处理逻辑产生VM出口。否则,故障被插入客户OS。
在另一个实施例中(图5中所示),与VM出口有关的确定还取决于重定向图中的相应控制位。明确地说,如果在判定框508进行的确定为肯定(或者如果在判定框503进行的确定为否定,即故障信息没有包含误码),则处理逻辑还在判定框510确定控制位是否指定VM出口(例如控制位被设置为1)。如果控制位指定了VM出口,则处理逻辑产生VM出口(处理框512)。如果控制位没有指定VM出口(例如控制位被清零),则故障被插入客户OS(处理框518)。
否则,如果在判定框508作出的确定为否定,则处理逻辑对控制位的值取反(处理框514)。如果取反值指定了VM出口(判定框516),则处理逻辑产生VM出口(处理框512)。如果取反值没有指定VM出口,则故障被插入客户OS(处理框518)。
虽然图3-5所示的实施例采用某些算子(即逐位AND、比较等),但各种各样的其它算子也可与过滤标准配合使用,而不失一般性。另外,以上结合图3-5所述的那些之外的各种过滤标准也可用来处理在客户软件操作期间出现的故障。此外,上述附加数据值可用来代替与过滤过程中的故障相关联的误码,或者与它们一起使用。
在一些实施例中,附加过滤标准(本文中称作故障过滤标准)可在控制转移过滤标准之前应用于故障信息。在其它实施例中,故障过滤标准在控制转移过滤标准之后应用于故障信息。在另一些实施例中,故障过滤标准而不是控制转移过滤标准被应用于故障信息。故障过滤标准用来确定在客户软件操作期间出现的出错条件是否可被忽略。出错条件表示若允许操作完成、则通常会导致故障的事件。这种出错条件的一个实例是客户软件写入页面表分级结构中的不可写页面的尝试。在一些情况下,出错条件可以被忽略,因为在出错条件时存在的其它因素表明出错条件不会例如损害VMM或其它虚拟机的性能、安全性或正确操作。下面结合图7和图8更详细地描述这些情况的实例。
图6是因故障而利用故障过滤标准和控制转移过滤标准过滤故障和VM出口的过程600的一个实施例的流程图。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。
过程600从处理逻辑在客户软件操作期间检测出错条件的出现(处理框602)以及分析与出错条件有关的故障信息(处理框604)开始。这种故障信息可包括故障标识符、误码、出错地址、待写入的数据、页面表地址等。
随后,处理逻辑确定故障信息是否满足故障过滤标准(判定框604)。故障过滤标准要求利用与客户软件的工作有关的规则,评估处理器状态、存储器状态和/或故障信息的一个或多个元素。例如,故障过滤标准可要求将客户软件尝试写入存储单元的数据与当前存储在此存储单元的数据进行比较。故障过滤标准可要求单独检验处理器状态、存储器状态和/或故障信息的一个元素,或者多次检验各种元素。故障过滤标准的复杂度可随特定出错条件、与出错条件有关的操作规则、ISA、VMM的特性、应用及其它因素而改变。下面结合图7和图8更详细地论述示范过滤标准。
如果满足故障过滤标准,则处理逻辑忽略出错条件,以及允许客户软件继续进行,好像没有检测到出错条件一样(处理框608)。因此,客户软件发起的操作的行为经修改以允许其完成,而不管出错条件的检测如何。
如果不满足故障过滤标准,则处理逻辑利用控制转移过滤标准确定处理该故障的适当实体(判定框610)。如果故障信息满足控制转移过滤标准,则处理逻辑把故障传递到客户软件,以及允许客户软件处理该故障(处理框612)。如果故障信息不满足控制转移过滤标准,则处理逻辑把控制转到VMM(处理框614)。
在其它实施例中,如果不满足故障过滤标准,则处理逻辑不使用控制转移过滤标准,而始终把控制转到VMM。
在其它实施例中,处理逻辑首先利用控制转移过滤标准来确定处理故障的适当实体。然后,如果适当实体为客户软件,则处理逻辑还确定是否满足故障过滤标准。如果满足故障过滤标准,则允许客户忽略故障条件;如果不满足故障过滤标准,则该故障被传递给客户,如上所述。
以下论述假定页面表结构在IA-32 ISA中,但应当指出,类似的页面表结构存在于各种ISA中,本发明不限于使用IA-32 ISA。另外,可进行各种简化以便于以下论述。例如,没有包含物理地址扩展(PAE)和页面大小扩展(PSE)标志的作用,没有说明基于环的保护机制,没有测试存储器存取的对准要求等等。
如本领域熟知的那样,IA-32 ISA中的页面表由页面目录条目(PDE)和页面表条目(PTE)组成。每个PDE和PTE包含控制存储器页面的可存取性的各种位字段。例如,“P”位把页面标记为当前(1)或非当前(0),“R/W”位表明页面是只读(0)还是可读写(1),“U/S”位表明页面是否要求监督程序特权,页面帧编号(PEN)是否包含逻辑页面所在的物理地址的一部分,等等。CR3是ISA中的控制寄存器,它包含页面目录的基物理地址(和附加标志)。页面目录基物理地址等于CR3[31:12]<<12(即,页面目录基地址的低12位为0,高20位处于CR3的高20位中)。
为了防止一个虚拟机中的错误或恶意代码损害在VMM或另一个虚拟机上运行的代码,需要把客户软件的访问限制为基础物理机器的物理存储资源。在提供了由客户OS和VMM分别管理的独立页面表分级结构的一些体系结构中,一种把客户软件的访问限制为物理存储资源的方法包括客户页面表分级结构的VMM修改许可,从而防止客户软件对受保护页面(例如属于VMM或其它VM的页面)的读或写操作。另外,客户页面表经修改以防止对属于存储客户页面表的VM的一些页面的写操作。一旦已经进行这些许可修改,则客户软件改变页面表的尝试将导致页面错误事件,这是VMM可通过VM出口观察的。VMM可检查所尝试的访问,并确定要采取的适当动作。例如,它可允许、不允许或修改所尝试的访问。例如,可能不允许客户软件映射属于VMM或另一个VM的物理页面。由于客户软件对页面表的修改频繁出现,因此与退出到VMM相关的、用于筛选每次尝试的客户页面表改变的开销可能强加重大的性能负担。
为了简化页面表的管理,若干操作系统、例如Microsoft WindowsXP采用递归页面目录。换言之,页面目录条目(PDE)将设置为把页面目录页引用为页面表页。这种把同一个页面用作页面目录和页面表的用法使所有页面表页在通过自指的PDE访问的线性地址空间的4MB区域中是可访问的。给定自指PDE的使用,则可计算用来映射任何特定线性地址的PTE或PDE的线性地址。在采用自指PDE的操作系统中,典型的页面表编辑是通过这种自映射区域进行的(即,对页面表的编辑是利用自映射PDE通过写入采用处于4MB区域的线性地址的存储器进行的)。不采用这种自映射PDE的页面表编辑在数量上极少。
其中公共页面用作页面目录页以及页面表页的页面表在本文中称作自映射页面表。本领域的技术人员非常清楚,本发明还适用于其它方法,其中页面表条目以组织方式映射到线性地址,无论这种映射是在页面表分级结构的多层上结构再用的结果,还是通过OS惯例。
在本发明的一个实施例中,过滤机制用来标识不要求退出到VMM的页面映射编辑。在此实施例中,用于过滤标准的附加字段被添加到VMCS。
在一个实施例中,客户操作系统所用的页面表是自映射的,即,页面表分级结构中的页面目录条目(PDE)之一重新指向页面目录(PD)页的基部。如上所述,自映射页面表的概念是本领域都熟知的,以及由操作系统、例如Microsoft的Windows XP使用。在一个实施例中,通过确保页面目录基部线性地址(本文中称作PTBASE)满足一组条件来支持自映射。这组条件可检验PTBASE值为4MB对准的、即PTBASE[21:0]=0,以及页面表包含适当的自映射条目、即单元((CR3[31:12]<<12)+(PTBASE[31:22]<<2))中条目中的PFN等于CR3[31:12]。在一个实施例中,PTBASE值存储在VMCS中,由过滤机制使用,如以下所述。
假定自映射页面表正在使用,则可确定任何给定地址是否处于页面表中(即,是否ADDR[31:22]=PTBASE[31:22],其中ADDR为被访问的地址)。另外,可确定该地址是否处于PDE中(即地址是否处于页面表中,并且ADDR[21:12]=PTBASE[31:22])或者处于PTE中(即该地址是否处于页面表中,但不在PDE中)。
图7和图8说明利用故障过滤标准过滤页面错误的过程的两个示范实施例。该过程可通过可包括硬件(例如电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于通用计算机系统或专用机器上)或者两者的组合的处理逻辑来执行。在图7和图8所示的实施例中,VMM通过确保映射页面表自身的客户页面表条目(客户PTE)具有只读访问来保护物理存储器。因此,当客户软件尝试改变页面表条目时,页面错误条件出现。这些实施例可与采用自映射页面表的客户OS配合使用,如上所述,或者与没有采用这个页面表结构的客户OS配合使用,但采用自映射页面表的客户OS的使用提供更大的性能提高。
在图7所示的实施例中,说明了故障过滤标准的集合,它允许完成对PTE的写入,在客户操作系统没有尝试把“P”位设置为1时没有传递故障或产生VM出口,同时仍然保护物理存储空间以及制止为客户软件提供对页面表的完全控制。这个规则的理论基础在于,标记了非当前的PTE(即“P”位等于0)无法映射物理存储页面。因此,由客户软件改变的PTE无法映射物理存储页面,因此无法干扰VMM或者在另一个VM上运行的软件的操作。因此,不需要通知VMM页面表修改,以及将允许页面表写入继续进行,而没有导致页面错误或VM出口。
参照图7,处理逻辑从在客户软件操作期间检测页面错误条件(处理框702)以及接收与页面错误条件有关的页面错误信息(处理框704)开始。
随后,一组故障过滤标准被应用于页面错误信息。明确地说,处理逻辑确定出错访问是否为写操作(判定框706)、写入PTE(判定框708),以及不是把“P”位设置为1的尝试(即DATA.P=0,其中DATA为客户正试图写入的值)(判定框710)。如果这些确定为肯定的,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框714)。如果处理框706、708和710中的确定的任一个为否定,则控制被转移到处理框712以确定VM出口是否要被产生,或者故障将被引导到客户软件,如结合图2-5更详细描述的。
在另一个实施例中(附图中未示出),写入必须是对PTE进行的条件可被取消,或者采用例如只要当前位未被设置就允许对PTE或PDE写入的测试来代替。
参照图8,说明更复杂的故障过滤标准集合,它包括以上结合图7所述的故障过滤标准以及其它一些标准。故障过滤标准的这个集合允许客户操作系统修改PTE中除PFN、读/写以及当前位之外的位,而不要求页面错误或产生VM出口。另外,允许读/写和当前位的某些修改,而不要求页面错误或产生VM出口。
处理逻辑从在客户软件操作期间检测页面错误条件(处理框802)以及接收与页面错误条件有关的页面故障信息(处理框804)开始。随后,处理逻辑确定出错访问是否为写操作(判定框806)、写入PTE(判定框808),以及不是把“P”位设置为1的尝试(即DATA.P=0)(判定框810)。如果这些确定均为肯定,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框814)。如果处理框806或808中的确定为否定,则控制进入处理框812,确定是否要求VM出口,如参照图2-5所述。
如果处理框810中的确定为否定,则应用附加故障过滤规则。明确地说,处理逻辑确定PTE是否已经在PTE中标记为当前(即,ADDR->P=1,其中ADDR为客户软件正尝试写入的地址,以及ADDR->P表示在存储器中位于ADDR的数据被解释为PTE时的P位)(判定框816),PFN是否没有改变(即ADDR->PFN=DATA.PFN)(判定框818),以及客户是否正尝试把PTE映射的页面标记为只读(DATA.R/W=0)或者由PTE映射的页面是否在存储器中的PTE中已经标记为可写(ADDR->R/W=1)(判定框820)。如果这些确定为肯定,则允许客户操作系统的访问完成(即允许写入以修改存储器),而没有产生故障或VM出口(处理框814)。如果处理框816、818和810中的任何确定为否定,则控制被转移到处理框812以确定是否要求VM出口。
应当指出,图7和图8所示的过滤机制将滤除利用自映射PDE尝试修改页面表的访问,如上所述。没有采用自映射PDE的修改页面表的尝试不会被故障过滤标准滤除(即,在框708和808中对于写入是否对PTE进行的确定将失败)。然后,控制转移过滤标准用来确定是否需要VM出口,如图2-5所示。从安全性或正确操作的观点来看,这不会产生问题,因为VMM能够确定是否在实际上编辑PTE。控制转移过滤机制将配置成对所有写入页面错误产生VM出口,以及评估被写入的地址和数据,以确定是否正尝试页面表编辑。
除以上参照图7和图8所述的那些之外的各种故障过滤标准可用来过滤故障,而不失一般性。过滤的形式可由各种VMM控制字段(例如PTBASE)来控制,在一个实施例中,这些字段可驻留在VMCS中。或者,过滤可由单个启用位来控制,可以被硬编码到处理器实现中,等等。
图9是定义控制转移过滤标准和/或故障过滤标准的过程900的一个实施例的框图。过程900可手动或自动执行。
参照图9,过程900从识别故障信息的哪些组合(例如误码值、故障标识符等)不要求到VMM的转换或者应当被允许完成、忽略故障(处理框902)开始。然后,可用于VM出口和/或故障过滤标准的字段最大数量以及字段语义被识别(处理框904),以及可用算子(例如布尔、算术等)被识别(处理框906)。此外,根据在处理框902-906所识别的信息,创建过滤标准(处理框908)。过滤标准可包括一个或多个预定值以及对预定值和误码执行的一个或多个布尔逻辑和/或算术运算。
这样,已经描述了处理在客户软件操作期间出现的故障的方法及装置。应当理解,以上描述只是说明性而不是限制性的。通过阅读和理解以上说明,本领域的技术人员将会十分清楚其它许多实施例。因此,本发明的范围应当参照所附权利要求以及这些权利要求涵盖的完整等效范围来确定。

Claims (30)

1.一种方法,包括:
接收关于与客户软件的操作相关联的故障的故障信息;
确定所述故障信息是否满足至少一个故障过滤标准;以及
如果所述故障信息满足所述至少一个故障过滤标准,则使所述客户软件忽略所述故障。
2.如权利要求1所述的方法,其特征在于还包括:
确定所述故障信息不满足所述至少一个故障过滤标准;以及
把所述故障传递给所述客户软件。
3.如权利要求1所述的方法,其特征在于还包括:
确定所述故障信息不满足所述至少一个故障过滤标准;以及
确定所述故障信息是否满足至少一个控制转移过滤标准。
4.如权利要求3所述的方法,其特征在于还包括:
如果所述故障信息满足所述至少一个控制转移过滤标准,则把所述故障传递给所述客户软件。
5.如权利要求3所述的方法,其特征在于还包括:
如果所述故障信息不满足所述至少一个控制转移过滤标准,则把控制转移到虚拟机监控器。
6.如权利要求1所述的方法,其特征在于,所述故障信息为故障标识符、与所述故障相关联的误码以及与所述故障相关联的一个或多个附加数据值其中的至少一项。
7.如权利要求1所述的方法,其特征在于,所述故障表示中断、异常和平台事件其中的任一项。
8.如权利要求1所述的方法,其特征在于,确定所述故障信息是否满足所述至少一个故障过滤标准的步骤包括:
确定所述客户软件的操作是否为对页面表条目的写入;以及
确定所述写入是否是把所述页面表条目映射的页面标记为非当前的尝试。
9.如权利要求1所述的方法,其特征在于,确定所述故障信息是否满足所述至少一个故障过滤标准的步骤还包括:
确定所述客户软件的操作是否为对页面表条目的写入;
确定所述写入是否是把所述页面表条目映射的页面标记为当前的尝试;
确定所述页面表条目映射的所述页面是否先前被标记为当前;
确定所述写入是否不是修改页面帧编号的尝试;以及
确定是否出现一组条件中的至少一个,所述条件组包括:第一条件,要求所述写入为把所述页面表条目映射的所述页面标记为只读的尝试;以及第二条件,要求所述页面表条目映射的所述页面先前已经是可写的。
10.一种方法,包括:
检测与客户软件的操作相关联的出错条件的出现;
评估与所述出错条件有关的故障信息;以及
根据所述评估来确定是否允许所述客户软件忽略所述出错条件。
11.如权利要求10所述的方法,其特征在于,评估故障信息包括:
确定所述故障信息是否满足至少一个故障过滤标准。
12.如权利要求10所述的方法,其特征在于,所述故障信息为故障标识符、与所述故障相关联的误码以及与所述故障相关联的一个或多个附加数据值其中的至少一项。
13.如权利要求10所述的方法,其特征在于,所述故障条件与所述客户软件访问存储器的尝试相关联。
14.如权利要求11所述的方法,其特征在于,确定所述故障信息是否满足所述至少一个故障过滤标准的步骤包括:
确定所述客户软件的操作是否为对页面表条目的写入;以及
确定所述写入是否是把所述页面表条目映射的页面标记为非当前的尝试。
15.如权利要求11所述的方法,其特征在于,确定所述故障信息是否满足所述至少一个故障过滤标准的步骤还包括:
确定所述客户软件的操作是否为对页面表条目的写入;
确定所述写入是否是把所述页面表条目映射的页面标记为当前的尝试;
确定所述页面表条目映射的所述页面是否先前被标记为当前;
确定所述写入是否不是修改页面帧编号的尝试;以及
确定是否出现一组条件中的至少一个,所述条件组包括:第一条件,要求所述写入为把所述页面表条目映射的所述页面标记为只读的尝试;以及第二条件,要求所述页面表条目映射的所述页面先前已经是可写的。
16.一种系统,包括:
存储器,其中已经存储了客户软件;以及
处理器,耦合到所述存储器,运行所述客户软件,确定关于与所述客户软件的操作相关联的故障的故障信息是否满足至少一个故障过滤标准,以及如果所述故障信息满足所述至少一个故障过滤标准,则使所述客户软件忽略所述故障。
17.如权利要求16所述的系统,其特征在于,所述处理器还确定所述故障信息不满足所述至少一个故障过滤标准,以及把所述故障传递给所述客户软件。
18.如权利要求16所述的系统,其特征在于,所述处理器还确定所述故障信息不满足所述至少一个故障过滤标准,以及确定所述故障信息是否满足至少一个控制转移过滤标准。
19.如权利要求18所述的系统,其特征在于,如果所述故障信息满足所述至少一个控制转移过滤标准,则所述处理器还把所述故障传递给所述客户软件。
20.如权利要求18所述的系统,其特征在于,如果所述故障信息不满足所述至少一个控制转移过滤标准,则所述处理器还把控制转移到虚拟机监控器。
21.一种系统,包括:
存储器,其中已经存储了客户软件;以及
处理器,耦合到所述存储器,运行所述客户软件,检测与客户软件的操作相关联的出错条件的出现,评估与所述出错条件有关的故障信息,以及根据所述评估来确定是否允许所述客户软件忽略所述出错条件。
22.如权利要求21所述的系统,其特征在于,所述处理器通过确定所述故障信息是否满足所述至少一个故障过滤标准来评估故障信息。
23.如权利要求21所述的系统,其特征在于,所述故障条件与所述客户软件访问存储器的尝试相关联。
24.如权利要求22所述的系统,其特征在于,所述处理器通过确定所述客户软件的操作是否为对页面表条目的写入以及确定所述写入是否为把所述页面表条目映射的页面标记为非当前的尝试,来确定所述故障信息是否满足所述至少一个故障过滤标准。
25.一种机器可读媒体,其中包含指令,这些指令由处理系统执行时,使所述处理系统执行一种方法,所述方法包括:
接收关于与客户软件的操作相关联的故障的故障信息;
确定所述故障信息是否满足至少一个故障过滤标准;以及
如果所述故障信息满足所述至少一个故障过滤标准,则使所述客户软件忽略所述故障。
26.如权利要求25所述的机器可读媒体,其特征在于,所述方法还包括:
确定所述故障信息不满足所述至少一个故障过滤标准;以及
把所述故障传递给所述客户软件。
27.如权利要求25所述的机器可读媒体,其特征在于,所述方法还包括:
确定所述故障信息不满足所述至少一个故障过滤标准;以及
确定所述故障信息是否满足至少一个控制转移过滤标准。
28.一种机器可读媒体,其中包含指令,这些指令由处理系统执行时,使所述处理系统执行一种方法,所述方法包括:
检测与客户软件的操作相关联的出错条件的出现;
评估与所述出错条件有关的故障信息;以及
根据所述评估来确定是否允许所述客户软件忽略所述出错条件。
29.如权利要求28所述的机器可读媒体,其特征在于,评估故障信息包括确定所述故障信息是否满足至少一个故障过滤标准。
30.如权利要求28所述的机器可读媒体,其特征在于,所述故障条件与所述客户软件访问存储器的尝试相关联。
CNB038199033A 2002-06-29 2003-06-19 处理与虚拟机体系结构中客户软件的操作相关联的故障 Expired - Fee Related CN100468324C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/184,798 US6996748B2 (en) 2002-06-29 2002-06-29 Handling faults associated with operation of guest software in the virtual-machine architecture
US10/184,798 2002-06-29

Publications (2)

Publication Number Publication Date
CN1692332A true CN1692332A (zh) 2005-11-02
CN100468324C CN100468324C (zh) 2009-03-11

Family

ID=29779461

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038199033A Expired - Fee Related CN100468324C (zh) 2002-06-29 2003-06-19 处理与虚拟机体系结构中客户软件的操作相关联的故障

Country Status (7)

Country Link
US (1) US6996748B2 (zh)
EP (1) EP1518168B1 (zh)
KR (1) KR100708356B1 (zh)
CN (1) CN100468324C (zh)
AU (1) AU2003245543A1 (zh)
TW (1) TWI255402B (zh)
WO (1) WO2004003745A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483368B2 (en) 2012-09-17 2016-11-01 Huawei Technologies Co., Ltd. Method, apparatus, and system for handling virtual machine internal fault

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7473715B2 (en) * 2001-05-02 2009-01-06 Zephyros, Inc. Two component (epoxy/amine) structural foam-in-place material
US7763663B2 (en) * 2001-12-19 2010-07-27 University Of Massachusetts Polysaccharide-containing block copolymer particles and uses thereof
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7199165B2 (en) * 2003-06-26 2007-04-03 L & L Products, Inc. Expandable material
WO2005003969A1 (en) * 2003-06-27 2005-01-13 Sun Microsystems, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US20050159531A1 (en) * 2004-01-20 2005-07-21 L&L Products, Inc. Adhesive material and use therefor
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
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
US20050241756A1 (en) * 2004-04-28 2005-11-03 L&L Products, Inc. Adhesive material and structures formed therewith
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7490070B2 (en) * 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7937525B2 (en) * 2004-06-25 2011-05-03 Intel Corporation Method and apparatus for decoding a virtual machine control structure identification
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US20060107121A1 (en) * 2004-10-25 2006-05-18 International Business Machines Corporation Method of speeding up regression testing using prior known failures to filter current new failures when compared to known good results
US8146078B2 (en) * 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
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
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
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
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US20060224815A1 (en) * 2005-03-30 2006-10-05 Koichi Yamada Virtualizing memory management unit resources
US7392172B2 (en) * 2005-04-28 2008-06-24 Hewlett-Packard Development Company, L.P. Providing virtual device access via firmware
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
BRPI0613631A8 (pt) 2005-07-18 2017-12-26 Univ Massachusetts Lowell nanoemulsão e método,
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US9486408B2 (en) 2005-12-01 2016-11-08 University Of Massachusetts Lowell Botulinum nanoemulsions
PT3295955T (pt) 2005-12-01 2021-07-12 Univ Massachusetts Lowell Nanoemulsões botulínicas
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7596654B1 (en) * 2006-01-26 2009-09-29 Symantec Operating Corporation Virtual machine spanning multiple computers
US7702743B1 (en) 2006-01-26 2010-04-20 Symantec Operating Corporation Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
JP5292304B2 (ja) 2006-12-01 2013-09-18 アンテリオス, インコーポレイテッド ペプチドナノ粒子およびその使用
BRPI0719756A2 (pt) 2006-12-01 2014-01-21 Anterios Inc Nanopartículas de entidades anfifílicas
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
CN101295265A (zh) * 2007-04-25 2008-10-29 国际商业机器公司 全系统isa仿真系统及其识别进程的方法
US9223600B1 (en) 2007-05-07 2015-12-29 Hewlett Packard Enterprise Development Lp In-processor dynamic address redirection table for substituting instruction strings
US10016451B2 (en) 2007-05-31 2018-07-10 Anterios, Inc. Nucleic acid nanoparticles and uses therefor
JP4897578B2 (ja) 2007-06-06 2012-03-14 株式会社日立製作所 仮想計算機の制御プログラムおよび仮想計算機システム
US7747899B2 (en) * 2007-06-26 2010-06-29 Microsoft Corporation Providing mapping fault processing
US8566780B2 (en) 2007-06-26 2013-10-22 Microsoft Corporation Object model based mapping
US8078827B2 (en) * 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
US8032897B2 (en) * 2007-07-31 2011-10-04 Globalfoundries Inc. Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization
US8510756B1 (en) * 2007-12-06 2013-08-13 Parallels IP Holdings GmbH Guest operating system code optimization for virtual machine
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
US20110212157A1 (en) * 2008-06-26 2011-09-01 Anterios, Inc. Dermal delivery
US8381032B2 (en) 2008-08-06 2013-02-19 O'shantel Software L.L.C. System-directed checkpointing implementation using a hypervisor layer
US9449314B2 (en) 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US8341505B2 (en) * 2009-05-08 2012-12-25 Oracle America, Inc. Enforcing network bandwidth partitioning for virtual execution environments with direct access to network hardware
US8499304B2 (en) * 2009-12-15 2013-07-30 At&T Mobility Ii Llc Multiple mode mobile device
US8468600B1 (en) * 2011-03-04 2013-06-18 Adobe Systems Incorporated Handling instruction received from a sandboxed thread of execution
US8713378B2 (en) 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition
US9350632B2 (en) * 2013-09-23 2016-05-24 Intel Corporation Detection and handling of virtual network appliance failures
US9274823B1 (en) * 2014-12-24 2016-03-01 Parallels IP Holdings GmbH Thin hypervisor for native execution of unsafe code
CN104680067B (zh) * 2015-02-15 2017-12-19 安一恒通(北京)科技有限公司 文件的检测方法及装置
CN105095007A (zh) * 2015-08-21 2015-11-25 上海联影医疗科技有限公司 硬件设备错误的处理方法及系统
EP3153971B1 (en) * 2015-10-08 2018-05-23 Huawei Technologies Co., Ltd. A data processing apparatus and a method of operating a data processing apparatus
US10963280B2 (en) 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
CN117731591A (zh) 2016-11-21 2024-03-22 艾里奥治疗公司 大试剂的透皮递送
US11403409B2 (en) * 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11347869B2 (en) * 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
JPS50117336A (zh) * 1973-11-30 1975-09-13
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) * 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
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
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) * 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
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
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) * 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
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 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) * 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
JPS625441A (ja) * 1985-02-18 1987-01-12 Nec Corp 情報処理装置
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
FR2592510B1 (fr) * 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601535B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601476B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601525B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2618002B1 (fr) * 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
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
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
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
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
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
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
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
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
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
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
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) * 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
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.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
DE69534757T2 (de) * 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
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
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
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 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
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エレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
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
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
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
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US5935247A (en) * 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6108644A (en) * 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) * 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6275933B1 (en) * 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7107460B2 (en) * 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483368B2 (en) 2012-09-17 2016-11-01 Huawei Technologies Co., Ltd. Method, apparatus, and system for handling virtual machine internal fault

Also Published As

Publication number Publication date
WO2004003745A2 (en) 2004-01-08
AU2003245543A1 (en) 2004-01-19
US6996748B2 (en) 2006-02-07
US20040003324A1 (en) 2004-01-01
TW200408939A (en) 2004-06-01
WO2004003745A3 (en) 2004-12-23
EP1518168B1 (en) 2019-08-07
EP1518168A2 (en) 2005-03-30
KR100708356B1 (ko) 2007-04-17
CN100468324C (zh) 2009-03-11
TWI255402B (en) 2006-05-21
KR20050016917A (ko) 2005-02-21
AU2003245543A8 (en) 2004-01-19

Similar Documents

Publication Publication Date Title
CN1692332A (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
CN1679001A (zh) 对在虚拟机体系结构中客户软件操作期间出现的故障的控制
EP1939754B1 (en) Providing protected access to critical memory regions
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
US8028341B2 (en) Providing extended memory protection
CN1308783C (zh) 用于隔离执行隔离指令的装置、方法和系统
CN1920797A (zh) 存储器访问控制装置
CN1849585A (zh) 处理特许事件的多个虚拟机监控器的使用
WO2021076871A1 (en) Systems and methods for updating metadata
US10061918B2 (en) System, apparatus and method for filtering memory access logging in a processor
US10664304B2 (en) Application memory protection using an extended page table switching virtual machine function
EP3912061A1 (en) Systems and methods for metadata classification
EP3881190A1 (en) Systems and methods for metadata encoding
CN1628284A (zh) 安全执行模式异常
CN1623143A (zh) 用于划分安全保护的输入/输出许可位图
Tiwari et al. A small cache of large ranges: Hardware methods for efficiently searching, storing, and updating big dataflow tags
US20030188169A1 (en) System and method for controlling device-to-device accesses within a computer system
DE102020119251A1 (de) Einrichtung, system und verfahren zum definieren von speicherinformationsleckzonen in einem rechensystem
US10437523B2 (en) Secure receive packet processing for network function virtualization applications
EP3916568A1 (en) Tag checking apparatus and method
Peglow et al. Security analysis of hybrid Intel CPU/FPGA platforms using IOMMUs against I/O attacks
WO2018214482A1 (zh) 一种虚拟机的监控方法和装置
EP4020237B1 (en) 64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s)
TW202403562A (zh) 用於記憶體位址空間之頁面的「讀值只有x」性質

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: 20090311

Termination date: 20170619