CN100549946C - 用于执行数据处理操作的装置和方法 - Google Patents

用于执行数据处理操作的装置和方法 Download PDF

Info

Publication number
CN100549946C
CN100549946C CNB2006800109915A CN200680010991A CN100549946C CN 100549946 C CN100549946 C CN 100549946C CN B2006800109915 A CNB2006800109915 A CN B2006800109915A CN 200680010991 A CN200680010991 A CN 200680010991A CN 100549946 C CN100549946 C CN 100549946C
Authority
CN
China
Prior art keywords
link order
address
response
value
values
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.)
Active
Application number
CNB2006800109915A
Other languages
English (en)
Other versions
CN101156137A (zh
Inventor
R·R·格里森思怀特
P·基梅尔曼
D·J·西尔
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101156137A publication Critical patent/CN101156137A/zh
Application granted granted Critical
Publication of CN100549946C publication Critical patent/CN100549946C/zh
Active 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

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

Abstract

在子例程执行之后,具有作为输入操作数的地址的返回指令被执行。该输入操作数被与一个或多个预定值比较以检测是否匹配,且返回指令响应根据是否检测到匹配而被选择。因此,返回地址值可用来调用不同的返回指令响应,如异常返回响应或程序返回响应。一个或多个预定地址可被方便地分配给内存映像内的最高内存地址。

Description

用于执行数据处理操作的装置和方法
技术领域
本发明涉及数据处理系统,尤其涉及在从子例程返回时对使用哪个子例程返回机制进行控制。
背景技术
支持子例程的数据处理系统是众所周知的。一种类型的子例程执行起因于在子例程执行于其上的正常程序执行期间被调用的过程,并且在子例程结束时过程返回指令被执行,以在过程调用程序指令后将程序流改向到程序指令。处理系统的操作模式通常不被这种过程调用改变。
异常处理子例程(如异常处理程序例程)也可在数据处理系统内被支持,并由正常处理期间产生的异常/中断触发。这些异常/中断触发异常处理子例程的执行。这种异常处理子例程以一个异常返回指令结束,该指令触发返回到原程序指令流内的适当点(它可能是产生异常的指令、后续指令或某另一点)。众所周知,与这种异常处理例程相关联的是提供上下文切换,该切换单元存储表征系统在异常发生点的状态的变量,然后恢复这些变量从而恢复异常返回指令执行时的上下文。异常返回指令一旦被执行后的行为,如从堆栈存储器恢复上下文变量或其他上下文恢复操作,不同于过程返回指令被执行时的行为。为使这两种不同类型的行为可在子例程结束时被适当地调用,已知的方式是提供分别用于触发异常返回处理或过程返回处理的单独的返回指令。
该已知的方法的结果是,子例程必须编写成可使最后的返回指令对于子例程的性质是适合的。因此,这样做是正常的:手工编写或以汇编程序编写某些子例程(如异常处理子例程),以使适当的异常返回指令可被用于终止子例程,如此当被执行时必要的上下文恢复和其他操作将在返回时被执行。这种要求手工编写或以汇编程序编写异常处理子例程是一个缺点,因为它排除了使用高级计算机语言(如C语言)来编写整个异常处理代码和其他子例程。
DE-A-10252347公开了一种检查机制,其中若过程返回的返回地址是正确的就使用返回栈,若不正确就调用出错处理例程。
发明内容
本发明的一个形态,提供了用于执行由程序指令规定的数据处理操作的装置,所述装置包括:
返回逻辑部件,响应具有作为输入操作数的地址的返回指令而触发返回来执行由所述地址指示的程序指令;其中:
(1)如果所述地址具有不与一个或多个预定地址值相匹配的值,则所述返回逻辑部件触发过程返回指令响应,该响应是从过程调用的返回,包含一个或多个第一返回响应操作以产生第一返回状态;以及
(2)如果所述地址具有与所述一个或多个预定地址值相匹配的值,则所述返回逻辑部件触发异常返回指令响应,该响应是从异常调用的返回,包含一个或多个第二返回响应操作以产生第二返回状态,所述一个或多个第二返回指令响应操作不同于所述一个或多个第一返回指令响应操作,其中:当与所述一个或多个预定地址值匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的编码所述装置的状态变量的一个或多个位。
本发明认识到不同类型的返回响应操作的区别,可能在作为返回指令的输入操作数的地址值内产生。硬件然后可检测与一个或多个预定地址值相匹配的地址值,并适当地选择将根据该检测执行的返回指令响应操作。这使得同一返回指令能被使用,并且依赖于数据值而指令代码中不作任何改变地调用不同形式的返回指令响应操作。从而,通过安排那些要求返回指令响应操作的类型与一个或多个预定地址相关联的指令来提供这样的作为返回指令的输入操作数的地址(如子例程的返回地址),然后必要的返回指令响应操作可被调用。该方法对于在过程返回响应和异常返回响应之间作出区分尤为有用,前一种响应中,地址值被装回到程序计数寄存器中;而在后一种响应中,存储在堆栈存储器内的返回地址被重新装入程序计数寄存器中,上下文被恢复。
本方法将要被使用的返回指令标准化,从而使更高级的语言可被统一用在编写子例程代码中,并代之以将内存映像的小区域专用于在必要时触发不同类型的返回指令响应操作的一个或多个预定值。公知的是,在数据处理系统内提供不能用于正常可执行代码的特定目的内存区域,因此在这些现有内存区域内提供这种一个或多个预定值不代表现有系统中的重要的折衷或限制。
要被检测的一个或多个预定地址值也被用于将被一个或多个第二返回指令响应操作恢复的系统的状态变量有效地编码。用于触发第二返回指令响应操作的预定地址值范围提供了附加的位空间,要被恢复的状态变量可在其中编码,从而克服状态变量存储机制中的局限并恢复被提供到系统内其他部分的资源。
当知,尽管系统提供单个类型的返回指令,但该指令可根据与其相关的地址可导致不同的返回指令响应,本方法的优选实施例可提供适用本方法的多种形式的返回指令,从而返回指令响应受控于作为对返回指令的输入操作数被提供的地址和一个或多个预定地址值之间的匹配检测。
本发明的另一形态,提供了执行由程序指令规定的数据处理操作的方法,所述方法包括如下步骤:
响应具有作为输入操作数的地址的返回指令,触发一个返回而执行由所述地址指示的程序指令;其中:
(1)如果所述地址具有不与一个或多个预定地址值相匹配的值,则触发过程返回指令响,作为从过程调用的返回,其中包含一个或多个第一返回响应操作以产生第一返回状态;以及
(2)如果所述地址具有与一个或多个预定地址值相匹配的值,则触发异常返回指令响应,作为从异常调用的返回,其中包含一个或多个第二返回响应操作以产生第二返回状态,所述一个或多个第二返回指令响应操作不同于所述一个或多个第一返回指令响应操作,其中:当与所述一个或多个预定地址值匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的编码用于执行数据处理操作的装置的状态变量的一个或多个位。
本发明的一个附加形态,提供了具有可执行计算机程序的计算机程序产品,该程序用来根据前述方法控制数据处理装置。
本发明上述的以及其他目的、特征和优点,通过结合附图阅读的下面的解释性实施例的详细描述当会更加明显。
附图说明
图1示意说明过程调用子例程;
图2示意说明异常调用子例程;
图3是示意说明返回指令收到后即被执行的处理的流程图;以及
图4示意说明根据图3中说明的不同类型的返回指令响应来操作的数据处理装置。
具体实施方式
图1说明程序指令序列A、B、C...的执行,在这些程序指令内有一调用指令,它是用于将处理改向到包含程序指令a、b、c...的子例程的过程调用。当该调用指令被执行时,被存储在PC寄存器内的当前程序计数寄存器值被保存到连接寄存器LR并且程序计数寄存器PC被载入了子例程内的第一条指令的地址,即指令a。然后进行子例程的执行,直至遇到子例程末的返回指令。在该点,返回指令响应被调用,从而被存储的连接寄存器LR的值与一个或多个预定值比较且没有匹配检测到。因此,过程返回指令响应被调用,从而将连接寄存器LR的值装回到程序计数寄存器PC(实际上,连接寄存器LR的值指向调用指令后的程序指令),并且程序执行在E处继续。在图1的过程调用中不涉及上下文切换,因此,不必一返回就进行方式转换或寄存器保存或恢复操作。
图2示意说明异常子例程调用。主程序指令A、B、C...的执行如前进行,但在指令D正被执行时,发生了异常。当知,异常可能在指令执行期间产生以使指令在从异常处理子例程返回时必须重新执行或后续指令应被执行。这两个行为被包含在本方法内并可在必要时由适当的异常处理子例程控制。可能产生的另一类型的异常来自中断(通常是异步的),由此,中断处理程序在下一指令分界处被调用。如果图2中说明的异常被中断取代,那么子例程将在指令D和指令E之间的界面处被调用。中断处理子例程将在指令E处重新继续执行。
如图2所示,异常子例程调用时的行为不同于图1的过程调用的行为。尤其是,参与异常/中断检测的硬件机构用于使与一个或多个预定地址(exc_return)相匹配的地址存储在连接寄存器LR内。处理器的当前上下文也被保存在堆栈存储器区域,其中包含当前程序计数寄存器PC的值。然后异常处理子例程a、b、c...被执行,直至遇到最后的返回指令。在该点,连接寄存器如图1被读出并与已知的一个或多个预定地址比较,以与异常返回指令行为相对应。在此例中,会有一个匹配并且若干异常返回指令响应操作因此将被触发,其中包括:从存储在堆栈存储器内的值恢复处理器的上下文,以及根据存储在堆栈存储器内的值来恢复程序计数寄存器PC的值,而不是使用已被硬件设置成特定exc_return值的连接寄存器LR内的值。
图3是示意说明图1和2说明的行为的流程图。在步骤10,系统等待要被接收的返回指令。当知,在数据处理系统内,不同功能单元的各部分,如取指令单元、指令解码单元、指令执行单元等的各部分都可被认为贡献了返回指令逻辑部件的部分功能,该部件适当地响应返回指令并调用必要的返回指令响应操作。图3的步骤10等待到返回指令被接收,随后步骤12判定与该返回指令相关联的返回地址是否与一个或多个预定地址相匹配。在此例中,判定该返回地址是否大于0xFFFFFFF0。
如果在步骤12中判定为不匹配,则该返回指令被认为是过程调用返回指令,过程进行到步骤14,在步骤14中,来自连接寄存器LR的返回地址被恢复回程序计数寄存器PC中。
如果在步骤12判定为匹配,则过程进到步骤16,在步骤16中,异常调用返回指令响应操作被调用,该操作包括恢复在步骤16中返回地址自身的最低有效位(LSB)内编码的一个或多个状态变量,然后,在步骤18恢复处理器的上下文,包括存储在堆栈存储器上的各寄存器值。
图4是体现本方法的数据处理装置的部分的示意图。当知,所画出的元件不是相对按比例测定的并且在实践中,很多其他电路元件将在完整系统中出现。取指令单元20包括存储指示当前执行的程序指令的地址的程序计数寄存器22。当知,在流水线系统内,在存于取指令单元20内的程序计数值和在下游执行级实际被执行的指令之间可能存在偏移。增量器24用于在根据正常指令流程取得各指令时增加程序计数值。如果执行单元26或装载存储单元28用来执行适当的过程调用指令,则这将通过使过程调用指令规定的地址通过多路复用器30和32装入程序计数寄存器22来触发向过程子例程的转移。
在子例程结束时,返回指令将被取指令单元20获取,并开始由装载存储单元28或执行单元26来继续解码并适当地执行。当这样的返回指令被执行时,它会试图将返回地址值通过多路复用器30和32写到程序计数寄存器22。返回地址检查电路34检查正被写到程序计数寄存器22的返回地址,且如果该地址与已知的对应于异常返回行为的一个或多个预定地址相匹配,则它会触发适当的流水线清仓和异常返回操作,前者由流水线控制电路36执行,后者包括要被执行的从主存42内的堆栈存储器40恢复与再装载上下文数据。
在该典型实施例中,该被检测是否匹配的一个或多个预定地址是32位存储器空间内的16个最高位地址。当用作返回地址时,这些地址的最低有效位用于编码要在异常返回时随即恢复的状态变量,这些变量包括:哪个堆栈存储器将被用于从中恢复;返回后哪个堆栈寄存器将被使用;以及返回后系统的激活级(activation level),指示哪些中断可或不可用于中断在返回时执行的处理。异常进入和返回控制逻辑部件38也响应外部异步中断信号irq来触发异常处理子例程执行,如图2所示。执行单元26未定义指令的尝试执行也可能产生异常行为,装载存储单元28的某种尝试操作和系统内别处的操作也可能产生异常行为。一旦进入异常子例程,一些代表要在执行返回时随即恢复的状态的数据在返回地址的最低有效位内编码(本例中是4位)。
尽管本文中已参照附图详细说明了本发明的解释性实施例,当知本发明并不限于这些精确实施例,在不背离附加的权利要求书确定的本发明的范围和精神的前提下,本领域技术人员可在其中进行各种改变和修正。

Claims (15)

1.用于执行由程序指令规定的数据处理操作的装置,所述装置包括:
返回逻辑部件(34、36),响应具有作为输入操作数的地址的返回指令来触发返回至执行由所述地址指示的程序指令;其中:
(1)如果所述地址具有不与一个或多个预定地址值相匹配的值,则所述返回逻辑部件触发过程返回指令响应,该响应是从过程调用的返回,包括一个或多个第一返回指令响应操作以产生第一返回状态;以及
(2)如果所述地址具有与所述一个或多个预定地址值相匹配的值,则所述返回逻辑部件触发异常返回指令响应,该响应是从异常调用的返回,包括一个或多个第二返回指令响应操作以产生第二返回状态,所述一个或多个第二返回指令响应操作不同于所述一个或多个第一返回指令响应操作,其中:当与所述一个或多个预定地址值匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的编码所述装置的状态变量的一个或多个位。
2.权利要求1所述的装置,包括用以规定多个程序指令内的执行点的程序计数寄存器(22)。
3.权利要求2所述的装置,其中:所述过程返回指令响应包括将所述地址装入所述程序计数寄存器。
4.权利要求2所述的装置,包括:堆栈存储器逻辑部件(40),用来将数据存储到堆栈存储器以及从所述堆栈存储器中读出数据,其中所述异常返回指令响应包括从所述堆栈存储器读出被存储地址,并将所述被存储地址装入所述程序计数寄存器。
5.权利要求1所述的装置,包括可用来存储所述地址的连接寄存器。
6.权利要求4所述的装置,包括异常处理逻辑部件,该部件响应异常的发生而触发:
(1)在连接寄存器内存储与所述一个或多个预定地址值相匹配的值;
(2)在所述堆栈存储器内存储所述被存储地址;以及
(3)执行异常处理例程。
7.权利要求1所述的装置,其中:所述状态变量包括以下变量中一个或多个:
(1)控制所述第二返回指令响应操作期间应从多个堆栈存储器值中的哪个读值的变量;
(2)控制所述异常返回指令响应之后多个堆栈存储器中哪个的值应被使用的变量;以及
(3)指示激活级的变量,用以控制被允许中断当前处理的中断事件的级。
8.权利要求1所述的装置,其中:所述返回逻辑部件响应多种形式的返回指令,取决于作为所述输入操作数的所述地址的值,所述多种形式的返回指令可各自导致所述第一返回指令响应或所述第二返回指令响应。
9.权利要求1所述的装置,其中:所述第一返回指令响应是过程返回指令响应,而所述第二返回指令响应是异常返回指令响应。
10.权利要求1所述的装置,其中,当与所述多个预定地址值之一匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的用以编码所述装置的状态变量的一个或多个最低有效位。
11.权利要求1所述的装置,其中,所述预定地址值的对准确保所述地址的一个或多个位与所述预定地址值的匹配无关,而所述地址的所述一个或多个位用来包括要被所述一个或多个第二返回指令响应操作恢复的、除地址变量以外的状态变量。
12.一种执行由程序指令规定的数据处理操作的方法,所述方法包括如下步骤:
响应具有作为输入操作数的地址的返回指令而触发返回至执行由所述地址指示的程序指令;其中:
(1)如果所述地址具有不与一个或多个预定地址值相匹配的值,则作为从过程调用的返回的过程返回指令响应被触发,其中包括一个或多个第一返回指令响应操作以产生第一返回状态;以及
(2)如果所述地址具有与一个或多个预定地址值相匹配的值,则作为从异常调用返回的异常返回指令响应被触发,其中包括一个或多个第二返回指令响应操作以产生第二返回状态,所述一个或多个第二返回指令响应操作不同于所述一个或多个第一返回指令响应操作,其中:当与所述一个或多个预定地址值匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的编码用于执行数据处理操作的装置的状态变量的一个或多个位。
13.权利要求12所述的方法,其中:所述第一返回指令响应是过程返回指令响应,而所述第二返回指令响应是异常返回指令响应。
14.权利要求12所述的方法,其中,当与所述多个预定地址值之一匹配时,所述地址包括要被所述一个或多个第二返回指令响应操作恢复的、除地址值以外的以编码所述装置的状态变量的一个或多个最低有效位。
15.权利要求12所述的方法,其中,所述预定地址值的对准确保所述地址的一个或多个位与所述预定地址值的匹配无关,而所述地址的所述一个或多个位用来包括要被所述一个或多个第二返回指令响应操作恢复的、除地址变量以外的状态变量。
CNB2006800109915A 2005-03-30 2006-02-01 用于执行数据处理操作的装置和方法 Active CN100549946C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/092,984 2005-03-30
US11/092,984 US7401210B2 (en) 2005-03-30 2005-03-30 Selecting subroutine return mechanisms

Publications (2)

Publication Number Publication Date
CN101156137A CN101156137A (zh) 2008-04-02
CN100549946C true CN100549946C (zh) 2009-10-14

Family

ID=36215755

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800109915A Active CN100549946C (zh) 2005-03-30 2006-02-01 用于执行数据处理操作的装置和方法

Country Status (10)

Country Link
US (1) US7401210B2 (zh)
EP (1) EP1872203B1 (zh)
JP (1) JP4703718B2 (zh)
KR (1) KR101249693B1 (zh)
CN (1) CN100549946C (zh)
DE (1) DE602006006043D1 (zh)
IL (1) IL181992A (zh)
MY (1) MY139980A (zh)
TW (1) TWI375910B (zh)
WO (1) WO2006103381A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2928755B1 (fr) * 2008-03-14 2014-04-11 Sagem Securite Procede de securisation d'une execution d'un programme
US9135144B2 (en) * 2009-10-22 2015-09-15 Freescale Semiconductor, Inc. Integrated circuits and methods for debugging
CN102360283B (zh) * 2011-09-28 2014-01-08 中国科学院声学研究所 一种微处理器子程序调用的处理方法及其装置
WO2013095532A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Interrupt return instruction with embedded interrupt service functionality
US10210349B2 (en) * 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
GB2501343A (en) * 2012-02-08 2013-10-23 Advanced Risc Mach Ltd Data processing apparatus and method using secure domain and less secure domain
US9213828B2 (en) * 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9116711B2 (en) * 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US20170212763A1 (en) * 2014-07-25 2017-07-27 Hewlettt Packard Enterprise Development Lp Exception handling predicate register
CN112905995B (zh) * 2021-02-05 2022-08-05 电子科技大学 一种处理器内部寄存器组异常行为实时检测方法及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1149809B (it) 1980-06-12 1986-12-10 Honeywell Inf Systems Sequenziatore per unita' di controllo microprogrammata
US5193205A (en) 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5261101A (en) * 1990-02-28 1993-11-09 Microsoft Corporation Method for calling and returning from subroutine that is invoked by either a near call or a far call
JPH05341996A (ja) * 1992-06-11 1993-12-24 Sony Corp ディジタル計算機およびプログラム復帰方法
US5535397A (en) 1993-06-30 1996-07-09 Intel Corporation Method and apparatus for providing a context switch in response to an interrupt in a computer process
JP3013725B2 (ja) * 1994-12-13 2000-02-28 松下電器産業株式会社 割込み処理からの復帰方法
JP2857600B2 (ja) 1995-05-11 1999-02-17 松下電器産業株式会社 プロセッサ及びプログラム翻訳装置
US5968169A (en) 1995-06-07 1999-10-19 Advanced Micro Devices, Inc. Superscalar microprocessor stack structure for judging validity of predicted subroutine return addresses
US5889982A (en) * 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
JP3513038B2 (ja) 1998-12-10 2004-03-31 富士通株式会社 命令フェッチ制御装置
JP3723019B2 (ja) 1999-09-29 2005-12-07 富士通株式会社 サブルーチンリターン相当の命令の分岐予測を行う装置および方法
US7415602B2 (en) * 2002-06-24 2008-08-19 Infineon Technologies Ag Apparatus and method for processing a sequence of jump instructions
DE10228151A1 (de) * 2002-06-24 2004-02-05 Infineon Technologies Ag Vorrichtung und Verfahren zum Verarbeiten einer Sequenz von Sprungbefehlen
DE10252347A1 (de) 2002-11-11 2004-05-19 Giesecke & Devrient Gmbh Überwachte Unterprogrammausführung

Also Published As

Publication number Publication date
TWI375910B (en) 2012-11-01
US20060224866A1 (en) 2006-10-05
CN101156137A (zh) 2008-04-02
JP4703718B2 (ja) 2011-06-15
KR20070121701A (ko) 2007-12-27
MY139980A (en) 2009-11-30
TW200703107A (en) 2007-01-16
US7401210B2 (en) 2008-07-15
IL181992A (en) 2012-07-31
IL181992A0 (en) 2007-07-04
EP1872203B1 (en) 2009-04-01
WO2006103381A1 (en) 2006-10-05
JP2008535072A (ja) 2008-08-28
EP1872203A1 (en) 2008-01-02
DE602006006043D1 (de) 2009-05-14
KR101249693B1 (ko) 2013-04-05

Similar Documents

Publication Publication Date Title
CN100549946C (zh) 用于执行数据处理操作的装置和方法
CN100582799C (zh) 电子设备诊断方法和系统
CN100578462C (zh) 降低时钟同步双模冗余系统中错误率的装置、方法和系统
CA1235816A (en) Error recovery system in a data processor having a control storage
US7340595B2 (en) Multiplex execution-path system
CN1993679B (zh) 执行计算机程序的方法、操作系统和计算设备
US20080148038A1 (en) System and Method for Implementing Boot/Recovery on a Data Processing Sysem
US8423829B2 (en) Failure analysis apparatus, method
US3539996A (en) Data processing machine function indicator
CN112015599B (zh) 错误恢复的方法和装置
US20080201618A1 (en) Method for Running a Computer Program on a Computer System
US6553512B1 (en) Method and apparatus for resolving CPU deadlocks
CN100538644C (zh) 执行计算机程序的方法、计算设备
CN111221675B (zh) 用于ram错误检测逻辑的自诊断的方法和装置
EP3525210B1 (en) Data register monitoring
CN100511165C (zh) 执行计算机程序的方法、操作系统以及计算设备
CN107423029B (zh) 计算单元
US20220374525A1 (en) Apparatus and method for detecting vulnerability to nonvolatile memory attack
CN100418059C (zh) 切换失效的检测方法
US7353343B2 (en) Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory
CN101311909A (zh) 诊断系统异样的方法
EP0655686B1 (en) Retry control method and device for control processor
JP2008090656A (ja) プログラマブルコントローラ
KR830002883B1 (ko) 마이크로 프로그램 제어장치
JP6275098B2 (ja) 制御装置およびレジスタの故障復帰方法

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