CN100483336C - 数据处理系统内处理数据的设备及方法 - Google Patents

数据处理系统内处理数据的设备及方法 Download PDF

Info

Publication number
CN100483336C
CN100483336C CNB2003801103310A CN200380110331A CN100483336C CN 100483336 C CN100483336 C CN 100483336C CN B2003801103310 A CNB2003801103310 A CN B2003801103310A CN 200380110331 A CN200380110331 A CN 200380110331A CN 100483336 C CN100483336 C CN 100483336C
Authority
CN
China
Prior art keywords
instruction
conds
conclude
equipment
carry out
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 - Lifetime
Application number
CNB2003801103310A
Other languages
English (en)
Other versions
CN1788253A (zh
Inventor
D·J·西尔
V·瓦斯金
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 CN1788253A publication Critical patent/CN1788253A/zh
Application granted granted Critical
Publication of CN100483336C publication Critical patent/CN100483336C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/30058Conditional 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/30181Instruction operation extension or modification
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead

Abstract

在数据处理系统(2)内部,提供断定指令(30),该断定指令将条件动作添加到相关联程序指令(26,28)。

Description

数据处理系统内处理数据的设备及方法
本发明涉及数据处理系统领域。更具体而言,本发明涉及这种数据处理系统内程序指令的条件执行。
提供响应于包括程序指令的指令集的数据处理系统是公知的,其中所述程序指令根据先前的处理操作的结果来有条件地执行或不执行。例如,ARM32位指令集是完全条件的,因此所有的指令都包括指定在哪些条件下将禁止或允许执行的4位条件码字段。
虽然完全条件的32位ARM指令集在它的条件行为中是强有力的,但是每个指令内部的专用于条件码的4位代表该指令集的位编码空间的重要部分。在多数情况下,并没有完全利用所述条件码的全部能力,并且所述专用于这些条件码的4位也没有被很好的使用。
提供诸如由ARM处理器支持的Thumb指令集之类的非条件指令集也是公知的。不使任何指令位空间专用于条件码便允许Thumb指令更小,从而提高代码密度。然而,这种方法的缺点在于,在没有利用所述32位ARM指令集的条件码的能力的情况下,执行某些操作所需要的指令数目可能更多并且因此处理缓慢。
从诸如PA-RISC处理器之类的其他处理器提供指令、其可根据它们的结果而取消下一个指令是公知的。这种指令的示例是比较操作,该比较操作用来根据被比较的数字是相等还是不相等,来禁止或允许下一个跟随指令执行。虽然这种取消下一指令类型是可用的,但其具有有限的灵活性,因为它们只能用来根据其自身处理而取消下一个指令。
Pnevmatikatos D N等人的:“Guarded Execution and Branch Prediction InDynamic ILP Processors(在动态ILP处理器中的保护执行和转移断定)”公开了一种提供保护指令用于断定一个或多个跟随指令的系统。
从一个方面看,本发明提供用于处理数据的设备,该设备包括:
用来执行数据处理操作的数据处理逻辑;
一指令译码器,其具有用来响应于程序指令而生成控制信号以控制所述数据处理逻辑去执行所述数据处理操作的电路;以及
用来存储地址以指示正被执行的程序指令的存储位置的程序计数器寄存器,其中
所述指令译码器译码一断定指令来生成提供给所述数据处理逻辑的控制信号,以根据用于处理数据的所述设备的一个或多个条件状态,来控制所述数据处理逻辑去执行或不执行跟随在所述断定指令之后的一个或多个相关联程序指令,其中所述条件状态通过所述断定指令之外的一个或多个程序指令的执行来设定;此外还包括
用于存储计数器值的被断定指令计数器寄存器,所述计数器值指示受制于所述断定指令的所述一个或多个相关联程序指令的多少个已经被执行,当执行受制于所述断定指令的所述一个或多个相关联程序指令时,所述程序计数器寄存器继续存储对应于所述断定指令的地址;以及
一异常处理电路,所述异常处理电路在异常发生后存储所述计数器值,并在异常完成后重新启动在由所述计数器值指向的程序指令处开始的执行。
本发明认识到,提供特定用途的断定指令可有很大的优势,因为这些可取决于更灵活指定的、处理器的条件状态而使得其他指令的执行是有条件的。因此,程序员和编译者可以更好的使用这种断定指令来产生更小和更快的程序。
为了便于所述处理系统的控制,正常的程序计数器寄存器是由被断定指令计数器寄存器补足的,所述被断定指令计数器寄存器用来存储计数器值,该计数器值指示受制于(subject to)断定指令的一个或更多个相关联程序指令中多少已经被执行。断定指令事实上在其中编码一个可达范围,指定它控制多少相关联程序指令、以及系统需要追踪执行已经通过此可达范围进展多远,以及何时已超过该可达范围。
此被断定指令计数器寄存器尤其是在异常处理以及从异常返回的情况下是有用的,由此在从异常返回后,所述被断定指令计数器寄存器可以被恢复并且它的值被用来确定被返回到的程序指令是否是使其行为被在前断定指令影响的那个。
虽然断定指令可能只影响一个其他指令,但在优选实施方案里,提供所述断定指令来控制多个相关联程序指令的执行。
虽然断定指令可以结合相关联程序指令一起使用,所述程序指令是部分地或全部有条件的,但是本发明的优选实施方案是断定指令与无条件的相关联程序指令一起使用的方案。因此,所述断定指令能够将条件指令行为添加到另外的非条件指令集。
虽然断定指令使其对相关联程序指令的控制所基于的条件状态可以采用各种不同的形式,但是优选实施方案为了提供输入给所述断定指令,使用诸如,举例而言零标记、相等标记、进位标记等的条件码标记。
由断定指令评估以控制相关联程序指令的条件状态可以根据特定系统的要求在不同的时间被评估。有可能是条件状态可以刚一执行断定指令后就被评估,并且所述评估结果被用于控制所有的相关联程序指令。这样所具有的优势在于:使得有可能在指令流水线里及早完全评估断定指令,及此后可以以迅速且简化执行的方式从指令流水线移除所述断定指令。作为可选择的,也有可能是:条件状态可在每个相关联程序指令的执行之前被评估,使得所述条件码例如可对于一些相关联指令被通过,而对于其他的相关联指令则不被通过。这个方法的优势在于:可以以很好地适合许多普通类型的数据处理操作的方式来对条件行为进行优良程度的控制,其中可能期望它与这种条件指令行为一起执行。
虽然可以理解的是,所述相关联指令对所述断定指令可具有各种不同的相对位置,但优选实施方案是其中所述相关联程序指令紧跟着所述断定指令的方案。这对执行以及编程目的是方便的。
以各种不同的方式安排断定指令来控制相关联程序指令是可能的。在一个可能的优选实施方案里,将所述相关联程序指令安排在两个指令块里,其中一个这种块是在条件码被通过后来执行的,而另一个块是在条件码失败后执行的。这可以提供类似于指令类型If...Then...Else的行为。
在这种实施例里,虽然不同的指令块可以具有固定大小,但是优选的它们具有可变的大小,该大小是由断定指令自身内的字段指定的。这允许块大小中的灵活性,有利于断定指令的转移及其他行为的控制以及改善代码密度。
虽然有可能断定指令可专用于预定条件的特定集合,但是在优选实施方案里,所述断定指令包括一个可变字段,通过该可变字段可以指定预定条件。
另一种给出有利的灵活度且尤其允许那些将通过或不通过其条件码的指令的交织的断定指令是这样一种断定指令,即:在其中断定指令包括一个或多个字段,每个字段根据一个或多个条件状态同一个或多个预定状态的比较来指定是要执行或是不执行各自的相关联程序指令。
尤其是在优选实施方案里,所述断定指令可以包括一字段,所述字段为每个各自的相关联指令指定:一个或多个条件状态或一个或多个条件状态的问候是否要与预定状态进行比较,以确定是否执行所述各自的相关联程序指令。因此,可以指定个体的相关联程序指令来执行所述"Then"条件或者所述"Else"条件。
有可能如同根据所述断定指令来控制相关联程序指令是执行或是不执行那样,所述断定指令也可用来修改所述相关联指令,使得当它们被执行时所述相关联指令具有不同的操作。这可以被看作是有效地扩展了所述指令集。
修改所述相关联程序指令的一个特定优选方法是:当它们受制于特别的、包含特定可编程字段的断定指令时,禁阻它们对一个或多个条件状态做任何变化。因此,条件码标记更新可以由适当的断定指令来禁止。
从另一方面看,本发明提供了一种处理数据的方法,所述方法包括以下步骤;
利用数据处理逻辑执行数据处理操作;
利用指令译码器译码程序指令而生成控制信号来控制所述数据处理逻辑去执行所述数据处理操作,以及
存储一地址,所述地址指示程序计数器寄存器中正被执行的程序指令的存储位置;进一步包括以下步骤:
通过所述指令译码器译码一断定指令而生成被提供给所述数据处理逻辑的控制信号,以根据所述用于处理数据的设备的一个或多个条件状态,控制所述数据处理逻辑来执行或不执行跟随在所述断定指令之后的一个或多个相关联程序指令,其中所述条件状态是通过所述断定指令之外的一个或多个程序指令的执行来设定的;
在被断定指令计数器寄存器中存储计数器值操作,所述计数器值指示受制于所述断定指令的所述一个或多个相关联程序指令的多少个已经被执行;以及
当执行所述一个或多个相关联程序指令时,在所述程序计数器寄存器中继续存储对应于所述断定指令的地址;以及
在异常发生后存储所述计数器值,并在异常完成后重新启动在由所述计数器值指向的程序指令处开始的执行。
从另一个方面看,本发明提供了一种计算机程序产品,所述计算机程序产品包括根据本技术用来控制处理数据的设备的计算机程序。
现在参考附图以仅为示例的方式来描述本发明的实施例,其中:
图1示意地示出了用来执行包括断定指令的程序指令的数据处理设备。
图2示意地示出了指令译码器响应断定指令的动作;
图3和4示意地示出了断定指令的一种形式,其中根据掩码值以及条件码来控制个体相关联程序指令执行或不执行;
图5是图表,示意地示出了另一种断定指令,其中相关联的指令块根据所述条件码执行或不执行;
图6是流程图,示意地示出了遵循图5所述类型的断定指令的执行的控制;
图7是用于执行上述技术的通用计算机设备的示意图。
图1示出了以处理器核心2的形式的数据处理设备,处理器核心2包括程序寄存器库4、乘法器6、移位器8、加法器10、指令译码器12、指令流水线14、预取装单元16、中断控制器18、程序计数器寄存器20和断定指令计数器寄存器。可以理解的是,所述处理器核心2一般地包括本技术领域的技术人员所熟知的很多其他电路元件,但是为了简明,将这些电路元件从图1中省略掉了。
操作中,从存储器(未示出)处取装程序指令I,并将其提供给指令流水线14,程序指令在那里经过各种各样的流水线级,诸如取装、译码和执行,就如本技术领域所熟知的一样。将来自指令流水线14的译码级的指令提供给指令译码器12,在那里指令用来产生控制信号,所述控制信号配置并且控制数据处理操作/处理,所述操作/处理是由乘法器6、移位器8、加法器10和其它诸如ALU(未示出)之类的电路元件来执行的,依据从所述程序寄存器库4读取的数据值来产生结果值,所述结果值要被写回到所述程序寄存器库4。预取装单元16用来控制指令地址产生,该指令地址用于取装程序指令I到指令流水线14中。程序计数器寄存器20(可以是程序寄存器库4内的程序寄存器中的一个)提供正在执行的当前指令的地址值,或者对这个值具有预定偏移(例如+4)的地址。上下文寄存器22也提供一个值到预取装单元16,该值在从中断返回后被使用,正如由中断控制器18控制的,使得受制于断定指令的相关联程序指令的一个部分完成的序列将仍受断定指令的影响,即使这种执行由异常的出现中断也如此。
图2示意地示出了第一示例实施例,其中断定指令IT是以程序指令流的形式馈入到指令译码器12。当所述指令译码器12检测到这种断定指令时,就译码所述断定指令并且有效地将条件码添加到所述指令流内跟随所述断定指令的相关联程序指令。可以理解的是在这个例子里的所述指令流内的程序指令正常地是无条件指令,诸如16位Thumb指令,其正常地不具有与它们相关联的条件码。但是,支持Thumb指令集的处理器也支持完全条件的32位ARM指令集。当来自这个ARM指令集的指令正被译码时,那么它们都包括条件码,该条件码从所述指令译码器12向下继续沿指令流水线14传送以影响那些指令的后续执行或不执行。因此所述指令流水线14已经明了条件码,并且具有用于译码和响应与程序指令有关的条件码的结构和机构。在一个整体的级别上可以看到,断定指令IT用来将条件码添加到在指令流内跟随其后的一个或多个相关联程序指令中,而它自己被从所述指令流中移走,因为除了这个条件码信息的添加功能之外它没有用于其它处理功能。
图3更详细地示出了图2的断定指令IT。特别地,这个指令指定条件码"cond"和掩码值"xyx",指示跟着IT指令的1,2,3或4程序指令是否受制于它的断定,以及如果是这样的话,就要施加所述条件码的极性。所述条件码或条件码的问候可以根据对应值x,y,z是否对相应的第二跟随、第三跟随以及第四跟随相关联程序指令存在以及这个标记的值来施加。图3示出了所述值x,y,z如何形成由值"1"来终止的掩码值24。
图4示意地示出了这种指令的实例,其中四个相关联指令由断定指令来断定。这些指令的第一个被认为以"Then"形式断定,因此如果满足条件码则将执行所述指令。也可以指定第二、第三以及第四相关联指令依据“Then”条件或者"Else"条件来执行。在这个实例里,所述四个相关联程序指令具有形式Then,Then,Else和Then。在掩码值24内,用于第二、第三和第四相关联指令的掩码值位x,y,z分别是0,1,0,并且掩码值由值"1"来终止。
这个实例里指定的条件码是"1010"。这个条件码以其正常形式施加给第一相关联指令。然后所述掩码值左移一个位置,并且从所述掩码值移出的最高有效位被移至将施加到下一个指令的条件码的最低有效位位置。因此,施加到下一个指令的条件码可以根据所述掩码值内的最高有效位,在其正常形式和其补码形式之间进行转换。在这个实例里将看到,跟随所述断定指令的第一、第二和第四指令受制于所述正常条件码,而跟随所述断定指令的第三指令受制于所述条件码的补码。当检测到掩码值"1000"时,这表明已经到达最后的断定指令,并且所述断定指令的影响将不延伸到后来的程序指令。
在下文中给出了在图3和4里示出的指令类型的进一步描述:
IT
If-Then(IT)指令使存储器里的紧接的N指令是有条件的。跟随所述IT指令并且受其影响的N指令集被称为"IT块"。
当在IT块内执行一些(或全部)指令时,可以重新定义该指令的功能性。例如,除CMP/CMN/TST之外的Thumb 16位指令可以没有标记设定。在这种情况下,IT可与AL条件一起使用以在其自身上获取后者的效果。
可使用一个额外的PSR位(或专用IT状态寄存器)来保有IT状态。这将允许在IT块内中断。
以下实例中定义了具有4个指令的最大IT块大小的Thumb 16位IT指令。IT块内的全部指令是由相同条件或条件(即EQ或NE等)的相反版本来断定的。
Thumb IT
语法
IT{<x>{<y>{<z>}}}<cond>
其中:
<x>如果出现,是字母"T"和"E"的一个,并指出第二跟随指令将受IT指令影响。如果<x>是"T"("Then"),那么附着于那个指令的条件是<cond>;如果<x>是"E",那么它是<cond>的反,是由逻辑地反转<cond>的最低有效位而获得。如果<x>被省略(且由此<y>和<z>也被省略),那么只有一个跟随的指令受IT指令影响。
<y>如果出现,是字母"T"和"E"的一个,并指出第三跟随指令将受IT指令影响。如果<y>是"T"("Then"),那么附着于那个指令的条件是<cond>;如果<y>是"E",那么它是<cond>的反,是由逻辑地反转<cond>的最低有效位而获得。如果<y>被省略(且由此<z>也被省略),那么少于3个跟随指令受IT指令影响。
<z>如果出现,是字母"T"和"E"的一个,并指出第四跟随指令将受IT指令影响。如果<z>是"T"("Then"),那么附着于那个指令的条件是<cond>;如果<x>是"E",那么它是<cond>的反,是由逻辑地反转<cond>的最低有效位而获得。如果<z>被省略,那么少于4个跟随指令受IT指令的影响。
<cond>
是要施加到第一个跟随指令的条件,也可能是要施加到由<x>,<y>和<z>指定的其他跟随指令的条件。
<x>,<y>和<z>的值根据下列表格来确定指令的掩码字段的值:
Figure C200380110331D00141
注解:此语法的基本思想是,例如"ITTET EQ"表明第一、第二和第四跟随指令(由记忆中的"T"的位置指出)具有附着于它们的EQ条件,以及第三跟随指令(由所述"E"指出)具有一附着于它的NE条件。
操作
ifCPSR[26,25,15:10]!=0b00000000 then
   UNPREDICTABLE(不可预测)
else
   if mask=0b0000then
    UNPREDICTABLE
   else
    CPSR[15:12]=cond
    CPSR[11,10,26,25]=mask
//这些CPSR位的指令接指令更新然后使得
//发生IT指令的条件执行效果。
所述8个IT执行状态位如下地编码256个"指令间状态"中的一个:
CPSR                       状态
2  2  1  1  1  1  1  1
6  5  5  4  3  2  1  0
Figure C200380110331D00151
这些位对后续执行的效果是:
●MRS和SRS指令将正常地读取这些位。MSR指令将其正常地写到SPSR,但如上所述,当写入CPSR时忽视所述写入值。依然如上所述,存在的异常返回指令(带有"复制SPSR→CPSR"副作用的那些)和RFE指令将它们正常地写入CPSR。
●在ARM和Java状态执行期间,这些位应当是零(即如果其不为零,那么结果是UNPREDICTABLE)。
●异常入口序列使这些位从CPSR复制到SPSR,然后在CPSR中清除(连同J和T一起),使处理器返回到正常ARM执行。
●在Thumb状态执行期间:
1、当执行IT指令时这些位应该是零。(即,IT指令被禁止在受其他IT指令影响的指令块内出现。)
2、当条件转移(branch)指令执行时,位[26,25,11,10]应该是零。(即,条件转移指令被禁止在受IT指令影响的指令块内出现。然而,非条件转移指令可以出现在那里,且也将使得被当做条件对待:这个规则基本上被给出以避免由相同指令上的两个条件所引起的问题。}
3、对于没有由上述规则造成UNPREDICTABLE的全部指令,从当前"执行状态"位产生一条件如下:
if bits[26,25,11,101]=0b0000 then
  /*不在IT块里*/
  condition is AL(条件是AL)
else
condition is bits[15:12],interpreting both 0b1110
and 0b1111 as"always"(条件是位[15:12],解译0b1110和0b1111为“总是”)
/*注解:因为在ARMy5中恢复"NV空间",所以这些解译已经标准化*/
此外,那些非CMP、CMN或TST指令且正常地设定条件标记的16位Thumb数据处理指令被修改如下:
if bits[26,25,11,10]!=0b0000 then
/*在IT块里*/
instruction does not set condition flags(指令不设置条件标记)
注解:这对于令IT对控制大量指令序列有用是必要的一例如,如果将它用来条件化(conditionalise)LDR Rn;ADD Rn,Rn,#M;STR Rn序列,那么如果所述ADD改变了由STR指令所看到的条件标记,则它将是无用的!
注解:这具有的必然结果是:具有AL条件(或NV条件)的IT指令可用于禁止由1—4个跟随指令进行此类标记设置。当前Thumb指令集的难处理方面之一是:晚插入的码(例如溢出/填充(spill/fill)码)可能具有破坏条件标记的副作用。能用单个额外的16位指令来处理这个问题是很有用的。
4、任何PC-修改指令的成功(即没有对任何条件核对失败)执行将致使新的"执行状态"位变成:
对于异常返回指令(执行SPSR→CPSR复制的那些,以及在特许模式里执行的RFE):
该值的位[26,25,15:10]被写入CPSR。
否则:
全零。
注解:所述"否则"情况是使得IT只影响静态跟随指令的该基本规则。
这种PC-修改指令的不成功执行,或非PC-修改、非IT指令的任何执行(成功与否)都将以如下方式更新新的"执行状态"位:
当前                     状态转  新状                 注
状态                     换的条  态                   解
26 25 15 14 13 12 11 10    件   26 25 15 14 13 12 11 10
Figure C200380110331D00171
A)终止IT执行-但没有要求特别动作。
B)IT块之外
注解:
1、转移。除非提到,在IT块里没有指令被允许成为任何转移的目标,不管是作为转移指令的结果或一些其它改变所述PC的指令的结果。未能遵守这个限制能导致不可预测的行为(UNPREDICTABLE behavior)。
2、异常。在指令和它的IT块之间、或IT块内可能发生中断及其他异常。通常,它们将导致进入异常处理程序,带有适当的返回信息被置于适当模式下的R14和SPSR中。被设计用于异常返回的指令可按正常使用以从异常返回,并将正确地再继续IT块的执行。这是允许PC-修改指令转移到IT块中指令的唯一方式。
3、IT块。在IT块里的指令不允许是:
●IT指令
●条件转移指令
如果IT块里的指令是上述指令,那么所述结果是不可预测的(UNPREDICTABLE)。
图5示意地示出了另一类断定指令。在这类断定指令里,存在与断定指令30有关联的两个相关联程序指令块26,28。如果在所述断定指令30里指定的条件码被通过(pass),那么执行这些指令块中的第一个26,并将其称作“If块”。如果与断定指令30有关联的条件码失败,那么执行指令块的另一个28,并且将其称之为"Else块"。所述断定指令30指定这两个块26,28的大小,所述两个块在长度上可以各是1-4个指令不等。在图5的所述实例里,执行If块26或者Else块28。这个示例将是:当执行断定指令30时,条件码实际上被评估一次,并且所述评估结果被应用来断定所有相关联程序指令。因此,将执行整个If块26,或者作为选择,执行整个Else块28。当上下文寄存器22(MPC)指出已经到达所述If块的结尾,那么迫使转移到跟随Else块28中最后指令的指令。当到达在Else块28中的最后指令时,那么所述断定指令30的作用被移除。
图6示意地示出了根据图5示出的操作类型的系统的动作流程图。在步骤32,系统等待识别断定指令(ITE指令)。在步骤34,所述系统识别现行程序状态寄存器内存储的上下文计数器值是否是非零的。这种非零的值表明正在从异常进行返回,且因此在步骤36接受该上下文值并将其存储在现行程序状态寄存器内,并且所述处理前进至步骤38,在其中对断定指令内指定的条件码进行评估。可选择的,如果彻底检验步骤34产生否结果,那么在步骤40将上下文值设置为零。如果在步骤38确定条件码评估是所述条件码失败,那么这表明应该执行Else块28,并因此在步骤42将程序计数器的值提前到Else块28内的第一个指令,然后执行所述Else块28,而该断定指令在步骤44已经终止。可选择的,如果在步骤38评估的条件码被通过,那么在步骤46执行由PC值与上下文值的总和所指向的指令,并且使上下文值增加所述指令字节长度。
步骤48检查异常的发生,并且如果这样一个异常出现。那么步骤50用来保存包括上下文值(断定指令计数器值)的现行程序状态寄存器值,处理所述异常,执行所述异常处理例程,以及最后跟随所述异常而返回到由所述程序计数器值PC指示的指令,即断定指令。
步骤52检验所述转移的发生,以及如果这种转移发生,那么步骤54将所述程序计数器值修改为转移目标以及步骤44终止所述断定指令的动作。
步骤56检验以查看断定指令计数器值是否已经达到指示已到达If块26的结尾的If块大小。如果已经到达所述If块26的结尾,那么步骤58用来继续移动所述程序计数器值到超出所述Else块的结尾,以及在步骤44中所述断定指令的动作已经终止之后再继续正常处理。可选择的,处理返回到步骤46,在那里执行If块内的下一个指令。
在下文中给出了在图5和6里示出的指令动作的另一描述:
ITE
If-Then-Else(ITE)指令允许指定:当条件被通过时将要执行的指令块的大小(这个块被定位为紧接在指令之后),以及当条件失败时将要执行的指令块的大小(这个块被定位为紧接在“if”块之后)。
多个ITE上下文位(context bits)应该被保留在PSR或其他的特定寄存器里;我们将这些位称作PSR_uPC。所述PSR_uPC的精确数目确定"if"块的最大可能大小。
语法
ITE<cond>#if_size,#else_size
操作
ifPSR_uPC!=0then
  //从异常返回
  uPC=PSR_uPC
