CN1506861A - 用于控制虚拟机系统中的外部中断的机制 - Google Patents

用于控制虚拟机系统中的外部中断的机制 Download PDF

Info

Publication number
CN1506861A
CN1506861A CNA2003101137179A CN200310113717A CN1506861A CN 1506861 A CN1506861 A CN 1506861A CN A2003101137179 A CNA2003101137179 A CN A2003101137179A CN 200310113717 A CN200310113717 A CN 200310113717A CN 1506861 A CN1506861 A CN 1506861A
Authority
CN
China
Prior art keywords
interruption
virtual machine
interrupt
control
ready
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
CNA2003101137179A
Other languages
English (en)
Other versions
CN1238795C (zh
Inventor
ʷ���ġ�M������
史蒂文·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 CN1506861A publication Critical patent/CN1506861A/zh
Application granted granted Critical
Publication of CN1238795C publication Critical patent/CN1238795C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种用于控制虚拟机系统中的外部中断的机制。在一个实施例中,在客户软件的操作过程中确认一个中断的发生。接着,作出关于该中断是否由客户软件管理的判定。所述判定取决于中断控制指示的当前值。如果该中断不由客户软件管理,则如果虚拟机监视器(VMM)准备好接收控制权则控制权被转送给该虚拟机监视器。

Description

用于控制虚拟机系统中的外部中断的机制
技术领域
本发明涉及用于控制虚拟机系统中的外部中断的机制。
背景技术
在一般的计算机系统中,设备通过产生中断请求来向系统软件请求服务,该中断请求经由多条中断请求线路被传送到中断控制器。一旦中断控制器确认了一条有效的中断请求线路,它发送中断信号到处理器。作为响应,处理器上的中断控制器接口逻辑判定软件是否准备好接收该中断。如果软件没有准备好接收该中断,则该中断被保持在挂起(pending)状态直至软件准备好。一旦软件被判定为准备好了,则中断控制器接口逻辑请求中断控制器报告哪一个挂起的中断是最高优先级的。中断控制器在不同中断请求线路之间区分优先级,并向处理器确认最高优先级中断请求,该处理器然后将控制流转到处理该中断请求的代码。
在传统的操作系统(OS)中,所有的中断都由被称为OS内核的单个实体来控制。在虚拟机系统中,虚拟机监视器(VMM)应该具有对发生在系统中的各种操作和事件的最终控制权,以提供虚拟机的正确操作并且保护本机免受其它虚拟机的侵害以及保护虚拟机不受彼此的侵害。为了实现这一点,当客户软件访问硬件资源或者引起发生例如中断或者异常的某些事件时,VMM一般接收控制权。因此,在虚拟机系统中,中断一般由VMM控制。
具体而言,当虚拟机中由VMM支持的操作引起系统设备产生中断时,VMM在虚拟机和中断控制器之间进行调解。也就是说,当中断信号出现时,当前运行的虚拟机被中断并且处理器的控制被传递给VMM。VMM当接收到该中断时执行中断控制器的任何必要的操作,并且处理中断或者将该中断递送给合适的虚拟机。
附图说明
本发明以示例而不是限制的方式通过附图的图形被说明,附图中相似的标号表示类似的部件,这些附图中:
图1图示了本发明可运行于其中的虚拟机环境的一个实施例;
图2是用于在虚拟机环境中处理中断的系统的一个实施例的框图;
图3是用于在虚拟机系统中处理中断的方法的一个实施例的流程图;
图4是图示了根据本发明的一个实施例在具有优选虚拟机的虚拟机系统中处理中断的框图;
图5是用于处理在非优选虚拟机操作过程中发生的中断的方法的一个
实施例的流程图;以及
图6是用于在没有优选虚拟机的虚拟机系统中处理中断的方法的一个
实施例的流程图。
发明内容
根据本发明的一个方面,提供一种方法,包括:在客户软件的操作过程中识别挂起的中断;判定所述中断是否由所述客户软件管理;如果所述中断不由所述客户软件管理,判定虚拟机监视器(VMM)是否准备好接收控制权;以及如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转送控制权。
根据本发明的另一个方面,提供一种系统,包括:中断控制器,用于接收来自一个或多个系统设备的中断;和耦合到所述中断控制器的处理器,用于在客户软件的操作过程中从所述中断控制器接收所述中断的通知,判定所述中断不由所述客户软件管理,并且如果虚拟机监视器(VMM)准备好接收控制权则向所述虚拟机监视器转移控制权。
根据本发明的另一个方面,提供一种机器可读介质,包含有指令,所述指令当被处理系统执行时使所述处理系统完成一种方法,所述方法包括:在客户软件的操作过程中识别挂起的中断;判定所述中断是否由所述客户软件管理;如果所述中断不由所述客户软件管理,判定虚拟机监视器(VMM)是否准备好接收控制权;以及如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转送控制权。
具体实施方式
本发明描述了用于控制虚拟机系统中的外部中断的方法和装置。在以下描述中,为了便于解释,陈述了很多具体细节以提供对本发明的完整的理解。但是对于本领域的技术人员来说显然本发明可以不通过这些具体细节而实现。
以下详细描述的一些部分表现为算法和对计算机系统的寄存器或者存储器中的数据位的操作的符号表示。这些算法描述和表示是本领域的技术人员用于最有效地向本领域的其它技术人员表达他们工作的内容的手段。在这里算法通常被认为是导致期望结果的自洽(self-consistent)的操作序列。所述操作需要对物理量进行物理操纵。通常,尽管不是必须的,这些量具有能够被存储、发送、合并、比较以及以其它方式操纵的电信号或者磁信号的形式。主要由于通用的缘故,将这些信号称为位、值、元素、符号、字符、项、数字等已经被证明是方便的。
但是应该认识到,所有这些以及类似的术语都与适当的物理量相联系,并且只是用来表示这些量的方便的标签。除非另有特殊说明,从以下讨论中显而易见,应该理解贯穿本发明使用了例如“处理”、“计算”、“演算(calculating)”或者“判定”等术语的讨论可以指的是操纵表示为计算机系统寄存器和存储器内的物理(电子)量的数据并将它们转换成类似地表示成计算机系统存储器或者寄存器或者其它这样的信息存储、发送或显示设备内的物理量的计算机系统或者类似的电子计算设备的动作和方法。
在以下对实施例的详细描述中,参照了附图,所述附图通过图示示出了本发明可以实现于其中的具体实施例。在图中,相似的数字描述视图中基本上类似的组成部分。对这些实施例进行了足够详细的描述以使得本领域的技术人员能够实现本发明。也可以利用其它实施例,并且可以在不背离本发明的范围的情况下作出电气上的改变。另外,应该理解本发明的各种实施例尽管不同,但是不一定是相互排斥的。例如,一个实施例中所描述的特定特征、结构或者特性可以被包括在其它实施例中。因此以下详细的描述不应被视为是限制性的,而本发明的范围仅由所附权利要求及其等同物来界定。
图1图示了本发明可以运行于其中的虚拟机环境100的一个实施例。在这个实施例中,裸平台(bare platform)硬件116包括计算平台,该计算平台能够,例如,运行标准操作系统(OS)或者例如VMM 112的虚拟机监视器(VMM)。VMM 112尽管一般用软件实现,但是可以仿真和向更高级软件提供裸机接口。这样的更高级软件可包括标准或者实时OS,可以是具有有限操作系统功能的高度精简的操作环境,可以不包括传统的OS设施等。或者,例如,VMM 112可以运行于另一个VMM内或者运行于其上。VMM和它们典型的特征以及功能是本领域技术人员都了解的,并且能够以例如硬件、软件、固件或者各种技术的组合的方式来实现。
平台硬件116可以是个人电脑(PC)、大型机、手提设备、便携式电脑、机顶盒或者任何其它计算系统。平台硬件116包括处理器118和存储器120。
处理器118可以是能够执行软件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器等。处理器118可以包括用于执行本发明的方法实施例的微码、可编程逻辑或者硬编码逻辑(hardcoded logic)。尽管图1示出了仅仅一个这样的处理器118,但是在该系统中可以有一个或者多个处理器。
存储器120可以是硬盘、软盘、随机访问存储器(RAM)、只读存储器(ROM)、闪存、以上设备的任何组合或者处理器118可读的任何类型的机器介质。存储器120可以存储用于执行本发明的方法实施例的指令和/或数据。
VMM 112对其它软件(即,“客户(guest)”软件)呈现出一个或者多个虚拟机(VM)的抽象,所述虚拟机可对各种客户提供相同或者不同的抽象。图1示出了两个VM 102和114。运行在各个VM上的客户软件可以包括例如客户OS 104或106的客户OS以及各种客户软件应用程序108和110。客户OS 104和106运行于VM 102和114之上,客户OS 104和106中的每一个都希望访问VM 102和114内的物理资源(例如处理器寄存器、存储器以及I/O设备)并且处理包括在VM 102和114的操作过程中由系统设备所产生的中断的各种事件。
在一个实施例中,在VM 102或114的操作过程中所产生的中断可以或者被归类为“特权”事件或者被归类为“无特权”事件。对于特权事件,VMM 112帮助提供客户软件所想要的功能同时对这些特权事件保持最终的控制权。无特权事件不需要由VMM 112来处理,它们由客户软件控制。
在一个实施例中,基于中断控制指示(indicator)的当前值将中断归类为特权的或者无特权的。中断控制指示指定是客户软件还是VMM 112来管理中断。
在一个实施例中,单个中断控制指示(例如,单个位)被用于所有中断。在另一个实施例中,为各个中断类型使用单独的中断控制指示(例如,中断号)。例如,在Pentium IV的指令集构架(ISA)(以下称为IA-32 ISA)中,可以有256个中断控制指示(即,256位),每一种可能的可屏蔽硬件中断类型对应一个。在另一些实施例中,可以将单独的中断控制指示用于中断类型组或者用于中断的任何其它组合。
中断控制指示一般不能被VM 102和114所访问和/或修改。在一个实施例中,VMM 112在将控制权转移给VM 102或114之前设置中断控制指示的值。或者,VM 102和114中的每一个都与被设置为预定值的不同(组)中断控制指示相联系。
在一个实施例中,所述一个或多个中断控制指示被存储于虚拟机控制结构(VMCS)122中,该虚拟机控制结构可以存在于存储器120(如图1所示)中,或者处理器118、存储器120和处理器118的组合或者任何其它存储单元中。尽管图1中只示出了一个这样的VMCS,不同客户软件可以通过利用来自不同VMCS镜像的数据被控制。应该认识到任何其它数据结构(例如,芯片上(on-chip)高速缓存、文件、查询表等)可以被用来存储中断控制指示而不失一般性。中断控制指示可以是控制向量中的位字段,或者可以是存储于VMCS的单独域中的位或者位图。
或者,在一个实施例中,所述一个或多个中断控制指示被存储于一个或多个机器寄存器或者存储器120中。
如果中断产生在客户软件的操作过程中,则参考(consult)适当的中断控制指示以判定该中断是否由客户软件管理。如果该判定是肯定的,那么该中断将由客户软件管理。否则,该中断将由VMM 112管理。
在一个实施例中,如果中断由VMM 112管理,则控制权被转移给VMM 112。VM 102或104与VMM 112之间的控制权的转移可通过任何本领域公知的机制来实现。在控制权被转移到VMM 112之后对中断的处理将在下面详细描述。
在一个实施例中,如果中断由客户软件管理,那么控制权属于客户软件。如果当前正在执行的软件准备好要接收中断,则中断会被递送给客户软件,下面将更详细地进行描述。
图2是用于在虚拟机环境中处理中断的系统200的一个实施例的框图。
参照图2,设备214(例如,I/O设备)通过产生中断请求向系统软件请求服务,该中断请求经由一个或多个中断请求线路216被传送到中断控制器212。一旦中断控制器212确认了有效的中断请求线路210,它发送中断信号210到CPU 202。在一个实施例中,可以有不止一个到CPU 202的中断信号线路210,或者作为替代,可以通过总线消息或者通过任何其它通信机制或协议来递送该中断“信号”。
响应于来自中断控制器212的有效中断信号210,中断控制器接口逻辑204判定哪个软件具有对该中断的控制权。如果中断发生在VMM的操作过程中,则该中断无条件地由VMM管理。或者,如果该操作发生在客户软件的操作过程中,则中断控制器接口逻辑204判定是客户软件还是VMM管理该中断。
在一个实施例中,该判定取决于存储在VMCS 208中的中断控制指示的当前值。该中断控制指示指定是客户软件还是VMM管理该中断。如上所述,一个或多个中断控制指示可以用于这些中断。如果使用了不止一个控制指示,那么访问与该被处理的中断相联系的特定中断控制指示。
如果中断控制指示指定了该中断要由客户软件管理,那么中断控制器接口逻辑204再判定客户软件是否准备好接收中断。在一个实施例中,中断控制器接口逻辑204基于对中断标记206的参考作出该判定,所述中断标记206当客户软件接受中断的能力状态改变时可以被客户软件更新。例如,在IA-32 ISA中,EFLAGS寄存器包含有IF中断标记位,该标记位部分地控制了是否中断会被递送给该软件(在IA-32 ISA中,其它因素可以阻挡中断,并且这些因素在中断是否会被递送的判定中是必须被考虑的)。中断标记206存在于CPU 202中,在中断控制器接口逻辑204外部或者内部。作为替代,本领域任何已知的其他机制可以被用于判定客户软件是否准备好接受中断。
如果中断控制器接口逻辑204判定客户软件准备好要接收中断,那么它请求中断控制器212确认哪个挂起的中断是最高优先级的并将该最高优先级中断递送给客户软件,这样使得控制流转到与客户软件相联系的中断处理代码的开始。否则,如果客户软件当前没有准备好接收中断,则中断被保持在挂起状态直到客户软件准备好。
如果中断控制指示指定VMM管理该中断,则在一个实施例中,中断控制器接口逻辑204触发向VMM转送控制权。
在另一个实施例中,向VMM转送控制权是以这里被称为监视中断标记(MIF)的中断转送标记的当前值为条件的。也就是说,中断控制器接口逻辑204首先检查MIF的当前值以判定由VMM所管理的中断的到来是否应该引起向VMM转移控制权。MIF以与中断标记206相似的方式工作,指示是否允许中断引起向VMM的转送。在一个实施例中,MIF存在于VMCS 208中并由VMM控制。在另一个实施例中,MIF存在于机器寄存器或者存储器中。如果MIF不要求控制权的转移,则该中断将被挂起并且不会发生控制权的转移。否则,中断控制器接口逻辑204将触发向VMM转移控制权。
在一个实施例中,为具有不同特性的中断维持多个MIF,并且基于中断的特性从这些MIF中选择用于特定中断的MIF。
在一个实施例中,当要求向VMM转移控制权时,向VMM转移控制权之后,中断在中断控制器212处被挂起。在这个实施例中,在紧接在控制权转移之后的时间里,部分地确认了产生中断的设备的中断源标识(identity)(例如,在IA-32 ISA中被称为向量)可能对于VMM来说是未知的。作为控制权转移的一部分,处理器在转移之后将有效的中断标记206清零。转移控制权之后,VMM可以利用中断标记206来使能中断并递送该中断。VMM可以利用本领域任何已知的机制来判定挂起的中断的向量。例如,在IA-32 ISA中,各个不同的中断向量由唯一的中断处理程序(interrupt handler)处理,从而当中断被递送给VMM时确认该中断向量。
在另一个实施例中,中断源标识在向VMM转移控制权之前在中断控制器212处是已知的。在这个实施例中,中断可以与指定该中断源标识的数据一起被递送给VMM。例如,该数据可以在VMCS的一个域中被递送。
图3是用于在虚拟机系统中处理中断的方法300的一个实施例的流程图。该方法可以由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于一般用途的计算机系统或者专用机器上的)或者两者的组合的处理逻辑来完成。
参照图3,方法300开始于处理逻辑确认挂起中断的存在(处理框302)和判定中断是发生在VMM的操作过程中还是客户软件的操作过程中(决定框304)。
如果中断发生在VMM的操作过程中,处理逻辑判定VMM是否准备好接收中断(决定框306)。如果判定是肯定的,那么处理逻辑将该中断递送给VMM(处理框308)。如果判定是否定的,那么处理逻辑不向VMM递送该中断,令该中断挂起(处理框316)。在一个实施例中,处理逻辑利用中断标记(例如,在IA-32 ISA中被称为EFLAGS.IF的中断标记)的当前设置来判定VMM是否准备好接收中断。
如果决定框304处作出的判定是否定的,即,中断发生在客户软件的操作过程中,处理逻辑再判定客户软件是否管理该中断(决定框310)。该判定取决于中断控制指示。在一个实施例中,中断控制指示在每次VMM向客户软件转移控制权时由VMM设置。如上所述,可以有一个或多个中断控制指示,对具体的中断控制指示的选择取决于中断向量或者其它标准。在一个实施例中,每个虚拟机都具有一个单独的中断控制指示。如果使用了不止一个中断控制指示,那么访问与正被处理的中断相联系的中断控制指示。
如果中断控制指示指定客户软件管理该中断,则处理逻辑通过执行如上所述的处理框306、308和316试图将该中断递送给客户软件。
在一个实施例中,如果中断控制指示指定客户软件不管理该中断,则处理逻辑参考这里被称为监视中断标记(MIF)的中断转送标记(interrupttransition flag)并且基于其内容作出决定(决定框314)。如果MIF指示VMM没有准备好接收由中断引起的控制权转移,那么该中断被挂起并且控制权属于客户软件。否则,处理逻辑将控制权转送给VMM(处理框318)。
在另一个实施例(未示出)中,没有使用MIF,并且一旦判定了中断由VMM管理则控制权的转移无条件地发生。
在控制权向VMM转移的过程中,中断标记可以被设置为预定值,不再修改或者根据一些其它的机制而更新。在向VMM转移控制权之后,处理逻辑执行如上所述的处理框306、308和316。
如上所述,在向VMM转移控制权(处理框318)之后,该中断可以被挂起在中断控制器处。如果中断源的标识已知,那么处理逻辑可试图利用指定该中断的源的数据向VMM递送该中断。
在一个实施例中,如果在向VMM转移控制权之后该中断被挂起在中断控制器处,则VMM当其准备好接收中断时更新中断标记。然后处理逻辑向VMM递送该中断。接着VMM可以自己处理该中断。或者,VMM可以评估该中断的性质以判定指派哪个虚拟机去处理该中断,仿真向所指派的虚拟机递送该中断,并向该指派的虚拟机转送控制权,下面将对这些作详细讨论。
在另一个实施例(未示出)中,处理逻辑不向VMM递送中断。作为替代,处理逻辑向VMM提供关于该中断的信息(例如,或者响应于VMM的请求或者作为当向VMM转送控制权时传给VMM的信息的一部分)。基于该信息,VMM判定指派哪个虚拟机来处理该中断,以及是向该虚拟机转移控制权(这里中断将象以上所述的那样被递送)还是仿真向该虚拟机递送该中断,并且然后向该虚拟机转移控制权。
注意当中断被挂起时,方法300将被不断地重复直至该中断被递送给VMM或者客户软件,或者该中断不再挂起。
在一个实施例中,虚拟机系统包括优选的虚拟机和一个或多个非优选虚拟机。该优选虚拟机被指派去处理所有由系统设备产生的中断。非优选虚拟机被指派完成除了中断处理以外的操作(例如,各种计算、加密、解密等)。图4是根据本发明的一个实施例图示了在具有优选虚拟机的虚拟机系统中处理中断的框图。
参照图4,VM1 404是在系统400中管理所有中断的优选虚拟机。VM2 406是在该系统400中管理不涉及中断处理的操作的非优选虚拟机。尽管图4仅示出了一个非优选的VM(例如,VM2 406),但是在系统中可以有不止一个非优选VM。VMM 402知道VM1 404是优选虚拟机。当向VM1 404转移控制权时,VMM 402将中断控制指示设置为指示VM1404管理所有中断的值。其后,当在VM1 404的操作过程中发生中断时,中断控制器接口逻辑参考适当的中断控制指示,判定该中断由VM1 404管理,并且当VM1 404准备好接收中断时向VM1 404递送该中断。
当向VM2 406转移控制权时,VMM 402将中断控制指示(或多个中断控制指示中的每一个)设置为指示VM2 406不管理任何中断的值。其后,当在VM2 406的操作过程中发生中断时,中断控制器接口逻辑参考适当的中断控制指示,判定VM2 406不管理该中断,并且触发向VMM 402转移控制权。另外,在一个实施例中,在向VMM 402转送控制权的过程中,中断控制器接口逻辑将中断标记设置为指示所有中断被屏蔽的值(例如,将中断标记设置为0),从而防止向VMM 402递送中断。在另一个实施例中,中断标记可以被设置为预定值或者从虚拟机控制结构(VMCS)读取到的值。
当控制权被转送到VMM 402时,VMM 402被通知该次转移的起因是一个挂起的中断。VMM 402知道所有中断要由VM1 404处理,其修改中断控制指示以允许VM1 404管理所有中断并向VM1 404转移控制权。如果在VM1 404接收到控制权之后,中断标记指示VM1 404准备好接收中断,那么中断控制器接口逻辑将从中断控制器处取得最高优先级中断并将该最高优先级中断递送给VM1 404。否则,VM1 404将在其准备好接收中断时尽快更新中断标记。当VM1 404准备好接收中断,中断控制器接口逻辑将从控制器处取得最高优先级中断,并且将该最高优先级中断递送给VM1 404。
在另一个实施例中,如以上结合图3所述的那样,在从VM2 406向VMM转送控制权之前参考监视中断标记(MIF)。
图5是用于处理发生在非优选虚拟机的操作过程中的中断的方法500的一个实施例的流程图。该方法可以由处理逻辑来完成,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行在一般用途的计算机系统或者专用机器之上的)或者两者的组合。
参照图5,方法500开始于处理逻辑确认和处理非优选虚拟机的操作过程中挂起中断的出现(例如,如图3所示的),引起向VMM转移控制权(处理框502)。接着,VMM调用优选虚拟机并将中断控制指示设置为允许该优选虚拟机管理中断的值(处理框508)。
在调用优选VM之后,如果中断还是挂起的(框510),则处理逻辑作出关于优选虚拟机是否准备好接收中断(即,参考中断标记和/或其它机器状态来判定它是否指示中断没有被屏蔽)的判定(决定框514)。如果该判定是肯定的,那么处理逻辑向客户软件递送该中断(处理框518)。如果客户没有准备好接收中断,那么该中断被挂起(处理框516)并且重复评估准备情况(返回处理框510)。
在一个实施例中,VMM任何时候都不消除对中断的屏蔽(即,它不将中断标记改变成指示它可以接受中断)。在另一个实施例(未示出)中,VMM可以消除对中断的屏蔽。如果当VMM正在执行时中断是挂起的并且该中断没有被中断标记所屏蔽,则该中断将被递送给VMM。VMM当优选VM准备好接收中断时仿真向其递送该中断并且向该优选VM转移控制权。
图6是用于在其中中断可以由不止一个虚拟机或者由VMM处理的虚拟机系统中处理中断的方法600的一个实施例的流程图。该方法可以由处理逻辑完成,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于一般用途的计算机系统或者专用机器之上的)或者两者的组合。
参照图6,方法600开始于处理逻辑(在处理框602中)由于挂起的中断而已经或者将中断递送给VMM(例如,如图3的处理框308中那样)或者将控制权转送给VMM(例如,如图3的处理框318中那样)之后。
接着,VMM中的处理逻辑判定中断源的标识(处理框606)。例如,在一个实施例中,VMM可以完成各种存储器或者输入—输出操作以从中断控制器或者输入/输出设备获得该中断源的标识(例如,向量)。在其它一些实施例中,其中在由挂起的中断引起的向VMM转送之后中断被挂起在中断控制器处,VMM可以消除对中断的屏蔽,允许处理器向VMM递送该中断。如上所述,向VMM递送该中断可以提供关于该中断的源的信息(例如,在IA-32 ISA中向其递送中断的中断处理程序可以判定中断源)。也就是说,当由挂起的中断引起中断被递送给VMM或者控制权从客户软件被转送给VMM时,VMM可以指定该中断需要由特定虚拟机处理。
接着,VMM判定中断是否由VMM直接处理(处理框608)。该判定可以取决于该中断是源自由VMM管理的设备还是虚拟机(例如,VMM可以管理所有虚拟机的硬盘,而视频采集卡可能由特定虚拟机来管理)。如果在决定框608作出的该判定是肯定的,那么VMM为该中断服务(处理框610)并且方法600结束。
如果处理框608中的判定是否定的,那么VMM判定哪个虚拟机应该为该中断服务(处理框612)。然后,当该虚拟机准备好接收中断时,VMM仿真向虚拟机递送该中断并且将控制权转送给该虚拟机(处理框614)。
这样,对用于在所述虚拟机系统中处理中断的方法和装置已经作了描述。应该理解,以上描述是示例性的,而不是限制性。通过阅读和理解以上描述,很多其它实施例对本领域的技术人员将是显而易见的。所以本发明的范围应该参照所附权利要求及其等同物来确定。

Claims (28)

1.一种方法,包括:
在客户软件的操作过程中识别挂起的中断;
判定所述中断是否由所述客户软件管理;
如果所述中断不由所述客户软件管理,
判定虚拟机监视器(VMM)是否准备好接收控制权;以及
如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转送控制权。
2.如权利要求1所述的方法,其中判定所述中断是否由所述客户软件管理还包括:
读取与所述中断相联系的中断控制指示。
3.如权利要求2所述的方法,其中所述中断控制指示存储于虚拟机控制结构(VMCS)、机器寄存器和存储器中的至少一者中。
4.如权利要求2所述的方法,其中所述中断控制指示是基于所述中断的特性从多个中断控制指示中选择的。
5.如权利要求1所述的方法,还包括:
判定所述中断由所述客户软件管理。
6.如权利要求5所述的方法,还包括:
判定所述客户软件是否准备好接收中断,以及
当所述客户软件准备好接收中断时向所述客户软件递送所述中断。
7.如权利要求6所述的方法,其中判定所述客户软件是否准备好接收中断包括判定中断标记的值。
8.如权利要求1所述的方法,其中判定所述监视器是否准备好接收控制权还包括:
读取中断转送标记。
9.如权利要求8所述的方法,其中所述中断转送标记是从虚拟机控制结构(VMCS)、机器寄存器和存储器中的至少一者中读取的。
10.如权利要求8所述的方法,其中所述中断转送标记是基于所述中断的特性从多个中断转送标记中选择的。
11.如权利要求1所述的方法,其中所述客户软件与非优选虚拟机相联系。
12.如权利要求11所述的方法,还包括:
向虚拟机监视器转送控制权;
检测优选虚拟机准备好接收中断;以及
向所述优选虚拟机递送所述中断。
13.如权利要求1所述的方法,还包括当向所述虚拟机监视器转送控制权时,将中断标记设置为指示虚拟机监视器没有准备好接收中断的值、指示虚拟机监视器准备好接收中断的值和从虚拟机控制结构读取的值中的一个。
14.如权利要求1所述的方法,还包括:
所述虚拟机监视器确定被指派去处理所述中断的虚拟机;以及
如果所述被指派的虚拟机准备好接收中断,所述虚拟机监视器仿真向所述被指派的虚拟机递送所述中断。
15.一种系统,包括:
中断控制器,用于接收来自一个或多个系统设备的中断;和
耦合到所述中断控制器的处理器,用于在客户软件的操作过程中从所述中断控制器接收所述中断的通知,判定所述中断不由所述客户软件管理,并且如果虚拟机监视器(VMM)准备好接收控制权则向所述虚拟机监视器转移控制权。
16.如权利要求15所述的系统,还包括用于存储所述用户软件的存储器和包含中断控制指示的虚拟机控制结构。
17.如权利要求15所述的系统,其中所述处理器用于基于中断控制指示的当前值判定所述中断由客户软件管理。
18.如权利要求17所述的系统,其中所述处理器用于一旦判定所述客户软件准备好接收中断则向所述客户软件递送所述中断。
19.如权利要求18所述的系统,其中所述处理器用于通过参考中断标记的值判定所述客户软件是否准备好接收中断。
20.如权利要求15所述的系统,其中所述处理器用于基于中断转送标记的当前值判定所述虚拟机监视器准备好接收控制权。
21.如权利要求15所述的系统,其中所述客户软件与非优选虚拟机相联系。
22.如权利要求21所述的系统,其中所述处理器还用于向虚拟机监视器转送控制权,并且所述虚拟机监视器用于检测优选虚拟机准备好接收中断并向所述优选虚拟机递送所述中断。
23.如权利要求15所述的系统,其中所述处理器还用于在向虚拟机监视器转送控制权时,将中断标记设置为指示所述虚拟机监视器没有准备好接收中断的值、指示所述虚拟机监视器准备好接收中断的值和从虚拟机控制结构读取的值中的一个。
24.如权利要求15所述的系统,其中所述虚拟机监视器用于确定被指派去处理所述中断的虚拟机,并且如果所述被指派的虚拟机准备好接收中断则仿真向所述被指派的虚拟机递送所述中断。
25.一种机器可读介质,包含有指令,所述指令当被处理系统执行时使所述处理系统完成一种方法,所述方法包括:
在客户软件的操作过程中识别挂起的中断;
判定所述中断是否由所述客户软件管理;
如果所述中断不由所述客户软件管理,
判定虚拟机监视器(VMM)是否准备好接收控制权;以及
如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转送控制权。
26.如权利要求25所述的机器可读介质,其中判定所述中断是否由所述客户软件管理还包括:
读取与所述中断相联系的中断控制指示。
27.如权利要求26所述的机器可读介质,其中所述中断控制指示存储于虚拟机控制结构(VMCS)、机器寄存器和存储器中的至少一者中。
28.如权利要求26所述的机器可读介质,其中所述中断控制指示是基于所述中断的特性从多个中断控制指示中选择的。
CN200310113717.9A 2002-12-11 2003-11-17 用于控制虚拟机系统中的外部中断的系统与方法 Expired - Fee Related CN1238795C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/318,248 2002-12-11
US10/318,248 US20040117532A1 (en) 2002-12-11 2002-12-11 Mechanism for controlling external interrupts in a virtual machine system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101359775A Division CN100382036C (zh) 2002-12-11 2003-11-17 用于控制虚拟机系统中的外部中断的装置

