修正管线作业微处理器中分支指令预测错误的装置制造方法及图纸

技术编号:2860546 阅读:193 留言:0更新日期:2012-04-11 18:40
一个在一管线作业微处理器中执行一有条件分支指令的装置和方法。早期分支修正逻辑电路检视早期状态旗标以侦测一错误的分支预测。早期状态旗标的产生响应到此分支指令的前的一指令,此早期状态旗标的产生早于结构状态旗标的产生,此早期状态旗标可能为有效或无效。如果此早期状态旗标为有效并且指出一错误预测,则此早期分支修正逻辑电路将改正上述错误预测。如果有位于上述早期修正逻辑电路阶段之后管线阶段因未完成更改旗标缓存器状态指令而变为无效,例如管线被清除后,则复制此结构状态旗标到早期状态旗标,即可令此早期状态旗标重新变为有效。如果结构状态旗标指出一错误预测而且上述早期分支修正逻辑电路并未修正此错误预测时,则晚期分支修正逻辑电路将修正此错误的预测。

【技术实现步骤摘要】

本专利技术是有关管线作业微处理器,特别指其中的早期执行指令。同步微处理器依时钟周期运作,一般而言,在一时钟周期内指令从微处理器管线的一阶段前进到另一阶段。在汽车生产在线,如某阶段的工作者因没有车子好工作而呈现空置的状态,生产线的生产或成效将降低。同样的,如果微处理器的一阶段因没有指令好执行而呈现空置的状态(通常称为管线空隙(pipeline bubble)),微处理器的成效将降低。一可能形成管线空隙的原因是分支指令,当遇见一分支指令时,微处理器必须决定目标地址然后开始取回在目标地址的指令,而不是此分支指令后的下一个顺序地址;再则,如果分支指令为有条件的分支指令(指依特定的状况是否存在来决定可否接受一分支),微处理器必须决定目标地址和是否接受此分支指令。因解决目标地址和/或分支结果(即分支是否会被接受)的管线阶段通常落后取回指令阶段许多,管线空隙因而产生。应付这样的问题,现代的微处理器通常利用分支预测的机制在管线早期阶段就预测目标地址和分支结果。微处理器的设计者持续努力设计更准确的分支预测器,但仍常有错误的预测。如先前提到,错误的预测必须在分支预测阶段的下一阶段就被侦测和修正。错误预测的代价是分支预测器和分支错误预测修正阶段之间的管线阶段数目的增加。因此,需要一个在管线早期阶段就修正有条件分支指令预测错误的装置和方法。再则,有条件分支指令指明如满足一分支状况时,将命令微处理器分支至分支目标地址;否则,微处理器将继续去取回下一个顺序指令。微处理器包含储存状态的状态旗标缓存器,检视状态旗标缓存器以确认有条件分支指令指定的状态是否被满足。所以,为了能最终决定一有条件分支指令是否被错误预测,微处理器需要检视状态旗标缓存器的最新状态。然而,以目前的情况,一直要到管线末端才能检视状态旗标缓存器的状态以确认分支状况是否被满足及分支预测是否正确。因此,需要一个能在早期就产生状态旗标缓存器的装置和方法。最后,状态旗标缓存器的状态一般而言被有条件分支指令之前的指令结果所影响。例如,状况可能是传达旗标缓存器(状态旗标缓存器的一种)是否有被设定,传达旗标缓存器的状态可被最新的加指令结果所决定。然而,目前可影响状态旗标缓存器的指令结果在执行单位中产生,此执行单位被设在微处理器较后面的管线阶段。因此,需要一个能在早期就产生指令结果的装置和方法。
技术实现思路
一方面,本专利技术提供一个在一具有管线作业的微处理器中执行早期修正一有条件分支指令的装置和方法。一分支预测器在管线早期就预测此有条件分支指令的结果,并依照预测结果,此微处理器可分支到预测的目标地址或取回下一个指令。预测与此分支指令一同在管线中输送。本装置包含早期分支修正逻辑电路,其位于晚期分支修正逻辑电路的前一个阶段。当此分支指令抵达时,上述早期分支修正逻辑电路检视分支指令指定的状况码,并判定其所指定状况是否在早期状态旗标缓存器中被满足,才能决定预测是否有误。早期状态旗标的产生是响应此分支指令之前的指令。早期状态旗标是由上述的早期旗标产生逻辑电路产生,它比此微处理器中产生结构状态旗标的执行单位更早产生,早期状态旗标缓存器可能为有效或无效。如果早期状态旗标缓存器有效和指出预测为错误,此早期分支修正逻辑电路将改正错误的预测。如预测分支且并未达到早期状态旗标缓存器指示的条件,此早期分支修正逻辑电路将修正错误的预测,清除(flush)管线(指将管线中至少一阶段中的指令给去除以使得这些阶段中没有指令)和将微处理器分支到此有条件分支指令的下一个指令。如果预测不发生分支且达到早期状态旗标缓存器所指示的条件,则此早期分支修正逻辑电路将修正错误的预测,清除管线和将微处理器分支到分支目标地址。另一方面,早期状态旗标的产生是对应到此有条件分支指令之前的更改旗标缓存器状态指令的早期结果,早期结果可能有效或无效。如果一更改旗标缓存器状态指令的结果被无效化,则早期状态旗标将被无效化。如所有的(如有的话)更改旗标缓存器状态指令在早期分支修正逻辑电路的下有更改状态旗标缓存器,结构状态旗标缓存器将被复制到早期状态旗标缓存器而使早期状态旗标缓存器再变为有效。此事件发生的的时机,诸如当管线被被清除时,是在分支错误预测修正期间。另一方面,一表示上述早期分支修正逻辑电路是否已修正错误预测的指示,被输送到晚期分支修正逻辑电路。当此有条件分支指令接着抵达晚期分支修正逻辑电路时,如果结构状态旗标缓存器显示预测错误且早期分支修正逻辑电路并未修正错误的预测,则晚期分支修正逻辑电路就会修正错误的预测。另一方面,早期执行逻辑电路会产生此有条件分支指令的前指令的早期结果。早期执行逻辑电路置放在产生最终指令结果的执行单位之上,早期执行逻辑电路被设定执行微处理器指令集中的一子集合。特别是,早期执行逻辑电路被包含在管线的一地址阶段,并且此早期执行逻辑电路包含一地址产生器以加强经常执行的指令的速度。在一实施例,早期执行逻辑电路包含执行一般、快速演算、布尔(Boolean)和移位(shift)运算。如果早期执行逻辑电路产生的早期结果是先前指令的结果且早期执行逻辑电路并未产生有效的结果,则早期结果将被无效,以及如果上述指令是更改旗标状态指令,则早期状态旗标将被无效化。另一方面,早期结果存放早期缓存器文件中,它的缓存器对应到此微处理器的结构缓存器文件,和对应到位于早期缓存器文件中的每个缓存器的有效指示。早期缓存器文件提供早期结果当作操作数给早期执行逻辑电路/地址产生器以产生早期结果。如果早期缓存器文件提供一无效的输入操作数给早期执行逻辑电路,产生的早期结果将无效,以及如果指令是更改旗标状态指令,则早期状态旗标将被无效化。附图说明图1为根据本专利技术的一管线作业微处理器的一方块图;图2为详细说明示于图1的本专利技术所提供的管线作业微处理器的R-阶段、A-阶段和J-阶段的一方块示意图;图3为说明示于图1与图2的本专利技术所提供的结构缓存器文件、早期缓存器文件、结构状态旗标缓存器和早期状态旗标缓存器(图1、2)的一方块示意图;图4为根据本专利技术图2示出的用于产生早期结果和早期状态旗标的装置的一流程示意图;图5为说明本专利技术的图2示出的装置恢复和令早期状态旗标缓存器142有效的流程示意图;图6为说明本专利技术所提供的微处理器执行早期分支指令修正的一流程示意图;以及图7为说明本专利技术所提供的微处理器执行晚期分支指令修正的一流程示意图。100 管线102 I-阶段104 F-阶段106 X-阶段108 R-阶段112 A-阶段114 J-阶段 116 D-阶段118 G-阶段122 H-阶段124 E-阶段126 S-阶段128 W-阶段132 分支预测器134 结构缓存器文件136 早期缓存器文件138 早期执行逻辑电路/地址产生器142 早期状态旗标缓存器144 早期分支修正逻辑电路146 执行单元148 晚期分支修正逻辑电路152 早期结果总线154 第一控制输入156 第二控制输入158 结果总线162 结构状态旗标缓存器202 更改旗标指令存在信号204 目的地标签206 指令208 分支预测选择信号212 早期旗标产生/控制逻辑电路214 来源操作数卷标信号216 目的地操作数卷标信号218 本文档来自技高网
...

【技术保护点】
一个修正管线作业微处理器的分支指令的预测装置,在此预测微处理器的结构状态旗标缓存器中,分支指令所特定的分支状况是否满足,包含:早期状态旗标缓存器,对应并储存一个比结构状态旗标缓存器状态较新的状态,此早期状态旗标缓存器拥有一个有效性指 示器;和早期分支修正逻辑电路,用来在有效性指示器指示早期状态旗标缓存器是有效的并且早期状态旗标缓存器指示预测有误时,修正分支指令的预测。

【技术特征摘要】
US 2004-2-4 10/771,6821.一个修正管线作业微处理器的分支指令的预测装置,在此预测微处理器的结构状态旗标缓存器中,分支指令所特定的分支状况是否满足,包含早期状态旗标缓存器,对应并储存一个比结构状态旗标缓存器状态较新的状态,此早期状态旗标缓存器拥有一个有效性指示器;和早期分支修正逻辑电路,用来在有效性指示器指示早期状态旗标缓存器是有效的并且早期状态旗标缓存器指示预测有误时,修正分支指令的预测。2.如权利要求1的装置,其特征在于,还包括晚期分支修正逻辑电路,连接到早期分支修正逻辑电路,用来在结构状态旗标缓存器指示预测有误和早期分支修正逻辑电路未能修正错误的预测时,修正分支指令的预测。3.如权利要求2的装置,其特征在于,还包括一个执行单位,连接到晚期分支修正逻辑电路,用来产生储存在结构状态旗标缓存器中的值。4.如权利要求3的装置,其特征在于,其中执行单位产生的值是依据有效来源操作数所产生的。5.如权利要求2的装置,其特征在于,其中早期分支修正逻辑电路是在管线微处理器的第一阶段被执行,而晚期分支修正逻辑电路是在管线微处理器的第二阶段被执行,其中第二阶段接在第一阶段之后。6.如权利要求1的装置,其特征在于,其中结构状态旗标缓存器储存微处理器的程序可见状态。7.如权利要求1的装置,其特征在于,其中结构状态旗标缓存器的更新,仅依据微处理器确定会完成的指令结果。8.如权利要求1的装置,其特征在于,其中结构状态旗标缓存器的状态永远有效。9.如权利要求1的装置,其特征在于,在微处理器尚未确定是否保证完成指令时,早期状态旗标缓存器可依据此指令的早期结果更新。10.如权利要求9的装置,其特征在于,其中某特定指令被保证完成,如果微处理器决定在此特定指令之前的任何指令都不能再产生例外并且此特定指令之前的所有分支指令都最终被解决。11.如权利要求1的装置,其特征在于,还包括逻辑电路,连结到早期状态旗标缓存器,用以在某个在分支指令之前执行并用以指明状态旗标缓存器修改指令的早期结果为无效时,无效化早期状态旗标缓存器所储存的状态。12.如权利要求11的装置,其特征在于,其中如果早期结果的产生是依据一个或多个无效的来源操作数,分支指令之前的指令早期结果将无效。13.如权利要求11的装置,其特征在于,还包括早期执行逻辑电路,连结到逻辑电路,响应分支指令之前的一指令而产生早期结果。14.如权利要求13的装置,其特征在于,其中早期执行逻辑电路在管线微处理器的某特定阶段之前的某阶段被执行,在此特定阶段中一执行单元将执行该指令在分支指令所在阶段之前某阶段的最终结果。15.如权利要求13的装置,其特征在于,其中如果分支指令之前的指令不包括在早期执行逻辑电路可执行的指令组,分支指令之前的指令早期结果将无效。16.如权利要求15的装置,其特征在于,其中早期执行逻辑电路可执行的指令组小于微处理器可执行的指令组。17.如权利要求13的装置,其特征在于,其中早期执行逻辑电路还设定用以产生指令操作数的记忆地址。18.如权利要求11的装置,其特征在于,其中当微处理器的管线被清除时,逻辑电路复制结构状态旗标缓存器的内容到早期状态旗标缓存器的内容并且使得早期状态旗标缓存器有效化。19.如权利要求11的装置,其特征在于,其中当管线的第一和第二阶段之间没有任何指令需要修正状态旗标缓存器的内容时,逻辑电路将复制结构状态旗标缓存器的内容到早期状态旗标缓存器的内容,并使得早期状态旗标缓存器有效化。20.如权利要求19的装置,其特征在于,其中管线的第一阶段包含一个早期分支修正逻辑电路修正分支指令的阶段,其中管线的第二阶段包含一个晚期分支修正逻辑电路修正分支指令的阶段,其中当结构状态旗标缓存器指示预测不正确和当早期分支修正逻辑电路没有修正错误的预测时,晚期分支修正逻辑电路将修正分支指令的预测。21.如权利要求1的装置,其特征在于,其中早期状态旗标缓存器是有效的,如果早期状态旗标缓存器包含被每个未完成的管线指令所修正的结构状态旗标缓存器值,在此未完成的管线指令为早期状态旗标修正指令并且在分支指令之前。22.如权利要求1的装置,其特征在于,其中分支指令预测的修正,包含清除微处理器管线中在分支指令所在阶段之前的部份以及导引微处理器到一个修正的分支地址去取回指令。23.如权利要求22的装置,其特征在于,尚包含下列可能变化当此预测是预测分支指令被选择时,修正的指令地址包含顺序跟在分支指令后面指令的地址;以及当此预测是预测分支指令未被选择时,修正的指令地址包含分支指令指定的分支目标地址。24.如权利要求1的装置,其特征在于,其中结构状态旗标缓存器至少包含被储存在实质兼容于x86结构状态旗标缓存器的缓存器中的内容。25.如权利要求1的装置,其特征在于,其中分支指令包含一个x86结构的有条件分支指令。26.如权利要求1的装置,其特征在于,其中分支指令的预测包含一分支指令是否被选择的预测。27.如权利要求1的装置,其特征...

【专利技术属性】
技术研发人员:吉罗得M寇尔
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1