else
  uPC=0
  if ConditionPassed(cond)then
  PC=PC+if_size
  //转移到else部分并终止ITE
loop
  Instr=FetchInstructionFrom(PC+uPC)
  Execute(Instr)
if Exception()then
  PSR_uPC=uPC
  PC=ExceptionHandler
  //处理异常
if Branch(Instr)then
  PSR_uPC=0
  PC=BranchTarget
  //转移并终止ITE
uPC+=InstructionLength(Instr)
ifuPC>=if_size then
  PSR_uPC=0
  PC=PC+if_size+else_size
  //在else部分之后转移并终止ITE
endloop
注解:
1、转移。在ITE的“if”段里没有指令被允许成为任何转移的目标,不管是作为转移指令的结果或是一些其它改变所述PC的指令的结果。未能遵守这一限制可导致不可预测的行为(UNPREDICTABLE behavior)。
2、异常。在“if”块内的指令之间可发生中断及其他异常。通常,它们将导致进入一异常处理程序,带有适当的返回信息被置于特定异常模式的R14和SPSR中。被设计用于异常返回的指令可按正常使用以从异常返回,并将正确地再继续“if”块的执行。这是允许PC-修改的指令转移到“if”块里的指令的唯一方式。
作为对利用图5和图6所举例说明的If块26和Else块28执行断定指令形式(即其中当执行断定指令30时评估所述条件码一次)的一种替代方案,一种当执行每个相关联程序指令时为受断定指令30影响的每一个相关联程序指令都评估该条件码的替代方案可以由下列行为代表。
ITE Cond,#THEN,#ELSE
           (0-3)(0-3)
