CN1575451A - 降低额外开销的异常检测方法和装置 - Google Patents

降低额外开销的异常检测方法和装置 Download PDF

Info

Publication number
CN1575451A
CN1575451A CNA028210794A CN02821079A CN1575451A CN 1575451 A CN1575451 A CN 1575451A CN A028210794 A CNA028210794 A CN A028210794A CN 02821079 A CN02821079 A CN 02821079A CN 1575451 A CN1575451 A CN 1575451A
Authority
CN
China
Prior art keywords
native instructions
instructions
virtual machine
processor
causes
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.)
Pending
Application number
CNA028210794A
Other languages
English (en)
Inventor
O·L·斯泰部斯
M·M·林德维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1575451A publication Critical patent/CN1575451A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

如果取得的字节码引起一个异常的发生,则通过把取得的字节码伴随引起一个处理器中断的指令发送来加快在虚拟机解释程序(VMI)加速器硬件(120)中的异常检测。处理器中断用于对该VMI(120)指示一个异常条件的存在,从而对于该VMI(120)来说,不需要等待把异常检测的结果从CPU(110)发送到VMI(120)。

Description

降低额外开销的异常检测方法和装置
发明领域
本发明涉及计算机程序语言,尤其涉及一种虚拟机器语言的翻译和执行。
发明背景
计算机程序语言用于产生由可人工读取的源代码构成的应用程序,该源代码表示供计算机执行的指令。但是在计算机能够履行该指令之前,该源代码必须转化为计算机可读取的二进制机器代码。
例如C、C++或COBOL的程序设计语言通常使用一个编译程序来从该源代码产生汇编语言,然后把该汇编语言翻译成转换为机器代码的机器语言。因此,该源代码的最终翻译出现在执行时间之前。不同的计算机需要不同的机器语言,所以由例如C++写成的一个程序只能运行于编写该程序的具体的硬件平台上。
编译的程序语言被设计来以源代码产生应用程序,该源代码将运行于多个硬件平台上。JavaTM是一种编译的程序设计语言,通过在执行时间之前产生转换成称之为″字节码″或″虚拟机器语言″的一种中间语言的源代码,实现操作平台的独立性。在执行时间,一种虚拟机把字节码翻译成适合操作平台的机器代码。本质上,虚拟计算机不是一个物理结构,而是一个自含式的工作环境(由编译软件或处理器指令序列产生),通过选择存储在VM或CPU之内的对应的本机机器语言指令来编译用于该硬件平台的字节码。该本机指令被随即提供到硬件平台的CPU并且连续地执行。一个典型的虚拟机要求每一字节码的20-60的处理时间周期(取决于字节码的质量和复杂性),以便执行操作的一个FDD序列。为了编译每一个字节码,Java虚拟机执行一个操作的″取得、解码和发送″(FDD)序列操作。针对每个字节码指令,Java虚拟机(JVM)包含以本机中央处理单元(CPU)指令表示的一个对应于执行程序。该JVM使得CPU从存储器中取得或读出一个虚拟机指令,解码针对该字节码指令的该执行程序的CPU地址,并且由该CPU的传送控制发送到执行程序。该解释处理是一个很耗时的过程。
如在本发明同一个发明人的PCT专利申请WO9918484中公开的那样,在存储器和CPU之间添加一个预处理器(一个虚拟机编译器(VMI))将加速虚拟机指令的处理。VMI是一种硬件模块,通过产生本机CPU指令″运行时″来编译Java字节码。首先,一个VMI从存储读出(取得)一个字节码。随后该VMI查寻该取得的字节码的几个特性(解码)。由该VMI提取的特性来确定该字节码将被处理成本机指令的方式,以便发送到该CPU并且在该CPU中执行。因此,该VMI能够以硬件而不是软件执行每一个FDD。在该CPU执行一个指令的同时,该VMI取得下一个字节码并且将其处理成CPU指令。
在编译字节码的序列的同时,一个虚拟机可能遇到引起一个非法操作的字节码(或字节码序列),例如访问一个阵列的边界外部的指令。除非该随后的功能是异常相关的,例如ExceptionOccurred、ExceptionDescribe和ExceptionClear,否则这样一个非法操作的执行将引起一个异常出现,必须在随后功能能够被调用以前处理和清除该异常。在基于处理器的异常检验步骤中,直至一个异常检验确定由一个字节码调用的该操作是否将实际导致该非法操作的执行,一个异常则将是待决状态,因为调用非异常相关的功能的同时,一个异常待决可能导致料想不到的结果。但是在Java语言中,在执行异常检测的同时异常不被保持在一个待决的状态。相反,通过CPU指令的执行来直接检测异常条件。一旦检测到一个异常状态,则根据该异常类型产生一个异常目标,并且调用异常控制软件。
相对于VMI实施方案来说,用于异常检测的虚拟机方案不是最佳的。例如,为了解释该IALoad字节码,虚拟机产生指令来把一个阵列存取的索引与该阵列的大小比较,其操作能够导致超出边界条件。该VMI的反应好像该可能的超出边界的条件是一种条件转移,并且因此中止处理字节码一个实际的时间量,同时等待收到来自该CPU的指示该超出边界异常是否实际发生的一个异常检测结果。因此,这种异常控制解决方案要求一个实质量的额外开销(即在处理时间上的一个负担)。
其中需要利用虚拟机硬件加速器(例如虚拟机解释程序)处理虚拟机指令的一种方法,其降低为了执行异常发现和检测所需的处理时间。
发明概要
本发明通过提供在处理虚拟机指令的同时而检测异常的系统和方法满足了上述需要,其通过避免需要从该处理器产生的一个异常检验的返回的等待而有利地最小化了对异常检测的处理延迟差错。
更具体地说,根据本发明的系统和方法,如果该字节码将导致一个非法操作,则一个虚拟机硬件加速器(例如VMI)通过处理和发送引起CPU产生一个中断的本机指令来确定一个字节码是否将投出一个异常。
简言之,处理虚拟机指令的本方法的一个示例的实施例包括取得一个字节码并且递增一个字节码计数器。该VMI把取得的字节码处理成为可由一个处理器(CPU)执行的本机指令(即该VMI″产生″本机指令的一个序列),并且如果由该字节码调用的本机指令的执行导致一个非法操作,则该VMI将伴随引起一个处理器中断的本机指令发送对应于该字节码的该本机指令(该″中断指令″)。大多数CPU的指令集包括专门的中断功能,某些中断功能无条件地中断例如TRAP、SYSCALL或BREAK指令(用于MIP处理器)。但是,当调用的无条件中断指令使得一个CPU中断而不考虑是否存在一个异常。因此,该VMI将不使用无条件中断指令来检测异常,因为这样做将需要该VMI在调用一个无条件中断指令以前等待从该CPU接收该异常条件。相反,该VMI将使用有条件的中断指令检测异常。
当存在异常条件时,在VMI产生能够引起一个中断的指令序列在,则建立该有条件的中断情形。例如通过产生一个算法对于导致一个处理器中断的异常标志执行计算,该VMI产生引起一个处理器中断的本机指令的序列。另外,该VMI从该CPU指令集中产生单个的有条件中断指令。或中断指令的类型或指令序列由该VMI″产生″作为发送到该CPU的本机指令的序列的一部分。
该CPU执行伴随该中断指令的由字节码调用的该本机指令。如果由该字节码调用的该本机指令的执行导致一个非法操作,则该中断指令将引起一个处理器中断。因此,其中不需要把一个源于CPU的异常检测传送到VMI。结果是,根据本发明的异常检测是很少耗时的。
当出现一个处理器中断时,该示例的系统能够被编程来处理该异常。原则上,对于能够导致异常的每一操作,该Java编程器都必须指示一个正确的响应(即提供代码来控制异常)。因此在该字节码级,构成一个方法的字节码的每一序列都必须包含字节码的额外序列以及指示异常控制字节码的一个序列的一个表格,以便针对每一想得到的异常状态来执行。
本发明最佳实施例的系统是一个用于处理字节码的设备,包括一个带有执行本机指令的本机指令集的处理器,以及一个存储字节码的指令存储器。一个VMI从该指令存储器取得字节码,把该字节码处理成本机CPU指令,并且如果该处理的虚拟机指令的执行导致一个非法操作,则伴随该引起一个处理器中断中断指令发送该字节码。在每一字节码被处理之后递增一个虚拟机指令计数器。另外,该VMI或从CPU指令集恢复该中断指令,或产生该中断指令。
本发明能够在使用虚拟机执行JavaTM字节码的系统中实施,例如由Sun Microsystems公司制作的JVM系统。但是本发明还可以使用其它JavaTM虚拟机实施,例如微软(Microsoft)虚拟机,并且还适用于执行其它翻译语言,例如Visual Basic、dBASE、BASIC和NET的系统。
本发明的其它目标、优点和新颖特征在随后描述中阐明,并且当进行下列审查时对于本领域的技术人员来说变得显见,或可以通过本发明的实践而得知。
附图描述
当参照说明书考虑本发明时,结合该说明书并且形成说明书的一部分的附图示出了本发明,其中:
图1是表示本发明环境的示例实施例的功能部件的方框图。
图2是表示根据本发明最佳实施例的一个方法的流程图。
最佳实施例的详细描述
按照需要,在此公开本发明的详细实施例;但是,应该理解的是该公开的实施例仅是能以各种替换形式实现的本发明的示例。附图不是按比例作出;为了展示具体组成部分的细节而可以夸大或最小化某些特征。因此,在此公开的具体结构和功能细节不被理解为限制,而是仅作为权利要求的基础并且作为指教本专业技术人员多样地采用本发明示意性的基础。
现参考附图详细说明本发明的最佳实施例,附图中示出的最佳实施例以相同的数字表示相同的成分,图1是本发明环境的示例实施例的一个框图。该环境的基础部件是硬件平台100,它包括处理器110、预处理器120、以及指令存储器150,全部由系统总线160连接。预处理器120包括控制寄存器130和翻译机器140。硬件平台100通常包括中央处理单元(CPU),基本的外围设备和操作系统(OS)。本发明的处理器110是一个CPU,例如MIPS、ARM、Intel x86、PowerPC、或SPARC类型的微处理器,以及包容文件,被配置执行硬件特定的指令,下文称作本机指令。在本发明的最佳实施例中,翻译器140是一个JavaTM虚拟机(JVM),例如由Sun Microsystems公司制作的KVM。指令存储器150包含虚拟机指令,例如JavaTM字节码170。在本示例的实施例中的预处理器120是WO9918486中公开的虚拟机解释程序(VMI),构成来从指令存储器150取出一个虚拟机指令(例如,字节码170),并且把该虚拟机指令翻译成为本机CPU指令的序列。VMI 120是在总线160上的一个外围设备,起到一个存储器映射的外围设备的作用,其中一个预定范围的CPU地址被分配给该VMI 120。VMI 120管理一个独立虚拟计算机指令指示器180(该″字节码计数器″),指示在该指令存储器150中的当前(或随后)虚拟机指令。
图2是表示根据本发明最佳实施例的一个方法的流程图。详细参考图2,在步骤210中,VMI 120在步骤220以前递增字节码计数器BCC 180,从指令存储器150取出每一字节码170。在步骤230中,该VMI 120通过存取针对字节码170的特性而解码每一字节码170。在步骤240中,VMI120从包括取得的字节码170的翻译的翻译表140恢复本机指令的一个序列,被伴随一个取得的字节码170执行的检测异常条件的中断指令,以及必须被伴随该取得的字节码170执行的其它指令。当执行由该取得的字节码170调用的指令引起一个非法操作时,该中断指令通过请求一个处理器中断来检测异常条件。这些中断指令是由VMI 120产生的现有CPU指令(以CPU指令集115指定)或是由VMI 120产生的指令序列(算法)。
中断指令序列可以包括将引入处理器中断的本机指令的任何组合。根据一个最佳实施例,该VMI产生对于异常标志进行操作的计算指令,以便只要实际上出现异常就将引起一个算术溢出。例如,由VMI 120处理的字节码能够要求一个数组索引检验,其中该对应的本机指令将与该阵列边界索引比较(例如使用SLTU)。比较的结果(0=OK,1=故障)存储在CPU寄存中,并且成为异常标志。如果该比较失败,则这一VMI产生的中断指令序列将以如下方式通过左移位该异常标志31的位置并且把该异常标志加到其本身而建立一个中断:
SLTU $1,$bound,$idx
SLL $1,$1,31
ADD$1,$1,$1
如果该移位异常标志的值是1,则获得最大的可能负数(在一个31位的计算机上)。把这一数加到本身的结果是得到一个引起算术溢出异常的数字。CPU中断条件的另一可能的产生机制是由零函数所除。
VMI 120(在步骤250中)伴随该中断指令发送对应于取得的字节码170的本机指令的序列(到CPU 110)。步骤260和270出现在该CPU之内。该CPU 110执行该本机指令序列和中断指令。如果步骤260中投入异常,则由中断指令引起一个处理器中断,并且在步骤270请求异常控制处理。例如,VMI 120能够被编程,以便伴随构成一个方法的每一取出的字节码序列发送异常控制字节码序列。如果没有异常出现,该VMI120将通过返回到步骤210而进入处理来自指令存储器150的下一个字节码170。
虽然参考在虚拟机解释程序加速器硬件中的实施方案描述了本发明,但是本领域的技术人员将理解到,结合各种其它字节码处理系统的实施方案是可能的。
据前所述,将理解到本发明提供了一种系统和方法,用于准确和高效检测在虚拟机指令的处理过程中的异常。还应该理解到,上述的描述仅涉及本发明的示例的实施例,并且在不背离由随后权利要求定义的本发明精神范围的条件下,可以作出许多改变。

