CN1004234B - 增强的中央处理器(cpu)微转移结构 - Google Patents
增强的中央处理器(cpu)微转移结构 Download PDFInfo
- Publication number
- CN1004234B CN1004234B CN85101313.9A CN85101313A CN1004234B CN 1004234 B CN1004234 B CN 1004234B CN 85101313 A CN85101313 A CN 85101313A CN 1004234 B CN1004234 B CN 1004234B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- microcode
- micrometastasis
- order
- test condition
- 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
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种中央处理器中执行微码转移的硬件能以两种不同速度进行微码转移,并在转移中具有有选择地禁止进入流水线的附加行的灵活性。对于尚未达到的检测结果可使用一条试探性的转移通道,而且在时钟暂停期间,如果检测结果是错误的,该试探性通道可通向正确的转移目标。有一个返回堆栈,其装入和下推是相分离的以适应转移的两种速度。微码可以用文字或寄存的数值装入到返回地址堆栈,并在一个延迟调用之后允许在指定行上进行向量化的转移和返回。
Description
本发明涉及的是各种数据处理系统的中央处理器。更具体地讲,本发明涉及的是在数据处理系统的中央处理器中所用到的各微指令组的微转移和执行微转移的硬件。
微转移的概念,即在数据处理系统的中央处理器中微指令的微码级范围的转移,这个概念在先有技术领域中是众所周知的。人们知道在数据处理系统的中央处理器中,可以根据选定检测条件下选择的结果来执行微转移。在使用流水线结构的数据处理系统中,实现微转移可以根据检测的结果来进行。而这些检测结果是在执行微指令中不同级别的微码字段的过程中得到的。某些先有技术中,系统只有做“快”转移的能力,即转移所根据的检测结果是在执行给定的微指令中第一级微码字段时读出的。其他系统则仅有做“慢”转移的能力,即是根据执行微指令中第二级微码产生的检测条件的结果。在先有技术中,如能够执行微转移的系统还具有禁止引起转移的微码行后的其他微码行进入流水线的功能。禁止后面微码行执行的必备条件取决于该微码所执行的功能以及它是否与由CPU根据该微码检测条件的结果实现的相兼容。
这些作为先有技术的微转移结构方案不仅为系统的设计人员提供了灵活性,并且还可能设计出这样一种系统,它能够作出更多的判定,从而能够作更高级的概括,尽管如此,系统硬件的设计以及其工作过程仍可作出改进。
例如,不能既可执行快转移又可执行慢转移的系统,就不如两种转移均可执行的系统灵活。这样的系统一般不能在任意特定的时间内进行一个以上的检测,甚至不能在执行任意一个微指令时进行一个以上的检测。在这样的系统中,有些系统仅能做快微转移,有些系统仅能做慢微转移。只能做快微转移的系统不能根据现行微指令执行第二级时所产生的条件完成转移。造成这一缺点的明显原因是请求执行转移的判定条件,是在转移部件所进行检测的晚一个时间周期上发生的。
另一方面,仅能执行慢转移的系统则必须多等一个时钟周期。以便得到第二级微码指令产生的转移条件,这样在执行转移目标的微码之前,便失去了一个时钟周期。
执行慢微码转移的先有技术的另一缺点是:系统缺乏有选择地禁止在做出转移判定之前进入流水线的一行或两行微码行的灵活性。同样,那些能完成快速微转移的先有技术系统,则缺乏有选择地禁止在做出转移判定之前进入流水线的现行行或下行微码的一行或两行的灵活性。
进一步讲,一个根据已经得到的检测条件做出微转移的判定之后,还能允许执行数行微码的先有技术系统,一般均不能在调用一条子程序后再返回到除产生转移的微码行处的一条微码行上。
目前所使用的微转移部件的又一个缺点是:先有技术中为执行快速和慢速微转移用到的硬件,一般都不能相互校验。除非使用附加的校验部件。
再之,不论执行哪一种微转移的系统,普遍要采用一个返回地址堆栈,系统将该堆栈作为一个向量为处理器指出一个返回地址,以便使转移发生前正在执行的微码继续运行。本发明的发明人了解到在先有技术中返回地址的结构,都具有共同的特点,即装入返回地址是和堆栈的循环相联系的。这就导致灵活性的减小和中央处理器硬件费用的增加。
因此,本发明的一个目的就是为既能做快转移又能做慢转移的中央处理器提供一种结构。
本发明的另一目的是提供一种微转移结构。该结构在执行任一条微指令时,可以进行一个以上的检测。
本发明的又一目的是提供一种微转移结构;该结构能够在做微码慢速转移时禁止一行或两行微码进入流水线。
本发明的再一目的是提供一种微转移结构;该结构能够在做快速微转移时禁止现行或下行微码行中的任一行或两行进入流水线。
本发明的进一目的是提供一种微转移结构;该结构既可以执行流水线中的微码行,又可以调用一条子程序,并且在从子程序返回时,仍可执行控制存储器中任一行的微码。
本发明的另一目的是提供一种微转移结构;该结构能够执行快速和慢速两种微码转移,并且有对快速和慢速两种微码转移硬件的操作进行相互校验的功能。
本发明的还一目的是提供一个在执行微转移时所用的返回地址堆栈,其返回地址的装入可以与堆栈的旋转无关。
对于本发明的所有这些目的,本领域中具有一般技术水平的人只要研究一下本发明的说明书、附图及权项便会明了。
本发明所公开的是在一个CPU中为执行微转移所使用的一种结构。该结构可以有选择地执行在控制存储器的下一行微码,或是执行一行由某向量所指出的微码,该向量是在执行现行微指令的第一级微码时,产生了正的检测结果而出现的,该向量也可根据现行微指令的第二级微码的执行结果而出现。当两个检测条件都得到了满足,即执行第一级微码和执行第二级微码时所完成的检测均证明是正确的,则执行第二级微码的结果所指出的转移地址而优先于另一个地址。
如果选中了某一微转移,则对那些自引起微转移的指令起进入流水线的指令可以全部予以禁止或禁止其中任一条,或均不被禁止。
另外,一个硬件逻辑附加块可以使系统继续工作,即假定判定结果是不做微转移。而是继续装入流水线;但如果该假设不正确,系统可纠正错误,并在稍后的时间内,在该微转移的地址上设置另一个向量。在该地址被取出和装入期间,暂停电路将停止系统的其它时钟。
当判定是微码调用时,就将返回地址放在返回地址堆栈上,该返回地址不一定就是产生微转移时挂起的那一地址,也可能是控制存储器中的任一地址。返回地址装入堆栈与堆栈的旋转无关。
图1是本发明较佳实施方案中一个双速微转移硬件的框图。
图2是在微转移已发生后,能够随意禁止流水线中操作的硬件运行的框图和逻辑图。
图3是执行微转移的错误假设做出后,重新引回到正确地址的硬件逻辑图,其中包括在引回进行时用于暂停系统时钟的硬件。
图4是根据本发明设计的一个返回地址堆栈的较佳实施方案框图。
图5是执行微转移判定的硬件框图,该判定可从若干个检测条件中进行选择。
微转移是一种机器执行微码的功能。该功能指可禁止顺序执行下行微码,而去执行根据某种检测条件结果产生的向量指定的另一系列指令。本发明与未决专利申请中所描述的中央处理器硬件连用时将显得特别有用,这里特别说明一下正未决专利申请,其序列号为537877;537429;537041;和537038,申请日为1983年9月29日。
微指令一般是从控制存储器中读取的,只要将所要求的微指令地址放在控制存储地址总线上就可将其取出。首先参见图1,在本发明中,微码行的地址是呈现在控制存储总线10上,该总线的宽度可以根据需要而定,但要与系统中地址位的数目相适应。控制存储总线10是由控制存储地址总线4∶1多路转换器(4.1MUX)12驱动。多路转换器12从三种数据源中进行选择;经连线16从控制存储地址寄存器(CSAD)14;经连线20从快速微转移寄存器(FAST)18;和经连线24从慢速微转移寄存器22中获得数据。
在进行连续微指令操作时,即当未发生微转移时,控制存储总线10经连线26返馈,并在递增电路28中加1,且在该系统的下一个时钟之后送回到控制存储地址寄存器14中。这样在正常工作时,控制存储器地址总线10上的地址要比上一次在此总线上的地址大1,且该地址是存放在控制存储器的地址寄存器14中,并经连线16与多路转换器12相连。
但是,在要求微转移时,多路转换器12就从快速微转移寄存器18或慢速微转移寄存器22中选择一个向量地址。这种选择是根据慢满足检测(SMET)触发器30和快满足检测(FMET)触发器32的状态来定的,这两种触发器经连线34和36分别驱动多路转换器12的选择输入口A和B。如图1所示,控制存储地址寄存器14,慢速微转移寄存器18,慢速微转移寄存器22,SMET触发器30和FMET触发器32均是由该系统的时钟经连线38所驱动的。
SMET触发器30和FMET触发器32都是由多顶检测条件40之一的结果所驱动的,而这些检测条件经多路连线42加到慢速检测选择器44上,再由慢速检测选择器经连线46驱动SMET触发器30,另外还加到快速检测选择器48上,再由快速检测选择器经连线50驱动FMET触发器32。这方面的有关内容将结合图5给以进一步解释。慢速检测选择器44和快速检测选择器48均根据预先编好的微码字段的内容,从多路连线42上的各检测条件40中进行选择。慢速检测选择器44使用该微码第二级的微码字段,从各检测条件40中选出它所要做的条件。快速检测选择器48则使用第一级微码中的微码字段从各检测条件40中,选出它要执行的检测条件。
使用这一样设置的硬件,可以根据慢速或快速检测的结果做出推测,即在执行第一级微码字段时进行测试或是在启动第二级微码字段期间做检测来做出推测。这样,微转移的初步判定便可在得到检测的实际结果之前做出。虽然这种硬件功能明显地加快了系统的运行。但这种推测很可能是错误的,如果做出了一项错误的推测,该系统的时钟则可以暂停,同时将一个正确的向量加到控制存储地址总线10上。这一功能是由暂停逻辑块56来完成的。暂停逻辑块56经连线58接至慢速检测选择器44;或通过连线60接至快速检测选择器48上,这样可将推测所做的判定给予最终判定。加在连线62上的一个附加信号禁止各选中寄存器的时钟,直至替换了正确的向量。暂停逻辑块56的操作将结合图3给以进一步解释。
对快速微转移寄存器18和慢速微转移寄存器22的向量选择是由多路转换器完成的。具体地讲,多路转换器(MUX)64经连线66给快速微转移寄存器18加入一个向量,而多路转换器(MUX)68经连线70给慢速微转移寄存器22加入一个向量。多路转换器64和68具有几种信息源,多路转换器64和68可经连线74从返回地址堆栈(RAS)72中得到一个向量,多路转换器64还可以从第一级微码字段的某一部分中得到一个向量,这是经连线78从水平控制存储器(HCS)76的输出端得到的。由此可见,加到快速微转移寄存器18上的向量是由第一级微码的某一部分给出的,而该级微码的另一部分则给出了可能造成这个向量被选中的检测条件。
多路转换器68可经连线82从第二级寄存器(R2REG)80的输出端得到一个来自第二级微码某一部分的向量。这样,第二级微码字段的一部分可给出该系统转移的向量,而此转移是根据也是由该第二级微码的另一部分给出的某一特定的检测条件所得结果作出的。
在执行慢速转移指令和转移目标行之间,将有两行微码可能进入流水线,使用本发明的硬件,可以作出判定禁止这两行微码的进入或禁止其中一行,或两行均不禁止。同样,在进行某一快速微码转移时,也可以做出判定来禁止现行代码行的操作,或者下行代码的操作,或者是两者均不禁止。负责完成这种功能的硬件是空操作指令发生器(NOP GEN)84,它可经连线86和88分别产生NOP1和NOP2两种信号。NOP发生器84所做出的判定是根据慢满足检测触发器30和快满足检测触发器32的输出条件,以及经连线90来自第二级寄存器80的第二级微码的一位字段,和经连线94来自第三级寄存器92的第三微码的一位字段。
确定哪一个向量要由多路转换器64和68来选择,是分别靠第一级和第二级微码的字段来控制的。
如图1所示,在连线38上的时钟脉冲,通过多路转换器12将快速微转移寄存器18或慢速微转移寄存器22的内容,或是控制存储地址寄存器14中的内容送至控制存储总线10上。很显然控制存储地址总线10的内容将随着下一个时钟脉冲被记录到第一级地址(RIADR)寄存器96中。寄存由这一信号所取出的控制存储器的内容所用到的时钟脉冲与上相同。这样,在任一给定的时刻上,RIADR96的内容即为一个向量,它指出执行的微码是存放在第一级寄存器中,因此RIADR96的内容也是一个向量,用以标定微码转移执行后的返回地址。
RIADR96的内容是经多路转换器(MUX)98而到达返回地址堆栈(RAS)72的。由于该返回地址堆栈72的输入是经多路转换器98,因此就有一个与原来放在R1地址寄存器96中不同的向量置入该返回地址堆栈中。所示出的多路转移器98还有另一输入端,是来自SK总线100。该SK总线100在未决专利申请的图1中示出,其序号为537877。申请日为1983年9月29日。
实现本发明的增强微转移能力的方法之一是采取一种能指向所要执行微指令中的微码的措施。为此目的,访问慢速微转移寄存器22的多路转换器68也可由保存有将要执行的微指令的一个向量的入口表提供数据。因此,本发明的转移能力即包含有指向这一指令的微码的能力。
在转移指令进入流水线和做出要转移判定之间内,将会有代码进入流水线。本发明的硬件较佳实施方案能够有选择地禁止这些代码进入流水线。由于这些指令并非总是要求禁止,所以其选择能以微码的形式有选择地编为代码。
现参见图2,这是为有选择地禁止各行代码所用到的硬件方框图。对这种禁止结构给予了说明。在执行转移微码中的两位字段。即前不操作位字段(ENOP)102和后不操作位字段(LNOP)104。均能被选用来禁止微码行。如果出现了一个快速转移,ENOP字段102会禁止现行行的第二级微码操作;如果是一个慢速转移。ENOP102则禁止下一行代码的第二级操作。如果是一个快速微转移,LNOP字段会禁止在流水线中的下一行微码。而如果是一个慢速转移。LNOP字段则会禁止在流水线中更一级微码行的第二级操作。
102和104微码位,随其它微码字段一起,根据连续的时钟周期。通过第二级寄存器(R2REG)80和第三级寄存器(R3REG)92。当这两位微码处于流水线中的第二级时,它们与快满足检测触发器(FMET F/F)32一起,来决定哪些微码行需要预以禁止。当这两位微码位于流水线的第三级时,它们就与慢满足检测触发器(SMET F/F)30一起,来决定哪些微码行需要预以禁止。
在图2示出的较佳实施方案中,由于做出判定的硬件是以与门为基础的,所以很明显如果快满足检测触发器32和慢满足检测触发器30均未置位(即没有保持逻辑1),没有转移被选中,那么所有的微码行都不会被禁止。但是如果这两个触发器中的任意一个或两个都被置位了,那么禁止微码行的判定完全以该微码的ENOP102和LNOP104部分起作用,如果此两位码均不是逻辑1,则没有微码行要预以禁止。但是如果这两行中有一行或二行均是逻辑1,禁止部件的运行情况如下。
做快速转移的情况是,假设快满足检测触发器32已经置位。这样地106和108两个与门输入端之一上将出现一个“1”。如果LNOP位104已经置位,则与门106的输出端出现一个“1”来禁止下一行微码的信号。如果ENOP位102已经置位,则与门108的输出端出现一个“1”,这是要禁止现行微码行的信号。无论SMET触发器30的状态如何,与门106输出端一个逻辑“1”的出现将导致或门110输出端出现一个逻辑“1”,这样NOP1信号112也成为逻辑“1”。NOP1信号112是用来禁止作为第一级微码选件的一结果而进行的操作。或门110的输出要送至触发器114的D端输入端。触发器114经过一个时钟周期延迟后,将或门110输出端的逻辑1送至或门116输入端,再至NOP2输出端118。NOP2输出端118是用来禁止该微码的所有第二级操作。
当慢满足检测触发器30的输出端已出现一个逻辑“1”时,该逻辑“1”就被送到与门120和122。在第三级寄存器中的ENOP位102处出现的一个“1”将使与门122工作。与门122的输出是禁止下条微指令的信号,它要被送到产生连线118上的NOP2的或门116处。如果位于第三级寄存器中的LNOP位104已被置位。它将通过与门120在或门110的输出端置入一个“1”,以得到112的NOP1输出,在一个时钟脉冲之后这位“1”通过触发器114并经或门116至NOP2的输出端。
本发明较佳实施方案中,对于尚未得出的检测结果可先做推测;根据这些推测的结果可以做出微转移判定。即然是推测,难免有做出的推测最终发现却是错误的情况。本发明的硬件通过图1中的暂停逻辑块56将正确的值分别放在SMET触发器30和FMET触发器32中,它又将正确的地址通过4∶1多路转换器12置于控制存储地址总线上,并将NOP1和NOP2的正确数值置于连线86和88中。
参见图3,现所描述的是在暂停期间用于指向正确地址的部件。
以一个可能做出的错误推测为例,引用一个用于存放指令或数据的高速缓冲器,在任一高速缓冲器中,如果所要求的数据或代码并未出现。会产生一个信号指出高速缓冲器“未命中”。
高速缓冲器和高速缓冲器“未命中”的硬件在本技术领域中是众所周知的,同时也不在本发明的范围内,为达到公开本发明的目的。可以假设高速缓冲器未命中信号是出现在连线200上的一个逻辑“1”。该逻辑“1”只有当微码字段指出进行推测时才通过与门202。用以指出该推测是用于慢速还是快速方式的此微码字段,被译码而产生分别出现于连线204和206上的信号。在此两条连线中出现一个逻辑“1”就表示做出过一个推测。无论出现哪个逻辑“1”,均能经或门208使与门202的第二个输入端打开。与门202的输出驱动触发器210的D输入端及与门212和214。表示曾做出过某一推测的连线204和206上出现的“1”,和与门202的输出相与而产生一个信号以指出当时在运行中的快速还是慢速检测操作应当预以废除,以便校正FMET32或SMET30触发器当前的值。与门212和214用此信号来决定是SMET30还是FMET32需要进行修正。
暂见图1,这些具有最终判定权的信号分别送入连线58和60。图3中的触发器210的作用是在时钟暂停之前,使当前正在执行中的时钟周期预以完成,以避免将此CPU闭锁。当然,在推测是错误的情况下,在正确的选择通过多路转换器12加到控制存储器地址的一个时钟周期内会有一个错误的向量出现在控制存储器地址总线10上。总线10上。除SMET30,FMET32,和触发器210之外,所有寄存器的时钟均停了一个周期。如图3所示,这是通过将反相器216的信号接至与门218,而产生禁止信号所造成的。
现参见图4,所示出的是返回地址堆栈的一个较佳实施方案。该返回地址堆栈可由若干多路转换器和寄存器所组成,多路转换器的作用是将寄存器连接成一个通道、闭环回路或返馈的方式。虽然在本领域中的熟练技术人员均知道,这种电路排列可有任意级,但图4所示的本实施方案是具有N级这种电路排列。
先参见多路转换器MUXO220,可以看出此MUXO220可经连线224将来自MUX98的信号装入返回地址堆栈RASO222,或经连线228接收返回地址堆栈寄存器RASN226的内容,或经连线230将其所属的RASO222的内容循环,也可经连线234接收RAS/232的内容。同样,MUX/236既可经连线238将来自MUX98的信号装入RAS/232上,也可经连线240接收RASO222的内容,或经连线242循环RAS/232的内容,还可经连线246接收RAS2244的内容。
仅有MUXO220和MUX1236这两个多路转换器才可接收来自MUX98的信号。此系统中所有其它的多路转换器则仅能接受上一个寄存器的内容,或循环它自己的寄存器的内容,或接收下一个寄存器的内容。按此种方法,各种数据就可下推进栈或上推出栈。或留于堆栈之中。
多路转换器的控制是通过一个选择逻辑器270在连线272上置入一个信号实现的。该信号控制了在返回地址堆栈中的所有多路转换器。并决定了各寄存器的流动方式。选择逻辑器270是由NOP1和NOP2的信号(该信号的产生方法已结合图2予以叙述)和SMET30及FMET32触发器(见图1)的输出所驱动的。另外,来自微码第二级部分的一个字段可经连线274送至选择逻辑器270处。
堆栈的操作过程如下,一般选择逻辑器270使各堆栈寄存器形成自身循环,在某个子程序被调用时,一个返回地址就被送入此堆栈的RAS0或RAS1中,这取决于出现的是快速还是慢速调用。选择逻辑器270给堆栈的各多路转换器一定的条件使其将堆栈各寄存器的内容向前推进。微码决定了是RIADR寄存器96还是SX总线100的内容要送入椎栈。
如果出现的是慢速子程序调用,则当此调用指令处于执行的第二级时,微码字段274就使MUX0装入RAS0。如果SMET触发器已经置位,则在下一个时钟脉冲时,堆栈才被下推。
与此相似,如已出现的是快速调用,则当此调用的指令是位于执行的第二级时,MUX1便会被驱动并装入到RAS1,但与慢速调用不同的是,除非FMET触发器32已经置位否则装入和下推均不会发生。
从图4可以看出,装入或下推操作是相互分开的。通过使用该种堆栈,便可不必使用此种硬件,即通常应该提供一个返回地址附本直至该转移判定已经完成的硬件。
堆栈的上托,或从子程序调用返回的操作如下。
在慢速返回中,微码字段274与SMET触发器30一起,通过选择逻辑器270使堆栈的各多路转换器将寄存器中的内容上推出栈(也称为上托)。这一动作的发生是在该返回地址的指令处于执行的第三级时且SMET触发器已经置位的时候。RAS1232的输出在堆栈上托前的一个时钟脉冲时加于多路转换器64中。
与此相似,在快返回时当该返回指令处于执行的第二级且FMET已经置位时,便将堆栈上托。应该注意的是,由于是流水线作业,下推和上托之间会发生冲突。在这种冲突情况下,两者均不会出现,但装入却可进行。
如果在快速、或慢速调用或返回的第二级执行期间,在选择逻辑器270的输出端出现了NOP2的信号,这时无论是装入、下推或上托均不会发生。
这种堆栈的另一种设计方案,是使用了双端口寄存器组件,它可将数据存入堆栈且从堆栈中读出数据时将所用的地址指针分开。
现参见图5,这是一个用于快速和慢速检测选择的检测选择逻辑框图。这些模块的操作过程如下。如图5所示,图中40处大量的检测条件被送入多路转换器(MUX)302的输入端。选择哪一个输入使其通过多路转换器302是由图示304处该微码第一级中的一个微码字段完成的。多路转换器302的输出经连线306被送入2∶1优先多路转换器(2∶1MUX)308的一个输入端。2∶1多路转换器308的另一输入源则来自微码的一个字段,它决定满足该检测条件的是正的为“真”还是负的为“真”。多路转换器308由有最终判定权的输入端58或60来驱动,这取决于该部件所代表的是慢速选择器还是快速选择器。多路转换器308的输出是满足检测线46或50,这取决于正在讨论的是哪一个模块。至此,本领域中的熟练技术人员可以看出,大量检测条件中的任一个均可分别用于将SMET30或FMET32触发器置位,其条件的选择完全靠该微码来控制。某一最优条件的出现,是上一行微码对检测条件选择的结果。
Claims (33)
1、一种用于数据处理系统的中央处理器,包括在多级时序流水线中执行微指令来进行运算的宏指令器和能够在单一微指令执行流水线的多阶段期间进行多次检测并能在基于多次检测输出时间的不同点处进行多次转移的微转移执行装置;其特征在于包括:
第一检测装置,用来确认在第一级微码执行期间所检测到的。表明第一种微转移应该立即执行的多个第一测试条件中选定的一个是否已经满足,并且无需进一步检测;
第二检测装置,用来确认在第二微码执行期间所检测到的、表明第二种微转移应该立即执行的多个第二测试条件中选定的一个是否已经满足,无需进一步检测,上述第二微码的执行在时间上出现在上述第一级微码执行之后。
第一指示装置,它响应于上述第一检测装置。当上面选定的测试条件满足时,它表现一个第一状态;当上述选择的测试条件未满足时,该装置又表现为一第二状态;
第二指示装置,它响应于上述第二检测装置,当上面选定的测试条件满足时,它表现为一第一状态,当上面选定的测试条件未满足时,它又表现为第二状态;
第一寄存器装置,如果微转移未被执行,则它保存代表要执行的下一个微指令地址的第一数据;
第二寄存器装置,如果一个上述的第一种微转移被执行,则它保存代表要执行的下一个微指令地址的第二数据;
第三寄存器装置,如果一个上述的第二种微转移被执行,则它保存要被执行的下一个微指令的地址的第三数据;
第一选择装置,它响应于上述第一和第二指示装置,将下列三种内容选择为要被执行的下一个微指令地址:
(a)上述第一寄存器装置的内容(如果上面选定的第一和第二测试条件都不满足),
(b)上述第二寄存器装置的内容(如果上面选定的第一测试条件已经满足及上面选定的第二测试条件未被满足)。
(c)上述第三寄存器装置的内容(如果上面选定的第二测试条件得到满足)。
2、权利要求1所述的装置,还包括:
·用于上述第二寄存器装置的第一组数据源;
·第二选择装置,它响应于实现微转移的微指令中的第一微码字段,用来为上述第二寄存器装置从上述第一组数据源中选择一个数据源;
·用于上述第三寄存器装置的第二组数据源;
·第二选择装置,它响应于实现微转移的微指令中的第二微码字段,用来为上述第三寄存器装置从上述第二组数据源中选择一个数据源;
3、权利要求2所述的装置,其中:
·上述第一组数据源包括一个返回地址堆栈和第三微码字段;
·上述第二组数据源包括上述返回地址堆栈和第四微码字段。
4、权利要求1的装置,还包括:
微码行禁止装置,它响应于执行微转移的微指令中的一个禁止微码字段和响应于上述第一和第二检测装置,用以在上面选定的第一或第二测试条件满足时,在上述流水线中有选择地禁止微码中的一行或几行的执行。
5、权利要求1中的装置,还包括:
用于在上述第一或第二检测装置检测之前对上面选定的第一或第二测试条件的结果进行预测的预测装置,包括用于指明预测是否已经作出及指明上述判断是对上述选择的第一还是对第二测试条件所作的装置,在当上述第一测试条件被选中时上述预测装置使上述第一指示装置表现为与上述第一测试条件的上述预测的结果相对应的上述第一或第二状态中的一个,当上述第二测试条件被选中时,上述判断装置使上述第二指示器装置表现为与上述第二测试条件的上述预测结果相对应的上述第一或第二状态中的一个;
误差指示装置,它响应于上述判断装置和上述第一及第二检测装置,用以指明上述预测是否正确;
校正装置,它响应于上述误差指示装置和上述第一和第二检测装置,上述选定的测试条件满足时,它使受到上述预测影响的上述第一和第二指示装置之中的一个表现为上述的第一状态;当上面选定的测试条件不满足时,又使上述第一和第二指示装置之中的一个表现为上述的第二状态。
6、用于在一个数据处理单元的中央处理单元中实行微转移的装置,包括:
第一选择装置,它响应于微指令的第一微码字段,在第一种转移的多个微指令地址中进行选择,并把从上述微指令地址中的选出的一个送入第一存贮单元;
第二选择装置,它响应于微指令的第二微码字段,在第二种转移的多个微指令地址中进行选择。并将从上述微指令地址中选出的一个送入到第二存贮单元;
第一测试装置,用来为上述第一种转移测试多个测试条件中选定的一个的存在;
第二测试装置,用来为上述第二种转移测试多个测试条件中选定的一个的存在;
第三选择装置,用以根据上述第一和第二测试装置从上述第一、第二和第三存贮单元中选定的一个中选择出下一个要被执行的微指令的地址。
7、权利要求7的装置,其中第一选择装置在上述第二选择装置前进行工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN85101313.9A CN1004234B (zh) | 1985-04-01 | 1985-04-01 | 增强的中央处理器(cpu)微转移结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN85101313.9A CN1004234B (zh) | 1985-04-01 | 1985-04-01 | 增强的中央处理器(cpu)微转移结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN85101313A CN85101313A (zh) | 1987-01-10 |
CN1004234B true CN1004234B (zh) | 1989-05-17 |
Family
ID=4791763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN85101313.9A Expired CN1004234B (zh) | 1985-04-01 | 1985-04-01 | 增强的中央处理器(cpu)微转移结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1004234B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101926299B1 (ko) * | 2018-02-12 | 2018-12-06 | 조영하 | 자전거용 타이어 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6000029A (en) * | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for affecting subsequent instruction processing in a data processor |
US7130988B2 (en) * | 2002-11-15 | 2006-10-31 | Via-Cyrix, Inc. | Status register update logic optimization |
-
1985
- 1985-04-01 CN CN85101313.9A patent/CN1004234B/zh not_active Expired
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101926299B1 (ko) * | 2018-02-12 | 2018-12-06 | 조영하 | 자전거용 타이어 |
Also Published As
Publication number | Publication date |
---|---|
CN85101313A (zh) | 1987-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2750311B2 (ja) | データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 | |
US6247124B1 (en) | Branch prediction entry with target line index calculated using relative position of second operation of two step branch operation in a line of instructions | |
US4873626A (en) | Parallel processing system with processor array having memory system included in system memory | |
US4891787A (en) | Parallel processing system with processor array having SIMD/MIMD instruction processing | |
US4675806A (en) | Data processing unit utilizing data flow ordered execution | |
US4991078A (en) | Apparatus and method for a pipelined central processing unit in a data processing system | |
US5418970A (en) | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content | |
US5251306A (en) | Apparatus for controlling execution of a program in a computing device | |
US3702462A (en) | Computer input-output system | |
CA1223371A (en) | System for by-pass control in pipeline operation of computer | |
US5560028A (en) | Software scheduled superscalar computer architecture | |
EP0157125A2 (en) | Instruction prefetching device with prediction of a branch destination for each branch count instruction | |
US5060148A (en) | Control system for vector processor with serialization instruction for memory accesses for pipeline operation | |
US3654621A (en) | Information processing system having means for dynamic memory address preparation | |
US4631668A (en) | Storage system using comparison and merger of encached data and update data at buffer to cache to maintain data integrity | |
US4348724A (en) | Address pairing apparatus for a control store of a data processing system | |
US5297255A (en) | Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism | |
EP0284364A2 (en) | High speed computer system | |
CN1004234B (zh) | 增强的中央处理器(cpu)微转移结构 | |
US5907693A (en) | Autonomously cycling data processing architecture | |
US4360869A (en) | Control store organization for a data processing system | |
AU592717B2 (en) | Access priority control system for main storage for computer | |
KR880000341B1 (ko) | 중앙처리장치의 버스 소오싱 및 시프터 제어 | |
US5257385A (en) | Apparatus for providing priority arbitration in a computer system interconnect | |
KR100249536B1 (ko) | 다수의 버스를 서로 독립적으로 제어하기 위한 버스콘트롤러를 가진 데이터 처리기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C13 | Decision | ||
GR02 | Examined patent application | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |