CN101027640A - 为与虚拟机监控程序相关联的定时器提供支持 - Google Patents

为与虚拟机监控程序相关联的定时器提供支持 Download PDF

Info

Publication number
CN101027640A
CN101027640A CNA200580032344XA CN200580032344A CN101027640A CN 101027640 A CN101027640 A CN 101027640A CN A200580032344X A CNA200580032344X A CN A200580032344XA CN 200580032344 A CN200580032344 A CN 200580032344A CN 101027640 A CN101027640 A CN 101027640A
Authority
CN
China
Prior art keywords
vmm
timer value
timer
control
value
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
CNA200580032344XA
Other languages
English (en)
Other versions
CN100514297C (zh
Inventor
G·N·尼格
S·贝内特
E·科塔-罗伯斯
S·舍恩伯格
C·霍尔
D·罗杰斯
L·史密斯
A·安德森
R·乌利希
M·科祖
A·格伦
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 CN101027640A publication Critical patent/CN101027640A/zh
Application granted granted Critical
Publication of CN100514297C publication Critical patent/CN100514297C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Measurement Of Unknown Time Intervals (AREA)

Abstract

在一个实施例中,一种方法包括将控制从虚拟机监控程序(VMM)转移到虚拟机(VM),确定VMM定时器指示符被设为启用值,并标识由VMM配置的VMM定时器值。该方法还包括周期性地将定时源的当前值与VMM定时器值进行比较,如果定时源的当前值达到VMM定时器值则生成一内部事件,并响应于该内部事件将控制转移到VMM,而不在VMM和VM的任一个中导致事件处理过程。

Description

为与虚拟机监控程序相关联的定时器提供支持
领域
本发明的实施例一般涉及虚拟机,尤其涉及为与虚拟机监控程序相关联的定时器提供支持。
背景
定时器和时间基准源一般由操作系统和应用软件用于调度和优化活动。例如,操作系统内核可使用定时器以允许多个用户级应用程序在时间上共享系统的资源(例如中央处理单元(CPU))。在个人计算机(PC)平台上使用的定时器的一个示例是8254可编程间隔定时器。该定时器可被配置成在指定的间隔后或周期性地发出中断。
时间基准源的一个示例是IntelPentium4的指令集架构(ISA)(本文中称为IA-32 ISA)中使用的时间戳计数器(TSC)。TSC是64位计数器,它在处理器的硬件复位后被设为0,然后在每个处理器时钟周期加1,即使当处理器被HLT指令暂停时。TSC不能用于生成中断。它仅是时间基准,用于测量时间间隔。IA-32 ISA提供用于读取TSC的值的指令(RDTSC)和用于写入TSC的指令(WRMSR)。当使用WRMSR来写入时间戳计数器时,仅32个个较低位可被写入;32个较高位被清0。
在虚拟机系统中,虚拟机监控程序(VMM)可能需要以类似于常规的操作系统的方式利用基于平台的定时器。例如,VMM可使用定时器来调度资源、保证安全性、提供服务质量等。
附图简述
在附图的各图中作为示例而不是限制示出了本发明,其中相同的参考标号指的是相似的元素,附图中:
图1示出本发明可在其中操作的虚拟机环境的一个实施例;
图2是用于为与VMM相关联的定时器提供支持的过程的一个实施例的流程图;
图3和4是利用VMM定时器来决定是否将控制返回给VMM的过程的两个实施例的流程图;以及
图5是用于配置与VMM相关联的定时器的过程的一个实施例的流程图。
实施例的描述
描述了用于为与虚拟机监控程序相关联的定时器提供支持的方法和装置。在以下描述中,为了解释起见,陈述了众多具体细节以提供对本发明的全面理解。然而,本领域的技术人员可以明白,可在没有这些具体细节的情况下实施本发明。
以下详细描述的某些部分是按照计算机系统的寄存器或存储器内的数据位上的操作的算法和符号表示来呈现的。这些算法描述和表示是由数据处理领域的技术人员用于将其工作的实质内容传达给本领的其它技术人员的手段。算法此处一般被认为是通往理想结果的操作的自一致序列。该操作是需要对物理量的物理处理的那些操作。通常,尽管未必如此,但这些量可采用能够被存储、传输、组合、比较和用其它方式处理的电或磁信号的形式。已证明有时主要是出于公共用法的原因将这些信号称为位、值、元素、码元、字符、项、数等是方便的。
然而,应该记住,所有这些和类似的术语都与适当的物理量相关联,且仅仅是应用于这些量的方便的标记。除非明确说明,否则正如从以下讨论中所清楚的,应意识到在整个说明书讨论中利用了诸如“处理”、“计算”、“演算”、“确定”等术语来指计算系统或类似的电子计算设备的动作和/或进程,它们将表示为计算系统的寄存器和存储器内的物理(电子)量的数据处理和变换成同样表示为计算系统的存储器、寄存器或其它这样的信息存储、传输或显示设备内的物理量的其它数据。
在以下实施例的详细描述中,对作为说明示出其中可实施本发明的特定实施例的附图进行了参考。在附图中,相同的编号在各附图中描述基本类似的组件。足够详细地描述了这些实施例以使本领域的技术人员能够实施本发明。在不背离本发明的范围的情况下可利用其它实施例并作出结构、逻辑和电的改变。此外,应该理解,本发明的各实施例尽管是不同的,但未必是互斥的。例如,在一个实施例中描述的特定的特征、结构或特性可被包含在其它实施例中。因此,以下详细描述不应理解为限制的意思,且本发明的范围仅由所附权利要求书连同该权利要求书授权的全范围的等价技术方案来定义。
尽管以下的示例可描述在执行单元和逻辑电路的上下文中向与虚拟机监控程序(VMM)相关联的定时器提供支持,但本发明的其它实施例可通过软件来实现。例如,在某些实施例中,本发明可作为计算机程序产品或软件来提供,它可包括其上存储了指令的机器或计算机可读介质,该指令可用于对计算机(或其它电子设备)编程以执行根据本发明的进程。在其它实施例中,本发明的进程可由含有用于执行该进程的硬连线逻辑的专用硬件组件来执行,或者由编程的计算机组件和自定义硬件组件的任何组合来执行。
因此,机器可读介质可包括用于以机器(例如,计算机)可读形式存储或传输信息的任何机制,但不限于软盘、光盘、紧致盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、因特网上的传输、电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)上。
此外,一种设计可经历从创建到模拟到制造的各种阶段。表示一种设计的数据可用多种方式来表示该设计。首先,正如模拟中使用的,硬件可利用硬件描述语言或另一种功能描述语言来表示。此外,具有逻辑和/或晶体管门的电路级模型可在设计过程的某些阶段中产生。此外,大部分设计在某些阶段达到表示硬件模型中的各个设备的物理布置的数据级。在采用常规的半导体制造技术的情况中,表示硬件模型的数据可以是指定用于产生集成电路的掩模的不同的掩模层上各种特征的存在或不存在的数据。在设计的任何表示中,可将数据存储在任何形式的机器可读介质中。调制或另外生成以传输该信息的光波或电波、存储器、诸如磁盘之类的磁性或光学存储可以是机器可读介质。这些介质中的任一种可“携带”或“指示”设计或软件信息。当发送指示或携带代码或设计的电载波时,就执行电信号的复制、缓冲或重新传输而言,作出了新的副本。因此,通信供应商或网络供应商可制作体现本发明的技术的制品(载波)的副本。
图1示出本发明可在其中操作的虚拟机环境的一个实施例。在该实施例中,裸平台硬件116包括能够例如执行标准操作系统(OS)或诸如VMM 112之类的虚拟机监控程序(VMM)的计算平台。
VMM 112尽管一般用软件来实现,但可仿真并导出至较高级软件的裸机接口。这种较高级的软件可包括标准或实时OS,可以是具有有限的操作系统功能的高度拆分的操作环境,可以不包括传统的OS工具等。或者,例如,VMM 112可在另一个VMM内或其上运行。例如,VMM可用硬件、软件、固件或通过各种技术的组合来实现。
平台硬件116可以属于个人计算机(PC)、大型机、手持式设备、便携式计算机、机顶盒或任何其它计算系统。平台硬件116包括处理器118和存储器120。
处理器118可以是诸如微处理器、数字信号处理器、微控制器等能够执行软件的任何类型的处理器。处理器118可包括用于实现本发明的方法实施例的执行的微码、可编程逻辑或硬编码逻辑。尽管图1仅示出一个这样的处理器118,但该系统中可有一个或多个处理器。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、以上设备的组合、或者可由处理器118读取的任何其它类型的机器介质。存储器120可存储用于实现本发明的方法实施例的执行的指令和/或数据。
VMM 112可向其它软件(即,“客机”软件)呈现一个或多个虚拟机(VM)的抽象,它可向各客机提供相同或不同的抽象。图1示出两个VM,即102和104。在每一个VM上运行的客机软件可包括诸如客机OS 104或106等客机OS和各种客机软件应用程序108和110。客机OS 104和106的每一个都期望访问客机OS 104或106在其上运行的VM 102和114内的物理资源(例如,处理器寄存器、存储器和I/O设备)并执行其它功能。例如,根据VM 102和114中存在的处理器和平台的架构,客机OS 104或106期望可对所有寄存器、高速缓存、结构、I/O设备、存储器等进行访问。可由客机软件访问的资源可分为“特许的”或“非特许的”。对于特许资源,VMM 112促进客机软件所期望的功能,同时保留对这些特许资源的最终控制。非特许资源不需要由VMM 112控制,并可由客机软件访问。
此外,每一个客机OS期望处理诸如异常(例如页错误、一般保护错误等)、中断(例如,硬件中断、软件中断)以及平台事件(例如,初始化(INIT)和系统管理中断(SMI))等各种错误事件。这些错误事件中的某一些是“特许的”,因为它们必须由VMM 112处理以确保VM 102和104的正确操作并针对客机软件和在客机软件中进行保护。
当特许错误事件发生或客机软件试图访问特许资源时,控制可被传递到VMM112。控制从客机软件到VMM 112的传递在本文中称为VM退出。在促进资源访问或适当处理事件后,VMM 112可将控制返回给客机软件。控制从VMM 112到客机软件的传递称为VM进入。
在一个实施例中,处理器118根据存储在虚拟机控制结构(VMCS)124中的数据来控制VM 102和104的操作。VMCS 124是一种可包含客机软件的状态、VMM112的状态、指示VMM 112如何希望控制客机软件的操作的执行控制信息、控制VMM 112和VM之间的转换的信息等的结构。处理器118从VMCS 124中读取信息以确定VM的执行环境并约束其行为。在一个实施例中,VMCS被存储在存储器120中。在某些实施例中,使用多个VMCS结构来支持多个VM。
在一个实施例中,当发生VM退出时,保存由客机软件使用的处理器状态的分量,加载由VMM 112要求的处理器状态的分量,并且执行在VMM 112中重新开始。在一个实施例中,由客机软件使用的处理器状态的分量被存储在VMCS 124的客机状态区中,而由VMM 112要求的处理器状态的分量被存储在VMCS 124的监控程序状态区中。在一个实施例中,当发生从VMM 112到客机软件的转移时,在VM退出时保存的处理器状态(并且在处理VM退出的同时可能由VMM 112修改)被恢复且控制返回到VM 102或114。
导致VM退出的事件可能要求或不要求“事件处理”过程的执行。事件处理过程指改变处理器上执行的代码的控制流的事件报告,即使没有分支要求这一改变存在于代码中。事件报告一般在事件是异常或中断时执行,并要求保存运行代码的状态(例如,在栈上),从而通过遍历一重定向结构(例如,IntelPentium4指令集架构(ISA)(本文中称为IA-32 ISA)中的中断描述符表(IDT)),加载事件处理程序的状态,并开始在新代码中执行来定位一中断向量。当在VM 102和104的操作期间发生异常或中断,且该异常或中断应由VMM 112处理(例如,不是由运行的VM 102或104发起或代表其发起的I/O操作的I/O完成中断)时,事件处理过程在退出运行的VM 102或114后执行(即,将控制转移到VMM 112)。
某些事件不要求上述事件处理过程在VMM 112或VM 102或114中执行。这种事件在本文中称为内部事件。例如,VM 102或114可导致VMM 112已出页但VM 102或114期望驻留的页上的页错误。这种页错误不能引起事件处理过程,以防止虚拟化违例。相反,该页错误利用VM退出来处理,这导致VM状态被保存在VMCS 124中,同时执行在VMM 112中重新开始,这将处理该页错误并将控制转移回VM 102或114。
VMM 112可能需要在VM 102或114的操作期间获得控制,以调度资源、提供服务质量、确保安全性并执行其它功能。因此,VMM 112需要具有允许VMM 112指示用于获得控制的理想的时间的定时器机制。在一个实施例中,VMM 112包括在请求控制向VM 102或114的转移之前提供用于与VMM定时器相关联的字段的值的定时器配置模块126。这些字段可包括例如指定是否应启用VMM定时器的VMM定时器指示符以及指示用于重新获得控制的理想的时间的VMM定时器值字段。
在一个实施例中,VMM定时器指示符和VMM定时器值被存储在VMCS 124中。或者,VMM定时器指示符和VMM定时器值可驻留在处理器118中、存储器120和处理器118的组合中、或任何其它一个或多个存储位置中。在一个实施例中,对VM 102和114的每一个维护一对单独的VMM定时器指示符和VMM定时器值。或者,对VM 102和144两者维护同一VMM定时器指示符和VMM定时器值,并在每一次VM进入前由VMM 112更新。
在其中系统100包括多个处理器或多线程处理器的一个实施例中,逻辑处理器的每一个与一对单独的VMM定时器指示符和VMM定时器值相关联,且VMM112对逻辑处理器的每一个配置该VMM定时器指示符和VMM定时器值。
在一个实施例中,处理器118包括负责基于VMM定时器指示符来确定是否启用VMM定时器的VMM定时器支持逻辑122。如果VMM定时器被启用,则VMM定时器支持逻辑122利用由VMM 112指定的VMM定时器值来决定何时将控制转移到VMM 112。
在一个实施例中,VMM定时器值指定应将控制返回给VMM112的时间。在VM 102或114的操作期间,VMM定时器支持逻辑122周期性地(例如,在由当前操作的VM 102或104执行的每一个周期后)将定时源的当前值与由VMM 112指定的VMM定时器值进行比较。定时源可以是由系统100用于测量时间间隔的任何时钟。例如,在IA-32 ISA中,用于测量时间间隔的定时源可以是时间戳计数器(TSC)。
当由定时源提供的当前时间“达到”由VMM 112指定的VMM定时器值时,VMM定时器支持逻辑122将控制转移到VMM 112,指示转移的原因是VMM定时器。如果当前时间匹配VMM定时器值或超过该定时器值(在当前时间和VMM定时器值之间的精确匹配是不可能的时候),则当前时间“达到”VMM定时器值。
在另一个实施例中,VMM定时器值指定在其结束时VMM 112应获得控制的时间间隔。在VM 102或114的操作期间,VMM定时器支持逻辑122将该时间间隔用作递减计数值,从而将其周期性地递减(例如,时钟的每N个时钟报时信号)。当递减计数值达到0时,VMM定时器支持逻辑122将控制转移到VMM 112。在一个实施例中,如果VM退出在递减计数值的期满前发生(例如,由于VM的操作期间所检测到的错误),则VMM定时器支持逻辑122将当前的递减计数值存储到VMCS 124中。所存储的递减计数值可取代先前由VMM 112指定的VMM计数器值,或者在指定的递减计数值字段中维护。
图2是用于为与VMM相关联的定时器提供支持的过程200的一个实施例的流程图。该过程可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(诸如通用计算机系统或专用机上运行的软件)或两者的组合的处理逻辑来执行。在一个实施例中,过程200由图1的VMM定时器支持逻辑122来执行。
参考图2,过程200以处理逻辑接收将控制从VMM转移到VM的请求(即,对于VM进入的请求)开始(处理框202)。在一个实施例中,VM进入请求经由由VMM执行的VM进入指令接收。
接着,处理逻辑确定VMM定时器指示符是否被设为启用值(处理框204)。VMM定时器指示符由VMM配置并可被设为启用值以指示VMM定时器机制被启用。如以上所讨论的,VMM定时器机制(本文中也称为VMM定时器)允许VMM在VM操作期间的特定时间点处获得控制。
如果在处理框204处确定为否定(VMM定时器标识符被设为禁用值),则处理逻辑前进到处理框210。
如果在处理框204处确定为肯定,则处理逻辑标识由VMM配置的VMM定时器值(处理框206)。在一个实施例中,处理逻辑通过从VMCS检索VMM定时器值来标识VMM定时器值。VMM在发出VM进入请求前将VMM定时器值存储到VMCS中。在处理框208处,处理逻辑利用VMM定时器值来配置并启用VMM定时器。
在一个实施例中,VMM定时器值指定应将控制返回到VMM的时间。VMM可通过在计算时将偏移值(即,指定允许VM执行多长时间的时间间隔)加到由VMM读取的定时源的值来计算该定时器值。在另一个实施例中,VMM定时器值是指定允许VM执行多长时间的偏移时间间隔。
接着,处理逻辑将控制转移到VM(处理框210),并允许VM执行直到与VM退出相关联的事件发生(处理框212)。在一个实施例中,如果将与事件相关联的执行控制指示符设为VM退出值以引起对于该事件的VM退出,则该事件与VM退出相关联。
在处理框214处,禁用VMM定时器。注意,如果在处理框208中未启用VMM,则不需要该处理步骤。接着,如果事件是与VM退出相关联的非VMM定时器事件(例如,错误)(处理框216),则处理逻辑将控制返回给VMM,指示VM退出的原因(处理框218)。
或者,如果事件是由VMM定时器引起的(处理框216),则处理逻辑将控制转移到VMM,指示VM退出是由VMM定时器引起的(处理框220)。
VMM定时器将基于由VMM指定的VMM定时器值来生成触发VM退出的事件。在其中VMM定时器值指定VMM期望获得控制的时间的一个实施例中,处理逻辑通过周期性地将时钟的当前值(例如,TSC或某些其它的定时基准)与VMM定时器值进行比较直到检测到时钟达到VMM定时器值来作出以上判定。在其中VMM定时器值是指定允许VM执行多长时间的偏移时间值的另一个实施例中,处理逻辑通过周期性地递减偏移时间值直到检测到偏移时间值达到0来作出以上判定。
应该注意,图2示出其中由非VMM定时器事件引起的VM退出可具有比由VMM定时器引起的VM退出高的优先级的实施例。然而,该优先化取决于所采用的优先化方案可以不同,并且由此,有关由非VMM定时器事件引起的VM退出的判定可在有关由VMM定时器事件引起的VM退出的判定后作出(处理框214)。此外,某些非VMM定时器事件可具有较高的优先级,而其它非VMM定时器事件可具有比VMM定时器事件低的优先级。
图3和4是利用VMM定时器来决定是否将控制返回给VMM的过程的两个实施例的流程图。该过程可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(诸如通用计算机系统或专用机上运行的软件)或两者的组合的处理逻辑来执行。在一个实施例中,该过程可由图1的VMM定时器支持逻辑122来执行。
参考图3,过程300利用指定应将控制返回给VMM的时间的VMM定时器值。如上所讨论的,VMM可通过在计算时将偏移值(即,指定允许VM执行多长时间的时间间隔)加到由VMM读取的定时源的值来计算该定时器值。
过程300在如图2所示的确定VMM定时器被启用、标识由VMM配置的VMM定时器值并将控制转移到VM之后开始。
最初,在VM的操作期间,处理逻辑确定由定时源提供的当前时间是否达到VMM定时器值(处理框302)。如以上所讨论的,定时源可以是系统100用于测量时间间隔的任何时钟。例如,支持IA-32 ISA的处理器可使用TSC来测量时间间隔。
在一个实施例中,并非定时源中的所有位都可以与VMM定时器值进行比较。相反,可以仅比较高位。比较的位数称为VMM定时器比较符长度。在一个实施例中,VMM可通过利用RDMSR指令读取能力模型专用寄存器(MSR)来确定VMM定时器比较符长度。在其中TSC用作定时源的一个实施例中,处理框302的确定通过将TSC的较高位与VMM定时器值的相同的较高位进行比较来作出,且如果TSC的值大于或等于VMM定时器值,则满足处理框302中的比较。
如果定时源的当前时间达到VMM定时器值,则处理逻辑创建一内部事件并生成VM退出,指示VM退出的原因是由于VMM定时器引起的(处理框304)。正如以上所讨论的,因为VM退出是由内部事件引起的,所以执行将在VMM中重新开始而不执行通常在退出VMM后对中断或异常执行的事件处理过程。
如果定时源的当前时间没有达到VMM定时器值,则处理逻辑检验与VM退出相关联的非VMM定时器事件(处理框306)。如果发生这一事件,则处理逻辑生成VM退出并指示VM退出的源(处理框308)。否则,处理逻辑返回到处理框302。取决于非VMM定时器事件的性质(例如,非VMM定时器事件是内部中断还是内部事件),退出VM后可以有或没有事件处理过程。
在一个实施例中,当前时间和VMM定时器值之间的比较(处理框302所示)在由VM执行的每个周期后执行,直到当前时间达到或超过VMM定时器值。
在一个实施例中,在被配置成在当前时间匹配VMM定时器值时生成信号的硬件组件中执行比较。该信号指示由于VMM定时器应生成VM退出。在一个实施例中,该信号在当前执行的指令的结束处识别(例如,由微码或另一硬件组件)。所识别的信号指示要求由于VMM定时器引起的VM退出。然后将该要求与其它VM退出源排定优先级(例如,由微码或另一硬件组件),并生成至VMM的适当VM退出。即,如果VMM定时器源的优先级比其它VM退出源高,则生成由于VMM定时器引起的VM退出。如果除VMM定时器外的VM退出源的优先级比VMM定时器高,则生成由于该其它源引起的VM退出。
参考图4,过程400利用指定指示允许VM执行多长时间的偏移值的VMM定时器值。过程400在如图2所示的确定VMM定时器被启用并标识由VMM配置的VMM定时器值之后开始。
最初,处理逻辑将由VMM配置的偏移值(例如,如存储在VMCS中的预占定时器字段中的)作为递减计数值存储在寄存器中(处理框402)。接着,处理逻辑将控制转移到VM(处理框403)。在将控制转移到VM后,处理逻辑开始以与时钟递增成正比的速率递减该递减计数值(例如,每N个时钟报时信号)(处理框404)。在每一次递减后,处理逻辑检查递减计数值是否达到0(处理框406)。注意,递减计数值的递减可导致值变为负。在该情况下,在一个实施例中,不允许值低于0(即,递减在0处停止)。或者,可允许值低于0,在该情况下处理框406处的确定可通过值达到0或穿过0来确定。如果递减计数值达到(匹配或穿过)0,则处理逻辑发出一内部事件并生成VM退出,指示VM退出的源是VMM定时器(处理框412)。在一个实施例中,一旦处理框406中的确定为肯定,则生成在当前执行的指令结束时识别的信号(例如,由微码或硬件组件)。该信号的识别指示可要求由于VMM定时器引起的VM退出。然后,将该要求与其它VM退出源排定优先级(例如,由微码),并如上所述地生成至VMM的适当VM退出。
如果递减计数值没有达到0,则处理逻辑检查与VM退出相关联的非VMM定时器事件(处理框408)。如果发生这一事件,则处理逻辑将当前递减计数值存储到VMCS(处理框410)并生成VM退出,指示该VM退出的源(处理框414)。否则,处理逻辑返回到处理框404。
在一个实施例中,处理框410中递减计数定时器值的存储由存储在VMCS中的存储VMM定时器控制值来控制。如果存储VMM定时器控制被设为启用值,则将递减计数定时器的值作为VM退出处理的一部分来存储(例如,至VMCS)。在一个实施例中,如果存储VMM计数器控制没有被设为启用值,则将值0存储到由VMM配置的偏移值(例如,至VMCS中的字段)。在另一个实施例中,如果存储VMM定时器控制没有被设为启用值,则不修改由VMM配置的偏移值。
图5是用于配置与VMM相关联的定时器的过程500的一个实施例的流程图。该过程可由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(诸如通用计算机系统或专用机上运行的软件)或两者的组合的处理逻辑来执行。在一个实施例中,过程500可由图1的定时器配置模块126来执行。
参考图5,过程500以处理逻辑确定VMM定时器值(处理框502)并将其存储在VMCS中(处理框504)开始。在一个实施例中,VMM定时器值指定应将控制返回给VMM的时间。以下提供计算VMM定时器值的例子。
接着,处理逻辑将VMM定时器指示符设为启用值(处理框506),并发出请求以将控制转移到VM(VM进入请求)(处理逻辑508)。
随后,当生成从VM的VM退出时,处理逻辑接收回控制(处理框510)并确定是否由于VMM定时器而要将返回控制(处理框512)。如果是,则处理逻辑可执行期望的操作,然后生成至同一VM或不同VM的VM进入。
在生成VM进入之前,处理逻辑可能需要更新VM定时器指示符和/或VM定时器值(处理框514)。在一个实施例中,在VM退出前将剩余的时间保存在VMCS中(如以上参考图4讨论的)。在另一个实施例中,在从VM接收控制后由处理逻辑计算剩余的时间。
在一个实施例中,使用VMM定时器拉确定用于VM的调度量。当VM被调度执行时,由VMM将一量值分配给该VM。该值最初用于VMM定时器值。在转移到VM后,处理逻辑将如参考图4所述的利用递减计数VMM定时器值。在将控制转移到VMM前,处理逻辑确定在分配给VM的时间量中剩余多少时间。在一个实施例中,处理逻辑在将控制转移到VM前并在从VM接收控制时通过读取定时源的时间值来计算剩余的时间。这两个值之差指示VM执行多长时间。然后将该值从分配给VM的时间中减去。当剩余的时间值达到0时,消耗了VM调度量,然后VMM可调度一不同的VM执行。
在一个实施例中,使用VMM定时器来限制可用在VM中的最大时间。在计算时将偏移值(即,指定允许VM执行多长时间的时间间隔)加到由VMM读取的定时源的值上。该值用作VMM定时器值。在转移到VM后,处理逻辑将如参考图3所述地利用该值。在每次控制转移到VM时使用该同一值。在该实施例中,VMM定时器在缺少其它VM退出源的情况下用作监视定时器,从而限制VM中的最长执行时间。注意,在一个实施例中,递减计数定时器(如参考图4所描述的)也可用于实现监视定时器机制。
因此,描述了用于为与VMM相关联的定时器提供支持的方法和装置。应该理解,以上描述旨在说明而不是限制。在阅读并理解了以上描述后,本领域的技术人员将清楚其它实施例。因此,本发明的范围应参考所附权利要求书连同该权利要求书授权的全范围的等价技术方案来确定。

Claims (25)

1.一种方法,包括:
将控制从虚拟机监控程序VMM转移到虚拟机VM;
确定VMM定时器指示符被设为启用值;
标识由所述VMM配置的VMM定时器值;
周期性地将定时源的当前值与所述VMM定时器值进行比较;
如果所述定时源的当前值达到所述VMM定时器值,则生成一内部事件;以及
响应于所述内部事件将控制转移到所述VMM,而不在所述VMM和所述VM的任一个中导致事件处理过程。
2.如权利要求1所述的方法,其特征在于,还包括:
将控制转移到所述VMM;以及
通知所述VMM,由于VMM定时器值而将控制返回给所述VMM。
3.如权利要求1所述的方法,其特征在于,标识由所述VMM配置的所述VMM定时器值包括从虚拟机控制结构VMCS中检索所述VMM定时器值。
4.如权利要求4所述的方法,其特征在于,周期性地比较所述定时源的当前值包括:
在由所述VM执行的每一个周期后将所述定时源的当前值与所述VMM定时器值进行比较。
5.一种方法,包括:
将控制从虚拟机监控程序VMM转移到虚拟机VM;
确定VMM定时器指示符被设为启用值;
每隔预定数量的定时源报时信号递减VMM定时器值,同时执行所述VM;
如果确定所述VMM定时器值达到0则生成一内部事件;以及
响应于所述内部事件将控制转移到所述VMM,而不在所述VMM和所述VM的任一个中导致事件处理过程。
6.如权利要求5所述的方法,其特征在于,还包括:
检测与向所述VMM的控制转移相关联的错误;
在虚拟机控制结构VMCS中存储递减的VMM定时器值;以及
将控制转移到所述VMM。
7.如权利要求5所述的方法,其特征在于,还包括:
将所述VMM定时器值存储在寄存器中。
8.一种装置,包括:
虚拟机监控程序VMM;
由所述VMM控制的数据结构,所述数据结构存储由所述VMM配置的VMM定时器指示符和VMM定时器值;以及
VMM定时器支持逻辑,用于将控制从所述VMM转移到虚拟机VM、确定所述VMM定时器指示符被设为启用值、周期性地将定时源的当前值与所述VMM定时器值进行比较、如果所述定时源的当前值达到所述VMM定时器值则生成一内部事件、以及响应于所述内部事件将控制转移到所述VMM而不在所述VMM和所述VM的任一个中导致事件处理过程。
9.如权利要求8所述的装置,其特征在于,所述VMM定时器支持逻辑还用于将控制转移到所述VMM,并通知所述VMM由于所述VMM定时器值而将控制返回给所述VMM。
10.如权利要求8所述的装置,其特征在于,所述VMM定时器逻辑用于通过在由所述VM执行的每一个周期后将所述定时源的当前值与所述VMM定时器值进行比较来周期性地比较所述定时源的当前值。
11.一种装置,包括:
虚拟机监控程序VMM;
由所述VMM控制的数据结构,所述数据结构存储VMM定时器指示符;以及
VMM定时器支持逻辑,用于将控制从所述VMM转移到虚拟机VM、确定所述VMM定时器指示符被设为启用值、每隔预定数量的定时源报时信号递减VMM定时器值,同时执行所述VM、如果确定所述VMM定时器值达到0则生成一内部事件、以及响应于所述内部事件将控制转移到所述VMM而不在所述VMM和所述VM的任一个中导致事件处理过程。
12.如权利要求11所述的装置,其特征在于,所述VMM定时器支持逻辑还用于在确定所述VMM定时器达到0前检测与向所述VMM的控制转移相关联的错误、在由所述VMM控制的数据结构中存储递减的VMM定时器值、以及将控制转移到所述VMM。
13.如权利要求11所述的装置,其特征在于,还包括:
用于存储所述VMM定时器值的寄存器。
14.一种系统,包括:
用于存储定时器指示符和定时器值的存储器;以及
耦合到所述存储器的处理器,用于利用所述定时器指示符来确定在虚拟机VM的操作期间启用了虚拟机监控程序VMM定时器、周期性地将定时源的当前值与所述定时器值进行比较、如果所述定时源的当前值达到所述定时器值则生成一内部事件、响应于所述内部事件将控制转移到所述VMM而不在所述VMM和所述VM的任一个中导致事件处理过程。
15.如权利要求14所述的系统,其特征在于,所述处理器还用于将控制转移到所述VMM,并通知所述VMM由于所述VMM定时器值而将控制返回给所述VMM。
16.如权利要求14所述的系统,其特征在于,所述处理器通过在由所述VM执行的每一个周期后将所述定时源的当前值与所述VMM定时器值进行比较来周期性地比较所述定时源的当前值。
17.一种系统,包括:
用于存储定时器指示符的存储器;以及
耦合到所述存储器的处理器,用于利用所述定时器指示符来确定在虚拟机VM的操作期间启用了虚拟机监控程序VMM定时器、每隔预定数量的定时源报时信号递减VMM定时器值,同时执行所述VM、如果确定所述VMM定时器值达到0则生成一内部事件、以及响应于所述内部事件将控制转移到所述VMM而不在所述VMM和所述VM的任一个中导致事件处理过程。
18.如权利要求17所述的系统,其特征在于,所述处理器还用于在确定所述VMM定时器达到0前检测与向所述VMM的控制转移相关联的错误、在由所述VMM控制的数据结构中存储递减的VMM定时器值、以及将控制转移到所述VMM。
19.如权利要求17所述的系统,其特征在于,还包括:
用于存储所述VMM定时器值的寄存器。
20.一种含有指令的机器可读介质,所述指令在由处理系统执行时使得所述处理系统执行一种方法,所述方法包括:
将控制从虚拟机监控程序VMM转移到虚拟机VM;
确定VMM定时器指示符被设为启用值;
标识由所述VMM配置的VMM定时器值;
周期性地将定时源的当前值与所述VMM定时器值进行比较;
如果所述定时源的当前值达到所述VMM定时器值,则生成一内部事件;以及
响应于所述内部事件将控制转移到所述VMM,而不在所述VMM和所述VM的任一个中导致事件处理过程。
21.如权利要求20所述的机器可读介质,其特征在于,所述方法还包括:
将控制转移到所述VMM;以及
通知所述VMM,由于所述VMM定时器值而将控制返回给所述VMM。
22.如权利要求20所述的机器可读介质,其特征在于,标识由所述VMM配置的VMM定时器值包括从虚拟机控制结构VMCS中检索所述VMM定时器值。
23.一种含有指令的机器可读介质,所述指令在由处理系统执行时使得所述处理系统执行一种方法,所述方法包括:
将控制从虚拟机监控程序VMM转移到虚拟机VM;
确定VMM定时器指示符被设为启用值;
每隔预定数量的定时源报时信号递减VMM定时器值,同时执行所述VM;
如果确定所述VMM定时器值达到0则生成一内部事件;以及
响应于所述内部事件将控制转移到所述VMM,而不在所述VMM和所述VM的任一个中导致事件处理过程。
24.如权利要求23所述的机器可读介质,其特征在于,所述方法还包括:
检测与向所述VMM的控制转移相关联的错误;
在虚拟机控制结构VMCS中存储所述递减的VMM定时器值;以及
将控制转移到所述VMM。
25.如权利要求23所述的机器可读介质,其特征在于,所述方法还包括:
将所述VMM定时器值存储在寄存器中。
CNB200580032344XA 2004-09-30 2005-09-21 为与虚拟机监控程序相关联的定时器提供支持 Expired - Fee Related CN100514297C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/956,239 2004-09-30
US10/956,239 US7840962B2 (en) 2004-09-30 2004-09-30 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