Claims (8)

1.处理虚拟机指令的一种方法,包括步骤:
取出一个虚拟机指令;
把该虚拟机指令处理成可由处理器执行的本机指令;
如果该处理的本机指令的执行导致一个非法操作,则伴随该引起一个处理器中断的本机指令,把该处理的本机指令发送到处理器用于执行;
如果该处理的本机指令的执行导致一个非法操作,则执行该处理的本机指令和该引起一个处理器中断的本机指令。
2.权利要求1的方法,其中:  取出该虚拟机指令并且将其处理成可由处理器执行的本机指令的步骤是通过一个虚拟机解释程序(VMI)虚拟机硬件加速器实现的。
3.权利要求1的方法,进一步包括步骤:如果该处理的本机指令的执行导致一个非法操作,则产生引起一个处理器中断的本机指令。
4.权利要求3的方法,其中的步骤:如果该处理的本机指令的执行导致一个非法操作,则执行该处理的本机指令和该引起一个处理器中断的本机指令,进一步包括步骤:
如果该发送的本机指令的执行导致一个非法操作,则产生一个异常检测结果;和
如果该处理的本机指令的执行导致一个非法操作,则通过对于其中引起一个处理器中断的异常检测结果执行一种算法来执行该引起一个处理器中断的本机指令。
5.用于处理虚拟机指令的一种装置(100),包括:
处理器(110),具有一个本机指令集并且构成来执行本机指令的;
指令存储器(150),构成来存储虚拟机指令;和
预处理器(120),配置来从该指令存储器取出虚拟机指令,把取出的虚拟机指令处理成为可由该处理器执行的本机指令,如果该处理的虚拟机指令的执行导致一个非法操作,附加该引起一个处理器中断的本机指令,并且把该处理的本机指令和该附加的本机指令发送到处理器以供执行。
6.权利要求5的装置(100),其中该预处理器(120)是一个虚拟机解释程序(VMI)虚拟机硬件加速器。
7.权利要求5的装置(100),其中该预处理器(120)被进一步构成用于:如果该处理的本机指令的执行导致一个非法操作,则产生该引起一个处理器中断的本机指令。
8.权利要求7的装置(100),其中该处理器(110)被进一步构成执行该处理的本机指令和该附加的本机指令,以便如果该发送本机指令的执行导致一个非法操作,则产生一个异常标志,并且通过对于引起一个处理器中断的该异常标志执行一种算法而执行该附加的本机指令。
CNA028210794A 2001-10-25 2002-10-10 降低额外开销的异常检测方法和装置 Pending CN1575451A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01402778.3 2001-10-25
EP01402778 2001-10-25

Publications (1)

Publication Number Publication Date
CN1575451A true CN1575451A (zh) 2005-02-02

Family

ID=8182940

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA028210794A Pending CN1575451A (zh) 2001-10-25 2002-10-10 降低额外开销的异常检测方法和装置

Country Status (6)

Country Link
US (1) US20030093456A1 (zh)
EP (1) EP1442361A1 (zh)
JP (1) JP2005506630A (zh)
KR (1) KR20040058228A (zh)
CN (1) CN1575451A (zh)
WO (1) WO2003036467A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412790C (zh) * 2005-03-07 2008-08-20 富士通株式会社 微处理器

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747989B1 (en) 2002-08-12 2010-06-29 Mips Technologies, Inc. Virtual machine coprocessor facilitating dynamic compilation
US20050015768A1 (en) * 2002-12-31 2005-01-20 Moore Mark Justin System and method for providing hardware-assisted task scheduling
KR101493076B1 (ko) * 2009-04-07 2015-02-12 삼성전자 주식회사 버퍼 오버플로우 관리를 통한 바이러스 코드 실행방지장치 및 그 방법
US9990273B2 (en) 2016-03-17 2018-06-05 Tata Consultancy Services Limited Methods and systems for anomaly detection

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5363501A (en) * 1992-12-22 1994-11-08 Sony Electronics, Inc. Method for computer system development verification and testing using portable diagnostic/testing programs
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5802373A (en) * 1996-01-29 1998-09-01 Digital Equipment Corporation Method for providing a pipeline interpreter for a variable length instruction set
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof
DE69839913D1 (de) * 1997-10-02 2008-10-02 Koninkl Philips Electronics Nv Datenverarbeitungsgerät zur verarbeitung von befeh
US5915117A (en) * 1997-10-13 1999-06-22 Institute For The Development Of Emerging Architectures, L.L.C. Computer architecture for the deferral of exceptions on speculative instructions
US6170083B1 (en) * 1997-11-12 2001-01-02 Intel Corporation Method for performing dynamic optimization of computer code
US6631514B1 (en) * 1998-01-06 2003-10-07 Hewlett-Packard Development, L.P. Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations
US6760907B2 (en) * 1998-06-30 2004-07-06 Sun Microsystems, Inc. Code generation for a bytecode compiler
KR20010072477A (ko) * 1998-08-13 2001-07-31 썬 마이크로시스템즈, 인코포레이티드 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US7065750B2 (en) * 1999-02-17 2006-06-20 Elbrus International Method and apparatus for preserving precise exceptions in binary translated code
EP1290555A2 (en) * 2000-03-20 2003-03-12 Koninklijke Philips Electronics N.V. Method of executing a computer program with an interpreter, computer system and computer program product
US6981132B2 (en) * 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
WO2002019100A1 (en) * 2000-08-31 2002-03-07 Koninklijke Philips Electronics N.V. System for executing virtual machine instructions
GB2367653B (en) * 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
US6718539B1 (en) * 2000-12-22 2004-04-06 Lsi Logic Corporation Interrupt handling mechanism in translator from one instruction set to another
US6895579B2 (en) * 2001-07-31 2005-05-17 Intel Corporation Method and apparatus for maintaining exception reporting for register promotion
US6976254B2 (en) * 2001-11-28 2005-12-13 Esmertec Ag Inter-method control transfer for execution engines with memory constraints
US7577951B2 (en) * 2002-05-30 2009-08-18 Hewlett-Packard Development Company, L.P. Performance of computer programs while they are running

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412790C (zh) * 2005-03-07 2008-08-20 富士通株式会社 微处理器