CPSR持有8位:4 cond[3:0],2 tlm[1:0],2 else[1:0]
ITE docs
Cond,then,else=来自指令的值
GENERK execution(执行)
IFCPSR_then==0 THEN
EXECUTE INSTRUCTION NORMALLY
ELSE
EXECUTE INSTRUCTION WITH CONDITION CPSR_cond
/*且并行*/
IF CPSR_then>1 THEN
CPSR_then=1
ELSE
CPSR_then=CPSR_else
CPSR_else=0
CPSR_cond[0]=NOT(CPSR_cond[0])/*FLIP COND*/
CPSR_cond         _then       _else
例如:ITE         EQ,#3,#1      X        0          x
      Instr 1      /*EQ*/          EQ       3          1
      Instr 2      /*EQ*/          EQ       2          1
      Instr 3      /*EQ*/          EQ       1          1
      Instr 4      /*NE*/          NE       1          0
      Instr 5      /*uncond*/      EQ       0          0
从以上可以看到,在所述实例里,断定指令指定包含三个相关联程序指令的If块,和包含一个相关联程序指令的Else块。对这些程序指令的每一个实际指定的条件码是由CPSR_cond值示出的。当Else块已经退出时,第五个指令是非断定的,并以与这种无条件指令相关联的正常方式无条件地执行。