Publications (2)

Publication Number Publication Date
CN101027640A true CN101027640A (zh) 2007-08-29
CN100514297C CN100514297C (zh) 2009-07-15

Family

ID=35759192

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200580032344XA Expired - Fee Related CN100514297C (zh) 2004-09-30 2005-09-21 为与虚拟机监控程序相关联的定时器提供支持

Country Status (5)

Country Link
US (1) US7840962B2 (zh)
JP (1) JP4564536B2 (zh)
CN (1) CN100514297C (zh)
DE (1) DE112005002360T5 (zh)
WO (1) WO2006039202A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441498B (zh) * 2007-11-19 2010-06-09 联想(北京)有限公司 虚拟机监视器、虚拟机系统及其时钟分配使用方法
CN103488522A (zh) * 2013-09-22 2014-01-01 华为技术有限公司 一种管理虚拟机的设备的方法及设备
CN104995602A (zh) * 2013-03-12 2015-10-21 英特尔公司 分层虚拟机完整性监视

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7644258B2 (en) 2005-08-29 2010-01-05 Searete, Llc Hybrid branch predictor using component predictors each having confidence and override signals
US8275976B2 (en) * 2005-08-29 2012-09-25 The Invention Science Fund I, Llc Hierarchical instruction scheduler facilitating instruction replay
US9176741B2 (en) 2005-08-29 2015-11-03 Invention Science Fund I, Llc Method and apparatus for segmented sequential storage
US20070083735A1 (en) * 2005-08-29 2007-04-12 Glew Andrew F Hierarchical processor
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8607228B2 (en) 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
JP4358224B2 (ja) * 2006-12-27 2009-11-04 株式会社東芝 ゲストosスケジューリング方法及び仮想計算機モニタ
US8181175B1 (en) * 2008-01-28 2012-05-15 Hewlett-Packard Development Company, L.P. Accounting for resource usage time by a virtual machine
US10521265B2 (en) * 2008-09-19 2019-12-31 Microsoft Technology Licensing, Llc Coalescing periodic timer expiration in guest operating systems in a virtualized environment
JP4769308B2 (ja) * 2009-01-20 2011-09-07 株式会社東芝 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法
US9405347B2 (en) 2009-02-26 2016-08-02 Microsoft Technology Licensing, Llc Power-saving operating system for virtual environment
JP4961459B2 (ja) * 2009-06-26 2012-06-27 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおける制御方法
EP2402858B1 (en) * 2010-06-29 2014-03-05 Samsung SDS Client Hypervisor-Based Terminal Device and Operating Method Thereof
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US9015838B1 (en) * 2012-05-30 2015-04-21 Google Inc. Defensive techniques to increase computer security
US8813240B1 (en) 2012-05-30 2014-08-19 Google Inc. Defensive techniques to increase computer security
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9535846B2 (en) 2014-07-28 2017-01-03 International Business Machines Corporation Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle
US9875047B2 (en) * 2015-05-27 2018-01-23 Red Hat Israel, Ltd. Exit-less host memory locking in a virtualized environment
US10203977B2 (en) 2015-11-25 2019-02-12 Red Hat Israel, Ltd. Lazy timer programming for virtual machines
US10437623B2 (en) * 2015-12-24 2019-10-08 Intel IP Corporation Fast switching between virtual machines without interrupt virtualization for high-performance, secure trusted-execution environment
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
US10459747B2 (en) * 2016-07-05 2019-10-29 Red Hat Israel, Ltd. Exitless timer access for virtual machines
US11169857B2 (en) * 2018-05-25 2021-11-09 Red Hat, Inc. System and method for reserving a portion of CPU time for host execution
US11182184B2 (en) * 2019-10-23 2021-11-23 Red Hat, Inc. Implementing high-performance virtual machines for bare metal simulation
US11144419B2 (en) 2019-10-25 2021-10-12 Red Hat, Inc. Controlled use of a memory monitor instruction and memory wait instruction in a virtualized environment
US11550649B2 (en) * 2021-03-17 2023-01-10 Qualcomm Incorporated System-on-chip timer failure detection and recovery using independent redundant timers
US12039362B2 (en) * 2022-05-17 2024-07-16 Nvidia Corporation Processing interrupt requests for autonomous systems and applications