Publications (2)

Publication Number Publication Date
CN1506861A true CN1506861A (zh) 2004-06-23
CN1238795C CN1238795C (zh) 2006-01-25

Family

ID=32506303

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200310113717.9A Expired - Fee Related CN1238795C (zh) 2002-12-11 2003-11-17 用于控制虚拟机系统中的外部中断的系统与方法
CNB2005101359775A Expired - Fee Related CN100382036C (zh) 2002-12-11 2003-11-17 用于控制虚拟机系统中的外部中断的装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2005101359775A Expired - Fee Related CN100382036C (zh) 2002-12-11 2003-11-17 用于控制虚拟机系统中的外部中断的装置

Country Status (4)

Country Link
US (1) US20040117532A1 (zh)
CN (2) CN1238795C (zh)
HK (1) HK1066070A1 (zh)
RU (1) RU2263343C2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100420202C (zh) * 2005-10-20 2008-09-17 联想(北京)有限公司 计算机管理系统以及计算机管理方法
CN101091161B (zh) * 2004-12-31 2010-06-16 英特尔公司 用于协作访客固件的设备和方法
US7802250B2 (en) 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
CN102279769A (zh) * 2011-07-08 2011-12-14 西安交通大学 一种面向嵌入式Hypervisor 的中断虚拟化操作方法
CN101493781B (zh) * 2008-01-24 2012-02-15 中国长城计算机深圳股份有限公司 一种虚拟机系统及其启动方法
CN103678021A (zh) * 2012-09-18 2014-03-26 横河电机株式会社 容错系统和用于执行容错的方法
CN102105871B (zh) * 2008-07-28 2015-04-29 Arm有限公司 虚拟处理设备的中断控制

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502861B1 (en) 2001-02-16 2009-03-10 Swsoft Holding, Ltd. System and method for providing services for offline servers using the same network address
US8909800B1 (en) 2001-07-30 2014-12-09 Parallels IP Holdings GmbH Server cluster-based system and method for management and recovery of virtual servers
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US7913226B2 (en) * 2003-10-01 2011-03-22 Hewlett-Packard Development Company, L.P. Interposing a virtual machine monitor and devirtualizing computer hardware at runtime
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
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
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US7877747B2 (en) * 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized
US7620949B2 (en) * 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
US7917740B1 (en) * 2004-05-11 2011-03-29 Advanced Micro Devices, Inc. Virtualization assist for legacy x86 floating point exception handling
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US7373446B2 (en) * 2004-11-05 2008-05-13 Microsoft Corporation Method and system for dynamically patching an operating system's interrupt mechanism
US20060200616A1 (en) * 2005-03-02 2006-09-07 Richard Maliszewski Mechanism for managing resources shared among virtual machines
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US7805557B2 (en) * 2005-07-12 2010-09-28 Arm Limited Interrupt controller and method for handling interrupts
US8327353B2 (en) * 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
US7581085B1 (en) 2005-09-08 2009-08-25 Parallels Software International, Inc. Fast stub and frame technology for virtual machine optimization
WO2007065307A2 (en) * 2005-12-10 2007-06-14 Intel Corporation Handling a device related operation in a virtualization environment
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US8291409B2 (en) * 2006-05-22 2012-10-16 Microsoft Corporation Updating virtual machine with patch on host that does not have network access
EP2036262A1 (en) * 2006-06-20 2009-03-18 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
US8001309B2 (en) 2006-06-22 2011-08-16 Freescale Semiconductor, Inc. Method and system for grouping interrupts from a time-dependent data storage system
US7987464B2 (en) * 2006-07-25 2011-07-26 International Business Machines Corporation Logical partitioning and virtualization in a heterogeneous architecture
US20080034193A1 (en) * 2006-08-04 2008-02-07 Day Michael N System and Method for Providing a Mediated External Exception Extension for a Microprocessor
US8584109B2 (en) * 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US7562173B2 (en) * 2007-03-23 2009-07-14 Intel Corporation Handling shared interrupts in bios under a virtualization technology environment
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
US8453143B2 (en) * 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US20090187726A1 (en) * 2008-01-22 2009-07-23 Serebrin Benjamin C Alternate Address Space to Permit Virtual Machine Monitor Access to Guest Virtual Address Space
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
US8032680B2 (en) * 2008-06-27 2011-10-04 Microsoft Corporation Lazy handling of end of interrupt messages in a virtualized environment
US9424211B2 (en) * 2008-12-31 2016-08-23 Intel Corporation Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US20100174841A1 (en) * 2008-12-31 2010-07-08 Zohar Bogin Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US20100180276A1 (en) * 2009-01-15 2010-07-15 Jiva Azeem S Application partitioning across a virtualized environment
US8055827B2 (en) 2009-01-26 2011-11-08 Advanced Micro Devices, Inc. Guest interrupt controllers for each processor to aid interrupt virtualization
EA025082B1 (ru) * 2009-02-26 2016-11-30 Общество С Ограниченной Ответственностью "Параллелз Рисерч" Система для обеспечения доступа к услугам автономно работающих серверов с использованием того же сетевого адреса
JP5320140B2 (ja) * 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法
US8489789B2 (en) 2010-02-05 2013-07-16 Advanced Micro Devices, Inc. Interrupt virtualization
US8255604B2 (en) * 2010-04-06 2012-08-28 International Business Machines Corporation Interrupt vector piggybacking
US8458386B2 (en) 2010-12-07 2013-06-04 Apple Inc. Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements
US8959270B2 (en) 2010-12-07 2015-02-17 Apple Inc. Interrupt distribution scheme
US8499112B2 (en) 2011-08-16 2013-07-30 Hitachi, Ltd. Storage control apparatus
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
CN103443763B (zh) * 2012-08-08 2016-10-05 英特尔公司 包含对重写虚拟函数的调用的支持的isa桥接
US9009368B2 (en) 2012-10-23 2015-04-14 Advanced Micro Devices, Inc. Interrupt latency performance counters
US9355050B2 (en) 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9563588B1 (en) 2014-01-29 2017-02-07 Google Inc. OS bypass inter-processor interrupt delivery mechanism
US9772868B2 (en) 2014-09-16 2017-09-26 Industrial Technology Research Institute Method and system for handling interrupts in a virtualized environment
US9596261B1 (en) 2015-03-23 2017-03-14 Bitdefender IPR Management Ltd. Systems and methods for delivering context-specific introspection notifications
US9531735B1 (en) 2015-03-23 2016-12-27 Bitdefender IPR Management Ltd. Systems and methods for delivering introspection notifications from a virtual machine
US9536084B1 (en) 2015-03-23 2017-01-03 Bitdefender IPR Management Ltd. Systems and methods for delivering event-filtered introspection notifications
US9852295B2 (en) 2015-07-14 2017-12-26 Bitdefender IPR Management Ltd. Computer security systems and methods using asynchronous introspection exceptions
US10963280B2 (en) 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
US10140448B2 (en) 2016-07-01 2018-11-27 Bitdefender IPR Management Ltd. Systems and methods of asynchronous analysis of event notifications for computer security applications
US10282327B2 (en) 2017-01-19 2019-05-07 International Business Machines Corporation Test pending external interruption instruction
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
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)
US11281495B2 (en) 2017-10-26 2022-03-22 Advanced Micro Devices, Inc. Trusted memory zone
US11989144B2 (en) 2021-07-30 2024-05-21 Advanced Micro Devices, Inc. Centralized interrupt handling for chiplet processing units

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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 国産電機株式会社 液面検出装置
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
DE3034581A1 (de) * 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
US4494189A (en) * 1982-04-26 1985-01-15 International Business Machines Corporation Method and means for switching system control of CPUs
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
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPS61206043A (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
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
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
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
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
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
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
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
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
GB2259794A (en) * 1991-09-23 1993-03-24 Intel Corp Virtual mode computer system having interrupt related instructions
JPH06236284A (ja) * 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5486529A (en) * 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
JP2765411B2 (ja) * 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
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
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.
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.
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
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
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
FR2731536B1 (fr) * 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
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エレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
US6289396B1 (en) * 1995-11-21 2001-09-11 Diamond Multimedia Systems, Inc. Dynamic programmable mode switching device driver architecture
IL116708A (en) * 1996-01-08 2000-12-06 Smart Link Ltd Real-time task manager for a personal computer
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5757604A (en) * 1996-06-27 1998-05-26 Raychem Corporation Surge arrester having grooved and ridged terminals
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
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
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
US6412035B1 (en) * 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
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
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
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
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
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
US6357004B1 (en) * 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
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
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
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
US6363485B1 (en) * 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
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
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
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
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 露光装置、エネルギ源の出力制御方法、該方法を用いるレーザ装置、及びデバイス製造方法
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
US6845419B1 (en) * 2000-01-24 2005-01-18 Freescale Semiconductor, Inc. Flexible interrupt controller that includes an interrupt force register
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories 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
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
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
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
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
US7802250B2 (en) 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
CN101493785B (zh) * 2004-06-28 2014-06-18 英特尔公司 根据客户软件的特许级支持向虚拟机监视器转移
CN101091161B (zh) * 2004-12-31 2010-06-16 英特尔公司 用于协作访客固件的设备和方法
CN100420202C (zh) * 2005-10-20 2008-09-17 联想(北京)有限公司 计算机管理系统以及计算机管理方法
CN101493781B (zh) * 2008-01-24 2012-02-15 中国长城计算机深圳股份有限公司 一种虚拟机系统及其启动方法
CN102105871B (zh) * 2008-07-28 2015-04-29 Arm有限公司 虚拟处理设备的中断控制
CN102279769A (zh) * 2011-07-08 2011-12-14 西安交通大学 一种面向嵌入式Hypervisor 的中断虚拟化操作方法
CN102279769B (zh) * 2011-07-08 2013-03-13 西安交通大学 一种面向嵌入式Hypervisor 的中断虚拟化操作方法
CN103678021A (zh) * 2012-09-18 2014-03-26 横河电机株式会社 容错系统和用于执行容错的方法
CN103678021B (zh) * 2012-09-18 2017-05-10 横河电机株式会社 容错系统和用于执行容错的方法

Also Published As

Publication number Publication date
CN100382036C (zh) 2008-04-16
CN1801100A (zh) 2006-07-12
RU2263343C2 (ru) 2005-10-27
US20040117532A1 (en) 2004-06-17
CN1238795C (zh) 2006-01-25
RU2003136020A (ru) 2005-05-27
HK1066070A1 (en) 2005-03-11

Similar Documents

Publication Publication Date Title
CN1238795C (zh) 用于控制虚拟机系统中的外部中断的系统与方法
TWI375913B (en) Delivering interrupts directly to a virtual processor
CN1648866A (zh) 在虚拟机系统中控制硬件中断应答的机制
JP6378758B2 (ja) 仮想マシンにおけるマルウェア検出のためのプロセス評価
CN1849585A (zh) 处理特许事件的多个虚拟机监控器的使用
CN1904860A (zh) 无效存储器,清除缓冲区表项
CN1692332A (zh) 处理与虚拟机体系结构中客户软件的操作相关联的故障
CN104969232B (zh) 管理设备驱动器跨环访问
CN101842784A (zh) 支持事务认证的硬件装置接口
KR20150070382A (ko) 보안 로컬 웹 애플리케이션 데이터 관리자
US20210133322A1 (en) Visual Identification of Malware
CN112306624A (zh) 一种信息处理方法、物理机和pcie设备
CN112653760B (zh) 跨服务器的文件传输方法、装置、电子设备及存储介质
CN1673924A (zh) 用于防止在逻辑分区数据处理系统中加载和执行流氓操作系统的方法和设备
CN1818876A (zh) 在微处理器实现的设备上执行进程的系统和方法
US11876815B2 (en) Device anomaly detection
CN115202908B (zh) 一种基于动态编排的隐私计算请求响应方法及装置
US11036649B2 (en) Network interface card resource partitioning
Smolyar et al. Ioctopus: Outsmarting nonuniform dma
CN1628284A (zh) 安全执行模式异常
CN111459609B (zh) 虚拟机安全防护方法、装置及电子设备
US20230137436A1 (en) Data privacy preservation in object storage
US11036645B2 (en) Secure userspace networking for guests
CN115951999A (zh) 一种虚拟域内基于多显卡的分片虚拟化负载均衡调度
WO2014092381A1 (ko) 스크래치패드 메모리 관리 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1066070

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060125

Termination date: 20131117