Claims (26)

1.用于处理数据(2)的设备,所述设备包括:
用来执行数据处理操作的数据处理逻辑(4,6,8,10);
指令译码器(12),其具有响应于程序指令而生成控制信号以控制所述数据处理逻辑去执行所述数据处理操作的电路;以及
用于存储地址以指示正被执行的程序指令的存储位置的程序计数器寄存器,其中:
所述电路译码一断定指令来生成提供给所述数据处理逻辑的控制信号,以根据用于处理数据的设备的一个或多个条件状态,来控制所述数据处理逻辑去执行或不执行跟随在所述断定指令之后的一个或多个相关联程序指令,所述条件状态是通过所述断定指令之外的一个或多个程序指令的执行来设定的;且所述设备进一步包括
用于存储计数器值的被断定指令计数存储器,该计数器值指示受制于所述断定指令的一个或多个相关联程序指令中的多少个已经被执行,当受制于所述断定指令的一个或多个相关联程序指令被执行时,所述程序计数器寄存器继续存储对应于所述断定指令的地址;以及
一异常处理电路(18),所述异常处理电路在异常发生后存储所述计数器值,并在异常完成后重新启动在由所述计数器值指向的程序指令处开始的执行。
2.如权利要求1所述的设备,其中所述断定指令控制多个相关联程序指令。
3.如权利要求1所述的设备,其中所述一个或多个相关联程序指令是非条件程序指令。
4.如权利要求1、2和3中任何一个权利要求所述的设备,其中所述一个或多个条件状态包括一个或多个条件码标记的值。
5.如权利要求1所述的设备,其中所述一个或多个条件状态是在以下之一评估的:
(i)刚一执行所述断定指令便评估一次;和
(ii)在执行每个相关联程序指令之前评估。
6.如权利要求1所述的设备,其中所述一个或多个相关联指令紧跟着所述断定指令。
7.如权利要求1所述的设备,其中所述断定指令与以下相关联:
(i)在所述一个或多个条件状态匹配一个或多个预定条件的情况下的、将要执行的一个或多个程序指令的条件匹配块;和
(ii)在所述一个或多个条件状态不匹配所述一个或多个预定条件的情况下的、将要执行的一个或多个程序指令的条件不匹配块。
8.如权利要求7所述的设备,其中所述断定指令指定以下的一个或多个:
(i)所述一个或多个程序指令的条件匹配块的长度;和
(ii)所述一个或多个程序指令的条件不匹配块的长度。
9.如权利要求7和8中的任一个权利要求所述的设备,其中所述断定指令指定所述一个或多个预定条件。
10.如权利要求1所述的设备,其中所述断定指令包括一个或多个字段,其中每个字段根据所述一个或多个条件状态与一个或多个预定状态的比较而指定是执行或是不执行各自的相关联程序指令。
11.如权利要求10所述的设备,其中所述断定指令包括一字段,所述字段为每个各自的相关联程序指令指定所述一个或多个条件状态或所述一个或多个条件状态的互补是否与所述一个或多个预定状态进行比较,来确定是否执行所述各自的相关联程序指令。
12.如权利要求1所述的设备,其中所述一个或多个相关联指令在受制于所述断定指令时,指定不同的数据处理操作。
13.如权利要求12所述的设备,其中根据所述断定指令内的可编程字段,禁阻所述一个或多个相关联指令对所述一个或多个条件状态作出任何改变。
14.一种处理数据的方法,所述方法包括以下步骤:
利用数据处理逻辑执行数据处理操作;
利用指令译码器译码程序指令而生成控制信号来控制所述数据处理逻辑去执行所述数据处理操作,以及
存储一地址,所述地址指示程序计数器寄存器中正被执行的程序指令的存储位置,进一步包括以下步骤:
通过所述指令译码器译码一断定指令而生成被提供给所述数据处理逻辑的控制信号,以根据所述用于处理数据的设备的一个或多个条件状态,控制所述数据处理逻辑来执行或不执行跟随在所述断定指令之后的一个或多个相关联程序指令,所述条件状态是通过所述断定指令之外的一个或多个程序指令的执行来设定的;
在被断定指令计数器寄存器中存储计数器值,所述计数器值指示受制于所述断定指令的所述一个或多个相关联程序指令的多少个已经被执行;以及
当执行所述一个或多个相关联程序指令时,在所述程序计数器寄存器中继续存储对应于所述断定指令的地址;以及
在异常发生后存储所述计数器值,并在异常完成后重新启动在由所述计数器值指向的程序指令处开始的执行。
15.如权利要求14所述的方法,其中所述断定指令控制多个相关联程序指令。
16.如权利要求14所述的方法,其中所述一个或多个相关联程序指令是非条件程序指令。
17.如权利要求14,15以及16中的任何一个权利要求所述的方法,其中所述一个或多个条件状态包括一个或多个条件码标记的值。
18.如权利要求14所述的方法,其中所述一个或多个条件状态在以下之一评估:
(i)刚一执行所述断定指令便评估一次;和
(ii)在执行每个相关联程序指令之前评估。
19.如权利要求14所述的方法,其中所述一个或多个相关联指令紧跟着所述断定指令。
20.如权利要求14所述的方法,其中所述断定指令与以下相关联:
(i)在所述一个或多个条件状态匹配一个或多个预定条件的情况下、将要执行的一个或多个程序指令的条件匹配块;和
(ii)在所述一个或多个条件状态不匹配于所述一个或多个预定条件的情况下、将要执行的一个或多个程序指令的条件不匹配块。
21.如权利要求20所述的方法,其中所述断定指令指定以下的一个或多个:
(i)一个或多个程序指令的所述条件匹配块的长度;和
(ii)一个或多个程序指令的所述条件不匹配块的长度。
22.如权利要求20所述的方法,其中所述断定指令指定所述一个或多个预定条件。
23.如权利要求14所述的方法,其中所述断定指令包括一个或多个字段,每个字段根据所述一个或多个条件状态与一个或多个预定状态的比较而指定是执行或是不执行各自的相关联程序指令。
24.如权利要求23所述的方法,其中所述断定指令包括一字段,所述字段为每个各自的相关联程序指令指定所述一个或多个条件状态或所述一个或多个条件状态的互补是否与所述一个或多个预定状态进行比较,来确定是否执行所述各自的相关联程序指令。
25.如权利要求14所述的方法,其中所述一个或多个相关联指令当受制于所述断定指令时,指定不同的数据处理操作。
26.如权利要求25所述的方法,其中根据所述断定指令内的可编程字段,禁阻所述一个或多个相关联指令对所述一个或多个条件状态作出任何修改。
CNB2003801103310A 2003-06-05 2003-12-30 数据处理系统内处理数据的设备及方法 Expired - Lifetime CN100483336C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0312977.2 2003-06-05
GB0312977A GB2402510A (en) 2003-06-05 2003-06-05 Predication instruction within a data processing system

