CN1238795C - 用于控制虚拟机系统中的外部中断的系统与方法 - Google Patents
用于控制虚拟机系统中的外部中断的系统与方法 Download PDFInfo
- Publication number
- CN1238795C CN1238795C CN200310113717.9A CN200310113717A CN1238795C CN 1238795 C CN1238795 C CN 1238795C CN 200310113717 A CN200310113717 A CN 200310113717A CN 1238795 C CN1238795 C CN 1238795C
- Authority
- CN
- China
- Prior art keywords
- interruption
- virtual machine
- control
- interrupt
- 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.)
- Expired - Fee Related
Links
- 230000007246 mechanism Effects 0.000 title description 7
- 238000000034 method Methods 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 description 48
- 238000010586 diagram Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; 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)或者例如VMM112的虚拟机监视器(VMM)。VMM112尽管一般用软件实现,但是可以仿真和向更高级软件提供裸机接口。这样的更高级软件可包括标准或者实时OS,可以是具有有限操作系统功能的高度精简的操作环境,可以不包括传统的OS设施等。或者,例如,VMM112可以运行于另一个VMM内或者运行于其上。VMM和它们典型的特征以及功能是本领域技术人员都了解的,并且能够以例如硬件、软件、固件或者各种技术的组合的方式来实现。
平台硬件116可以是个人电脑(PC)、大型机、手提设备、便携式电脑、机顶盒或者任何其它计算系统。平台硬件116包括处理器118和存储器120。
处理器118可以是能够执行软件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器等。处理器118可以包括用于执行本发明的方法实施例的微码、可编程逻辑或者硬编码逻辑(hardcoded logic)。尽管图1示出了仅仅一个这样的处理器118,但是在该系统中可以有一个或者多个处理器。
存储器120可以是硬盘、软盘、随机访问存储器(RAM)、只读存储器(ROM)、闪存、以上设备的任何组合或者处理器118可读的任何类型的机器介质。存储器120可以存储用于执行本发明的方法实施例的指令和/或数据。
VMM112对其它软件(即,“客户(guest)”软件)呈现出一个或者多个虚拟机(VM)的抽象,所述虚拟机可对各种客户提供相同或者不同的抽象。图1示出了两个VM102和114。运行在各个VM上的客户软件可以包括例如客户OS104或106的客户OS以及各种客户软件应用程序108和110。客户OS104和106运行于VM102和114之上,客户OS104和106中的每一个都希望访问VM102和114内的物理资源(例如处理器寄存器、存储器以及I/O设备)并且处理包括在VM102和114的操作过程中由系统设备所产生的中断的各种事件。
在一个实施例中,在VM102或114的操作过程中所产生的中断可以或者被归类为“特权”事件或者被归类为“无特权”事件。对于特权事件,VMM112帮助提供客户软件所想要的功能同时对这些特权事件保持最终的控制权。无特权事件不需要由VMM112来处理,它们由客户软件控制。
在一个实施例中,基于中断控制指示(indicator)的当前值将中断归类为特权的或者无特权的。中断控制指示指定是客户软件还是VMM112来管理中断。
在一个实施例中,单个中断控制指示(例如,单个位)被用于所有中断。在另一个实施例中,为各个中断类型使用单独的中断控制指示(例如,中断号)。例如,在Pentium IV的指令集构架(ISA)(以下称为IA-32ISA)中,可以有256个中断控制指示(即,256位),每一种可能的可屏蔽硬件中断类型对应一个。在另一些实施例中,可以将单独的中断控制指示用于中断类型组或者用于中断的任何其它组合。
中断控制指示一般不能被VM102和114所访问和/或修改。在一个实施例中,VMM112在将控制权转移给VM102或114之前设置中断控制指示的值。或者,VM102和114中的每一个都与被设置为预定值的不同(组)中断控制指示相联系。
在一个实施例中,所述一个或多个中断控制指示被存储于虚拟机控制结构(VMCS)122中,该虚拟机控制结构可以存在于存储器120(如图1所示)中,或者处理器118、存储器120和处理器118的组合或者任何其它存储单元中。尽管图1中只示出了一个这样的VMCS,不同客户软件可以通过利用来自不同VMCS镜像的数据被控制。应该认识到任何其它数据结构(例如,芯片上(on-chip)高速缓存、文件、查询表等)可以被用来存储中断控制指示而不失一般性。中断控制指示可以是控制向量中的位字段,或者可以是存储于VMCS的单独域中的位或者位图。
或者,在一个实施例中,所述一个或多个中断控制指示被存储于一个或多个机器寄存器或者存储器120中。
如果中断产生在客户软件的操作过程中,则参考(consult)适当的中断控制指示以判定该中断是否由客户软件管理。如果该判定是肯定的,那么该中断将由客户软件管理。否则,该中断将由VMM112管理。
在一个实施例中,如果中断由VMM112管理,则控制权被转移给VMM112。VM102或104与VMM112之间的控制权的转移可通过任何本领域公知的机制来实现。在控制权被转移到VMM112之后对中断的处理将在下面详细描述。
在一个实施例中,如果中断由客户软件管理,那么控制权属于客户软件。如果当前正在执行的软件准备好要接收中断,则中断会被递送给客户软件,下面将更详细地进行描述。
图2是用于在虚拟机环境中处理中断的系统200的一个实施例的框图。
参照图2,设备214(例如,I/O设备)通过产生中断请求向系统软件请求服务,该中断请求经由一个或多个中断请求线路216被传送到中断控制器212。一旦中断控制器212确认了有效的中断请求线路210,它发送中断信号210到CPU202。在一个实施例中,可以有不止一个到CPU202的中断信号线路210,或者作为替代,可以通过总线消息或者通过任何其它通信机制或协议来递送该中断“信号”。
响应于来自中断控制器212的有效中断信号210,中断控制器接口逻辑204判定哪个软件具有对该中断的控制权。如果中断发生在VMM的操作过程中,则该中断无条件地由VMM管理。或者,如果该操作发生在客户软件的操作过程中,则中断控制器接口逻辑204判定是客户软件还是VMM管理该中断。
在一个实施例中,该判定取决于存储在VMCS208中的中断控制指示的当前值。该中断控制指示指定是客户软件还是VMM管理该中断。如上所述,一个或多个中断控制指示可以用于这些中断。如果使用了不止一个控制指示,那么访问与该被处理的中断相联系的特定中断控制指示。
如果中断控制指示指定了该中断要由客户软件管理,那么中断控制器接口逻辑204再判定客户软件是否准备好接收中断。在一个实施例中,中断控制器接口逻辑204基于对中断标记206的参考作出该判定,所述中断标记206当客户软件接受中断的能力状态改变时可以被客户软件更新。例如,在IA-32ISA中,EFLAGS寄存器包含有IF中断标记位,该标记位部分地控制了是否中断会被递送给该软件(在IA-32ISA中,其它因素可以阻挡中断,并且这些因素在中断是否会被递送的判定中是必须被考虑的)。中断标记206存在于CPU202中,在中断控制器接口逻辑204外部或者内部。作为替代,本领域任何已知的其他机制可以被用于判定客户软件是否准备好接受中断。
如果中断控制器接口逻辑204判定客户软件准备好要接收中断,那么它请求中断控制器212确认哪个挂起的中断是最高优先级的并将该最高优先级中断递送给客户软件,这样使得控制流转到与客户软件相联系的中断处理代码的开始。否则,如果客户软件当前没有准备好接收中断,则中断被保持在挂起状态直到客户软件准备好。
如果中断控制指示指定VMM管理该中断,则在一个实施例中,中断控制器接口逻辑204触发向VMM转送控制权。
在另一个实施例中,向VMM转送控制权是以这里被称为监视中断标记(MIF)的中断转送标记的当前值为条件的。也就是说,中断控制器接口逻辑204首先检查MIF的当前值以判定由VMM所管理的中断的到来是否应该引起向VMM转移控制权。MIF以与中断标记206相似的方式工作,指示是否允许中断引起向VMM的转送。在一个实施例中,MIF存在于VMCS208中并由VMM控制。在另一个实施例中,MIF存在于机器寄存器或者存储器中。如果MIF不要求控制权的转移,则该中断将被挂起并且不会发生控制权的转移。否则,中断控制器接口逻辑204将触发向VMM转移控制权。
在一个实施例中,为具有不同特性的中断维持多个MIF,并且基于中断的特性从这些MIF中选择用于特定中断的MIF。
在一个实施例中,当要求向VMM转移控制权时,向VMM转移控制权之后,中断在中断控制器212处被挂起。在这个实施例中,在紧接在控制权转移之后的时间里,部分地确认了产生中断的设备的中断源标识(identity)(例如,在IA-32ISA中被称为向量)可能对于VMM来说是未知的。作为控制权转移的一部分,处理器在转移之后将有效的中断标记206清零。转移控制权之后,VMM可以利用中断标记206来使能中断并递送该中断。VMM可以利用本领域任何已知的机制来判定挂起的中断的向量。例如,在IA-32ISA中,各个不同的中断向量由唯一的中断处理程序(interrupt handler)处理,从而当中断被递送给VMM时确认该中断向量。
在另一个实施例中,中断源标识在向VMM转移控制权之前在中断控制器212处是已知的。在这个实施例中,中断可以与指定该中断源标识的数据一起被递送给VMM。例如,该数据可以在VMCS的一个域中被递送。
图3是用于在虚拟机系统中处理中断的方法300的一个实施例的流程图。该方法可以由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如运行于一般用途的计算机系统或者专用机器上的)或者两者的组合的处理逻辑米完成。
参照图3,方法300开始于处理逻辑确认挂起中断的存在(处理框302)和判定中断是发生在VMM的操作过程中还是客户软件的操作过程中(决定框304)。
如果中断发生在VMM的操作过程中,处理逻辑判定VMM是否准备好接收中断(决定框306)。如果判定是肯定的,那么处理逻辑将该中断递送给VMM(处理框308)。如果判定是否定的,那么处理逻辑不向VMM递送该中断,令该中断挂起(处理框316)。在一个实施例中,处理逻辑利用中断标记(例如,在IA-32ISA中被称为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可以评估该中断的性质以判定指派明5个虚拟机去处理该中断,仿真向所指派的虚拟机递送该中断,并向该指派的虚拟机转送控制权,下面将对这些作详细讨论。
在另一个实施例(未示出)中,处理逻辑不向VMM递送中断。作为替代,处理逻辑向VMM提供关于该中断的信息(例如,或者响应于VMM的请求或者作为当向VMM转送控制权时传给VMM的信息的一部分)。基于该信息,VMM判定指派哪个虚拟机来处理该中断,以及是向该虚拟机转移控制权(这里中断将象以上所述的那样被递送)还是仿真向该虚拟机递送该中断,并且然后向该虚拟机转移控制权。
注意当中断被挂起时,方法300将被不断地重复直至该中断被递送给VMM或者客户软件,或者该中断不再挂起。
在一个实施例中,虚拟机系统包括优选的虚拟机和一个或多个非优选虚拟机。该优选虚拟机被指派去处理所有由系统设备产生的中断。非优选虚拟机被指派完成除了中断处理以外的操作(例如,各种计算、加密、解密等)。图4是根据本发明的一个实施例图示了在具有优选虚拟机的虚拟机系统中处理中断的框图。
参照图4,VM1 404是在系统400中管理所有中断的优选虚拟机。VM2 406是在该系统400中管理不涉及中断处理的操作的非优选虚拟机。尽管图4仅示出了一个非优选的VM(例如,VM2 406),但是在系统中可以有不止一个非优选VM。VMM402知道VM1 404是优选虚拟机。当向VM1 404转移控制权时,VMM402将中断控制指示设置为指示VM1404管理所有中断的值。其后,当在VM1 404的操作过程中发生中断时,中断控制器接口逻辑参考适当的中断控制指示,判定该中断由VM1 404管理,并且当VM1 404准备好接收中断时向VM1 404递送该中断。
当向VM2 406转移控制权时,VMM 402将中断控制指示(或多个中断控制指示中的每一个)设置为指示VM2 406不管理任何中断的值。其后,当在VM2 406的操作过程中发生中断时,中断控制器接口逻辑参考适当的中断控制指示,判定VM2 406不管理该中断,并且触发向VMM402转移控制权。另外,在一个实施例中,在向VMM402转送控制权的过程中,中断控制器接口逻辑将中断标记设置为指示所有中断被屏蔽的值(例如,将中断标记设置为0),从而防止向VMM402递送中断。在另一个实施例中,中断标记可以被设置为预定值或者从虚拟机控制结构(VMCS)读取到的值。
当控制权被转送到VMM402时,VMM402被通知该次转移的起因是一个挂起的中断。VMM402知道所有中断要由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-32ISA中向其递送中断的中断处理程序可以判定中断源)。也就是说,当由挂起的中断引起中断被递送给VMM或者控制权从客户软件被转送给VMM时,VMM可以指定该中断需要由特定虚拟机处理。
接着,VMM判定中断是否由VMM直接处理(处理框608)。该判定可以取决于该中断是源自由VMM管理的设备还是虚拟机(例如,VMM可以管理所有虚拟机的硬盘,而视频采集卡可能由特定虚拟机来管理)。如果在决定框608作出的该判定是肯定的,那么VMM为该中断服务(处理框610)并且方法600结束。
如果处理框608中的判定是否定的,那么VMM判定哪个虚拟机应该为该中断服务(处理框612)。然后,当该虚拟机准备好接收中断时,VMM仿真向虚拟机递送该中断并且将控制权转送给该虚拟机(处理框614)。
这样,对用于在所述虚拟机系统中处理中断的方法和装置已经作了描述。应该理解,以上描述是示例性的,而不是限制性。通过阅读和理解以上描述,很多其它实施例对本领域的技术人员将是显而易见的。所以本发明的范围应该参照所附权利要求及其等同物来确定。
Claims (23)
1.一种用于控制虚拟机系统中的中断的方法,包括:
在客户软件的操作过程中识别挂起的中断;
判定所述中断是否由所述客户软件管理;
如果所述中断由所述客户软件管理,
则向所述客户软件递送所述中断;以及
如果所述中断不由所述客户软件管理,
则判定虚拟机监视器是否准备好接收所述系统的控制权,
如果所述虚拟机监视器没有准备好接收控制权,则保持所述中断挂起,以及
如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转送控制权。
2.如权利要求1所述的方法,其中读取与所述中断相联系的中断控制指示来判定所述中断是否由所述客户软件管理。
3.如权利要求2所述的方法,其中所述中断控制指示存储于虚拟机控制结构、机器寄存器和存储器中的至少一者中。
4.如权利要求2所述的方法,其中所述中断控制指示是基于所述中断的特性从多个中断控制指示中选择的。
5.如权利要求1所述的方法,其中如果所述中断由所述客户软件管理,则保持所述中断挂起直到所述客户软件准备好接收中断。
6.如权利要求5所述的方法,其中根据中断标记的值来判定所述客户软件是否准备好接收中断。
7.如权利要求1所述的方法,其中读取中断转送标记来判定所述监视器是否准备好接收控制权。
8.如权利要求7所述的方法,其中所述中断转送标记是从虚拟机控制结构、机器寄存器和存储器中的至少一者中读取的。
9.如权利要求7所述的方法,其中所述中断转送标记是基于所述中断的特性从多个中断转送标记中选择的。
10.如权利要求1所述的方法,其中所述客户软件与非优选虚拟机相联系。
11.如权利要求10所述的方法,还包括:
在向虚拟机监视器转送控制权之后,
检测优选虚拟机准备好接收中断;以及
向所述优选虚拟机递送所述中断。
12.如权利要求1所述的方法,还包括当向所述虚拟机监视器转送控制权时,将中断标记设置为指示虚拟机监视器没有准备好接收中断的值、指示虚拟机监视器准备好接收中断的值和从虚拟机控制结构读取的值中的一个。
13.如权利要求1所述的方法,还包括:
在向虚拟机监视器转送控制权之后,所述虚拟机监视器确定被指派去处理所述中断的虚拟机;以及
如果所述被指派的虚拟机准备好接收中断,所述虚拟机监视器仿真向所述被指派的虚拟机递送所述中断。
14.一种虚拟机系统,包括:
中断控制器,用于接收来自一个或多个系统设备的中断;和
耦合到所述中断控制器的处理器,用于在客户软件的操作过程中从所述中断控制器接收所述中断的通知,判定所述中断是否由所述客户软件管理,并且如果所述中断由客户软件管理,则将所述中断递送到所述客户软件,如果所述中断不由所述客户软件管理,则判定虚拟机监视器是否准备好接收所述系统的控制权,如果所述虚拟机监视器没有准备好接收控制权,则保持所述中断挂起,如果所述虚拟机监视器准备好接收控制权则向所述虚拟机监视器转移控制权。
15.如权利要求14所述的系统,还包括用于存储所述客户软件的存储器和包含中断控制指示的虚拟机控制结构。
16.如权利要求14所述的系统,其中所述处理器基于中断控制指示的当前值来判定所述中断是否由客户软件管理。
17.如权利要求16所述的系统,其中如果所述中断由所述客户软件管理,则所述处理器使所述中断保持挂起直到所述客户软件准备好接收中断。
18.如权利要求17所述的系统,其中所述处理器通过参考中断标记的值判定所述客户软件是否准备好接收中断。
19.如权利要求14所述的系统,其中所述处理器基于中断转送标记的当前值判定所述虚拟机监视器是否准备好接收控制权。
20.如权利要求14所述的系统,其中所述客户软件与非优选虚拟机相联系。
21.如权利要求20所述的系统,其中在所述处理器向虚拟机监视器转送控制权之后,所述虚拟机监视器检测优选虚拟机准备好接收中断并向所述优选虚拟机递送所述中断。
22.如权利要求14所述的系统,其中所述处理器在向虚拟机监视器转送控制权时,将中断标记设置为指示所述虚拟机监视器没有准备好接收中断的值、指示所述虚拟机监视器准备好接收中断的值和从虚拟机控制结构读取的值中的一个。
23.如权利要求14所述的系统,其中在所述处理器向虚拟机监视器转送控制权之后,所述虚拟机监视器确定被指派去处理所述中断的虚拟机,并且如果所述被指派的虚拟机准备好接收中断则仿真向所述被指派的虚拟机递送所述中断。
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 CN1506861A (zh) | 2004-06-23 |
CN1238795C true CN1238795C (zh) | 2006-01-25 |
Family
ID=32506303
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101359775A Expired - Fee Related CN100382036C (zh) | 2002-12-11 | 2003-11-17 | 用于控制虚拟机系统中的外部中断的装置 |
CN200310113717.9A Expired - Fee Related CN1238795C (zh) | 2002-12-11 | 2003-11-17 | 用于控制虚拟机系统中的外部中断的系统与方法 |
Family Applications Before (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) | CN100382036C (zh) |
HK (1) | HK1066070A1 (zh) |
RU (1) | RU2263343C2 (zh) |
Families Citing this family (78)
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 |
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 |
US7530067B2 (en) * | 2003-05-12 | 2009-05-05 | International Business Machines Corporation | Filtering processor requests based on identifiers |
US7130949B2 (en) * | 2003-05-12 | 2006-10-31 | International Business Machines Corporation | Managing input/output interruptions in non-dedicated interruption hardware environments |
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 |
US7418584B1 (en) * | 2004-05-11 | 2008-08-26 | Advanced Micro Devices, Inc. | Executing system management mode code as virtual machine guest |
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 |
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 |
CN101091161B (zh) * | 2004-12-31 | 2010-06-16 | 英特尔公司 | 用于协作访客固件的设备和方法 |
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 |
CN100420202C (zh) * | 2005-10-20 | 2008-09-17 | 联想(北京)有限公司 | 计算机管理系统以及计算机管理方法 |
US20090106754A1 (en) * | 2005-12-10 | 2009-04-23 | Benjamin Liu | Handling a device related operation in a virtualization enviroment |
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 |
US8307360B2 (en) * | 2008-01-22 | 2012-11-06 | Advanced Micro Devices, Inc. | Caching binary translations for virtual machine guest |
CN101493781B (zh) * | 2008-01-24 | 2012-02-15 | 中国长城计算机深圳股份有限公司 | 一种虚拟机系统及其启动方法 |
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 |
GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
US20100174841A1 (en) * | 2008-12-31 | 2010-07-08 | Zohar Bogin | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
US9424211B2 (en) * | 2008-12-31 | 2016-08-23 | Intel Corporation | 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 | 株式会社日立製作所 | 計算機システム、割込み中継回路及び割込み中継方法 |
US20110197004A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Processor Configured to Virtualize Guest Local Interrupt Controller |
US8255604B2 (en) * | 2010-04-06 | 2012-08-28 | International Business Machines Corporation | Interrupt vector piggybacking |
US8959270B2 (en) * | 2010-12-07 | 2015-02-17 | Apple Inc. | Interrupt distribution scheme |
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 |
CN102279769B (zh) * | 2011-07-08 | 2013-03-13 | 西安交通大学 | 一种面向嵌入式Hypervisor 的中断虚拟化操作方法 |
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 |
WO2014022980A1 (en) * | 2012-08-08 | 2014-02-13 | Intel Corporation | Isa bridging including support for call to overidding virtual functions |
JP5660097B2 (ja) * | 2012-09-18 | 2015-01-28 | 横河電機株式会社 | フォールトトレラントシステム |
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 |
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 |
US9596261B1 (en) | 2015-03-23 | 2017-03-14 | Bitdefender IPR Management Ltd. | Systems and methods for delivering context-specific 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)
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 |
JPS61206043A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | 仮想計算機システムにおける割込制御方法 |
JPS61206057A (ja) * | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2592510B1 (fr) * | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601476B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
FR2601525B1 (fr) * | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2618002B1 (fr) * | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) * | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) * | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) * | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
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 |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
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 |
-
2002
- 2002-12-11 US US10/318,248 patent/US20040117532A1/en not_active Abandoned
-
2003
- 2003-11-17 CN CNB2005101359775A patent/CN100382036C/zh not_active Expired - Fee Related
- 2003-11-17 CN CN200310113717.9A patent/CN1238795C/zh not_active Expired - Fee Related
- 2003-12-10 RU RU2003136020/09A patent/RU2263343C2/ru not_active IP Right Cessation
-
2004
- 2004-11-09 HK HK04108782A patent/HK1066070A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20040117532A1 (en) | 2004-06-17 |
RU2003136020A (ru) | 2005-05-27 |
CN1801100A (zh) | 2006-07-12 |
HK1066070A1 (en) | 2005-03-11 |
CN1506861A (zh) | 2004-06-23 |
CN100382036C (zh) | 2008-04-16 |
RU2263343C2 (ru) | 2005-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1238795C (zh) | 用于控制虚拟机系统中的外部中断的系统与方法 | |
TWI375913B (en) | Delivering interrupts directly to a virtual processor | |
CN1648866A (zh) | 在虚拟机系统中控制硬件中断应答的机制 | |
CN110084039B (zh) | 用于端点安全与网络安全服务之间的协调的框架 | |
CN1849585A (zh) | 处理特许事件的多个虚拟机监控器的使用 | |
CN1679001A (zh) | 对在虚拟机体系结构中客户软件操作期间出现的故障的控制 | |
CN100345081C (zh) | 用于在多分区数据处理系统中管理操作系统的方法和数据处理系统 | |
CN1784663A (zh) | 无效存储器,清除缓冲区表项 | |
CN1692332A (zh) | 处理与虚拟机体系结构中客户软件的操作相关联的故障 | |
KR20150070382A (ko) | 보안 로컬 웹 애플리케이션 데이터 관리자 | |
US20210133322A1 (en) | Visual Identification of Malware | |
CN104969232B (zh) | 管理设备驱动器跨环访问 | |
CN108319513B (zh) | 一种多分区操作系统中的消息传递方法及装置 | |
CN101238471A (zh) | 安全音频程序的独占访问 | |
CN112306624A (zh) | 一种信息处理方法、物理机和pcie设备 | |
US11876815B2 (en) | Device anomaly detection | |
CN115202908B (zh) | 一种基于动态编排的隐私计算请求响应方法及装置 | |
CN1818876A (zh) | 在微处理器实现的设备上执行进程的系统和方法 | |
CN112653760A (zh) | 跨服务器的文件传输方法、装置、电子设备及存储介质 | |
WO2014168408A1 (ko) | 클라우드 기반 악성코드 진단 장치, 시스템 및 방법 | |
US20190391927A1 (en) | Secure userspace networking for guests | |
US20230137436A1 (en) | Data privacy preservation in object storage | |
CN115951999A (zh) | 一种虚拟域内基于多显卡的分片虚拟化负载均衡调度 | |
CN1932767A (zh) | 一种虚拟硬件加速方法及系统 | |
CN105590054A (zh) | 虚拟机进程监控的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |