CN1099631C - 双执行部件处理器的反回逻辑线路 - Google Patents
双执行部件处理器的反回逻辑线路 Download PDFInfo
- Publication number
- CN1099631C CN1099631C CN94116094A CN94116094A CN1099631C CN 1099631 C CN1099631 C CN 1099631C CN 94116094 A CN94116094 A CN 94116094A CN 94116094 A CN94116094 A CN 94116094A CN 1099631 C CN1099631 C CN 1099631C
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- instructions
- carrying
- xer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000009977 dual effect Effects 0.000 title abstract 2
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000011084 recovery Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000000434 Melocanna baccifera Nutrition 0.000 description 1
- 241001497770 Melocanna baccifera Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
一种在双执行部件处理系统的两个执行部件都设置另外的逻辑线路的方法和设备,以便确定指令是否可中断的。此外还配备了反回逻辑线路。该线路装在两个执行部件中,特别装设在装有有待执行指令加以改变的唯一寄存器的部件中。若执行改变其中一个唯一寄存器的指令,则寄存器的内容就存入一个反回锁存器中。若执行可中断指令而不致引起中断,则发出删除信号。但若可中断指令确实引起中断,则反回锁存器的内容就再装入执行部件中。
Description
本发明涉及具有双执行部件的计算机处理系统。更具体地说,该系统配备有使第二执行部件即使在第一执行部件上正在执行可中断的指令时也可以工作的逻辑线路。
按照惯例,在双执行部件处理系统中,当在第一执行部件上遇到可中断指令时通常是挂断第二部件的工作直到执行该指令为止。鉴于许多常用指令都可能会引起中断,因而若第二执行部件上正在执行的指令必须根据在第一部件上正在执行的指令是否会引起中断而暂缓执行,则处理系统的性能必然会下降。
在双执行部件处理器设计中,经常需要取消刚执行的第二指令。取消这个指令的理由可能是发生了因执行第一指令引起的中断。中断可能因“页面出错”(即某页面不在存储器中)或因俘获式中断发生的。由于两个指令是在同一个机器周期中执行的,因而第二指令可能业已改变构成体系的寄存器,即能为软件所改变的寄存器,因而这时必须将其恢复到原先的状态。举例说,若第一执行部件上正在执行送数指令,第二部件上正在执行允许溢出的加法指令,且该送数引起中断,则由于加法指令因该中断而必须取消,因而必须将加法指令在定点异常寄存器(XER)中设定的二进位恢复到其原先的值。
因此问题在于当第二执行部件中正在执行的指令因第一执行部件中执行第一指令引起的副作用而被取消时恢复构成体系的各寄存器已改变的内容。可以看出,这类问题在成体系的寄存器是在回写周期(不是执行周期)期间改变的情况下是不存在的,因为在回写期间就知道该中断。因此若在执行周期期间发生真正的中断,这些寄存器的内容会包括机器在中断之前原先的状态。这是因为直等到回写周期才识别出真正的中断,从而避免了寄存器通常在回写周期期间进行的更新。这样,在回写周期期间无需更改这些寄存器的内容。但那些在执行周期期间更新的寄存器则必须加以复原。
1992年6月第35卷第1B期第398-399页的IBM技术公开公报论述了一种多执行部件处理器,该处理器有一个计数器跟踪着业已传送到定点部件(FXU)流水线最后一级之外的浮点部件(FPU)指令的数目。该计数器在原先也发送到FPU的指令传送到FXU最后一级之外时递增计数,在FPU完成指令时递减计数。这种系统只容许FPU在计数器的计数值大于零时完成指令,从而避免指令终结。
1989年9月第32卷第4A期第474页的IBM技术公开公报介绍了一种用以在流水线处理器中快速中断响应的系统。数据流中采用了中断状态寄存器(ISR),这使所有指令对中断是透明的。ISR是辅助的寄存器,除状态寄存器之外还可以存储在中断服务结束时通过加入“复原”指令复原的流水线状态参数。
美国专利5,148,530和4,901,222介绍了一种通过用虚拟存储器编址方案改变系统中的地址重新执行指令的方法。该虚拟地址在前一个操作数的读出周期期间增加或减少。若该操作数不在物理存储器中,则将基址寄存器的内容恢复到其原值。这种系统在执行开始之后取消某一软件指令。
美国专利4,766,566总的介绍了一种具两个特殊用途执行部件的处理系统。美国专利4,912,628是关于一种具有能履行暂停和再继续控制功能的特殊程序的虚机系统。该程序经管虚机外部中断控制器的控制过程并亲自处理所有进来的中断,而不是让虚机处理各中断。稍后,虚机恢复工作,同时通过恢复所有寄存器的内容使使用者再继续进行从中断时刻起的任务。美国专利4,589,065在俘获异常不导致中断的情况下在单个周期内进行存储器地址有效性检查。若确实发生中断,则需要更多的周期。
可以看出,上述传统的系统没有一个是通用的双执行部件处理系统,即能确定第二执行部件中的指令是否在执行周期内改变成体系的诸寄存器并在中断是第一执行部件的指令引起时提供使这些寄存器复原的后备逻辑线路。
与现有技术相反,本发明能确定有待在第一执行部件上执行的指令是否可中断指令,若然,且若准备在第二执行部件上执行的指令改变独特的体系结构寄存器,则可以进行反回操作来维持这些独特的寄存器的状态。这些寄存器都是在流水线的执行周期期间更新的,相比之下,寄存器堆则是在回写周期期间更新的。鉴于在执行周期期间不知道该可中断指令是否真的引起中断信号的产生,因而必须将这些寄存器的内容保存起来。这样就可以使第二执行部件中的指令继续执行而无需挂断等待看看该可中断指令是否确实引起中断发生。
概括地说,本发明在两个执行部件中都配备了另外的逻辑线路,供确定是否有可能出现反回操作的情况。独特的寄存器的反回操作逻辑线路采用两个译码来确定当前执行的指令是否改变这些独特的寄存器。单个指令可以改变一个以上的独特的寄存器。本发明的反回操作逻辑线路设在两个执行部件中,但特别是设在装有准备由执行指令改变的相应独特的寄存器的执行部件中。若正在执行改变其中一个独特的寄存器的指令,则该寄存器的内容就存放在一个反回锁存器中。这时若执行可中断指令而不致引起中断,则发出删除信号。但若可中断指令确实引起中断,则反回锁存器的内容就再装入独特的寄存器中。可以看出,若不配备有反回系统,可能同时只能发送单个可中断指令。这对双执行部件设计来说可以说是性能上的一个严厉的惩罚,因为所有送数和存储指令都会引起中断的。因此,采用本发明则无论指令是否为可中断的都可以在两个执行部件上执行两个指令。
因此,根据以上的概述,本技术领域的技术人员将从下面结合附图所作的说明和所附的权利要求书了解到本发明的目的、特点和优点。
图1是示出本发明最佳实施例的双执行处理部件系统的各组成部分的方框图。
图2是本发明在没有发生中断(实例A)时和根据执行部件1确实有中断发生(实例B)时操作实例的图表。
图3a和3b是示出本发明用来反回各独特的寄存器中的指令的各步骤的流程图。
图4是示出用来实施本发明的实际控制信号及其顺序的时序图。
图5是对应于图4的另一个时序图,示出了用以反回XER和MQ寄存器的实际双态信号。
参看图1,图中示出了本发明双处理器系统的方框图。系统存储器与高速缓存器1相连接,由该缓存器将数据从系统存储器(图中未示出)传送到寄存器堆5。接着寄存器堆5中的数据提供给双定点部件9和11。
指令从指令总线(图中未示出)提供给指令高速缓存部件(ICU)3。这些指令接着由译码部件7译码并发送出去。指令一经译码就提供给相应的一个定点部件9或11,以便将从寄存器5供到其上的数据如上所述那样处理。接着定点部件9和11执行从译码/发送部件7收到的指令并处理寄存器堆5所提供的数据。然后输出数据送到通用锁存器(21和23),以便将数据送回寄存器堆5再次由另一个指令(例如加法指令)加以处理,或者,数据也可以送到转换逻辑线路(图中未示出),由该线路将处理中的数据原先计算出的有效地址转换到系统存储器(或高速缓存器1)的实际存储单元。数据然后存入存储器转换后的实际地址。因此,从定点9和11输出的数据不是送回到寄存器堆5进一步处理就是存入系统存储器(包括高速缓存器1在内)中。
从图1中还可以看到定点异常寄存器(XER)13和多商(MQ)寄存器15。XER和MQ寄存器都是体系结构独特的寄存器,都是在流水线的执行周期期间更新的。因此和寄存器堆5不同,寄存器堆5是在回写周期期间沿总线25更新的,XER和MQ寄存器则是在执行指令时更新的。定点异常寄存器是个32位寄存器,其二进制位的定义是根据指令大致的执行情况下的,而不是根据中间结果下的。通常,XER寄存器算术运算时保持溢出和进位状态。举例说,从进位指令减去的结果用三个值的和表示。这个指令是根据整个操作情况而不是根据中间和数确定二进制位的。XER中的零位是每当指令将溢出位取得使其表示溢出情况并继续这样取直到软件清除它为止时取的总溢出位。二进制位1是溢出位,且系取得使其表示在执行指令过程中出现溢出情况。若输出二进制位0不等于输出二进制位1,则加法和减法指令可取溢出位1为逻辑1。不然的话,溢出位就被清除掉。二进制位2是通常用以表示在执行指令的过程中输出二进制位0的。加法进位、减位、延长加法过程和从延长指令中减,若输出二进制位0或不然将其清除,都可将进位位置为逻辑1。二进制位3-15是备用的。二进制位16-23是含有有待负载串和比较位组指令加以比较的位组的一个信息组。二进制位24是备用的,二进制位25-31则是确定有待负载串字索引或存储串字索引指令转移的位组的数目的信息组。
多商寄存器是个用作寄存器扩充部分的32位寄存器,用来存储乘法指令的乘积和除法指令的被除数。它还可以用作长指令、循环指令和移位指令的运算对象。它还可以在执行包括MULI、MULS、DIVS、DIVU等各种指令的过程中加以改变,这视具体实用情况而定。在这些运算过程中写到MQ寄存器的值与运算对象有关,因而MQ寄存器的内容在任何这些指令执行之后变得不定。其它诸如乘、除、左移、右移等指令也改变MQ寄存器。移向和移离特殊用途寄存器也可以访问MQ寄存器。
此外,本发明中还包括备用寄存器17和19(B_XER和B_MQ),这些都是非体系结构的锁存器,供存储XER和MQ寄存器13、15内容的副本用。上面说过,XER和MQ寄存器是在执行周期期间更新的。因此,若发生中断且这些寄存器的内容没有存储起来,则处理器不能返回到引起中断的指令执行时的状态。应该指出的是,所有其它特殊用途和一般用途的寄存器都是在回写周期期间更新的,而这个回写周期是在执行周期之后,这时若遭中断,则这些寄存器的内容会和执行引起中断的指令期间的一样。后备XER17和后备MQ19就会将XER和MQ寄存器恢复到其执行引起中断的指令时的状态。
在第一执行部件9上遇到可中断指令时,普通的系统会锁定第二执行部件,例如11。这会使各指令按顺序执行,但不会全面利用双执行部件系统的能力。此外,送数指令和存储指令都是可中断的,而且是一些更经常遇到的使第二执行部件长时间处于锁定状态的指令,这样就与双执行部件系统的目的背道而驰。因此,本发明在执行部件9和11中都配备了能识别可中断指令且使后备锁存器17和19接收其相应寄存器13和15的内容的后备逻辑线路。这些寄存器当在定点部件9上执行的指令是可中断指令时处于备用状态,这时FXU 11上的指令改变XER和MQ寄存器13或15的内容。在此情况下,后备逻辑线路(图2)将这些寄存器内容的副本放入后备锁存器17和19中,而若中断实际上确实发生时,就用该数据将XER和MQ寄存器恢复到其执行引起中断的指令时的状态。若可中断指令实际上不引起中断,则只将数据保留在后备锁存器17和19中直到遇到另一个可中断指令为止,这时XER和MQ寄存器当时的内容就存入后备锁存器17和19中。
本发明的反回逻辑线路装在定点部件9和11中。XER和MQ寄存器的反回逻辑线路从第二执行部件11中的译码操作开始。这个译码确定现时执行的指令改变的是XER抑或MQ寄存器。应该指出的是,可能会有改变两个寄存器的指令,例如MULO指令。鉴于MQ寄存器是数据流的一部分,因而MQ反回用的其余逻辑线路装在第二执行部件中,鉴于XER寄存器是在第一执行部件中,因而XER反回逻辑线路也就装在第一执行部件中。
MQ后备逻辑线路确定MQ改变指令是否在第二执行部件上执行,若然,则MQ寄存器的内容就存放到MQ后备锁存器19中。若在以后各周期中,FX_CANCEL信号起作用(表明发生中断情况)且仍然取经锁定的MQ改变译码,则MQ反回锁存器的内容就重新装入MQ寄存器中。保持MQ改变译码锁存器使FX_CANCEL在数周期之后起作用而仍然使MQ寄存器复原。
若在第二执行部件执行XER改变指令,则XER后备逻辑线路就处于设定状态。若两个执行部件保持原状,该锁存器就保持原状,不然将该锁存器复位。XER寄存器的三个二进制位存放在XER反回锁存器17中。若FX_CANCEL信号起作用而仍然取锁定的XER改变译码,则XER反回锁存器17的内容就重新装入XER寄存器的三个二进制位中。应该指出的是,若在上一个周期中第二执行部件上的指令已设定XER的SO二进制位,这种情况可能还没有在XER的状态中反映出来,因此必须将从第二执行部件锁定入XER反回锁存器的SO数据旁路掉。
图2中包括两个举例说明本发明的实例。在第一实例A中,情况是因在部件1上执行的指令而引起的中断没有真正发生。在译码周期期间,送数指令加到执行部件1,加法指令则在执行部件2中。译码逻辑线路确定加到执行部件1上的送数指令是可中断的,且执行部件2中的加法指令会改变XER寄存器。在执行周期期间,送数指令在部件1上执行,加法指令在执行部件2上执行。由于译码逻辑线路确定,加法指令改变XER寄存器,因而XER寄存器的值复写在反回XER锁存器17,XER锁存器则用对应于加法指令的数据值在部件2执行加法指令之后更新。在回写周期期间,确定在部件1上执行的送数指令并不引起中断,因而送数数据就写到寄存器堆5上。此外,部件2上加法指令的结果写到寄存器堆5上。在此情况下,无需进行复原或“反回”操作。
实例B举例说明了在部件1上执行的指令实际上确实引起中断的情况。这时译码逻辑线路再次确定部件1上的送数指令可能会引起中断且部件2上的加法指令会改变XER寄存器。在执行周期期间,送数指令由部件1执行。加法指令由部件2执行,同时XER寄存器的值复制到反回寄存器上。在回写周期期间,确定部件1执行的送数操作确定实际上引起中断发生。因此,送数数据就没有写到寄存器堆5上。由于确实发生中断,因而XER反回锁存器17的内容就写回到XER寄存器13,使该寄存器恢复到执行加法指令之前的状态。可以看出,由于寄存器堆是在回写周期期间更新的,因而由于知道中断是否确实在更新寄存器堆之前发生的且可以避免更新因而无需反回这些值。MQ和XER寄存器的情况就不是这样,因为它们是在执行周期期间更新的,因而需要反回逻辑线路以便在MQ和XER寄存器处在在部件1上执行引起中断的指令之前的状态下储存该两寄存器的内容。
现在说明图3a和3b的流程图。在步骤1和步骤2开始的程序确定提供给部件1的指令实际上是否可中断的。若答案是否定的,则由于无需反回因而程序继续进入步骤3并一直进入步骤12而结束。若在步骤2经译码逻辑线路确定:指令部件1实际上是不可中断的,则译码逻辑线路就在步骤4确定部件2中的指令改变的是XER抑或MQ寄存器。若指令部件2不改变任何这两个寄存器,则无需反回,于是程序就继续进入步骤3,然后在步骤12结束。
但若在步骤4经确定:指令部件2确实改变XER或MQ寄存器,则这些寄存器的内容就在步骤5存放到反回锁存器17和19中。在步骤6,执行执行部件1和2中的指令,同时MQ和/或XER寄存器都用在部件2上执行指令得出的值加以更新(步骤7)。在回写周期期间,在步骤8确定:在部件1上执行的指令是否真正引起中断发生。若没有中断发生,程序就继续进入步骤9。在步骤9,从在部件1和2执行指令得出的数据写到寄存器堆5,继续进行流水线执行指令的过程。步骤9之后,程序在步骤12结束。
若实际上经确定:在部件1上执行的指令确实引起中断发生,步骤10就将MQ和/或XER从反回锁存器17和19恢复到它们在部件1上执行引起中断的指令之前的状态。在步骤11,防止用对应于在部件1上执行且引起中断的指令的数据更新寄存器堆。步骤11之后,程序就在步骤12结束。
以上的说明涉及的是指令流水线的单个分段,但本技术领域的技术人员将知道,对提供到执行部件1和2的各指令流水线的各阶段可以履行步骤1-12。
图4的时序图示出了按本发明使用的实际控制信号以及它们之间的相互关系。信号1,SOX_.FXU_.XGC_XER_MOD(0)是检测执行部件2中改变XER寄存器13的指令的信号。该信号由译码逻辑线路7发出,由本发明的反回逻辑线路在执行周期期间检测。控制信号2,SOX_.FXU_.XGA.L_XER_MOD(0)是控制信号1的锁存复本,在储起来供中断实际上确实发生时使用。控制信号3,SOX_.FXU_.XGA.XER_SL_(0)和控制信号4,SOX_.FXU_.XGA.XER_BAK_SL_(0)都用来确定数据是在XER寄存器抑或在反回寄存器中。鉴于部件2上不会发生中断,所以本发明总是选择XER寄存器。控制信号5,SOX_.FXU_.XGA.HOLD_EXO(0)和控制信号6,SOX_.FXU_.XGA.HOLD_EXO(1)分别表示执行部件0和1发生故障。这些信号(5和6)的第一次传送表明部件1上的指令已执行。这些信号(5和6)的以后3次传送表明中断处理器已履行职责,表明中断实际上已发生。这些信号最后的传送是在执行部件2上的指令(应用图2实例的指令)重新执行时进行的。控制信号9,SOX_.FXU.XJH_FX_CANCEL(0)向本发明的反回逻辑线路表明执行部件1中的指令是否真的引起中断。确实发生中断时该信号会起作用。控制信号10,SOX_.FXU_.XGA_XER(0)、控制信号11,SOX_.FXU_.XGA_XER(1)和控制信号12,SOX_.FXU._XGA._XGA_XER(2)提供XER寄存器待反回的内容。信号11和12停止作用时的下降边表示XER寄存器这时含有来自部件2所执行指令的新值。信号11和12起作用时的上升边线表示XER寄存器已在前一个值的情况下复原,且中断处理器会设法使XER寄存器恢复正常状态。信号11和12起作用时的第二下降边表明XER寄存器一旦在部件2上执行的指令再执行就设定到从该指令得出的值。控制信号13、14和15(分别为SOX_.FXU_.XGA.SO-BACK(0)、SOX_.FXU_.XGA.OV_BACK(0)是对应于反回XER锁存器17内容的控制信号。这些信号表明XER寄存器内容已存储起来,且存储到反回锁存器中。应该指出的是图4是就XER寄存器说明的,但本技术领域的技术人员将会知道,用履行同一些功能的控制信号可以反回MQ寄存器15的内容。
图5的时序图与图4的类似,但示出了本发明逻辑线路所使用的双态信号,其中表示逻辑0和1的周期表示逻辑1。这里也示出了控制信1-15,这些控制信号用以履行本发明的反回功能。
可以看出,通过检测那些能在执行周期期间改变机器状态的指令并提供反回这些指令的机理,可以大大提高处理器的性能。在传统的系统中,当在第一执行部件上遇到可中断指令时可以挂断(闲置)第二部件直到执行可中断指令为止。鉴于可中断指令有多种多样,数量也多,因而第二执行部件闲置不用的场合就多。相比之下,本发明对在第二部件上现时执行的指令所改变的寄存器的状态作了备份。这一下提高了第二执行部件在时间上的利用率而不致在第一部件上遇到可中断指令时闲置着。由于许多指令(例如送数指令)都是可中断的,因而这样做给处理过程带来显著的好处。
Claims (18)
1.一种用于有选择地根据将要执行的具体类型的指令储存多执行部件处理系统的状态的方法,其特征在于包括下列步骤:
在执行之前确定第一指令是否是可中断的;
确定当前准备与所述第一指令一起执行的第二指令是否改变在执行周期期间更新的寄存器;
当所述第一指令可中断且所述第二指令改变所述寄存器时,存储所述寄存器的内容;和
恢复出现中断时所述寄存器的所述内容。
2.根据权利要求1所述的方法,其特征在于,该方法还包括分别在第一和第二执行部件上执行所述第一和第二指令的步骤。
3.根据权利要求2所述的方法,其特征在于,所述执行步骤包括用从执行所述第一和第二指令时得出的新值改变所述寄存器的步骤。
4.根据权利要求3所述的方法,其特征在于,所述恢复步骤包括确定所述可中断的第一指令是否确实会起中断发生的步骤。
5.根据权利要求4所述的方法,其特征在于,所述恢复的步骤还包括将所存储的内容放入所述寄存器中从而将所述寄存器恢复到执行所述第一和第二指令之前的状态的步骤。
6.根据权利要求5所述的方法,其特征在于,该方法还包括若真的发生中断时防止在所述执行周期之后更新的其它寄存器更新成相应于执行所述第一和第二指令的结果的步骤。
7.根据权利要求6所述的方法,其特征在于,该方法还包括如果不发生中断时将所述其它寄存器更新成相应于执行所述第一和第二指令的结果的步骤。
8.根据权利要求5所述的方法,其特征在于,该方法还包括真的发生中断时再执行所述第一和第二指令的步骤。
9.一种有选择地根据将要执行的具体类型的指令储存多执行部件处理系统的状态的系统,其特征在于,它包括:
在执行之前用于确定第一指令是否是可中断的装置;
用于确定当前准备与所述第一指令一起执行的第二指令是否改变在执行周期期间更新的寄存器的装置;
用于在所述第一指令可中断且所述第二指令改变所述寄存器时存储所述寄存器内容的装置;
用于恢复出现中断时所述寄存器的所述内容的装置。
10.根据权利要求9所述的系统,其特征在于,它还包括用于执行所述第一和第二指令的装置。
11.根据权利要求10所述的系统,其特征在于,所述执行装置包括用从所述第一和第二指令得出的新值改变所述寄存器的装置。
12.根据权利要求11所述的系统,其特征在于,所述用于恢复装置包括用以确定所述可中断的第一指令是否真的能引起中断发生的装置。
13.根据权利要求12所述的系统,其特征在于,所述用于恢复的装置还包括用以将所存储的内容放入所述寄存器中从而使所述寄存器恢复到执行所述第一和第二指令之前的状态的装置。
14.根据权利要求13所述的系统,其特征在于,它还包括这样的装置,该装置用以在真的发生中断时防止在所述执行周期之后更新的其它寄存器更新成相应于执行所述第一和第二指令的结果。
15.根据权利要求14所述的系统,其特征在于,它还包括这样的装置,该装置用于在不发生中断时将所述其它寄存器更新成相应于执行所述第一和第二指令的结果。
16.根据权利要求15所述的系统,其特征在于,它还包括这样的装置,该装置用于在真的发生中断时再执行所述第一和第二指令。
17.根据权利要求9所述的系统,其特征在于,所述用以确定第一指令是否可中断的装置和所述用于确定第二指令是否改变寄存器的装置都包括一个含在中央处理机单元中的译码电路。
18.根据权利要求17所述的系统,其特征在于,所述用于存储的装置包括反回锁存器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/123,816 US5440703A (en) | 1993-09-20 | 1993-09-20 | System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified |
US123816 | 1993-09-20 | ||
US123,816 | 1993-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1117166A CN1117166A (zh) | 1996-02-21 |
CN1099631C true CN1099631C (zh) | 2003-01-22 |
Family
ID=22411063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94116094A Expired - Fee Related CN1099631C (zh) | 1993-09-20 | 1994-09-19 | 双执行部件处理器的反回逻辑线路 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5440703A (zh) |
EP (1) | EP0644481A1 (zh) |
JP (1) | JP2633475B2 (zh) |
KR (1) | KR0133237B1 (zh) |
CN (1) | CN1099631C (zh) |
BR (1) | BR9403515A (zh) |
CA (1) | CA2123448C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5752013A (en) * | 1993-06-30 | 1998-05-12 | Intel Corporation | Method and apparatus for providing precise fault tracing in a superscalar microprocessor |
US5870582A (en) * | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
US5887161A (en) * | 1997-03-31 | 1999-03-23 | International Business Machines Corporation | Issuing instructions in a processor supporting out-of-order execution |
US5805849A (en) * | 1997-03-31 | 1998-09-08 | International Business Machines Corporation | Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions |
US5913048A (en) * | 1997-03-31 | 1999-06-15 | International Business Machines Corporation | Dispatching instructions in a processor supporting out-of-order execution |
US6098167A (en) * | 1997-03-31 | 2000-08-01 | International Business Machines Corporation | Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution |
JP3650519B2 (ja) * | 1997-12-17 | 2005-05-18 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
US6088792A (en) * | 1998-04-30 | 2000-07-11 | International Business Machines Corporation | Avoiding processor serialization after an S/390 SPKA instruction |
US6088791A (en) * | 1998-04-30 | 2000-07-11 | International Business Machines Corporation | Computer processor system for implementing the ESA/390 STOSM and STNSM instructions without serialization or artificially extending processor execution time |
US6345356B1 (en) * | 1999-07-16 | 2002-02-05 | International Business Machines Corporation | Method and apparatus for software-based dispatch stall mechanism for scoreboarded IOPs |
US6442675B1 (en) | 1999-07-29 | 2002-08-27 | International Business Machines Corporation | Compressed string and multiple generation engine |
JP3564445B2 (ja) * | 2001-09-20 | 2004-09-08 | 松下電器産業株式会社 | プロセッサ、コンパイル装置及びコンパイル方法 |
US7313797B2 (en) * | 2002-09-18 | 2007-12-25 | Wind River Systems, Inc. | Uniprocessor operating system design facilitating fast context switching |
US7681022B2 (en) * | 2006-07-25 | 2010-03-16 | Qualcomm Incorporated | Efficient interrupt return address save mechanism |
US8806181B1 (en) * | 2008-05-05 | 2014-08-12 | Marvell International Ltd. | Dynamic pipeline reconfiguration including changing a number of stages |
EP2940575B1 (en) * | 2014-05-02 | 2018-05-09 | Nxp B.V. | Controller circuits, data interface blocks, and methods for transferring data |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0319132A2 (en) * | 1987-11-30 | 1989-06-07 | International Business Machines Corporation | Interrupt handling in a parallel data processing |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54107645A (en) * | 1978-02-13 | 1979-08-23 | Hitachi Ltd | Information processor |
US4589065A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system |
DE3587643T2 (de) * | 1984-03-02 | 1994-03-24 | Nippon Electric Co | Informationsverarbeitungseinheit mit Unterbrechungsfunktion. |
US4670835A (en) * | 1984-10-19 | 1987-06-02 | Honeywell Information Systems Inc. | Distributed control store word architecture |
JPH0795278B2 (ja) * | 1985-08-30 | 1995-10-11 | 株式会社日立製作所 | 処理装置の割込制御方式 |
US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
US5148530A (en) * | 1987-05-19 | 1992-09-15 | Bull Hn Information Systems Inc. | Method for reexecuting instruction by altering high bits of instruction address based upon result of a subtraction operation with stored low bits |
US4901222A (en) * | 1987-05-19 | 1990-02-13 | Bull Nh Information Systems Inc. | Method and apparatus for backing out of a software instruction after execution has begun |
US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
US4912628A (en) * | 1988-03-15 | 1990-03-27 | International Business Machines Corp. | Suspending and resuming processing of tasks running in a virtual machine data processing system |
US5187796A (en) * | 1988-03-29 | 1993-02-16 | Computer Motion, Inc. | Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units |
JPH0469734A (ja) * | 1990-07-11 | 1992-03-04 | Toshiba Corp | 浮動小数点加減算のアンダーフロー例外発生予測回路 |
JP3146058B2 (ja) * | 1991-04-05 | 2001-03-12 | 株式会社東芝 | 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法 |
JP2925818B2 (ja) * | 1991-04-05 | 1999-07-28 | 株式会社東芝 | 並列処理制御装置 |
US5345567A (en) * | 1991-06-10 | 1994-09-06 | International Business Machines Corporation | System and method for modifying program status word system mask, system access key, and address space code with overlap enabled |
-
1993
- 1993-09-20 US US08/123,816 patent/US5440703A/en not_active Expired - Fee Related
-
1994
- 1994-05-12 CA CA002123448A patent/CA2123448C/en not_active Expired - Fee Related
- 1994-08-09 EP EP94305896A patent/EP0644481A1/en not_active Withdrawn
- 1994-08-09 JP JP6186910A patent/JP2633475B2/ja not_active Expired - Lifetime
- 1994-09-12 BR BR9403515A patent/BR9403515A/pt not_active Application Discontinuation
- 1994-09-17 KR KR1019940023767A patent/KR0133237B1/ko not_active IP Right Cessation
- 1994-09-19 CN CN94116094A patent/CN1099631C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0319132A2 (en) * | 1987-11-30 | 1989-06-07 | International Business Machines Corporation | Interrupt handling in a parallel data processing |
Also Published As
Publication number | Publication date |
---|---|
CN1117166A (zh) | 1996-02-21 |
JPH07105025A (ja) | 1995-04-21 |
CA2123448A1 (en) | 1995-03-21 |
KR0133237B1 (ko) | 1998-04-24 |
US5440703A (en) | 1995-08-08 |
CA2123448C (en) | 1998-10-13 |
BR9403515A (pt) | 1995-06-20 |
JP2633475B2 (ja) | 1997-07-23 |
EP0644481A1 (en) | 1995-03-22 |
KR950009454A (ko) | 1995-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3870973B2 (ja) | スーパースケーラマイクロプロセサ | |
CN1099631C (zh) | 双执行部件处理器的反回逻辑线路 | |
US6374347B1 (en) | Register file backup queue | |
US5794024A (en) | Method and system for dynamically recovering a register-address-table upon occurrence of an interrupt or branch misprediction | |
JP3142813B2 (ja) | レジスタの名前変更を管理するための情報処理システムおよび方法 | |
US5860014A (en) | Method and apparatus for improved recovery of processor state using history buffer | |
US5870612A (en) | Method and apparatus for condensed history buffer | |
US7200742B2 (en) | System and method for creating precise exceptions | |
US5943494A (en) | Method and system for processing multiple branch instructions that write to count and link registers | |
EP0212132A1 (en) | Method and digital computer for recovering from errors | |
US5673391A (en) | Hardware retry trap for millicoded processor | |
Samadzadeh et al. | Hardware/software cost analysis of interrupt processing strategies | |
JP2003271381A (ja) | エラー訂正制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |