数据处理器中处理条件跳转指令的方法

文档序号:6415832阅读:556来源:国知局
专利名称:数据处理器中处理条件跳转指令的方法
技术领域
本发明涉及处理数据处理器中特定指令,所谓的条件跳转指令。
条件跳转指令由来自顺序读入处理器中的几条指令中的一条组成,这里该条件的满足决定紧接该条件跳转指令的后继指令是否应被读入处理器或是否在指令序列中进行跳转。这样一种跳转意味着,按照该条件跳转指令从在该序列中的其它地方读入后继指令。
读入处理器中的各指令在所谓的指令缓冲器中分配空间,给这些空间一种次序,相应于这些指令的顺序次序。至少在指令缓冲器中的最后一个位置是读出位置。
读入处理器中的指令可以由该处理器处理,而处理结果存储在属于在指令缓冲器中的各指令的各自空间,从这里它可以最后从读出位置以顺序次序读出。
当一条件跳转指令被读入处理器时,处理器能够预测条件的满足,之后,紧接该条件跳转指令被读入,可以由处理器根据这一预测读入并处理指令。错误的预测将导致从处理器中清除后继读入的和部分被处理的指令,以便为按照条件的满足读入正确的指令准备空间。
为使本技术观点和本发明更容易理解,现在定义在下面的说明中将使用的术语和表达。
当读入一条指令时,该指令的处理和处理结果的读出在不同步骤中发生。当读指令到处理器中时,准备该指令可能的处理。一条指令通常包括两个操作数和施加于这些操作数的一种操作。
指令的准备包括,除别的事项外,所谓的“取指步骤”。这一步骤包括取操作数值,因为实际指令将常常,但并不总是,仅包含指向存储器中某位置的一个地址,在该地址处寻找操作数的值。
执行取指步骤需要的时间可以随不同指令相差很大,取决于从何处取不同的操作数值。这意味着,由于第二指令的操作数值比第一指令的操作数值能更快访问,因此在第二指令前读入的第一指令将在所述第二指令后处理。这样,用第二指令得到的结果可能在用第一指令得到的结果前存储在指令缓冲器中。
指令在处理器中称为算术逻辑单元ALU的部分处理。
因为ALU不必以顺序次序处理指令,因此当指令的取指步骤需要长时间完成时可以减少ALU的等待时间。
当错误地预测一条件跳转指令的满足时,从处理器中清除错误读入的指令。这在这里称为处理器的“刷新”。
上述预测条件满足的一般方法例如在专利申请EP-A20706121中说明。
现有技术公知多种减少错误预测条件跳转指令满足的有害影响的不同方法。
前公布US-A5381532说明一个处理器,它使用另一可选的输入缓冲器,即分支缓冲器(B)。当读入一个条件跳转指令时,按照对该条件满足的预测,顺序读取在该条件跳转指令后的指令,而如果预测错误时将要取的指令被读入并存储在该分支缓冲器中。
如果必须刷新处理器的话,则正确的指令已经被读入分支缓冲器中,这样可立即为该处理器使用。
这减少了由错误预测和后继刷新处理器而引起的时间损失。
公布US-A5127091、US-A5539911、US-A5237664和US-A4742451图示并说明其它解决方案,它们基于为分支指令的读入而使用并行缓冲器。
还公知求精计算条件跳转指令的条件满足的概率的算法,从而减少错误预测的数目。Intel公司的出版物“Pentium(R)Pro处理器微结构导示”说明只使用一个处理器输入端口的处理器,并假定预测的条件满足是正确的。
这提供非常迅速和有效地正确预测处理,但是导致在错误预测事件下处理器内容的总刷新,没有正确的指令在另一可选缓冲器中备用。
还应该提到,更准确的预测关于条件满足的统计评估比较差准确度预测需要更大的能力。
还公知在条件跳转指令前使用条件测试指令。该指令理想地放置在实际跳转指令前适当远处,使得能够在实际跳转指令进入处理器的输入端口前执行测试指令并收到其结果。
这样,当条件跳转指令被读入处理器时,因为条件测试指令的较早执行,就已经知道关于该条件满足的结果,可以在条件跳转指令后立即读入正确的指令。
在条件测试指令和条件跳转指令之间不可有其结果可能影响条件跳转指令条件的指令。从而,条件测试指令是否放置在条件跳转指令前足够远的位置取决于,可以影响条件满足的指令是否靠近或紧接在实际跳转指令的前面。
这一限制导致软件开发的困难,并且在某些时候产生由在条件测试指令和相关的条件跳转指令之间插入空指令引起的时间延迟。
公布GB-A2293672和EP-A20509245两者都说明一种计算机或计算机结构,它基本上基于包括用于脱离其它指令和与之并行处理条件跳转指令的一个分开的处理器的计算机。
还应该提到,在一个处理器内处理的指令可以分成两类指令,即处理器外部指令和处理器内部指令。
例如,以汇编程序代码的指令可以称为处理器外部指令,而把汇编程序代码变换为微代码后得到的指令可以称为处理器内部指令。
在这样的上下文中,还公知处理器外部指令在变换后通常形成一系列处理器内部指令。
还公知即使当一条处理器外部指令不包括条件跳转指令时,然而这样的指令也会在从处理器外部代码转换为处理器内部代码后产生一条处理器内部的跳转指令。
还公知使用所谓的顺序号码发生器,使它适应为读入指令缓冲器内的每一条指令产生一顺序号码。
当考虑上述较早的技术观点和当以下述处理器为开始点时,将会看到,一个技术问题是相对于公知技术如何实现减少由最终刷新该处理器引起的时间损失,所述处理器使用对一个条件跳转指令的条件满足的预测以便把后继指令读入该处理器,这里读入处理器的各指令在所谓的指令缓冲器中分配空间,这里所述空间给定相应于顺序次序的次序,这里在指令缓冲器中的至少最后的位置组成一个读出位置,从中可以以顺序次序读出由处理各指令得到的结果,以及这里错误的预测导致从处理器清除后继读入和部分处理的指令,以便为根据条件满足读入正确指令提供空间。
另一技术问题是如何实现比公知技术更快执行取指步骤,和在刷新处理器的事件下改善处理器的使用。
另一技术问题是如何不使用置于条件跳转指令前的条件测试指令,或为处理条件跳转指令单独的处理器而实现这点。
另一技术问题是如何在当条件跳转指令的处理到达读出位置而得到结果前可以评估预测的真值或正确性。
另一技术问题是在错误预测的事件下当处理条件跳转指令的结果尚未到达读出位置时如何以正确方式实现处理器的刷新。
还可以看到,一个技术问题是在错误预测的事件下如何实现取得正确指令,以及如何使这点适应不同的处理器结构。
再一技术问题是如何使处理器硬件适应能够在当对条件跳转指令的处理得到的结果到达读出位置前评估有关条件满足的预测的真值,以及其后在错误预测的事件下执行处理器的正确刷新。
再一技术问题是如何使按照本发明的方法或处理器适应当处理处理器内部条件跳转指令时使处理器更有效。
为解决上述一个或者多个技术问题,作为其开始点,本发明取在数据处理器中处理特定指令,所谓的条件跳转指令,的方法,其中给各读入指令在所谓的指令缓冲器中分配空间,其中给所述空间分配相应于各指令被读入处理器内的顺序次序的顺序或次序。
至少在指令缓冲器内的最后位置构成从该缓冲器的一个读出位置。指令在处理器中被处理,而其结果可存储在属于在指令缓冲器内的指令的各空间,并可以所述顺序次序从读出位置读出。
使处理器适应预测读入处理器的条件跳转指令的满足,之后,可以由处理器根据这一预测在读入该条件跳转指令后紧接读入并处理指令。
错误的预测导致从处理器中清除由所述处理器读入并部分处理的后继指令,以便为按照条件的满足往处理器读入正确指令准备空间。
以这种方法作为开始点,本发明建议,使处理条件跳转指令时得到的结果,以及随即对相关条件满足的知识在属于该条件跳转指令的指令缓冲器中的空间到达读出位置前可用于评估。
本发明还建议,当关于条件满足的预测错误时,从处理器中清除指令只涉及在该条件跳转指令之后顺序读入的指令,而不管这些指令在指令处理序列中的位置。
为了能够改善由早发现条件跳转指令的预测是否正确而得到的时间增益,本发明建议,一当知道关于条件满足的预测错误时立即开始正确指令的收集。
本发明还涉及一种基于处理在上面关于条件跳转指令说明的处理器内部指令的方法,换句话说,当检验关于处理器内部条件跳转指令的预测满足时得到的结果在其清楚后立即可被使用,并加以考虑,即使在属于该处理器内部的条件跳转指令的指令缓冲器内的空间尚未到达指令缓冲器内的读出位置。
本发明还取这样的处理器作为其开始点,该处理器包括- 读入单元,它意在从包含相互顺序的指令的存储器读指令到处理器,所述指令中有一些是所谓的条件跳转指令,其中,条件满足决定紧接该条件跳转指令之后的那些指令是否读入处理器,或者是否在指令序列中进行跳转,该跳转意味着根据该条件跳转指令从序列中的另外某个地方读入后继指令;- 指令缓冲器,其中可以给读入处理器中的各指令分配空间,给这些空间分配一个相应于顺序次序的次序或顺序,其中,至少该指令缓冲器中的最后位置构成从所述缓冲器的一个读出位置;- 处理单元,构成为处理读入处理器中的指令,其中,得到的结果可以存储在属于各指令的空间中的指令缓冲器中;- 检验单元,构成为检验读出位置是否包括处理结果;- 读出单元,构成为从读出位置读结果;- 预测单元,构成为在条件跳转指令被读入处理器时预测该指令的满足,其中,读入单元构成为根据紧接在读入条件跳转指令后的预测读指令到处理器;- 评估单元,构成为根据由预测单元提供的预测评估条件跳转指令的条件是否满足;- 指令清除单元,构成为在发现关于条件跳转指令的预测错误时从处理器中清除在该条件跳转指令后由处理器读入并部分处理的那些指令。
以这种处理器为开始点,本发明特别建议,该处理器将包括一个结果指示单元,使其适应指示,由处理一条件跳转指令得到的结果何时存储在指令缓冲器中该条件跳转指令的位置。
还建议,当根据结果指示单元可以得到结果时,使评估单元适应取在处理条件跳转指令时得到的结果,以此使其确定关于该条件跳转指令的条件是否已按照预测单元提供的预测满足。
本发明还建议,使指令清除单元适应响应来自评估单元表示条件满足的预测错误的信号,从处理器中只清除在条件跳转指令后顺序读入处理器中的那些指令,而不管这些指令在指令处理操作中的什么地方被发现。
本发明的处理器还适应在所述预测发现是错误的时,在评估单元提供其关于预测正确性的结果后立即开始读正确指令到处理器。
以从包括适应变换处理器外部指令为处理器内部指令的变换单元的处理器为开始点,本发明还建议,使前述单元还适应处理处理器内部条件跳转指令和处理器外部条件跳转指令两者,以及按照上述评估这种处理结果。
以从包括适应产生顺序号码并给读入指令缓冲器中的每一条指令一个顺序号码的顺序号码发生器的处理器为开始点,本发明还建议,使指令清除单元响应来自评估单元表示条件满足的预测错误的信号,适应从处理器中只清除已给予顺序号码的那些指令,这些号码是在该顺序号码给条件跳转指令后所产生,而不管这些指令在指令处理操作中的什么地方发现。
主要由根据本发明的方法和适应按照该方法操作的处理器所具有的优点在于,可以减少按照现有技术刷新引起的时间损失。此外,取步骤可以更快进行,算术逻辑单元(或多个单元)的容量可以为处理任何不被刷新的等待指令释放。在错误预测的事件下,可以在比公知技术所允许的更早阶段把正确指令读入处理器。这些因素的结合能使处理器的容量使用到比原先所能达到的大得多的程度。
原理是简单的,且并不限制于特定的处理器结构,这能使它容易地在不同处理器结构中实现。
本发明方法的主要特征在权利要求1的特征部分叙述,而本发明的处理器的的主要特征在从属权利要求5的特征部分叙述。
现在通过一个例子参考


