CN100349124C - 控制硬件中断应答的方法、装置及系统 - Google Patents

控制硬件中断应答的方法、装置及系统 Download PDF

Info

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
Application number
CNB2004100806372A
Other languages
English (en)
Other versions
CN1648866A (zh
Inventor
史蒂文·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 CN1648866A publication Critical patent/CN1648866A/zh
Application granted granted Critical
Publication of CN100349124C publication Critical patent/CN100349124C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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

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所述的系统,其中,所述中断应答指示符被存储在虚拟机控制结构中。
CNB2004100806372A 2003-09-30 2004-09-29 控制硬件中断应答的方法、装置及系统 Expired - Fee Related CN100349124C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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