Also Published As

Publication number Publication date
JP2005506630A (ja) 2005-03-03
US20030093456A1 (en) 2003-05-15
EP1442361A1 (en) 2004-08-04
KR20040058228A (ko) 2004-07-03
WO2003036467A1 (en) 2003-05-01

Similar Documents

Publication Publication Date Title
EP1008050B1 (en) Method and apparatus for aliasing memory data in an advanced microprocessor
KR100463810B1 (ko) 어드레스되는 구성요소의 물리적 특성에 관한 추측 실패를 검출하는 마이크로프로세서용 메모리 제어기
US7716452B1 (en) Translated memory protection apparatus for an advanced microprocessor
US6031992A (en) Combining hardware and software to provide an improved microprocessor
US6308318B2 (en) Method and apparatus for handling asynchronous exceptions in a dynamic translation system
US5889982A (en) Method and apparatus for generating event handler vectors based on both operating mode and event type
US6886094B1 (en) Apparatus and method for detecting and handling exceptions
CA2283776C (en) Combining hardware and software to provide an improved microprocessor
EP2165258A1 (en) Apparatus and method for handling exception signals in a computing system
CN1596398A (zh) 对虚拟机解释器(vmi)加速硬件的软件支持
KR100421687B1 (ko) 개선된 마이크로프로세서를 위한 변환 메모리 보호 장치
CN1575451A (zh) 降低额外开销的异常检测方法和装置
CA2283772C (en) Host microprocessor with apparatus for temporarily holding target processor state

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned