CN100349124C - 控制硬件中断应答的方法、装置及系统 - Google Patents
控制硬件中断应答的方法、装置及系统 Download PDFInfo
- Publication number
- CN100349124C CN100349124C CNB2004100806372A CN200410080637A CN100349124C CN 100349124 C CN100349124 C CN 100349124C CN B2004100806372 A CNB2004100806372 A CN B2004100806372A CN 200410080637 A CN200410080637 A CN 200410080637A CN 100349124 C CN100349124 C CN 100349124C
- Authority
- CN
- China
- Prior art keywords
- interrupt
- virtual machine
- interruption
- control
- machine monitor
- 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
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
Abstract
本发明公开了一种在虚拟机系统中控制硬件中断应答的机制。在一个实施例中,一种方法包括识别在来宾软件操作期间待决的中断,判断出中断要引起控制权向虚拟机监视器(VMM)的转移,判断在控制权向VMM转移之前中断是否要被应答,以及如果中断要被应答,则应答中断,并将控制权转移给VMM。
Description
技术领域
本发明一般地涉及虚拟机,更具体地说,涉及在虚拟机系统中控制硬件中断应答。
背景技术
在一般的计算机系统中,设备通过产生中断请求来从系统软件请求服务,这些中断请求经由多个中断请求线被传送到中断控制器。一旦中断控制器识别活动的中断请求线,它就可以向处理器发送中断信号。响应时,处理器判断软件是否已准备好接收该中断。如果软件还没有准备好接收该中断,则中断被保持在待决状态,直到软件变为准备就绪。一旦软件被判断为已准备就绪,则处理器在处理器总线上进行中断应答周期,以请求中断控制器报告待决中断中的哪个具有最高的优先级。中断控制器区分各种中断请求线间的优先级,并标识对处理器的最高优先级的中断请求。处理器使用这种被称作中断向量的中断标识符来查找中断描述符表(IDT),寻找指向用于处理该中断的代码的描述符,然后跳至该处理程序代码。
在传统的操作系统(OS)中,所有中断由被称作OS核心的单个实体控制。在虚拟机系统中,虚拟机监视器(VMM)应当对在系统中发生的各种操作和事件具有最终控制,以提供虚拟机的适当操作,并用于保护不受虚拟机的破坏,以及用于虚拟机之间的保护。为了实现这点,VMM通常在来宾软件(guest software)访问硬件资源时或者在例如中断或异常的某些事件发生时,接收控制权。具体地说,当系统设备产生中断时,控制权可以从虚拟机转移给VMM。
发明内容
根据本发明的一个方面,提供了一种方法,包括:识别在来宾软件操作期间待决的中断;判断所述中断要引起控制权向虚拟机监视器的转移;判断在控制权向所述虚拟机监视器的所述转移之前,所述中断是否要被应答;如果所述中断要被应答,则应答所述中断;以及将控制权转移给所述虚拟机监视器。
根据本发明的另一个方面,提供了一种装置,包括:用于从一个或多个系统设备接收中断的中断控制器;和中断控制器接口逻辑,所述中断控制器接口逻辑耦合到所述中断控制器,用于接收来自所述中断控制器的所述中断的通知,判断所述中断要引起控制权向虚拟机监视器的转移,判断在控制权向所述虚拟机监视器的所述转移之前所述中断是否要被应答,如果所述中断要被应答则应答所述中断,以及将控制权转移给所述虚拟机监视器。
根据本发明的另一个方面,提供了一种系统,包括:用于存储一个或多个指示符的存储器;和处理器,所述处理器耦合到所述存储器,用于使用所述一个或多个指示符来判断中断要引起控制权向虚拟机监视器的转移,判断在控制权向所述虚拟机监视器的所述转移之前中断是否要被应答,如果所述中断要被应答则应答所述中断,以及将控制权转移给所述虚拟机监视器。
根据本发明的另一个方面,提供了一种含有指令的机器可读介质,所述指令当被处理系统执行时,使所述处理系统执行一种方法,所述方法包括:识别在来宾软件操作期间待决的中断;判断所述中断要引起控制权向虚拟机监视器的转移;判断在控制权向所述虚拟机监视器的所述转移之前,所述中断是否要被应答;如果所述中断要被应答,则应答所述中断;以及将控制权转移给所述虚拟机监视器。
附图说明
本发明通过示例的方式而非限定的方式被图示在附图中,其中,相同的参考标号是指相同的元素,并且其中:
图1图示了可以在其中操作本发明的虚拟机环境的一个实施例;
图2是用于在虚拟机系统中控制中断应答的处理的一个实施例的流程图;
图3是用于在虚拟机系统中处理中断的系统的一个实施例的框图;以及
图4是用于在虚拟机系统中处理中断的处理的一个实施例的流程图。
具体实施方式
下面描述用于在虚拟机系统中控制外部中断的方法和装置。在下面的描述中,为了说明的目的,提出了许多特定的细节,以提供对本发明的彻底的理解。但是,本领域的技术人员应当清楚,没有这些特定细节也可以实现本发明。
下面的详细描述中的一些部分是以在计算机系统的寄存器或存储器的数据位上的操作的算法和符号表达的形式来表示的。这些算法描述和表达是被数据处理领域的技术人员用来向本领域的其他技术人员最有效地传达他们的工作内容的手段。算法在这里以及一般都被理解为产生希望的结果的自恰的操作序列。操作是要求物理量的物理操纵的那些操作。虽然不一定,但是通常这些量采用能够被存储、传输、组合、比较以及以其他形式被操纵的电信号或磁信号的形式。已经证实,有时尤其在用于常见用途时,将下列这些信号称作位、值、单元、符号、字符、项、数字等是方便的。
但是应该记住,所有这些项目以及类似的项目是与适当的物理量相关联的,并且仅仅是应用于这些量的方便的标记。应当认识到,除非特别指出,否则如从下面的讨论中明显看出的一样,在整个本发明中,使用诸如“处理”或“计算”或“运算”或“判断”或类似的术语的讨论可以是指计算机系统或者类似的电子计算设备的动作和处理,其将在计算机系统的寄存器和存储器中被表示为物理(电子)量的数据操纵和转换成为在计算机系统存储器或寄存器或者其他这样的信息存储、传输或显示设备中被类似地表示为物理量的其他数据。
在下面对实施例的详细描述中,参考了附图,这些附图以举例说明的方式示出了可以在其中实现本发明的具体实施例。在这些附图中,若干示图中的类似的标号描述基本上相同的部件。这些实施例被足够详细地描述,以使得本领域的技术人员能够实现本发明。其他的实施例也可以被使用,并且可以不脱离本发明的范围作出结构、逻辑和电学上的变化。此外,应当理解,本发明的各种实施例虽然不同,但是未必互相排斥。例如,在一个实施例中所描述的特定的特征、结构或者特性可以被包括在其他实施例中。因此,下面的详细描述不应被认为是限定的含意,本发明的范围只由所附权利要求以及权利要求中包括的内容的等同物的全部范围来限定。
虽然下面的示例可能是在执行单元和逻辑电路的环境中描述中断应答,但是本发明的其他实施例可以通过软件的方式来完成。例如,在一些实施例中,本发明可以被提供为计算机程序产品或者软件,它们可以包括在其上存储有指令的机器或计算机可读介质,这些指令可以被用于编程计算机(或者其他电子设备)来进行根据本发明的处理。在其他实施例中,本发明的步骤可以通过特定的硬件部件来进行,这些硬件部件含有用于进行这些步骤的硬连线逻辑,或者通过被编程的计算机部件与定制硬件部件的任意组合来进行。
因而,机器可读介质可以包括用于以可被机器(例如计算机)读取的形式存储或传输信息的任何机构,而并不限于软盘、光盘、只读光盘、只读存储器(CD-ROM)、磁光盘、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、互联网上的传输,电、光、声或者其他形式的传播信号(例如载波、红外信号、数字信号等)或者类似物。
此外,设计可以经过从创造到模拟到制造的各种阶段。表达设计的数据可以以许多方式表达设计。首先,如在模拟中有用的,可以使用硬件描述语言或者其他功能描述语言表达硬件。另外,在设计过程的一些阶段可以产生具有逻辑和/或晶体管门的电路级模型。此外,在某个阶段,大多数设计达到了表达硬件模型中各种设备的物理布置的数据的水平。在使用传统的半导体制造技术的情况中,表达硬件模型的数据可以是指定在用于生产集成电路的掩膜的不同掩膜层上存在或者不存在各种特征的数据。在设计的任何表达中,数据可以被存储在任何形式的机器可读介质中。机器可读介质可以是被调制或者被产生用于传输这种信息的光波或电波、存储器或者例如盘的磁或光存储器。这些介质中的任何一种可以“承载”或“指示”设计或者软件信息。当指示或者承载代码或设计的电载波被传输到进行电信号的拷贝、缓冲或者再传输的程度时,就做出了新的拷贝。因而,通信提供者或者网络提供者可以制作包含本发明技术的物品(载波)的拷贝。
图1图示了在其中可以操作本发明的虚拟机环境100的一个实施例。在该实施例中,裸(bare)平台硬件116包括例如可以执行标准操作系统(OS)或者例如VMM 112的虚拟机监视器(VMM)的计算平台。
VMM 112虽然通常是在软件中实现的,但是可以模拟和输出到更高级别软件的裸机接口。这种更高级别软件可以包括标准或者实时OS,可以是具有受限制操作系统功能的高度精减(stripped down)操作环境,可以不包括传统的OS工具等。或者,VMM 112例如可以在另一VMM之中或者其上运行。VMM例如可以被实现在硬件、软件、固件中,或者通过各种技术的组合实现。
平台硬件116可以是个人计算机(PC)、大型机、手持设备、便携式计算机、机顶盒或者任何其他计算系统。平台硬件116包括处理器118、存储器120和一个或多个中断源128。
处理器118可以是能够执行软件的任何类型的处理器,例如微处理器、数字信号处理器、微控制器或者类似者。处理器118可以包括用于执行本发明方法实施例的微代码、可编程逻辑或者硬编码逻辑。虽然图1只示出了一个这样的处理器118,但是在系统中可以有一个或多个处理器。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、上述设备的任何组合或者任何其他类型的可以被处理器118读取的机器介质。存储器120可以存储用于执行本发明的方法实施例的指令和/或数据。
一个或多个中断源128例如可以是系统总线(例如,PCI、ISA、AGP)上的输入-输出(I/O)设备(例如,网络接口卡、通信端口、视频控制器、盘控制器)、被集成到芯片组逻辑或者处理中的设备(例如,实时时钟、可编程计时器、性能计数器)或者任何其他中断源。
VMM 112向其他软件(即“来宾”软件)表示一个或多个虚拟机(VM)的抽象,它可以对各种来宾提供相同或者不同的抽象。图1示出了两个VM,102和114。在每个VM上运行的来宾软件可以包括例如来宾OS 104或106的来宾OS以及各种来宾软件应用程序108和110。来宾OS104和106中的每一个期望访问在其上运行来宾OS 104或106的VM 102和114中的物理资源(例如,处理器寄存器、存储器和I/O设备),并处理由系统设备产生的包括中断的各种事件。
中断可能需要被当前工作的VM、VMM 112或者当前没工作的VM处理。如果中断要被当前工作的VM处理,则控制权属于该VM,并且如果它已经准备好接收中断(例如通过指定的处理器寄存器中的中断标志所指示的),则中断被传递到该VM。如果中断不是要被当前运行的VM处理,则控制权被转移给VMM 112。控制权从来宾软件向VMM 112的转移在这里被称作VM退出。在VM退出之后接收控制权后,VMM 112可以进行多种处理,例如包括应答和处理中断,在这之后它可以将控制权返回给来宾软件。如果VMM自身不处理中断,则它可以帮助将中断传递给被指定处理该中断的VM。控制权从VMM向来宾软件的转移在这里被称作VM进入。
在一个实施例中,处理器118按照虚拟机控制结构(VMCS)124中所存储的数据来控制VM 102和114的操作。VMCS 124是一种结构,它可以包含来宾软件的状态、VMM 112的状态、指示VMM 112希望如何限制或者以其他方式控制来宾软件操作的执行控制信息、控制在VMM 112与VM之间转移的信息等。当发生VM退出时,被来宾软件使用的处理器状态的部分被保存到VMCS 124中,并且被VMM 112需要的处理器状态的部分被从VMCS 124中取出。当发生VM进入时,使用被存储在VMCS124中的数据恢复VM退出时被保存的处理器状态,并且控制权被返回给来宾软件。
在一个实施例中,VMCS 124被存储在存储器120中。在另一个实施例中,VMCS 124被存储在处理器118中。在一些实施例中,使用多个VMCS结构来支持多个VM。
处理器118从VMCS 124读取信息,以判断VM的执行环境,并约束其行为。在一个实施例中,VMCS中所存储的执行控制信息包括中断控制指示符,该指示符说明在VM操作期间由系统设备产生的中断是否将引起VM退出。或者,中断控制指示符可以驻留在处理器118中、存储器120和处理器118的组合中或者任何其他的一个或多个存储单元中。
在一个实施例中,VMM 112在请求将控制权转移给VM 102或114之前设置中断控制指示符的值。或者,VM 102和114中的每一个与在VM寿命期间被设置为预定值或者变化的不同中断控制指示符相关联。
如果处理器118判断出待决中断将产生VM退出,则处理器118然后进一步判断在进行VM退出之前该中断是否需要被应答。中断应答包括在处理器总线上产生中断应答周期。在实施例中,作为中断应答周期的一部分,处理器118从中断控制器获取中断的标识符(例如中断向量)。在一个实施例中,关于中断是否需要被应答的判断取决于中断应答指示符的当前值。在一个实施例中,中断应答指示符被存储在VMCS 124中(例如作为执行控制信息的一部分)。或者,中断应答指示符可以驻留在处理器118中、存储器120和处理器118的组合中或者任何其他的一个或多个存储单元中。
在一个实施例中,中断应答指示符被VMM 112控制。在一个实施例中,VMM 112在第一次调用VM之前设置中断应答指示符。例如,如果VMM 112必须基于中断标识符决定是自己处理中断还是将它传递给特定的VM,则VMM 112可以将中断应答指示符设置为应答值。或者,例如如果VM 102和114中的一个被指定处理由中断源128产生的全部中断,则VMM 112可以将中断应答指示符设置为不应答值,并且当发生由中断引起的VM退出时,VMM 112总是调用该指定的VM。在一个实施例中,中断应答指示符是可以被VMM 112修改的。例如,如果开始时系统100具有指定的VM来处理全部的中断,但是后来添加了新的VM来处理由中断源128产生的某些中断,则VMM 112可以决定改变中断应答指示符。
如果处理器118判断出在VM退出之前中断要被应答,则处理器118应答该中断,然后将控制权转移给VMM 112。在一个实施例中,在转移控制权之前,处理器118在VMM 112可访问的存储单元,将所获得的中断标识符存储为中断应答的一部分。在一个实施例中,中断标识符被存储在VMCS 124中(例如,在多个退出信息字段的一个中)。
图2是用于在虚拟机系统中控制中断应答的处理200的一个实施例的流程图。处理可以由可包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如运行在通用计算机系统或者专用机器上)或者两者的组合的处理逻辑来进行。
参考图2,处理200从处理逻辑识别在来宾软件操作期间待决的中断(处理框202)开始。
在处理框204,处理逻辑判断中断要引起VM退出。在一个实施例中,这种判断是基于驻留在VMCS或者任何其他数据结构中的中断控制指示符的当前值而作出的。或者,在体系结构上可能要求全部中断引起VM退出,并且不需要中断控制指示符用于该判断。
接着,处理逻辑进一步判断在将控制权转移给VMM之前,中断是否要被应答(判断框206)。在一个实施例中,使用驻留在VMCS或者任何其他数据结构中的中断应答指示符来作出该判断。或者,全部中断可以被应答,并且不需要中断应答指示符用于该判断。
如果在判断框206作出的判断是肯定的,则处理逻辑应答该中断,并且在实施例中,作为应答的一部分,获取中断的标识符(处理框208),并将该标识符存储到VMM可访问的存储单元(处理框210)。在一个实施例中,处理逻辑将中断标识符存储在VMCS中(例如,在多个退出信息字段的一个中)。然后产生VM退出(处理框212)。
如果在判断框206作出的判断是否定的,则处理逻辑不进行处理框208和210,直接转到处理框212。
因此,通过处理200,性能被提高了,并且VMM的功能被简化了。具体地说,在VM退出之前不提供中断应答的系统中,在每个VM退出后中断被阻断(例如,通过设置指定的处理器寄存器中的中断标志)。其结果是,在实施例中,为了判断中断向量,VMM必须解锁中断(例如,通过执行重置中断标志的指令)。处理器然后应答在中断控制器的中断,获取中断标识符,在重定向结构(例如,在IntelPentium4的指令集体系结构(ISA) (这里被称作IA-32 ISA)中的中断描述符表(IDT))中查找与中断相关联的入口,从该入口提取与该中断相关联的处理程序的描述符,并跳至使用该描述符的适当的VMM处理程序的开头。由于VMM可以基于处理器调用了哪一个处理器程序来标识中断源,所以VMM然后可以适当地处理中断。或者,在另一实施例中,在VM退出后,VMM可以进行对中断控制器的一系列访问(例如I/O访问),以判断中断向量和应答中断。
通过处理200,可以在VM退出之前应答中断。其结果是,一旦VMM接收了控制权,VMM就对中断标识信息立即访问。VMM然后可以使用中断标识符来找到适当的中断处理程序代码或者VM。所以,除去了VMM解锁中断的需要,以及处理器查找重定向结构、从相应的入口提取与该中断相关联的处理程序的描述符、跳至适当的VMM异常处理程序代码开头的需要。因为VMM不再需要具有上述必需的代码和/或结构(例如,重定向结构(例如IDT)、使用I/O操作应答中断的代码等),所以这又可以简化VMM软件的设计和验证。
图3是用于在虚拟机环境中处理中断的系统300的一个实施例的框图。
参考图3,设备314(例如I/O设备)通过产生中断请求来从系统软件请求服务,该请求经由一个或多个中断请求线316被传送到中断控制器313。一旦中断控制器313识别到活动的中断请求线316,它就向CPU 302发送中断信号310。中断控制器313可以包括本领域技术人员公知的屏蔽和优先级逻辑。在实施例中,可以有不止一个到CPU 302的中断信号线310,或者替代地,中断“信号”可以经由总线消息或者通过任何其他通信机制或者协议被传递。
响应于来自中断控制器313的活动的中断信号310,中断控制器接口逻辑304判断哪个软件具有对中断的控制权。如果中断发生在VMM操作过程中,则中断被VMM管理。或者,如果操作发生在来宾软件的操作过程中,则中断控制器接口逻辑304判断中断是由当前工作的来宾软件控制还是由VMM控制。如果中断被VMM控制,则产生VM退出,以将控制权转移给VMM。
在一个实施例中,这种判断取决于VMCS 308中所存储的中断控制指示符320的当前值(例如,作为执行控制信息的一部分)。在一个实施例中,VMM在第一次请求进入特定VM的VM入口之前,设置中断控制指示符320的值,并且在VM的整个寿命中不改变该值。例如,如果系统具有某个处理全部中断的VM,则该VM的中断控制指示符320将被设置为允许中断的来宾控制;所有其他VM的中断控制指示符320将被设置为VMM控制。或者,如果中断可以取决于中断标识符而被不同的VM和/或VMM处理,并且VMM需要决定哪个实体处理当前的中断,则对全部VM,中断控制指示符320可以被设置为指示VMM控制。在另外的实施例中,中断控制指示符320的值可以在特定VM的寿期期间变化。
如果中断控制指示符320表明中断被当前工作的VM控制,则中断控制器接口逻辑304进一步判断当前工作的VM是否准备好接收中断。在一个实施例中,中断控制器接口逻辑304在查阅中断标志306后作出该判断,其中当来宾软件接收中断的能力的状态变化时,该标志可以被来宾软件更新。例如,在IA-32 ISA中,EFLAGS寄存器包含IF中断标志位,其部分地控制中断是否将被传递给软件(其他因素可能会阻断IA-32 ISA中的中断,在判断中断是否可以被传递时必须考虑这些因素)。在实施例中,中断标志306驻留在处于中断控制器接口逻辑304外部或者内部的CPU 302中。
如果中断控制器接口逻辑304判断出来宾软件已准备好接收中断,则它通过中断应答周期应答在中断控制器313的中断请求,在一个实施例中,对于该应答,中断控制器313返回具有最高优先级的中断的标识符(被称作中断向量)。基于中断向量,中断控制器接口逻辑304在该VM的IDT中查找与中断相关联的入口,从该入口提取与该中断相关联的处理程序的描述符,并使用描述符跳至适当的VM异常处理程序代码的开头。在另一个实施例中,具有一个中断处理程序,不需要中断标识符。否则,如果VM当前没有准备好接收中断,则中断被保持在待决状态,直到VM变为准备就绪。
如果中断控制指示符30表明中断被VMM控制(即,将要产生VM退出),则在一个实施例中,中断控制器接口逻辑304查阅这里被称作监视器中断标志(MIF)322的中断转移标志。MIF 322以与中断标志306相似的方式作用,指示出中断是否被允许引起到VMM的转移。在一个实施例中,MIF 322驻留在VMCS 308中,并被VMM控制。在另一个实施例中,MIF 322驻留在机器寄存器中或者存储器中。如果MIF 322指示中断被阻断,则将不产生VM退出,直到MIF 322被改变为解锁中断。例如如果当前工作的VM进行时间关键的任务,并且VMM不希望发生任何VM退出以避免降低该VM的性能,则VMM可以将MIF 322设置为阻断值。
在另一个实施例中,中断控制器接口逻辑304不查阅MIF 322,并仅基于中断控制指示符320决定中断是否要引起VM退出。
如果中断控制器接口逻辑304判断出中断要引起VM退出,则中断控制器接口逻辑304进一步查阅中断应答指示符324。中断应答指示符324表明在VM退出之前中断是否要被应答。在一个实施例中,中断应答指示符324驻留在VMCS 308中,并被VMM控制。在另一个实施例中,中断应答指示符324驻留在机器寄存器中或者存储器中。
如果中断应答指示符324表明在VM退出之前不需要应答,则中断控制器接口逻辑304产生VM退出。VMM然后例如可以将中断控制指示符320设置为VM控制值,并请求将控制权转移给被指定用于处理全部中断的VM。在另一个实施例中,VMM可以自己判断中断向量(例如,通过访问中断控制器312的适当的寄存器来读取中断向量)。
如果中断应答指示符324表明中断要被应答,则中断控制器接口逻辑304应答在接口控制器312的中断,并且在实施例中,从中断控制器312获取中断向量值,并将中断向量值存储在VMCS的中断向量字段326中。然后产生VM退出。接收控制权之后,VMM可以判断中断应被如何处理(例如,通过导向到VMM中的处理程序、通过调用适当的VM来处理中断等)。在实施例中,可以基于来自VMCS 308的中断向量326作出这种判断。
图4是用于在虚拟机系统中处理中断的处理400的一个实施例的流程图。处理可以由可包括硬件(例如,电路系统、专用逻辑、可编程逻辑、微代码等)、软件(例如运行在通用计算机系统或者专用机器上)或者两者的组合的处理逻辑来进行。
参考图4,处理400从处理逻辑识别在来宾软件操作期间待决中断的存在(处理框402)开始。接着,处理逻辑使用中断控制指示符判断中断将被VMM控制还是被来宾软件控制(判断框404)。如果中断控制指示符表明中断要被来宾软件控制,则处理逻辑进一步判断来宾软件是否准备好了接收中断(判断框406)。在一个实施例中,通过查阅中断标志(例如,EFLAGS寄存器中的IF位)作出该判断。如果判断是肯定的,则处理逻辑将中断传递给来宾软件(处理框408)。中断向来宾软件的传递包括用中断控制器应答中断,获取中断向量以及基于向量将控制权传给适当处理程序的来宾。否则,中断被保持为待决(处理框410),直到来宾软件变为已准备好处理中断。
如果中断是被VMM控制,则在一个实施例中,处理逻辑判断监视器中断标志(MIF)是否被设置为阻断值(判断框412)。如果是,中断被保持为待决(处理框414),直到MIF被改变为解锁值。如果不是,处理逻辑使用中断应答指示符进一步判断中断是否将被应答(判断框416)。如果不是,处理逻辑不应答中断,并直接到处理框424,以产生VM退出。
如果中断要被应答,则处理逻辑应答在中断控制器的中断(处理框418)。在一些实施例中,处理逻辑从中断控制器获取中断向量(处理框420),并将中断向量存储在VMCS中(处理框422)。最后,处理逻辑产生VM退出(处理框424)。
这样,已经描述了用于在虚拟机系统中处理中断的方法和装置。应当理解,上述说明意于是说明性的,而非限定性的。对于本领域的技术人员来说,阅读和理解上述说明后,许多其他的实施例将是显而易见的。因此,本发明的范围应当参考所附权利要求以及这些权利要求所包括的内容的等同物的全部范围来确定。
Claims (20)
1.一种控制中断应答的方法,包括:
识别在来宾软件操作期间待决的中断;
判断所述中断要引起控制权向虚拟机监视器的转移;
判断在控制权向所述虚拟机监视器的所述转移之前,所述中断是否要被应答;
如果所述中断要被应答,则应答所述中断;以及
将控制权转移给所述虚拟机监视器。
2.根据权利要求1所述的方法,其中,判断所述中断是否要被应答包括判断中断应答指示符是否被设置为应答值。
3.根据权利要求2所述的方法,其中,所述中断应答指示符由所述虚拟机监视器控制。
4.根据权利要求2所述的方法,其中,所述中断应答指示符被存储在虚拟机控制结构中。
5.根据权利要求1所述的方法,还包括:
判断在将控制权转移给所述虚拟机监视器之前,所述中断将不被应答;以及
在完成控制权向所述虚拟机监视器的所述转移之前,禁止应答所述中断。
6.根据权利要求1所述的方法,其中,应答所述中断包括:
从中断控制器获取所述中断的标识符。
7.根据权利要求6所述的方法,还包括:
在完成控制权向所述虚拟机监视器的所述转移之后,使得与所述中断的所述标识符有关的信息对所述虚拟机监视器可用。
8.根据权利要求7所述的方法,其中,使得与所述中断的所述标识符有关的所述信息对所述虚拟机监视器可用包括:
在完成控制权向所述虚拟机监视器的所述转移之前,将所述中断的所述标识符存储在虚拟机控制结构中。
9.根据权利要求1所述的方法,其中,判断所述中断要引起控制权向所述虚拟机监视器的所述转移包括:
判断中断控制指示符被设置为虚拟机监视器控制值。
10.根据权利要求9所述的方法,其中,所述中断控制指示符被存储在虚拟机控制结构中。
11.根据权利要求9所述的方法,其中,判断所述中断要引起控制权向所述虚拟机监视器的所述转移还包括:
判断监视器中断标志被设置为被解锁值。
12.根据权利要求9所述的方法,其中,所述监视器中断标志被存储在虚拟机控制结构中。
13.一种控制中断应答的装置,包括:
用于从一个或多个系统设备接收中断的中断控制器;和
中断控制器接口逻辑,所述中断控制器接口逻辑耦合到所述中断控制器,用于接收来自所述中断控制器的所述中断的通知,判断所述中断要引起控制权向虚拟机监视器的转移,判断在控制权向所述虚拟机监视器的所述转移之前所述中断是否要被应答,如果所述中断要被应答则应答所述中断,以及将控制权转移给所述虚拟机监视器。
14.根据权利要求13所述的装置,其中,所述中断控制器接口逻辑通过判断中断应答指示符是否被设置为应答值,来判断所述中断是否要被应答。
15.根据权利要求14所述的装置,其中,所述中断应答指示符由所述虚拟机监视器控制。
16.根据权利要求14所述的装置,其中,所述中断应答指示符被存储在虚拟机控制结构中。
17.一种处理中断的系统,包括:
用于存储一个或多个指示符的存储器;和
处理器,所述处理器耦合到所述存储器,用于使用所述一个或多个指示符来判断中断要引起控制权向虚拟机监视器的转移,判断在控制权向所述虚拟机监视器的所述转移之前中断是否要被应答,如果所述中断要被应答则应答所述中断,以及将控制权转移给所述虚拟机监视器。
18.根据权利要求17所述的系统,其中,所述处理器通过判断中断应答指示符是否被设置为应答值,来判断所述中断是否要被应答。
19.根据权利要求18所述的系统,其中,所述中断应答指示符由所述虚拟机监视器控制。
20.根据权利要求18所述的系统,其中,所述中断应答指示符被存储在虚拟机控制结构中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/676,887 US7237051B2 (en) | 2003-09-30 | 2003-09-30 | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US10/676,887 | 2003-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1648866A CN1648866A (zh) | 2005-08-03 |
CN100349124C true CN100349124C (zh) | 2007-11-14 |
Family
ID=34422122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100806372A Expired - Fee Related CN100349124C (zh) | 2003-09-30 | 2004-09-29 | 控制硬件中断应答的方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7237051B2 (zh) |
CN (1) | CN100349124C (zh) |
TW (1) | TWI261747B (zh) |
WO (1) | WO2005033937A1 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050044408A1 (en) * | 2003-08-18 | 2005-02-24 | Bajikar Sundeep M. | Low pin count docking architecture for a trusted platform |
US8127098B1 (en) * | 2004-05-11 | 2012-02-28 | Globalfoundries Inc. | Virtualization of real mode execution |
US7607011B1 (en) * | 2004-07-16 | 2009-10-20 | Rockwell Collins, Inc. | System and method for multi-level security on a network |
US8214830B2 (en) * | 2005-01-19 | 2012-07-03 | Intel Corporation | Performance in a virtualization architecture with a processor abstraction layer |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
JP4357442B2 (ja) * | 2005-03-23 | 2009-11-04 | 株式会社東芝 | プラン実行装置、プラン実行方法およびプログラム |
US9785485B2 (en) | 2005-07-27 | 2017-10-10 | Intel Corporation | Virtualization event processing in a layered virtualization architecture |
CN100399273C (zh) * | 2005-08-19 | 2008-07-02 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件配置方法 |
CN100420202C (zh) * | 2005-10-20 | 2008-09-17 | 联想(北京)有限公司 | 计算机管理系统以及计算机管理方法 |
US8209681B1 (en) * | 2005-11-08 | 2012-06-26 | Hewlett-Packard Development Company, L.P. | Method of sampling hardware events in computer system |
US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US7533207B2 (en) * | 2006-12-06 | 2009-05-12 | Microsoft Corporation | Optimized interrupt delivery in a virtualized environment |
US7788434B2 (en) * | 2006-12-15 | 2010-08-31 | Microchip Technology Incorporated | Interrupt controller handling interrupts with and without coalescing |
US7562173B2 (en) * | 2007-03-23 | 2009-07-14 | Intel Corporation | Handling shared interrupts in bios under a virtualization technology environment |
US8151264B2 (en) * | 2007-06-29 | 2012-04-03 | Intel Corporation | Injecting virtualization events in a layered virtualization architecture |
US8453143B2 (en) | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US8078792B2 (en) * | 2008-01-22 | 2011-12-13 | Advanced Micro Devices, Inc. | Separate page table base address for minivisor |
WO2009123640A1 (en) * | 2008-04-04 | 2009-10-08 | Hewlett-Packard Development Company, L.P. | Virtual machine manager system and methods |
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 |
US20110106522A1 (en) * | 2009-11-05 | 2011-05-05 | Chinya Gautham N | virtual platform for prototyping system-on-chip designs |
US8566492B2 (en) | 2009-12-31 | 2013-10-22 | Intel Corporation | Posting interrupts to virtual processors |
US8612659B1 (en) * | 2010-12-14 | 2013-12-17 | Vmware, Inc. | Hardware interrupt arbitration in virtualized computer systems |
US9043562B2 (en) | 2011-04-20 | 2015-05-26 | Microsoft Technology Licensing, Llc | Virtual machine trigger |
TWI463331B (zh) * | 2011-04-26 | 2014-12-01 | Global Unichip Corp | 系統單晶片之模擬系統及方法 |
US8972642B2 (en) * | 2011-10-04 | 2015-03-03 | Qualcomm Incorporated | Low latency two-level interrupt controller interface to multi-threaded processor |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10331589B2 (en) * | 2013-02-13 | 2019-06-25 | Red Hat Israel, Ltd. | Storing interrupt location for fast interrupt register access in hypervisors |
US9563455B2 (en) * | 2013-10-28 | 2017-02-07 | Intel Corporation | Virtualization exceptions |
US9772868B2 (en) | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
US9910699B2 (en) | 2014-10-28 | 2018-03-06 | Intel Corporation | Virtual processor direct interrupt delivery mechanism |
CN109144679B (zh) * | 2017-06-27 | 2022-03-29 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
WO2019084793A1 (en) * | 2017-10-31 | 2019-05-09 | Nokia Shanghai Bell Co., Ltd. | A method, apparatus and system for real-time virtual network function orchestration |
GB2574049B (en) * | 2018-05-24 | 2020-10-07 | Advanced Risc Mach Ltd | Interrupt controller |
CN111506530A (zh) * | 2019-01-30 | 2020-08-07 | 智原科技股份有限公司 | 中断管理系统及其管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5023771A (en) * | 1987-01-26 | 1991-06-11 | Nec Corporation | Controller for two timers of a virtual machine system, one updated only in the VMOS mode |
EP0213952B1 (en) * | 1985-09-03 | 1992-07-01 | Fujitsu Limited | Computer system for controlling virtual machines |
CN1292534A (zh) * | 1999-10-01 | 2001-04-25 | 北方电讯网络有限公司 | 在两种网络访问技术之间切换的方法和系统 |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
Family Cites Families (139)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3699532A (en) | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
US3996449A (en) | 1975-08-25 | 1976-12-07 | International Business Machines Corporation | Operating system authenticator |
US4162536A (en) | 1976-01-02 | 1979-07-24 | Gould Inc., Modicon Div. | Digital input/output system and method |
US4037214A (en) | 1976-04-30 | 1977-07-19 | International Business Machines Corporation | Key register controlled accessing system |
US4247905A (en) | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
US4278837A (en) | 1977-10-31 | 1981-07-14 | Best Robert M | Crypto microprocessor for executing enciphered programs |
US4276594A (en) | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
JPS5823570B2 (ja) | 1978-11-30 | 1983-05-16 | 国産電機株式会社 | 液面検出装置 |
JPS5576447A (en) | 1978-12-01 | 1980-06-09 | Fujitsu Ltd | Address control system for software simulation |
US4307447A (en) | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
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 |
JPS61206043A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | 仮想計算機システムにおける割込制御方法 |
JPS61206057A (ja) | 1985-03-11 | 1986-09-12 | Hitachi Ltd | アドレス変換装置 |
FR2580096B1 (zh) | 1985-04-04 | 1988-08-19 | Nec Corp | |
FR2592510B1 (fr) | 1985-12-31 | 1988-02-12 | Bull Cp8 | Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire |
FR2601535B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission |
FR2601525B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique |
FR2601476B1 (fr) | 1986-07-11 | 1988-10-21 | Bull Cp8 | Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire |
JPH0810437B2 (ja) * | 1987-05-11 | 1996-01-31 | 株式会社日立製作所 | 仮想計算機システムのゲスト実行制御方式 |
FR2618002B1 (fr) | 1987-07-10 | 1991-07-05 | Schlumberger Ind Sa | Procede et systeme d'authentification de cartes a memoire electronique |
US5007082A (en) | 1988-08-03 | 1991-04-09 | Kelly Services, Inc. | Computer software encryption apparatus |
US5079737A (en) | 1988-10-25 | 1992-01-07 | United Technologies Corporation | Memory management unit for the MIL-STD 1750 bus |
US5434999A (en) | 1988-11-09 | 1995-07-18 | Bull Cp8 | Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal |
FR2640798B1 (fr) | 1988-12-20 | 1993-01-08 | Bull Cp8 | Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable |
JPH02171934A (ja) | 1988-12-26 | 1990-07-03 | Hitachi Ltd | 仮想計算機システム |
JPH02208740A (ja) | 1989-02-09 | 1990-08-20 | Fujitsu Ltd | 仮想計算機制御方式 |
US5442645A (en) | 1989-06-06 | 1995-08-15 | Bull Cp8 | Method for checking the integrity of a program or data, and apparatus for implementing this method |
JP2590267B2 (ja) | 1989-06-30 | 1997-03-12 | 株式会社日立製作所 | 仮想計算機における表示制御方式 |
US5022077A (en) | 1989-08-25 | 1991-06-04 | International Business Machines Corp. | Apparatus and method for preventing unauthorized access to BIOS in a personal computer system |
JP2825550B2 (ja) | 1989-09-21 | 1998-11-18 | 株式会社日立製作所 | 多重仮想空間アドレス制御方法および計算機システム |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
CA2027799A1 (en) | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5075842A (en) | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5108590A (en) | 1990-09-12 | 1992-04-28 | Disanto Dennis | Water dispenser |
US5230069A (en) | 1990-10-02 | 1993-07-20 | International Business Machines Corporation | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system |
US5317705A (en) | 1990-10-24 | 1994-05-31 | International Business Machines Corporation | Apparatus and method for TLB purge reduction in a multi-level machine system |
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5437033A (en) | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5255379A (en) | 1990-12-28 | 1993-10-19 | Sun Microsystems, Inc. | Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor |
US5453003A (en) | 1991-01-09 | 1995-09-26 | Pfefferle; William C. | Catalytic method |
US5319760A (en) | 1991-06-28 | 1994-06-07 | Digital Equipment Corporation | Translation buffer for virtual machines with address space match |
US5522075A (en) | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5455909A (en) | 1991-07-05 | 1995-10-03 | Chips And Technologies Inc. | Microprocessor with operation capture facility |
JPH06236284A (ja) | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5574936A (en) | 1992-01-02 | 1996-11-12 | Amdahl Corporation | Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system |
US5486529A (en) | 1992-04-16 | 1996-01-23 | Zeneca Limited | Certain pyridyl ketones for treating diseases involving leukocyte elastase |
US5421006A (en) | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
US5293424A (en) | 1992-10-14 | 1994-03-08 | Bull Hn Information Systems Inc. | Secure memory card |
US5796835A (en) | 1992-10-27 | 1998-08-18 | Bull Cp8 | Method and system for writing information in a data carrier making it possible to later certify the originality of this information |
JP2765411B2 (ja) | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
US5668971A (en) | 1992-12-01 | 1997-09-16 | Compaq Computer Corporation | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer |
JPH06187178A (ja) | 1992-12-18 | 1994-07-08 | Hitachi Ltd | 仮想計算機システムの入出力割込み制御方法 |
US5483656A (en) | 1993-01-14 | 1996-01-09 | Apple Computer, Inc. | System for managing power consumption of devices coupled to a common bus |
US5469557A (en) | 1993-03-05 | 1995-11-21 | Microchip Technology Incorporated | Code protection in microcontroller with EEPROM fuses |
FR2703800B1 (fr) | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
FR2704341B1 (fr) | 1993-04-22 | 1995-06-02 | Bull Cp8 | Dispositif de protection des clés d'une carte à puce. |
JPH06348867A (ja) | 1993-06-04 | 1994-12-22 | Hitachi Ltd | マイクロコンピュータ |
FR2706210B1 (fr) | 1993-06-08 | 1995-07-21 | Bull Cp8 | Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants. |
US5555385A (en) | 1993-10-27 | 1996-09-10 | International Business Machines Corporation | Allocation of address spaces within virtual machine compute system |
US5825880A (en) | 1994-01-13 | 1998-10-20 | Sudia; Frank W. | Multi-step digital signature method and system |
US5459869A (en) | 1994-02-17 | 1995-10-17 | Spilo; Michael L. | Method for providing protected mode services for device drivers and other resident software |
US5604805A (en) | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
FR2717286B1 (fr) | 1994-03-09 | 1996-04-05 | Bull Cp8 | Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant. |
US5684881A (en) | 1994-05-23 | 1997-11-04 | Matsushita Electric Industrial Co., Ltd. | Sound field and sound image control apparatus and method |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5539828A (en) | 1994-05-31 | 1996-07-23 | Intel Corporation | Apparatus and method for providing secured communications |
JPH0883211A (ja) | 1994-09-12 | 1996-03-26 | Mitsubishi Electric Corp | データ処理装置 |
DE69534757T2 (de) * | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften |
FR2725537B1 (fr) | 1994-10-11 | 1996-11-22 | Bull Cp8 | Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe |
US5606617A (en) | 1994-10-14 | 1997-02-25 | Brands; Stefanus A. | Secret-key certificates |
US5564040A (en) | 1994-11-08 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for providing a server function in a logically partitioned hardware machine |
US5560013A (en) | 1994-12-06 | 1996-09-24 | International Business Machines Corporation | Method of using a target processor to execute programs of a source architecture that uses multiple address spaces |
US5555414A (en) | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
US5615263A (en) | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
US5764969A (en) | 1995-02-10 | 1998-06-09 | International Business Machines Corporation | Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization |
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エレクトロニクス株式会社 | フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法 |
US5657445A (en) | 1996-01-26 | 1997-08-12 | Dell Usa, L.P. | Apparatus and method for limiting access to mass storage devices in a computer system |
US5835594A (en) | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5809546A (en) | 1996-05-23 | 1998-09-15 | International Business Machines Corporation | Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers |
US5729760A (en) | 1996-06-21 | 1998-03-17 | Intel Corporation | System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode |
US5944821A (en) * | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6199152B1 (en) * | 1996-08-22 | 2001-03-06 | Transmeta Corporation | Translated memory protection apparatus for an advanced microprocessor |
US5740178A (en) | 1996-08-29 | 1998-04-14 | Lucent Technologies Inc. | Software for controlling a reliable backup memory |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5935242A (en) * | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
US5757919A (en) | 1996-12-12 | 1998-05-26 | Intel Corporation | Cryptographically protected paging subsystem |
JP4000654B2 (ja) * | 1997-02-27 | 2007-10-31 | セイコーエプソン株式会社 | 半導体装置及び電子機器 |
US6044478A (en) * | 1997-05-30 | 2000-03-28 | National Semiconductor Corporation | Cache with finely granular locked-down regions |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
US5978475A (en) * | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US5919257A (en) * | 1997-08-08 | 1999-07-06 | Novell, Inc. | Networked workstation intrusion detection system |
US5935247A (en) * | 1997-09-18 | 1999-08-10 | Geneticware Co., Ltd. | Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same |
US6108644A (en) * | 1998-02-19 | 2000-08-22 | At&T Corp. | System and method for electronic transactions |
US6131166A (en) * | 1998-03-13 | 2000-10-10 | Sun Microsystems, Inc. | System and method for cross-platform application level power management |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) * | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6282650B1 (en) * | 1999-01-25 | 2001-08-28 | Intel Corporation | Secure public digital watermark |
US6560627B1 (en) * | 1999-01-28 | 2003-05-06 | Cisco Technology, Inc. | Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6188257B1 (en) * | 1999-02-01 | 2001-02-13 | Vlsi Technology, Inc. | Power-on-reset logic with secure power down capability |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US6615278B1 (en) * | 1999-03-29 | 2003-09-02 | International Business Machines Corporation | Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment |
US6684326B1 (en) * | 1999-03-31 | 2004-01-27 | International Business Machines Corporation | Method and system for authenticated boot operations in a computer system of a networked computing environment |
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6275933B1 (en) * | 1999-04-30 | 2001-08-14 | 3Com Corporation | Security system for a computerized apparatus |
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
JP3710671B2 (ja) * | 2000-03-14 | 2005-10-26 | シャープ株式会社 | 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法 |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
GB0020416D0 (en) * | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Trusted system |
US7631160B2 (en) * | 2001-04-04 | 2009-12-08 | Advanced Micro Devices, Inc. | Method and apparatus for securing portions of memory |
US6976136B2 (en) * | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US7676430B2 (en) * | 2001-05-09 | 2010-03-09 | Lenovo (Singapore) Ptd. Ltd. | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
US7191464B2 (en) * | 2001-10-16 | 2007-03-13 | Lenovo Pte. Ltd. | Method and system for tracking a secure boot in a trusted computing environment |
US7103771B2 (en) * | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US20030126453A1 (en) * | 2001-12-31 | 2003-07-03 | Glew Andrew F. | Processor supporting execution of an authenticated code instruction |
US7308576B2 (en) * | 2001-12-31 | 2007-12-11 | Intel Corporation | Authenticated code module |
US7107460B2 (en) * | 2002-02-15 | 2006-09-12 | International Business Machines Corporation | Method and system for securing enablement access to a data security device |
US7343493B2 (en) * | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7318141B2 (en) * | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
-
2003
- 2003-09-30 US US10/676,887 patent/US7237051B2/en not_active Expired - Fee Related
-
2004
- 2004-09-29 CN CNB2004100806372A patent/CN100349124C/zh not_active Expired - Fee Related
- 2004-09-29 TW TW093129485A patent/TWI261747B/zh not_active IP Right Cessation
- 2004-09-29 WO PCT/US2004/032111 patent/WO2005033937A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0213952B1 (en) * | 1985-09-03 | 1992-07-01 | Fujitsu Limited | Computer system for controlling virtual machines |
US5023771A (en) * | 1987-01-26 | 1991-06-11 | Nec Corporation | Controller for two timers of a virtual machine system, one updated only in the VMOS mode |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
CN1292534A (zh) * | 1999-10-01 | 2001-04-25 | 北方电讯网络有限公司 | 在两种网络访问技术之间切换的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
TW200527195A (en) | 2005-08-16 |
WO2005033937A1 (en) | 2005-04-14 |
US20050080965A1 (en) | 2005-04-14 |
CN1648866A (zh) | 2005-08-03 |
US7237051B2 (en) | 2007-06-26 |
TWI261747B (en) | 2006-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100349124C (zh) | 控制硬件中断应答的方法、装置及系统 | |
CN1849585B (zh) | 使用多个虚拟机监控器处理特许事件的方法、系统和产品 | |
CN100382036C (zh) | 用于控制虚拟机系统中的外部中断的装置 | |
CN102906719B (zh) | 输入/输出地址到存储器地址的转换 | |
CN101276389B (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
US7421431B2 (en) | Providing access to system management information | |
CN102906692A (zh) | 用于执行有选择地修改适配器功能参数的指令的方法、用于相同操作的计算机系统和计算机程序产品 | |
CN107735769A (zh) | 固件相关事件通知 | |
TW201830938A (zh) | 基於偵測受防護儲存器事件以識別處理器屬性 | |
CN106708704A (zh) | 一种对崩溃日志进行分类的方法和装置 | |
CN111736922B (zh) | 插件调用方法、装置、电子设备及存储介质 | |
CN110516447A (zh) | 一种识别终端模拟器的方法与设备 | |
CN111078279A (zh) | 字节码文件的处理方法、装置、设备及存储介质 | |
CN111694992A (zh) | 一种数据处理方法和装置 | |
CN111694586A (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
CN111651248A (zh) | 定时任务执行方法、装置、电子设备及存储介质 | |
CN108364162B (zh) | 一种任务界面管理方法、系统及终端设备 | |
WO2022097432A1 (ja) | サイバー攻撃シナリオ生成方法、および装置 | |
CN112416444B (zh) | 一种板卡切换控制方法、装置、设备及介质 | |
CN112698867A (zh) | 注解信息的动态修改方法、装置、电子设备及介质 | |
CN113722321A (zh) | 数据导出方法、装置和电子设备 | |
CN108345461B (zh) | 应用更新方法和装置以及计算机可读存储介质 | |
CN111857883A (zh) | 页面数据校验方法、装置、电子设备及存储介质 | |
CN107392762A (zh) | 清算文件处理的方法、装置及设备 | |
CN115098514A (zh) | 基于注解的场景识别方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071114 Termination date: 20130929 |