CN1659518A - 虚拟计算机结构中控制寄存器访问虚拟化性能的改进 - Google Patents

虚拟计算机结构中控制寄存器访问虚拟化性能的改进 Download PDF

Info

Publication number
CN1659518A
CN1659518A CN03813694.5A CN03813694A CN1659518A CN 1659518 A CN1659518 A CN 1659518A CN 03813694 A CN03813694 A CN 03813694A CN 1659518 A CN1659518 A CN 1659518A
Authority
CN
China
Prior art keywords
register
parts
data
client software
instruction
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
CN03813694.5A
Other languages
English (en)
Other versions
CN1659518B (zh
Inventor
S·贝内特
A·安德森
E·科塔罗布莱斯
S·杰亚辛格
A·卡吉
G·奈格
R·乌利希
M·科祖奇
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 CN1659518A publication Critical patent/CN1659518A/zh
Application granted granted Critical
Publication of CN1659518B publication Critical patent/CN1659518B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在一个实施例中,从客户软件接收属于一寄存器一个或多个部分的指令。此外,根据掩码域中对应所述寄存器所请求部分的指示符,确定是否所述客户软件可以访问该寄存器的所有请求部分。如果该客户软件可以访问所述寄存器所有请求的部分,则在该寄存器所请求的部分上执行从所述客户软件接收的指令。

Description

虚拟计算机结构中控制寄存器访问虚拟化性能的改进
发明领域
本发明总的来说涉及虚拟计算机,更确切地说,涉及控制客户软件对虚拟计算机结构中的寄存器的访问。
发明背景
传统的虚拟计算机监视器(VMM)通常在计算机上运行,并且向其它软件呈现一个或多个虚拟计算机的抽象。每个虚拟计算机可作为一个自包含的平台,运行它自身的“客户操作系统”(即,由VMM操纵的操作系统)。该客户操作系统预期如同它在专用计算机而非虚拟计算机上运行一样进行操作。也就是说,该客户操作系统预期控制多种计算机操作且在这些操作中可访问硬件资源。该硬件资源可包括含处理器的资源(比如,控制寄存器)和存在于存储器中的资源(比如,描述符表)。
在虚拟计算机的环境中,VMM应能够对这些资源进行最终的控制,以提供对虚拟计算机的适当操作和不受虚拟计算机影响以及虚拟计算机之间的保护。为了实现该目的,VMM通常截取并仲裁所有由客户软件完成的到硬件资源的访问。特别地,当客户软件请求需要访问被保护硬件资源的操作时,对该操作的控制被转移到VMM,并随后保证访问的有效性,仿真客户软件所需要的功能并将控制转移回客户软件,从而保护硬件资源并对客户软件到硬件资源的访问进行虚拟化。因为被保护不受客户软件访问所需要的硬件资源元件的数量很大,而且这种访问是经常的,所以与这种保护和虚拟化相关的性能成本相当大。
被客户软件经常访问的硬件资源的一个例子是控制寄存器。比如,在因特尔奔腾(Intel Pentium)IV的指令集合结构(ISA)(本文中作为IA-32ISA引用)中,有数个用于配置处理器操作模式、控制存储器子系统配置及硬件资源等的控制寄存器。通常,当客户软件试图访问一个控制寄存器中的某个位时,该控制被转移到VMM,后者负责维持由客户软件启动的与该位相关的写操作和读操作之间的连贯性。也就是说,VMM控制允许客户软件向控制寄存器每个位写入的值以及客户软件从每个位读取的值。这种对控制寄存器访问的虚拟化产生了相当大的性能开销。
附图简述
通过举例阐述本发明,但本发明并不局限于此,在附图中,相同的标号表示相同的元件,其中:
图1示出了虚拟计算机环境100的一个实施例,在该环境中可操作本发明;
图2为过滤客户软件对诸如寄存器之类硬件资源访问的过程的一个实施例的流程图;
图3为使用一组准则过滤VM退出的过程的一个实施例的流程图;
图4为向诸如寄存器之类的硬件资源提供客户软件访问的附加过滤的过程的一个实施例的流程图;以及
图5为使用重定向映射在VMX操作中控制访问诸如寄存器之类硬件资源的过程的一个实施例的流程图。
具体实施方式
描述了一种控制客户软件访问虚拟计算机结构中寄存器的方法和装置。在以下的描述中,为了描述方便,阐述了许多特定的细节以提供对本发明的深入了解。但是,对于本领域技术人员来说相当明显的是,本发明可以在无这些特定细节的情况下实施。
下述某些部分的详细描述是以对计算机系统的寄存器或存储器中数据位上操作的算法和符号表示来阐述的。这些算法描述和表示是本领域技术人员在数据处理技术中使用的方式,从而最有效地将它们的工作实质传送给本领域中的其他技术人员。此处的算法通常被设计为导致所需结果的自连贯序列的操作。该操作是这些需要对物理量进行物理操作的一些操作。通常地,虽然不是必须的,但这些量采用能够被存储、转移、组合、比较或者以其它方式操纵的电信号或磁信号形式。主要是通用的原因,有时候将这些信号称作位、值、单元、码元、字符、项、数字等是方便的。
但是应该理解的是,所有这些以及类似的术语都与合适的物理量相关,并且仅仅是应用于这些量的方便的标号。除非是特别的描述,否则从以下的论述中很明显可以理解的是,贯穿本发明,应用诸如“处理”或“运算”或“计算”或“确定”等之类的术语的论述,可参考计算机系统的动作和处理或类似的电子运算设备,该设备操纵并将代表计算机系统寄存器和存储器中物理(电子)量的数据转换为类似的表示计算机系统存储器或寄存器或其它这种信息存储器、传送或显示设备中物理量的其它数据。
在随后对实施例的详细描述中,参考附图,该附图示出了可实现本发明的特定实施例。在附图中,相同的标号描述在几个视图中基本相同的元件。对这些实施例的详细描述足以使本领域技术人员能够实现本发明。可以利用其它的实施例,而且可在不脱离本发明保护范围前提下作出结构的、逻辑的以及电气上的变化。另外,可以理解的是,本发明的不同实施例,虽然不相同,但不一定互相排斥。例如,在一个实施例中描述的特定特征、结构或特性可包括在其它的实施例中。因此,以下的详细描述并不起限制的作用,而且本发明的保护范围是由所附的权利要求书以及这些权利要求所赋予的等效特征的完整保护所限定的。
图1示出了一个虚拟计算机环境的实施例100,本发明可在该环境中进行操作。在该实施例中,裸平台硬件116包含运算平台,该平台能够,比如执行标准操作系统(OS)或诸如VMM112之类虚拟计算机监视器(VMM)。VMM112,虽然通常以软件实现,但可以仿真并将裸机接口导出到更高级别的软件。这种更高级别的软件可包含一个标准或实时OS,可以是带有限操作系统功能的高度剥离的操作系统环境,可以不包括传统的OS工具等。另外,比如,VMM112可以在另一个VMM之内或之上运行。VMM及其通常的特征以及功能是本领域技术人员所熟知的,它们可以以软件、固件或通过结合多种技术来实现。
平台软件116包括处理器118和存储器120。处理器118可以是任何一种能够执行软件的处理器,比如微处理器、数字信号处理器、微控制器等。处理器118可包括用于执行本发明方法实施例的微码或硬编码的逻辑。
平台硬件116可以是个人计算机(PC)、主机、手提设备、便携式计算机、机顶盒或任何其它的运算系统。
存储器120可以是硬盘、软盘、随机存储器(RAM)、只读存储器(ROM)、闪存或任何其它类型可由存储器118读取的计算机媒质。存储器120可存储用于执行本发明方法实施例的指令。
VMM112向其它软件(即,“客户”软件)呈现一个或多个虚拟计算机(VM)的抽象,这可向多个客户提供相同或不同的抽象。图1示出了两个VM,102和114。在每个VM上运行的客户软件可包括诸如客户OS104或106之类的客户OS以及多个客户软件应用程序108-110。客户OS104和106中的每一个都期望控制对客户OS104或106所运行以及完成其它功能的VM102和114中的物理资源(比如,处理器寄存器、存储器和存储器-映射的I/O设备)的访问。
VMM112在保持对平台软件116内特权硬件资源的最终控制的同时,方便了客户软件所需的功能。特别地,一旦客户软件试图访问特权资源,对处理器的控制将被转移到VMM112,后者随即决定是执行所请求的操作(例如,为客户软件仿真、代理直接对平台硬件116的操作等等)还是拒绝对资源的访问以方便安全性、可靠性或其它机制。方便客户软件功能的动作可包括在一部分VMM112上的各种活动。VMM112的活动以及特性不应该限制本发明的保护范围。
在一个实施例中,从客户软件到VMM的控制转移由虚拟计算机控制结构(VMCS)122中的控制位的设置来确定。VMCS122中的设置可防止客户软件完成可导致其对某个特权硬件资源访问的操作。不同的客户软件可在不同的VMCS存储图像中执行不同的控制位设置,虽然在图1中只示出了一个这样的VMCS。VMCS122存在于存储器120中并由处理器118维持。值得注意的是,可在不损失共性的情况下,使用任何其它的数据结构(比如,单片高速缓存器、文件、查找表等)来存储VMCS122或与每个指定硬件资源相关的域。
当客户软件试图执行访问被保护资源的操作时,控制转移到VMM112。VMM112可以访问所有的平台硬件116。当这种转移发生时,VMM112接收对由客户软件启动的操作的控制。VMM112随后可以如上所述地完成这种操作或拒绝访问,并可以通过执行特殊的指令将控制转移回客户软件。通过这种机制对客户软件的控制在本文中被称为VMX操作,控制从客户软件到VMM的转移在本文中被称为VM退出。
在一个实施例中,某种指令的执行、某个例外和中断以及某个平台事件会引起VM退出。这些可能引起VM退出的原因在本文中被称为虚拟化事件。例如,当客户软件试图完成将导致其对某个特权硬件资源(比如,控制寄存器或IO端口)进行访问的操作(比如,指令)时,会产生VM退出。
在一个实施例中,当发生VM退出的时候,客户软件所使用的处理器状态的各分量被保存,并装载VMM112所需要的处理器状态的分量。该对处理器状态的保存和装载,取决于处理器ISA,并可以起到改变当前地址空间的作用(比如,在IA-32ISA中,当前地址空间由控制寄存器中的值决定,该值可被保存并在VM退出时恢复)。在一个实施例中,由客户软件使用的处理器状态的分量被存储在VMCS122的客户-状态区域中,而VMM112所需要的处理器状态的分量被存储在VMCS122的监视器-状态区域中。
在一个实施例中,当从VMM到客户软件的转移发生时,恢复在VM退出时保存的处理器状态,并使控制返回到客户OS104或106或客户应用程序108或110。
在一个实施例中,当发生VM退出的时候,控制被传递到VMM112上在VMCS122中描绘的特定入口点(比如,指令指针值)。在另一个实施例中,在形成通过重定向结构(比如IA-32ISA中的中断描述符表)的向量后,控制被传递到VMM112。另外,本领域所公知的其它机制也可用于将控制从客户软件转移到VMM112。
因为需要被保护不被客户软件访问的硬件资源元件的数量很大,而且这种访问是经常性的,所以与这种保护和虚拟化相关的性能成本相当大。另外,由客户软件启动的操作可包含对特权资源的访问,这不会对VM102和114的安全性及适当操作产生问题。例如,在IA-32ISA中,控制寄存器0(CR0)包括任务切换(TS)位,使用该位通过阻止对浮点状态的保存和恢复直到该状态被访问来优化内容切换。由客户OS通过清任务-切换标志(CLTS)指令对TS位的更新不太可能对VM102和114的系统安全和适当操作产生问题。相反,CR0的分页使能(PG)比特配置处理器操作模式,如此该比特必须由VMM112来控制。在某些情况下,VMM112不能允许客户软件禁用分页,因此VMM112必须控制客户软件试图这样做。
在一个实施例中,提供过滤机制以将由客户软件的访问所引起的VM退出数减少到如寄存器(比如,控制寄存器、通用寄存器、模型特定寄存器等)之类的硬件资源或基于存储器的资源(比如,存储器中的分页控制域等)。应该注意的是,虽然以下是参考一种寄存器来描述本发明典型实施例的,但在不丧失共性的前提下本发明的启示可应用于任何其它的硬件资源。
以下将更加详细地描述使用与每个指定硬件资源相关的一个或多个域的过滤机制功能。在一个实施例中,与每个指定硬件资源相关的域包含在VMCS122中。
图2为用于过滤客户软件到诸如寄存器之类的硬件资源的访问的过程200的一个实施例的流程图。该过程通过可包含硬件(比如,电路、专用逻辑、微码等)、软件(诸如在通用计算机系统或专用机器上运行)或两者组合的处理逻辑来实现。
参考图2,过程200开始于处理逻辑从客户软件接收属于寄存器一个或多个部分的指令(处理框202)。寄存器的部分可以是寄存器的某个特别的单比特,也可以是寄存器的多个比特(相邻的或非相邻的)。属于寄存器部分的指令可以是请求从寄存器部分读取数据的读指令,也可以是请求向寄存器部分写入数据的写指令。寄存器可以代表控制寄存器(比如,IA-32ISA中的CR0或CR4)、整数寄存器、或任何其它的寄存器或基于存储器的资源。
接下来,处理逻辑从掩码域读取相应的指示符(处理框204)。掩码域包括一组对应寄存器部分的指示符。例如,如果寄存器是32比特的控制寄存器(比如,IA-32ISA中的CR0或CR4),则掩码域可包括扩32个指示符,每个指示符对应控制寄存器的一个特殊比特。另外,因为寄存器可具有不使用的比特,所以掩码域可具有比寄存器中的比特数更少的指示符,由于某些其它原因,掩码域中的某些指示符可对应两个或更多的比特。掩码域中的每个指示符提供关于一部分是在客户控制下(即,允许客户软件访问寄存器的对应部分)还是在VMM控制下的信息。在本发明的实施例中,不具有对应掩码比特的寄存器中的比特假定为在客户的控制下。在本发明的另一个实施例中,它们被假定为在VMM的控制下。
在判决框206,处理逻辑根据来自掩码域的对应指示符,判定是否允许客户软件访问所有请求的寄存器部分。如果判定的结果是肯定的,则处理逻辑在所请求的寄存器部分执行指令(处理框208)。也就是说,处理逻辑从所请求的寄存器部分读取数据,或向该部分写入数据。
否则,如果在判决框206的判定结果是否定的,则在一个实施例中,处理逻辑将控制转移到VMM(处理框210)。
在一可替换的实施例中,使用额外的域来进一步减少控制被转移到VMM中的情况次数。该额外的域在本文中被称为影子值域。影子值域的每个部分对应寄存器的特定部分并存储客户软件期望在寄存器这部分看到的值。在本发明的一个实施例中,影子值域的值由VMM维持并存储在VMCS中。在一个实施例中,只有掩码域中的指示符指示客户软件无法访问这些寄存器部分的寄存器部分在影子值域中具有对应的部分。比如,在IA-32ISA中,如果不允许客户软件访问由掩码域中指示符的值所反映的CR0中的位1到位10,则影子值域的大小将被限制为对应CR0位1到位10的10位。在另一个实施例中,在掩码域中带一指示符的每个寄存器部分在影子值域中都有一个对应的部分。
图4为用于向诸如寄存器之类的硬件资源提供对客户软件访问的附加过滤的过程400的一个实施例的流程图。在一个实施例中,过程400代替了图2中的框210。该过程可通过可包含硬件(比如,电路、专用逻辑、微码等)、软件(诸如在通用计算机系统或专用机器上运行)或两者组合的处理逻辑来实现。
参考图4,过程400开始于处理框402,处理逻辑根据掩码域中所对应的一个或多个指示符来确定被访问的一个或多个寄存器部分是在VMM的控制下,如以上结合图2所描述的。
接下来,在判决框403,处理逻辑确定访问是否为向所请求寄存器部分写入数据的指令。如果确定的结果是肯定的,即访问是写指令,则处理逻辑对于所有在VMM控制下的部分确定,是否客户希望写入每个部分的数据等于读取影子域对应部分中存储的数据(判决框404)。如果该确定结果对于所有在VMM控制下的请求部分都是肯定的,则允许客户向在客户控制下的实际寄存器资源的所有部分写入数据(如掩码域中对应位所确定的)(处理框405),且随后过程400结束。如果该确定结果对于任何在VMM控制下的请求部分是否定的,则处理逻辑将控制转移到VMM(处理框406)。VMM随后根据其执行请求的需要更新影子值域和寄存资源的对应部分,并将控制转移回客户软件。
另外,如果由客户软件启动的指令是从所请求寄存器部分读取数据的指令,那么控制不会被转移到VMM。特别地,处理逻辑访问所有在VMM控制下的请求部分的影子值域的对应部分(处理框412),并将与来自客户控制下的资源部分的实际寄存器资源的值相组合的存储在这些影子值域部分中的数据返回给客户软件(处理框414)。
现在将参考图1更详细地描述以上较详细讨论的实施例,其中,控制到VMM的转移由VMX操作来支持。
在一个实施例中,VMM维持一组控制比特以配置哪些虚拟化事件将引起VM退出。该组控制比特在本文中被称为重定向映射。在一个实施例中,该重定向映射包含在图1的VMCS122中。一旦检测到发生了虚拟化事件,就咨询该重定向映射以找到与该虚拟化事件相关的无条件退出比特。该比特指示是否该虚拟化事件将无条件地发生一个VM退出。比如,重定向映射可为每个控制寄存器包括两个位,一个位控制在客户请求从控制寄存器读取数据时的VM退出,另一位控制客户请求向控制寄存器写入数据时的VM退出。
此外,在一个实施例中,对于每个指定的资源(比如,IA-32ISA中的CR0或CR4),重定向映射包括指示是否将为该资源使用掩码域的比特和指示是否将为该资源使用影子值域的比特。
图5为使用重定向映射在VMX操作中控制访问诸如寄存器之类的硬件资源的过程500的一个实施例的流程图。该过程可通过可包含硬件(比如,电路、专用逻辑、微码等)、软件(诸如在通用计算机系统或专用机器上运行)或两者组合的处理逻辑来实现。
参考图5,过程500开始于处理框502,处理逻辑识别出发生了由客户软件请求访问诸如控制寄存器之类的硬件资源的一部分所引起的虚拟化事件。该请求可以是从特定寄存器的一个或多个部分读取数据的指令,或者是向特定寄存器的一个或多个部分写入数据的指令。
在处理框503,处理逻辑咨询重定向映射以确定,是否设置了与该虚拟化事件相关的无条件退出比特(判决框506)。如果设置了该比特,则处理逻辑触发VM退出(处理框522)。比如,在IA-32ISA中,重定向映射可包括无条件引起向CR2写入、从CR0读取、向CR4写入等时的VM退出。
另外,如果未设置无条件退出比特,则处理逻辑进一步确定是否为该寄存器使用掩码域(判决框508)。通过使用在重定向映射中的指定比特来完成该确定。比如,在IA-32ISA中,在重定向映射中可以有指示是否用于CR0的掩码的比特、是否用于CR4的掩码的比特等。如果该掩码域不用于该寄存器,则处理逻辑在所请求的寄存器部分执行请求的读取或写入指令(处理框514)。不然的话,处理逻辑读取对应于所请求寄存器部分的掩码域比特(处理框510)。这些比特在本文中被称为请求的掩码域比特。检查请求的掩码域比特以确定是否设置了它们中的一个或多个(指示一个或多个对应的寄存器部分是在VMM的控制下)(判决框512)。
如果没有请求的掩码域比特被设置,即允许客户软件访问所有请求的寄存器部分,则处理逻辑在寄存器部分执行所请求的读取或写入指令(处理框514)。否则,如果设置了所请求掩码域中的任何比特,则处理逻辑根据重定向映射中的指定比特来确定是否为该寄存器使用影子值域(判决框516)。例如,在IA-32ISA中,在重定向映射中有指示是否有用于CR0访问、用于CR4访问等的影子值的比特。如果影子值域不用于该寄存器,则处理逻辑触发一个VM退出(处理框522)。
如果影子值域要被用于该寄存器,且由客户软件启动的请求是读取指令(判决框517),则处理逻辑读取对应这些设置在所请求的掩码域中并因此在VMM控制下的寄存器部分的影子值域的比特(处理框518)。这些来自影子值域的比特与来自实际寄存器的对应不设置且因此在客户控制下的所请求的掩码域中的比特相组合。这些组合的值随后被返回到客户软件。可从寄存器读取在被保护资源中不在掩码和/或影子值域中表示的比特的值。
如果要为寄存器使用影子值域,但由客户软件启动的请求是写入指令,则处理逻辑将请求要写入到VMM控制下寄存器比特的值与影子值域中对应比特的值作比较(判决框520)。如果这两个值相同,则对在客户控制下的所请求寄存器部分进行写入(处理框519)。换言之,对客户控制下的比特进行写入;而那些在VMM控制下的比特保持不变。在一个实施例中,可对寄存器中不在掩码和/或影子值域中表示的比特进行写入,如果假定它们在客户控制下的话。在另一个实施例中,数据不写到未表示的比特上,因为假定它们在VMM控制下。不然的话,如果在判决框520比较的两个值不同,则处理逻辑触发一个VM退出(处理框522)。
在一个实施例中,由VMM定义一组准则用于过滤VM退出。该准则基于存储在掩码域中和影子值域中的值与客户软件希望写到寄存器上的值的组合。图3为使用一组准则过滤VM退出的过程300的一个实施例的流程图。该过程可通过可包含硬件(比如,电路、专用逻辑、微码等)、软件(诸如在通用计算机系统或专用机器上运行)或两者组合的处理逻辑来实现。
参考图3,过程300开始于处理逻辑确定客户软件的访问是否是向寄存器写入数据的请求(判决框302)。如果该确定是否定的,即该访问是从寄存器读取数据的请求,则使用以下的表达式确定该读取请求的结果值:
DEST=(MF AND SVF)OR(NOT MF AND CRVAL),
其中,AND、NOT和OR是布尔逻辑位运算符,MF是掩码域的值,SVF是影子值域的值,而CRVAL是实际被保护的寄存器的当前值。如果寄存器中的对应位被VMM控制,则设置掩码域中的一位。不然的话,如果寄存器中的位被客户软件控制,则掩码域中的对应比特等于零。影子域中的位具有客户软件期望在寄存器的对应位中看到的值,且该值可以不同于实际寄存器的对应比特的当前值。
根据以上的表达式,如果由客户软件控制请求比特,则从寄存器读取数据,而如果由VMM控制请求比特,则从影子值域读取数据。
如果处理逻辑在判决框302确定客户软件的访问是写请求,则处理逻辑组合掩码域和影子值域的值(处理框304)如下所述:
INT1=MF AND SVF
此外,处理逻辑使用以下的表达式将掩码域的值与客户软件希望写入寄存器的值相组合(处理框306):
INT2=MF AND SRC,
其中,SRC是客户希望写入寄存器的值。
此外,处理逻辑比较在判决框308的两个组合。如果两个组合是相等的,即寄存器中的所有比特或是由客户软件控制,或是由VMM控制,且影子值域中对应比特的值与客户软件希望写入寄存器的值相等,则处理逻辑在处理框312执行以下的表达式:
CR=(MF AND CRVAL)OR(NOT MF AND SRC)。
根据这个表达式,如果寄存器中的比特由客户软件控制,则该比特将用客户软件希望写入的值更新。不然的话,寄存器中该比特的值将保持与原来相同且不会被更新。
另外,如果两个组合不相等,即寄存器中至少一个比特由VMM控制,且影子值域中对应比特的值与客户软件希望写入寄存器的值不相等,则处理逻辑在处理框310触发一个VM退出。
值得注意的是,对过程300的描述通过使用整个寄存器(比如,IA-32ISA中CR0寄存器的32比特)和32比特宽的掩码和影子值与而得到简化。本领域普通技术人员将理解,本发明的实施例可应用于只访问有限子集寄存器比特或访问多寄存器中的比特的读取和写入操作。另外,本领域技术人员将可以想到,本发明可以应用于在所包含的各种元件之间不是比特对比特对应关系的情况(比如,如果掩码中的比特应用于被保护资源中的多个比特)。
从而,以上描述了一种控制客户软件对硬件资源进行访问的方法和装置。可以理解的是,以上的描述旨在示例,而不是限制。本领域技术人员在阅读和理解了以上的描述之后,可以很明显地想到其它许多实施例。因此,本发明的保护范围应该由所附的权利要求以及这些权利要求所赋予的等效特征的全部范围来决定。

Claims (30)

1.一种方法,包含:
从客户软件接收属于寄存器一个或多个部分的指令;
根据对应所述寄存器一个或多个部分的掩码域中的一个或多个指示符来确定所述客户软件是否可以访问该寄存器的一个或多个部分;以及
如果所述客户软件可以访问所述寄存器一个或多个部分中的每一部分,则在该寄存器的一个或多个部分上执行所述指令。
2.如权利要求1所述的方法,其特征在于,所述掩码域包括一组指示符,该组指示符中的每个指示符对应于所述寄存器的一个特定部分并指示是否允许该寄存器的特定部分被客户软件访问。
3.如权利要求1所述的方法,其特征在于,所述寄存器的一个或多个部分的每一部分表示该寄存器的一个特定比特。
4.如权利要求1所述的方法,其特征在于,所述寄存器是控制寄存器。
5.如权利要求1所述的方法,其特征在于,属于所述寄存器一个或多个部分的所述指令是向该寄存器的一个或多个部分写入数据的指令。
6.如权利要求5所述的方法,其特征在于,在所述寄存器的一个或多个部分上执行指令,包括将数据写入到该寄存器的一个或多个部分。
7.如权利要求5所述的方法,其特征在于,还包含:
根据所述掩码域中的对应指示符,确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分;
检测所请求要写入所述寄存器一个或多个部分中至少一部分的数据不同于客户软件所期望的要被存储在所述寄存器一个或多个部分中至少一部分中的值;以及
将控制转移到虚拟计算机监视器(VMM)。
8.如权利要求5所述的方法,其特征在于,还包含:
根据所述掩码域中的对应指示符,确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分;
检测所请求要写入所述寄存器一个或多个部分中至少一部分的数据与客户软件所期望的要被存储在所述寄存器一个或多个部分中至少一部分中的值相同;以及
将数据写入到允许所述客户软件访问的寄存器的一个或多个部分中的任一部分。
9.如权利要求7所述的方法,其特征在于,检测所述数据不同于所期望的要被存储在所述寄存器一个或多个部分中的值包括,将该数据与影子值域的一个或多个对应部分的值作比较。
10.如权利要求9所述的方法,其特征在于,还包含:
VMM用所述的数据更新所述影子值域。
11.如权利要求1所述的方法,其特征在于,属于所述寄存器一部分的所述指令是从所述寄存器一个或多个部分读取数据的指令。
12.如权利要求11所述的方法,其特征在于,在所述寄存器一个或多个部分上执行指令包括,从所述寄存器的一个或多个部分读取数据。
13.如权利要求11所述的方法,其特征在于,还包含:
根据所述掩码域中的一个或多个对应的指示符,确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分;
访问允许所述客户软件访问的所述寄存器一个或多个部分中的任一部分;
访问影子值域中对应于所述寄存器一个或多个部分中至少一部分的一个或多个部分;
将存储在所述影子值域一个或多个对应部分中的数据与存储在允许客户软件访问的寄存器的一个或多个部分中任一部分中的数据进行组合;以及
将所组合的数据返回到所述客户软件。
14.一种系统,包含:
存储器;以及
处理器,耦连到所述存储器,用于从客户软件接收属于寄存器一个或多个部分的指令,根据掩码域中对应所述寄存器一个或多个部分的一个或多个指示符确定所述客户软件是否可以访问所述寄存器的一个或多个部分,并且如果所述客户软件可以访问所述寄存器一个或多个部分的每一部分则在所述寄存器的一个或多个部分上执行所述指令。
15.如权利要求14所述的系统,其特征在于,所述掩码域包括一组指示符,该组指示符中的每个指示符对应所述寄存器的一个特定部分并指示是否允许该寄存器的特定部分被客户软件访问。
16.如权利要求14所述的系统,其特征在于,所述寄存器的一个或多个部分的每一部分表示该寄存器的一个特定位。
17.如权利要求14所述的系统,其特征在于,所述寄存器是控制寄存器。
18.如权利要求14所述的系统,其特征在于,属于所述寄存器一个或多个部分的所述指令是向该寄存器的一个或多个部分写入数据的指令。
19.如权利要求18所述的系统,其特征在于,在所述寄存器的一个或多个部分上执行指令,包括将数据写入到该寄存器的一个或多个部分。
20.如权利要求18所述的系统,其特征在于,所述处理器进一步根据所述掩码域中的对应指示符确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分,检测所请求要写入所述寄存器一个或多个部分中至少一部分的数据不同于客户软件所期望的要被存储在所述寄存器一个或多个部分中至少一部分中的值,以及将控制转移到虚拟计算机监视器(VMM)。
21.如权利要求18所述的系统,其特征在于,所述处理器进一步根据所述掩码域中的对应指示符确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分,检测所请求要写入所述寄存器一个或多个部分中至少一部分的数据与客户软件所期望的要被存储在所述寄存器一个或多个部分中至少一部分中的值相同,以及将数据写入到允许所述客户软件访问的寄存器的一个或多个部分中的任一部分。
22.如权利要求20所述的系统,其特征在于,所述处理器通过将所述数据与影子值域的一个或多个对应部分的值作比较来检测该数据不同于所期望的要被存储在所述寄存器一个或多个部分中的值。
23.如权利要求18所述的系统,其特征在于,所述处理器进一步用所述的数据更新所述影子值域。
24.如权利要求18所述的系统,其特征在于,属于所述寄存器一部分的所述指令是从所述寄存器一个或多个部分读取数据的指令。
25.如权利要求24所述的系统,其特征在于,在所述寄存器一个或多个部分上执行指令包括,从所述寄存器的一个或多个部分读取数据。
26.如权利要求24所述的系统,其特征在于,所述处理器进一步根据所述掩码域中一个或多个对应的指示符确定所述客户软件不可以访问所述寄存器一个或多个部分中的至少一部分,访问允许所述客户软件访问的所述寄存器一个或多个部分中的任一部分,访问影子值域中对应所述寄存器一个或多个部分中至少一部分的一个或多个部分,将存储在所述影子值域一个或多个对应部分中的数据与存储在允许客户软件访问的寄存器的一个或多个部分中任一部分中的数据进行组合,以及将所组合的数据返回到所述客户软件。
27.一种包含指令的计算机可读介质,该指令当由处理系统执行时使该处理系统实现一方法,该方法包括:
从客户软件接收属于寄存器一个或多个部分的指令;
根据对应所述寄存器一个或多个部分的掩码域中的一个或多个指示符来确定所述客户软件是否可以访问该寄存器的一个或多个部分;以及
如果所述客户软件可以访问所述寄存器一个或多个部分中的每一部分,则在该寄存器的部分上执行所述指令。
28.如权利要求27所述的计算机可读介质,其特征在于,所述掩码域包括一组指示符,该组指示符中的每个指示符对应所述寄存器的一个特定部分并指示是否允许该寄存器的特定部分被客户软件访问。
29.如权利要求27所述的计算机可读介质,其特征在于,所述寄存器的一个或多个部分的每一部分表示该寄存器的一个特定比特。
30.如权利要求27所述的计算机可读介质,其特征在于,所述寄存器是控制寄存器。
CN03813694.5A 2002-04-16 2003-03-27 虚拟计算机中控制寄存器访问虚拟化性能的方法及系统 Expired - Fee Related CN1659518B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/124,641 2002-04-16
US10/124,641 US7127548B2 (en) 2002-04-16 2002-04-16 Control register access virtualization performance improvement in the virtual-machine architecture
PCT/US2003/009482 WO2003090070A2 (en) 2002-04-16 2003-03-27 Control register access virtualization performance improvement in the virtual-machine architecture

Publications (2)

Publication Number Publication Date
CN1659518A true CN1659518A (zh) 2005-08-24
CN1659518B CN1659518B (zh) 2010-05-05

Family

ID=29248379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03813694.5A Expired - Fee Related CN1659518B (zh) 2002-04-16 2003-03-27 虚拟计算机中控制寄存器访问虚拟化性能的方法及系统

Country Status (7)

Country Link
US (1) US7127548B2 (zh)
EP (1) EP1520227A2 (zh)
KR (1) KR100667146B1 (zh)
CN (1) CN1659518B (zh)
AU (1) AU2003224791A1 (zh)
TW (1) TWI252427B (zh)
WO (1) WO2003090070A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162443B (zh) * 2006-10-10 2012-06-27 瑞萨电子株式会社 数据处理器
CN101490646B (zh) * 2006-08-08 2013-10-16 英特尔公司 虚拟化性能计数器
CN107977251A (zh) * 2016-10-21 2018-05-01 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问
CN109240801A (zh) * 2011-10-28 2019-01-18 英特尔公司 在没有vmm介入的情况下对调用vmm配置的服务的指令集支持

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7278030B1 (en) * 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
GB0318045D0 (en) * 2003-08-01 2003-09-03 Mjm Internat Ltd Foundation garment
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7475002B1 (en) * 2004-02-18 2009-01-06 Vmware, Inc. Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system
US7418584B1 (en) * 2004-05-11 2008-08-26 Advanced Micro Devices, Inc. Executing system management mode code as virtual machine guest
US7500244B2 (en) * 2004-06-30 2009-03-03 Intel Corporation Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments
US20060005190A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for implementing an operating system in a virtual machine environment
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US9753754B2 (en) * 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US8627315B2 (en) * 2004-12-31 2014-01-07 Intel Corporation Apparatus and method for cooperative guest firmware
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
US7496495B2 (en) * 2005-05-12 2009-02-24 Microsoft Corporation Virtual operating system device communication relying on memory access violations
US7363463B2 (en) 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US7904903B2 (en) * 2005-06-30 2011-03-08 Intel Corporation Selective register save and restore upon context switch using trap
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8312452B2 (en) * 2005-06-30 2012-11-13 Intel Corporation Method and apparatus for a guest to access a privileged register
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US9785485B2 (en) 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
US7752436B2 (en) 2005-08-09 2010-07-06 Intel Corporation Exclusive access for secure audio program
US7555592B1 (en) * 2005-08-23 2009-06-30 Parallels Software International, Inc. Kernel acceleration technology for virtual machine optimization
US7581085B1 (en) 2005-09-08 2009-08-25 Parallels Software International, Inc. Fast stub and frame technology for virtual machine optimization
US7748037B2 (en) * 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US7610431B1 (en) * 2005-10-14 2009-10-27 Sun Microsystems, Inc. Configuration space compaction
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
US7434003B2 (en) 2005-11-15 2008-10-07 Microsoft Corporation Efficient operating system operation on a hypervisor
US7506121B2 (en) * 2005-12-30 2009-03-17 Intel Corporation Method and apparatus for a guest to access a memory mapped device
US8694712B2 (en) 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US8776041B2 (en) * 2007-02-05 2014-07-08 Microsoft Corporation Updating a virtual machine monitor from a guest partition
US7984483B2 (en) 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US8561060B2 (en) 2007-04-26 2013-10-15 Advanced Micro Devices, Inc. Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine
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
US8099718B2 (en) 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US8307360B2 (en) * 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
US20090300307A1 (en) * 2008-05-30 2009-12-03 International Business Machines Corporation Protection and security provisioning using on-the-fly virtualization
US8151099B2 (en) * 2008-07-01 2012-04-03 Caterpillar Inc. Virtualized service tool and virtualized control tool
US8516564B2 (en) * 2008-07-18 2013-08-20 International Business Machines Corporation Secure user interaction using virtualization
US10802990B2 (en) * 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US20100180276A1 (en) * 2009-01-15 2010-07-15 Jiva Azeem S Application partitioning across a virtualized environment
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
US8286164B2 (en) 2009-08-07 2012-10-09 International Business Machines Corporation Secure recursive virtualization
JP5491102B2 (ja) * 2009-08-27 2014-05-14 ルネサスエレクトロニクス株式会社 データプロセッサ
JP5493125B2 (ja) * 2010-02-05 2014-05-14 株式会社日立製作所 仮想化方法及び計算機
US20120060155A1 (en) * 2010-09-02 2012-03-08 Keys Gregory C Method, system, and computer readable medium for workflow communication wherein instructions to a workflow application are written by the workflow application
WO2013101246A1 (en) * 2011-12-31 2013-07-04 Intel Corporation Processor that detects when system management mode attempts to reach program code outside of protected space
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
TWI497417B (zh) * 2014-07-22 2015-08-21 Nat Univ Tsing Hua 虛擬機器之資料存取方法、資料存取系統與主控端模組
US10162660B2 (en) * 2015-12-03 2018-12-25 International Business Machines Corporation Application-level processor parameter management
US10963280B2 (en) 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
US10042571B2 (en) * 2016-03-31 2018-08-07 Intel Corporation Techniques to provide run-time protections using immutable regions of memory
US10180789B2 (en) 2017-01-26 2019-01-15 Advanced Micro Devices, Inc. Software control of state sets
US10558489B2 (en) 2017-02-21 2020-02-11 Advanced Micro Devices, Inc. Suspend and restore processor operations
US11281495B2 (en) 2017-10-26 2022-03-22 Advanced Micro Devices, Inc. Trusted memory zone

Family Cites Families (149)

* 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
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
US4307214A (en) * 1979-12-12 1981-12-22 Phillips Petroleum Company SC2 activation of supported chromium oxide catalysts
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
JPS5960652A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd デ−タ処理装置
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
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
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
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
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
AU3424293A (en) * 1992-01-02 1993-07-28 Amdahl Corporation Computer system with two levels of guests
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
EP0622509B1 (de) * 1993-02-08 1995-08-30 MEPLA-WERKE LAUTENSCHLÄGER GmbH & Co. KG Möbelscharnier
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
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
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
EP0706275B1 (en) * 1994-09-15 2006-01-25 International Business Machines Corporation System and method for secure storage and distribution of data using digital signatures
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
US5903752A (en) 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
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
US6542919B1 (en) * 1996-03-22 2003-04-01 Koninklijke Philips Electronics N.V. Operating system for use with protection domains in a single address space
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
US5937063A (en) 1996-09-30 1999-08-10 Intel Corporation Secure boot
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
US5953502A (en) 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
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
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
GB9714181D0 (en) * 1997-07-05 1997-09-10 Bp Chem Int Ltd Polymerisation catalyst
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
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
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
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
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
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
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
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
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101490646B (zh) * 2006-08-08 2013-10-16 英特尔公司 虚拟化性能计数器
US8607228B2 (en) 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
CN103500137A (zh) * 2006-08-08 2014-01-08 英特尔公司 虚拟化性能计数器
US9244712B2 (en) 2006-08-08 2016-01-26 Intel Corporation Virtualizing performance counters
CN103500137B (zh) * 2006-08-08 2017-01-11 英特尔公司 虚拟化性能计数器
CN101162443B (zh) * 2006-10-10 2012-06-27 瑞萨电子株式会社 数据处理器
CN109240801A (zh) * 2011-10-28 2019-01-18 英特尔公司 在没有vmm介入的情况下对调用vmm配置的服务的指令集支持
CN109240801B (zh) * 2011-10-28 2022-04-01 英特尔公司 在没有vmm介入的情况下对调用vmm配置的服务的指令集支持
CN107977251A (zh) * 2016-10-21 2018-05-01 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问
CN107977251B (zh) * 2016-10-21 2023-10-27 超威半导体(上海)有限公司 对在虚拟化系统中的共享寄存器的排他访问

Also Published As

Publication number Publication date
WO2003090070A3 (en) 2005-01-27
TW200403586A (en) 2004-03-01
EP1520227A2 (en) 2005-04-06
US20030217250A1 (en) 2003-11-20
US7127548B2 (en) 2006-10-24
AU2003224791A1 (en) 2003-11-03
AU2003224791A8 (en) 2003-11-03
WO2003090070A2 (en) 2003-10-30
KR100667146B1 (ko) 2007-01-12
TWI252427B (en) 2006-04-01
KR20040101516A (ko) 2004-12-02
CN1659518B (zh) 2010-05-05

Similar Documents

Publication Publication Date Title
CN1659518A (zh) 虚拟计算机结构中控制寄存器访问虚拟化性能的改进
KR102383900B1 (ko) 타겟 메모리 어드레스에 대응한 메모리 속성 유닛의 영역을 식별하는 영역식별 연산
US7380049B2 (en) Memory protection within a virtual partition
JP6902029B2 (ja) 有界ポインタを管理するための装置および方法
EP1966706B1 (en) Identifier associated with memory locations for managing memory accesses
US7043616B1 (en) Method of controlling access to model specific registers of a microprocessor
US20080077767A1 (en) Method and apparatus for secure page swapping in virtual memory systems
JP6893216B2 (ja) 有界ポインタの使用を制御するための装置及び方法
US20130091568A1 (en) Systems and methods for secure in-vm monitoring
US7130977B1 (en) Controlling access to a control register of a microprocessor
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US8549325B2 (en) Reducing information leakage between processes sharing a cache
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
US7082507B1 (en) Method of controlling access to an address translation data structure of a computer system
EP3631621B1 (en) An apparatus and method for interpreting permissions associated with a capability
CN110036377B (zh) 可缓存的但不可通过推测指令访问的内存类型
JP7280196B2 (ja) 機能ドメインを管理するための装置及び方法
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
KR20210088522A (ko) 메모리 액세스를 제어하기 위한 장치 및 방법
KR20230017832A (ko) Tag 체킹 장치 및 방법
KR20220156028A (ko) 메모리 액세서 무효화
CN112585590A (zh) 存储器访问控制
JP7369720B2 (ja) アクションをトリガするための装置及び方法
WO2023067295A1 (en) Technique for handling sealed capabilities
TW202340955A (zh) 使用能力約束記憶體存取之技術

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
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: 20100505

Termination date: 20190327