本发明的方法和按照本方法操作的处理器,附图中,图1是一个处理器的概略和高度简化的表示。
程序代码中的指令可以主要分为两类,流改变指令和非流改变指令。
非流改变指令是最普通出现的指令,它是指读、写和算术运算的指令。这些运算通常包括两个操作数、对这些操作数施行何种运算的指令、和为放置运算结果的目的地地址。
流改变指令改变指令流,并引起在程序代码中的跳转。最普通的流改变指令类型是所谓的条件跳转或条件跳转指令。
该后面的指令也包括两个操作数和对这些操作数施行何种操作的指令。这一操作,作为一种规则,是比较操作数,这里,跳转条件在于在这些操作数之间的相似性或不相似性。
在条件跳转指令的场合,不需目的地地址,因为操作结果用于处理器本地来决定是否在指令流中进行跳转。然而,也不阻止使用目的地地址。
指令顺序读入处理器,在同一时间上在处理器中可存在处于不同处理阶段的若干指令。举例来说,图1表示一个处理器1,其中可“同时”处理8条指令。指令从程序存储器2读入,并在所谓的指令缓冲器3中分配空间,指令缓冲器作为先进先出(FIFO)缓冲器,在图示例子中它有8个位置31,32,...,38。
当所涉及的指令出现在指令缓冲器中所谓的读出位置4时,其在图示例子中是所述缓冲器3中的最后位置,关于各操作得到的结果从指令缓冲器3读出,并将其写到打算的目的地地址。然而,操作的处理或执行当该指令出现在指令缓冲器中较早位置时可以已经进行。
现在更详细地说明处理器操作的方式,以便更容易理解本发明。
在图示例子中,处理器1有双重输入端口,亦即两个不同的输入端口,也就是说第一输入端口111和第二输入端口112,并各自有关联的第一和第二缓冲器113和114,通过它们可以收集指令。处理器内部选择器12决定从哪一输入端口取指令。
当一条条件跳转指令21进入处理器,例如通过第一输入端口111,并当这一条件非常可能满足时,如果可以预测的话,指令22立即根据该跳转通过第二输入端口112读入,此时关联的缓冲器114用后继指令充满。位于条件跳转21后的指令23继续通过第一输入端口111读入并存储在第一缓冲器113中。
处理器内部选择器12根据预测从第二缓冲器114收集指令。在错误预测的事件下,正确的指令在第一缓冲器113中等待,并可在错误读入处理器的指令被刷新后读入处理器。
可以想到处理器可以只使用单一输入端口。在这种场合下,在预测条件跳转指令的结果的事件中,根据预测把指令读入单一输入端口,意味着,当预测错误时,读入正确指令需要的时间比使用两个输入端口时长,因为这些正确指令尚未被读入,不在另一可选输入端口等待。
条件满足的预测可以基于不同算法,诸如静态或动态预测。
静态预测是一种选择,这里总假定条件满足或不满足。
预测也可以基于动态处理来表示这一条件如何已在较早时满足。于是在一张表内保存不同条件满足的统计结果,并将该表在每次执行一条件跳转指令时更新,并作为预测这些条件是否满足的基础。这是动态预测。
在前面提到的方法的场合,如果根据预测的条件满足,则根据该跳转立即把紧接跳转指令的正确指令读入指令缓冲器,从而在该条件跳转指令到达指令缓冲器3中的读出位置4后可以执行这些正确的指令,并准备立即交付它们的结果给它们各自的目的地地址,并留下判断跳转条件是否已满足的操作的结果。
本发明不依赖于使用一个或者多个输入端口,也不依赖于用以预测条件满足的算法的类型。
不管处理器或所用算法的类型,在指令缓冲器中正被处理的指令在错误预测的情况下不被执行。因此,这些指令将被刷新,以便能把正确指令读入指令缓冲器处理。
处理器中指令的处理包括几个不同的步骤。
第一步骤是变换表示输入指令的代码为处理器内部代码。这一变换在变换单元发生,在图示例子中,在所谓的汇编语言到微代码翻译器单元(ATU)5,它把汇编语言指令变换为机器语言指令,之后变换后的代码放在指令缓冲器3中。
ATU5还包括处理器内部选择器12并控制该选择器。
指令缓冲器内的空间包括不同字段,其中一部分在缓冲器3内的位置31表示。这些字段包括操作数A(OPA)字段31A,操作数B(OPB)的字段31B,操作(ALSO)的字段31C和结果目的地地址(DEST)的字段31D。
第二步骤是所谓的取指步骤,其中当操作数不能在指令自身中得到时从不同存储器M1,M2取必需的操作数。这可能需要不同长度的时间执行,取决于从哪个存储器取操作数。某些存储器可以是处理器内部存储器M1,其它的可以是置于处理器外部的存储器M2,亦即处理器外部存储器。
在取操作数之后,可以采取下面的步骤。这些步骤包括执行指令,以之把操作数31A,31B和指令31C送往ALU6,在其内执行指令,并把结果交付给结果字段31E。
只要来自ALU6的结果已经准备好并已交付结果字段31E,则在指令缓冲器内的指令位置已经到达读出位置4时执行下一步骤。该步骤是所谓的提交(Commit)或回写(Write Back),其中把结果写到由目的地地址字段31D的内容给定的地址。
这些步骤不必顺序执行,而可以在取指步骤一完成就执行。这意味着某些指令可以准备好提交,即使位于指令缓冲器内较前顺序的指令尚未完成它们各自的取指步骤。
在错误预测事件下的处理器刷新需要时间来完成和减少处理器容量。当所用处理器有两个输入端口时,获得某种保护措施,它能在错误预测事件下处理器被刷新后准备好将要读入处理器的那些指令。
尽管这一保护措施意味着正确的指令在第一缓冲器113中处于就绪状态,但是由刷新整个处理器内容,亦即指令缓冲器3的全体内容(这里许多指令已经被执行并准备好提交)需要的操作在这些上下文中是既大且昂贵的操作。
当所用处理器只有单一输入端口,由在错误预测的事件下刷新处理器引起的时间损失更大。
本发明基于早跳转报告的概念,它能使在执行一个条件跳转指令时得到的结果31E在该条件跳转指令到达指令缓冲器3中的读出位置4之前可以被使用。这一结果知道的越早,则刷新过程的有害影响越小,从而能使在关于条件满足的错误预测事件下取正确指令。
执行条件跳转指令得到的结果一旦所述跳转指令的执行完成时就可在处理器内使用。在先前公知的技术中,不使用这一执行结果,直到该条件跳转指令已经到达提交位置,亦即读出位置4。
这样,本发明基于一旦在执行一个条件跳转指令时得到的结果可用时立即使用这一结果的概念。
通过使ATU5适应监视处理器中条件跳转指令的处理和,一旦所述指令已经被处理或执行就,使用所得到的结果以建立关于条件满足的预测真值来实现这一点。
当预测是正确的预测时,允许处理继续。在错误预测的事件下,所有位于在读入序列中该条件跳转指令后面的指令从处理器中刷新。这意味着,并非处理器中的所有指令都被从其中刷新,因为可以,甚至很可能在处理器中仍保留一些指令,它们顺序上在该条件跳转指令之前-且并不受该跳转影响+但是对于它们例如取指处理尚未完成。
这样,刷新将只涉及某些指令而并非在处理器中存在的全部指令。这些指令可以在处理器中已经被处理到不同程度。不管这些指令在这一处理操作中的什么地方找到,所有后继指令被刷新,而其容量释放给执行尚未到达执行阶段和不应从处理器中刷新的指令。
现在详细说明适应按照前述方法操作的处理器。
简言之,一个公知的处理器将包括- 读入单元,这里指具有关联缓冲器113的输入端口111,意在从存储器2读指令到处理器,所述指令是相互顺序的;- 指令缓冲器3,其中可以给读入处理器中的各指令分配空间31,32,...,38,这里,至少缓冲器3中的最后位置构成一个缓冲器读出位置4;- 处理单元,这里指ALU6,它适应处理读入处理器中的指令,其后,处理结果可以存储在分配给缓冲器3中的各指令的空间313中;- 检验单元13,使其适应检验读出位置内是否找到一个处理结果;- 读出单元14,使其适应从读出位置4读结果;- 预测单元15,使其适应在条件跳转指令被读入处理器时预测该指令的满足;
- 评估单元16,使其适应根据由预测单元提供的预测来评估条件跳转指令的条件是否满足;- 指令清除单元17,使其适应在发现关于条件跳转指令的预测错误后,从处理器中清除读入处理器并在其内部分处理过的那些指令。
以这类处理器为开始点,本发明特别建议,该处理器还包括结果指示单元18,使其适应指示由处理一条件跳转指令所得到的结果何时存储在指令缓冲器中该条件跳转指令的位置处。
还建议,使评估单元16适应在根据结果指示单元18指示在处理该条件跳转指令时得到的结果31E可用时取该结果,从而能够根据由预测单元15给出的预测确定该条件跳转指令的条件是否满足。于是可以取该结果而不管该条件跳转指令是否位于缓冲器3中的读出位置4。
本发明还建议,使指令清除单元17适应在收到来自评估单元16指示条件满足的预测错误的信号时,从处理器中只清除在该条件跳转指令后顺序读入的那些指令,而不管这些指令在指令处理链中什么地方找到。
前面已对从程序存储器2读入的条件跳转指令进行参考。当这样的指令在变换单元5内被变换为微代码时,这种处理器将可能变换这样的处理器外部指令为多个微代码形式的处理器内部指令。
还有这样的处理器外部指令的例子,它们不包括条件跳转,但是它们对应的处理器内部代码包括条件跳转指令。例如,一条没有条件跳转指令而变换为微代码的处理器外部指令可能产生一个包括一条条件跳转指令的处理器内部循环,这里该条件意味着该循环在给定条件满足时断开。
这样,本发明还涉及一种处理数据处理器中处理器内部条件跳转指令的方法,此时该条件跳转指令不必来自处理器外部条件跳转指令。
条件的满足决定顺序紧随所述条件跳转指令之后的那些指令是否应由该处理器处理,或是否应在处理器内部指令序列中进行跳转。
这样的跳转意味着,根据该条件跳转指令,后继的处理器内部指令应从该序列的某另一地方,或从后继变换的处理器外部指令中读入处理器。
条件满足的错误预测导致已经读入处理器并被部分处理的后继处理器内部指令被刷新,以便为满足条件的正确的处理器内部指令准备空间而读入该处理器。
在这种情况下,并非处理器内的所有指令都被清除,因为处理器将仍然包含某些处理器外部指令,这些指令尚未变换为处理器内部指令并且不受该处理器内部条件跳转指令影响。
当找到一条处理器内部条件跳转指令时,后继处理器外部指令不被读入ATU5进行变换。这意味着,当指令由于关于条件满足的预测错误而被清除时,只清除处理器内部指令,下一处理器外部指令可以被读入ATU5供变换。
本发明建议,在处理一个条件跳转指令时得到的结果,以及随即关于该条件满足的知识在处理完成后立即可用于评估,即使这发生在在指令缓冲器内属于该条件跳转指令的空间已经到达读出位置4之前。
本发明还建议,在关于条件满足的预测错误的事件下,从处理器内清除指令将只影响在该条件跳转指令后顺序读入的处理器内部指令,不管这些指令在指令处理操作中的什么地方找到。
设计为也考虑处理器内部条件跳转指令的处理器类似于前述处理器将包括结果指示单元18,使其适应指示来自处理一条件跳转指令的结果何时存储在指令缓冲器中。
该处理器还包括一个评估单元16,使其适应在结果指示单元18指示在处理处理器内部条件跳转指令时得到的结果可用时取该结果。
然后评估单元16能够根据由预测单元15给出的预测确定处理器内部条件跳转指令的条件是否满足。
本发明还建议,该处理器包括指令清除单元17,使其适应在收到来自评估单元16表示条件满足的预测是错误的信号时,从处理器中清除在处理器内部条件跳转指令后顺序读入的那些处理器内部指令,而不管这些指令在指令处理操作中的什么地方被找到。
还公知处理器可以包括一个顺序号码发生器19,使其适应产生顺序号码(SN)并给读入指令缓冲器3中的每一指令一个顺序号码。指令缓冲器内的空间包括一个字段31E,它用于存储该指令的顺序号码。
把SN和OPA,OPB以及ALSO一起送往ALU6处理,以便在ALU中的处理结果可以与在指令缓冲器3中的正确位置关联。
本发明建议,顺序号码用于刷新处理,以便决定在条件跳转指令前什么指令已被读入指令缓冲器和在该条件跳转指令后什么指令已被读入指令缓冲器。
因此建议,使指令清除单元17适应响应来自评估单元16表示条件满足的预测是错误的信号,从处理器1中只清除在给予该条件跳转指令的顺序号码后产生的顺序号码的那些指令,而不管这些指令在指令处理操作中的什么地方被找到。
根据上述,顺序号码的使用既可以在只适应考虑处理器外部指令的处理器内实现,也可以在适应考虑处理器内部和处理器外部指令的处理器内实现。
应该理解,本发明不限于前述例示实施例,可以在下述权利要求中说明的本发明的概念内进行修改。
权利要求
1.数据处理器内处理特殊指令,所谓的条件跳转指令,的方法,这里所述条件跳转指令组成一个或几个顺序读入所述处理器的指令,这里条件的满足决定顺序紧接所述条件跳转指令的后继指令是否应被读入所述处理器或在所述指令序列中是否应进行跳转,意味着根据所述条件跳转指令后继指令将从所述序列中的某另一地方读入,其中给读入该处理器的各指令在所谓的指令缓冲器中分配空间,其中给在所述缓冲器中的所述空间一个相应于所述顺序次序的次序,其中至少所述指令缓冲器中的最后位置构成从所述缓冲器的一个读出位置,其后所述指令可以由所述处理器处理,其后由处理所述指令而得到的结果可以存储在属于在所述指令缓冲器中所述指令的各空间,和以所述顺序次序从所述读出位置读出,其中当一条件跳转指令被读入该处理器时,该处理器预测所述条件的满足,其后在读入所述条件跳转指令之后立即根据所述预测由所述处理器读入并处理指令,其中错误预测导致清除后继读入并由处理器部分处理的指令,以便根据条件满足为正确指令准备空间,其特征在于,由处理所述条件跳转指令得到的结果,以及随即关于所述条件满足的知识在所述处理完成后立即可用于评估,即使当这发生在分配给在所述指令缓冲器内的所述条件跳转指令的空间到达所述读出位置之前。
2.根据权利要求1的方法,其特征在于,在关于所述条件满足的错误预测的事件下,只从处理器中清除在所述条件跳转指令后顺序读入的那些指令,而不管这些指令在指令处理操作中的什么地方找到。
3.根据权利要求1和2的方法,其中,指令通过单一输入端口读入处理器,其特征在于,一旦知道属于一条件跳转指令的条件满足的预测错误时立即开始读正确指令到处理器,以及这些正确的指令是通过所述单一输入端口读入处理器的。
4.根据权利要求1和2的方法,其中,指令通过具有关联缓冲器和属于一个双输入端口的两个输入端口中的一个读入处理器,其中,根据一条件跳转指令的满足的预测的指令通过属于所述双输入端口的第一输入端口读入所述处理器,和根据关于所述条件跳转指令满足的第二可能结果的指令通过属于所述双输入端口的第二输入端口读入所述处理器,其中读入处理器的指令存储在各缓冲器中,其特征在于,一旦知道属于一条件跳转指令的条件满足的预测错误时立即开始读所述正确指令到处理器,以及所述正确指令是从属于所述第二输入端口的缓冲器读入的。
5.包括一个读入单元的处理器,所述读入单元用于从一个存储器读指令到处理器,在该存储器中指令以相互顺序次序存储,其中的一些指令是所谓的条件跳转指令,其中条件的满足决定顺序紧接所述条件跳转指令的后继指令是否应被读入处理器或在所述指令序列中是否应进行跳转,所述跳转意味着根据所述条件跳转指令后继指令将从所述序列中的某另一地方读入该处理器,其中该处理器还包括一个指令缓冲器,其内可以给读入所述处理器的各指令分配空间,其中给这些空间一个相应于指令的所述顺序次序的次序,其中至少在所述指令缓冲器中的最后位置构成从所述指令缓冲器的一个读出位置,另外还包括一个处理单元,使其适应处理所述指令,其后由所述处理得到的结果可以存储在属于在所述指令缓冲器中所述指令的各空间,和包括一个检验单元,使其适应检验所述读出位置是否包括一处理结果,一读出单元,使其适应从所述读出位置读所述结果,一预测单元,使其适应预测读入该处理器的条件跳转指令的满足,其中使所述读单元适应在所述条件跳转指令被读入所述处理器后立即根据所述预测读指令到所述处理器,一评估单元,使其适应确定条件跳转指令是否按照由预测单元给出的预测满足,和一个指令清除单元,使其适应在发现所述预测错误时从处理器中清除在所述条件跳转指令后读入处理器并在其内被部分处理的那些指令,其特征在于,该处理器包括结果指示单元,使其适应指示由处理一条件跳转指令得到的结果何时存储在所述指令缓冲器内所述条件跳转指令的位置;使所述评估单元适应当结果指示单元指示该结果可用时取在处理所述条件跳转指令时得到的结果,其中所述评估单元能够根据由所述预测单元给出的预测确定所述条件跳转指令的条件是否已满足。
6.根据权利要求5的处理器,其特征在于,使所述指令清除单元适应在从所述评估单元接收到指示所述条件满足的所述预测是错误的信号时从所述处理器中清除在所述条件跳转指令后顺序读入处理器的那些指令,而不管这些指令放置在指令处理链中的什么地方。
7.根据权利要求5和6的处理器,其包括单一输入端口,通过该端口读指令到所述处理器,其特征在于,使所述处理器适应在从评估单元接收到指示所述条件的满足的预测是错误的信号时立即开始读正确指令到处理器,以及这些正确的指令是通过所述单一输入端口读入处理器的。
8.根据权利要求5和6的处理器,包括由第一和第二输入端口和关联缓冲器组成的双输入端口,其中使该处理器适应通过所述两个输入端口中的一个读入指令,其中还使所述处理器适应当读入一条件跳转指令时根据该条件跳转指令满足的预测通过属于所述双输入端口的第一输入端口读入指令,以及根据关于所述条件跳转指令满足的第二可能结果通过属于所述双输入端口的第二输入端口读入指令,以及其中使各缓冲器适应存储读入的指令,其特征在于,使所述处理器适应在从所述评估单元接收到表示所述条件满足的所述预测是错误的信号时立即开始读所述正确指令到处理器;以及所述正确指令的读入从属于所述第二输入端口的缓冲器发生。
9.根据权利要求5和6的处理器,包括一个顺序号码发生器,其特征在于,使所述指令清除单元适应响应来自所述评估单元表示所述条件满足的所述预测是错误的信号,从所述处理器中只清除其顺序号码在所述条件跳转指令的顺序号码后产生的那些指令,而不管这些指令是在指令处理操作中的什么地方找到。
10.处理数据处理器中特定指令,所谓的条件跳转指令,的方法,其中所述处理器包括一个变换单元,它变换读入所述处理器的处理器外部代码指令为处理器内部代码,其中读入所述处理器的处理器外部指令可以产生一系列不同的处理器内部指令,其中某些可以包含所述条件跳转指令,其中条件的满足决定顺序紧接所述条件跳转指令的后继指令是否应由所述处理器处理或在处理器内部指令的所述序列中是否应进行跳转,意味着根据所述条件跳转指令后继处理器内部指令将从所述序列中的某另一地方或从后继变换的处理器外部指令读入,其中给各处理器内部指令在所谓的指令缓冲器中分配空间,其中给在所述指令缓冲器中的所述空间一个相应于所述顺序次序的次序,其中至少所述指令缓冲器中的最后位置构成从所述指令缓冲器的一个读出位置,其后所述指令可以由所述处理器处理,和处理结果存储在属于在所述指令缓冲器中所述指令的各空间,和可以最后以所述顺序次序从所述读出位置读出,其中当读入这种条件跳转指令时所述处理器预测跳转指令条件的满足,其后在读入所述条件跳转指令之后立即以根据所述预测的次序由所述处理器处理指令,其中错误预测导致从所述处理器清除后继读入并被部分处理的处理器内部指令,以便为根据所述条件的满足读入正确的处理器内部指令准备空间,其特征在于,由处理所述条件跳转指令得到的结果,以及随即关于所述条件满足的知识在所述处理完成后立即可用于评估,即使当这发生在分配给在所述指令缓冲器内的所述条件跳转指令的空间到达所述读出位置之前。
11.根据权利要求10的方法,其特征在于,在所述条件满足的错误预测的事件下,从处理器中清除指令只涉及在所述条件跳转指令后顺序读入的处理器内部指令,而不管这些指令是在指令处理操作中的什么地方找到。
12.包括变换单元的处理器,该变换单元被适应变换读入该处理器内的处理器外部代码指令为处理器内部代码,其中读入所述处理器的处理器外部指令可以产生一系列不同的处理器内部指令,其中某些可以包含所述条件跳转指令,其中该条件的满足决定顺序紧接所述条件跳转指令的后继指令是否应由所述处理器处理或在处理器内部指令的所述序列中是否应进行跳转,这意味着根据所述条件跳转指令后继处理器内部指令将从所述序列中的某另一地方或从后继变换的处理器外部指令读入,其中该处理器还包括一个指令缓冲器,其内可以给读入所述处理器的各指令分配空间,给这些空间一个相应于前述顺序次序的次序,其中至少在所述指令缓冲器中的最后位置构成从所述缓冲器的一个读出位置,其中所述处理器还包括一个处理单元,使其适应处理所述指令,其后处理结果可以存储在属于在所述指令缓冲器中所述指令的各空间,和包括一个检验单元,使其适应检验所述读出位置是否包括一处理结果,一读出单元,使其适应从所述读出位置读所述结果,一预测单元,使其适应预测一处理器内部条件跳转指令的条件的满足,其中使所述处理单元适应在所述条件跳转指令被读入后立即根据所述预测处理指令,一评估单元,使其适应确定为所述条件跳转指令的条件是否满足按照由预测单元给出的预测,和一个指令清除单元,使其适应在发现所述预测错误时从处理器中清除在所述条件跳转指令后已经读入并由所述处理器部分处理的那些指令,其特征在于,所述处理器包括一结果指示单元,使其适应指示由处理一条件跳转指令得到的结果何时存储在所述指令缓冲器内为所述条件跳转指令分配的位置;使所述评估单元适应当结果指示单元指示在处理所述条件跳转指令时得到的结果可用时取该结果,从而能够确定所述处理器内部条件跳转指令的条件是否已满足根据由所述预测单元给出的预测。
13.根据权利要求12的处理器,其特征在于,使所述指令清除单元适应在从所述评估单元接收到指示所述条件满足的所述预测是错误的信号时从所述处理器中清除在所述条件跳转指令后顺序读入的那些处理器内部指令,而不管这些指令是在指令处理操作中的什么地方找到。
14.根据权利要求12的处理器,包括一个顺序号码发生器,其特征在于,使所述指令清除单元适应响应来自所述评估单元表示所述条件满足的所述预测是错误的信号,从所述处理器中只清除其顺序号码在所述条件跳转指令的顺序号码后产生的那些处理器内部指令,而不管这些指令是在指令处理操作中的什么地方找到。
全文摘要
本发明涉及处理计算机处理器(1)内条件跳转指令的方法。为读入该处理器内的各指令在所谓的指令缓冲器(3)中分配空间。给这些空间相应于指令被顺序读入的次序的次序。指令缓冲器中的最后位置构成一个读出位置(4)。在处理各指令时得到的结果可以保存在指令缓冲器(3)中分配给这些指令的空间内,从中最后可以从读出位置(4)读出这些结果。
文档编号G06F9/32GK1271434SQ98809339
公开日2000年10月25日 申请日期1998年7月7日 优先权日1997年7月21日
发明者C·T·罗斯, L·-E·伦德斯特伦 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1