Publications (2)

Publication Number Publication Date
CN1788253A CN1788253A (zh) 2006-06-14
CN100483336C true CN100483336C (zh) 2009-04-29

Family

ID=9959411

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801103310A Expired - Lifetime CN100483336C (zh) 2003-06-05 2003-12-30 数据处理系统内处理数据的设备及方法

Country Status (12)

Country Link
US (1) US7178011B2 (zh)
EP (1) EP1629375B1 (zh)
JP (1) JP3917635B2 (zh)
KR (1) KR101016713B1 (zh)
CN (1) CN100483336C (zh)
AU (1) AU2003290350A1 (zh)
DE (1) DE60323885D1 (zh)
GB (1) GB2402510A (zh)
MY (1) MY138874A (zh)
RU (1) RU2005137695A (zh)
TW (1) TWI314701B (zh)
WO (1) WO2004109499A2 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210024B2 (en) * 2005-02-10 2007-04-24 Qualcomm Incorporated Conditional instruction execution via emissary instruction for condition evaluation
US7234043B2 (en) * 2005-03-07 2007-06-19 Arm Limited Decoding predication instructions within a superscaler data processing system
DE102005050382B4 (de) * 2005-10-20 2012-08-09 Infineon Technologies Ag Prozessor zum Prüfen einer Bedingung für eine bedingte Ausführung eines Programmbefehls
JP4159586B2 (ja) * 2006-08-03 2008-10-01 エヌイーシーコンピュータテクノ株式会社 情報処理装置および情報処理の高速化方法
US7971104B2 (en) * 2006-10-24 2011-06-28 Shlomi Dolev Apparatus and methods for stabilization of processors, operating systems and other hardware and/or software configurations
US9946550B2 (en) 2007-09-17 2018-04-17 International Business Machines Corporation Techniques for predicated execution in an out-of-order processor
US7818551B2 (en) * 2007-12-31 2010-10-19 Microsoft Corporation Feedback mechanism for dynamic predication of indirect jumps
US8332620B2 (en) * 2008-07-25 2012-12-11 Freescale Semiconductor, Inc. System, method and computer program product for executing a high level programming language conditional statement
CN101324838A (zh) * 2008-07-31 2008-12-17 华为技术有限公司 一种指令执行方法和装置
US8819399B1 (en) 2009-07-31 2014-08-26 Google Inc. Predicated control flow and store instructions for native code module security
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US8924695B2 (en) 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US10261793B2 (en) * 2011-12-16 2019-04-16 International Business Machines Corporation Instruction predication using instruction address pattern matching
US9632779B2 (en) 2011-12-19 2017-04-25 International Business Machines Corporation Instruction predication using instruction filtering
US9465613B2 (en) * 2011-12-19 2016-10-11 International Business Machines Corporation Instruction predication using unused datapath facilities
US9632786B2 (en) * 2011-12-20 2017-04-25 International Business Machines Corporation Instruction set architecture with extended register addressing using one or more primary opcode bits
KR101642556B1 (ko) * 2012-09-21 2016-07-25 인텔 코포레이션 이진 번역을 수행하기 위한 방법 및 시스템
US9389868B2 (en) 2012-11-01 2016-07-12 International Business Machines Corporation Confidence-driven selective predication of processor instructions
US9304771B2 (en) 2013-02-13 2016-04-05 International Business Machines Corporation Indirect instruction predication
US9626185B2 (en) 2013-02-22 2017-04-18 Apple Inc. IT instruction pre-decode
US9792121B2 (en) 2013-05-21 2017-10-17 Via Technologies, Inc. Microprocessor that fuses if-then instructions
FR3021432B1 (fr) * 2014-05-20 2017-11-10 Bull Sas Processeur a instructions conditionnelles
WO2016014081A1 (en) * 2014-07-25 2016-01-28 Hewlett-Packard Development Company, L.P. Exception handling predicate register
US10607003B2 (en) * 2017-06-29 2020-03-31 International Business Machines Corporation Mitigation of code reuse attacks by restricted indirect branch instruction
WO2021035006A1 (en) 2019-08-20 2021-02-25 Northrop Grumman Systems Corporation Simd controller and simd predication scheme
CN113254082B (zh) * 2021-06-23 2021-10-08 北京智芯微电子科技有限公司 条件分支指令处理方法及系统、cpu、芯片
CN113254083B (zh) * 2021-06-28 2021-11-02 北京智芯微电子科技有限公司 指令处理方法、指令处理系统及处理器、芯片
KR102571809B1 (ko) * 2021-08-03 2023-08-25 연세대학교 산학협력단 전자기 과도 상태 시뮬레이션 방법 및 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347029A (zh) * 2000-09-28 2002-05-01 国际商业机器公司 微处理器及其处理指令的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62259140A (ja) 1986-05-06 1987-11-11 Oki Electric Ind Co Ltd アドレス生成回路
DE4430195B4 (de) * 1993-12-13 2004-09-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren zur Auswertung von Booleschen Ausdrücken
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
JP3442225B2 (ja) 1996-07-11 2003-09-02 株式会社日立製作所 演算処理装置
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions
US6157996A (en) * 1997-11-13 2000-12-05 Advanced Micro Devices, Inc. Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
US6353883B1 (en) * 1998-08-04 2002-03-05 Intel Corporation Method and apparatus for performing predicate prediction
US6233676B1 (en) * 1999-03-18 2001-05-15 Ip-First, L.L.C. Apparatus and method for fast forward branch
US6640315B1 (en) * 1999-06-26 2003-10-28 Board Of Trustees Of The University Of Illinois Method and apparatus for enhancing instruction level parallelism
US6910123B1 (en) * 2000-01-13 2005-06-21 Texas Instruments Incorporated Processor with conditional instruction execution based upon state of corresponding annul bit of annul code
JP3532835B2 (ja) 2000-07-04 2004-05-31 松下電器産業株式会社 データ処理装置およびプログラム変換装置
US6886094B1 (en) * 2000-09-28 2005-04-26 International Business Machines Corporation Apparatus and method for detecting and handling exceptions
US7017032B2 (en) * 2001-06-11 2006-03-21 Broadcom Corporation Setting execution conditions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347029A (zh) * 2000-09-28 2002-05-01 国际商业机器公司 微处理器及其处理指令的方法

Also Published As

Publication number Publication date
GB0312977D0 (en) 2003-07-09
JP2006526813A (ja) 2006-11-24
US7178011B2 (en) 2007-02-13
US20040250051A1 (en) 2004-12-09
MY138874A (en) 2009-08-28
KR101016713B1 (ko) 2011-02-25
KR20060063790A (ko) 2006-06-12
EP1629375B1 (en) 2008-10-01
EP1629375A2 (en) 2006-03-01
AU2003290350A1 (en) 2005-01-04
TWI314701B (en) 2009-09-11
WO2004109499A2 (en) 2004-12-16
AU2003290350A8 (en) 2005-01-04
DE60323885D1 (de) 2008-11-13
CN1788253A (zh) 2006-06-14
RU2005137695A (ru) 2006-06-27
WO2004109499A3 (en) 2005-10-13
TW200428276A (en) 2004-12-16
GB2402510A (en) 2004-12-08
JP3917635B2 (ja) 2007-05-23

Similar Documents

Publication Publication Date Title
CN100483336C (zh) 数据处理系统内处理数据的设备及方法
CN100468321C (zh) 直接从内存执行自身指令的微处理器的装置和方法
US4435758A (en) Method for conditional branch execution in SIMD vector processors
CN1414468B (zh) 延伸微处理器指令集的装置及方法
KR100327778B1 (ko) 다중명령 세트를 이용한 데이터 프로세싱 방법
JP3881763B2 (ja) データ処理装置
EP0307166A2 (en) Data processor
WO2011141726A2 (en) Conditional compare instruction
JP7002462B2 (ja) ベクトル述語命令
CN103098020A (zh) 由多个指令集使用的寄存器间映射
EP0035647A2 (en) A SIMD data processing system
KR100439286B1 (ko) 처리시스템,프로세서,컴퓨터판독가능한메모리및컴파일러
CN109416632B (zh) 用于处理数据的装置和方法
US5742801A (en) Microprocessor to which additional instructions are added and instructions addition method thereof
US5991872A (en) Processor
CN108121686A (zh) 多处理器和多处理器系统
JPS59105150A (ja) 命令オペランドのアドレス指定方法
CA2304609A1 (en) Autonomously cycling data processing architecture
KR20200090103A (ko) 분기 예측기
JP4169931B2 (ja) 複数の回路ブロックにコマンドを配信する方法と装置
CN100578442C (zh) 选择性地控制结果回写的装置及方法
EP0134386A2 (en) Method and apparatus for executing object code instructions compiled from a high-level language source
CN100590591C (zh) 选择性地控制条件码回写的装置及方法
CN103282876A (zh) 数据元素的条件选择
EP0211487A1 (en) Conditional operations in computers

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20090429