Family Cites Families (247)

* 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
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
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
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPS62154037A (ja) * 1985-12-26 1987-07-09 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
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
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
US4974159A (en) * 1988-09-13 1990-11-27 Microsoft Corporation Method of transferring control in a multitasking computer system
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 仮想計算機システム
JPH02206841A (ja) * 1989-02-06 1990-08-16 Fujitsu Ltd 仮想計算機システム
JPH02208740A (ja) 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
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
EP0473913A3 (en) 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
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
US5446904A (en) 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
JPH04348434A (ja) 1991-05-27 1992-12-03 Hitachi Ltd 仮想計算機システム
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
US5237669A (en) 1991-07-15 1993-08-17 Quarterdeck Office Systems, Inc. Memory management method
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
EP0600112A1 (de) 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenverarbeitungsanlage mit virtueller Speicheradressierung und schlüsselgesteuertem Speicherzugriff
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
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
EP0602867A1 (en) 1992-12-17 1994-06-22 NCR International, Inc. An apparatus for securing a system platform
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
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
US5533123A (en) 1994-06-28 1996-07-02 National Semiconductor Corporation Programmable distributed personal security
US5978481A (en) 1994-08-16 1999-11-02 Intel Corporation Modem compatible method and apparatus for encrypting data that is transparent to software applications
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
US6058478A (en) 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
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
US6269392B1 (en) 1994-11-15 2001-07-31 Christian Cotichini Method and apparatus to monitor and locate an electronic device using a secured intelligent agent
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
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US6093213A (en) 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
IL116708A (en) 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
EP0880840A4 (en) 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5978892A (en) 1996-05-03 1999-11-02 Digital Equipment Corporation Virtual memory allocation in a virtual address space having an inaccessible gap
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
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6205550B1 (en) 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
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
US5923884A (en) 1996-08-30 1999-07-13 Gemplus S.C.A. System and method for loading applications onto a smart card
US6055637A (en) 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
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
JPH10134008A (ja) 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
DE19649292A1 (de) 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
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
US5818939A (en) 1996-12-18 1998-10-06 Intel Corporation Optimized security functionality in an electronic system
US6412035B1 (en) 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
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 セイコーエプソン株式会社 半導体装置及び電子機器
US6272637B1 (en) 1997-04-14 2001-08-07 Dallas Semiconductor Corporation Systems and methods for protecting access to encrypted information
US6557104B2 (en) 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
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
US5987557A (en) 1997-06-19 1999-11-16 Sun Microsystems, Inc. Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU)
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
US6230118B1 (en) * 1997-06-30 2001-05-08 Cirrus Logic, Inc. DOS based application supports for a controllerless modem
US6584565B1 (en) 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6014745A (en) 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US5978475A (en) 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6212635B1 (en) 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
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
US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection
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
US6148379A (en) 1997-09-19 2000-11-14 Silicon Graphics, Inc. System, method and computer program product for page sharing between fault-isolated cells in a distributed shared memory system
US6182089B1 (en) 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US5970147A (en) 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US6357004B1 (en) 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6061794A (en) 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6085296A (en) 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6219787B1 (en) 1997-12-22 2001-04-17 Texas Instruments Incorporated Method and apparatus for extending security model to native code
US6128318A (en) * 1998-01-23 2000-10-03 Philips Electronics North America Corporation Method for synchronizing a cycle master node to a cycle slave node using synchronization information from an external network or sub-network which is supplied to the cycle slave node
US6378072B1 (en) 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6308270B1 (en) 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
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
US6192455B1 (en) 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6173417B1 (en) 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6795966B1 (en) 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
FR2778998B1 (fr) 1998-05-20 2000-06-30 Schlumberger Ind Sa Procede d'authentification d'un code personnel d'un utilisateur d'une carte a circuit integre
EP0961193B1 (en) 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
US6421702B1 (en) * 1998-06-09 2002-07-16 Advanced Micro Devices, Inc. Interrupt driven isochronous task scheduler system
US6339815B1 (en) 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space
US6505279B1 (en) 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
JP2000076139A (ja) 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 携帯型情報記憶媒体
US6363485B1 (en) 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US6230248B1 (en) 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6609199B1 (en) 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6445797B1 (en) 1998-12-16 2002-09-03 Secure Choice Llc Method and system for performing secure electronic digital streaming
US6463537B1 (en) 1999-01-04 2002-10-08 Codex Technologies, Inc. Modified computer motherboard security and identification system
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
EP1030237A1 (en) 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
US6272533B1 (en) 1999-02-16 2001-08-07 Hendrik A. Browne Secure computer system and method of providing secure access to a computer system including a stand alone switch operable to inhibit data corruption on a storage device
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
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
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6275933B1 (en) 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
EP1055989A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for digitally signing a document
EP1056014A1 (en) 1999-05-28 2000-11-29 Hewlett-Packard Company System for providing a trustworthy user interface
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
US6633981B1 (en) 1999-06-18 2003-10-14 Intel Corporation Electronic system and method for controlling access through user authentication
US6158546A (en) 1999-06-25 2000-12-12 Tenneco Automotive Inc. Straight through muffler with conically-ended output passage
US6301646B1 (en) 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6401156B1 (en) 1999-08-23 2002-06-04 Advanced Micro Devices, Inc. Flexible PC/AT-compatible microcontroller
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP2001148344A (ja) 1999-09-09 2001-05-29 Nikon Corp 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法
EP1085396A1 (en) 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6535988B1 (en) 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US6374317B1 (en) 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
RU2159953C1 (ru) 1999-12-27 2000-11-27 Закрытое акционерное общество "ЛУКОЙЛ ИНФОРМ" Способ защиты программного обеспечения
WO2001063567A2 (en) 2000-02-25 2001-08-30 Identix Incorporated Secure transaction system
US20010037450A1 (en) 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
JP3710671B2 (ja) 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
CA2341931C (en) 2000-03-24 2006-05-30 Contentguard Holdings, Inc. System and method for protection of digital works
JP2001282558A (ja) 2000-03-30 2001-10-12 Hitachi Ltd マルチオペレーティング計算機システム
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7356817B1 (en) * 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
GB0020416D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
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
EP1271277A3 (en) 2001-06-26 2003-02-05 Redstrike B.V. Security system and software to prevent unauthorized use of a computing device
US20030018892A1 (en) 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
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
US7308576B2 (en) 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
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
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
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
US7370324B2 (en) * 2003-09-30 2008-05-06 Intel Corporation Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050132362A1 (en) * 2003-12-10 2005-06-16 Knauerhase Robert C. Virtual machine management using activity information
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
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US20050251806A1 (en) * 2004-05-10 2005-11-10 Auslander Marc A Enhancement of real-time operating system functionality using a hypervisor
US8146078B2 (en) * 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441498B (zh) * 2007-11-19 2010-06-09 联想(北京)有限公司 虚拟机监视器、虚拟机系统及其时钟分配使用方法
CN104995602A (zh) * 2013-03-12 2015-10-21 英特尔公司 分层虚拟机完整性监视
CN104995602B (zh) * 2013-03-12 2018-09-28 英特尔公司 分层虚拟机完整性监视
CN103488522A (zh) * 2013-09-22 2014-01-01 华为技术有限公司 一种管理虚拟机的设备的方法及设备
CN103488522B (zh) * 2013-09-22 2017-10-17 华为技术有限公司 一种管理虚拟机的设备的方法及设备

Also Published As

Publication number Publication date
JP4564536B2 (ja) 2010-10-20
US20060075402A1 (en) 2006-04-06
CN100514297C (zh) 2009-07-15
JP2008513909A (ja) 2008-05-01
DE112005002360T5 (de) 2007-08-23
US7840962B2 (en) 2010-11-23
WO2006039202A2 (en) 2006-04-13
WO2006039202A3 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
CN100514297C (zh) 为与虚拟机监控程序相关联的定时器提供支持
CN100481010C (zh) 虚拟机环境中的定时器偏移机制
CN1849585B (zh) 使用多个虚拟机监控器处理特许事件的方法、系统和产品
CN101339518B (zh) 在分层虚拟化体系结构中插入虚拟化事件的装置和方法
CN101268445B (zh) 用于向多核环境中的应用程序提供实时线程服务的方法、装置
US9756118B2 (en) Virtual performance monitoring decoupled from hardware performance-monitoring units
CN102906704B (zh) 控制处理适配器中断请求的速率
CN101189582B (zh) 为在虚拟机环境中单步执行虚拟机提供支持
EP2115582B1 (en) Controlling instruction execution in a processing environment
CN101364184B (zh) 用于进行平台虚拟化的装置和方法
CN104205064A (zh) 将程序事件记录事件向运行时间检测事件的变换
CN103761145A (zh) 用于各个处理器的辅助中断虚拟化的访客中断控制器
CN104169889A (zh) 在事务执行模式中的运行时间检测采样
CN101460924B (zh) 检测虚拟化
CN102804143A (zh) 中断虚拟化
CN104364769A (zh) 处理器特性的运行时间检测监控
CN104380264A (zh) 运行时间检测报告
Matthews et al. Polyblaze: From one to many bringing the Microblaze into the multicore era with Linux SMP support
CN104169887A (zh) 通过指令操作码的运行时间检测间接采样
CN104169886A (zh) 通过地址的运行时间检测间接采样
WO2023107789A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
Xie et al. Metis: a profiling toolkit based on the virtualization of hardware performance counters
CN103562877B (zh) 处理操作员消息命令
Alonso et al. Modeling power and energy consumption of dense matrix factorizations on multicore processors
EP2115574B1 (en) Employing a buffer to facilitate instruction execution

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