对非控制流指令减少分支检验制造技术

技术编号:13128837 阅读:67 留言:0更新日期:2016-04-06 14:22
本发明专利技术涉及对非控制流指令减少分支检验。一些微处理器在分支历史表和/或分支目标缓冲器中检验分支预测信息。要检验分支预测信息,微处理器可以标识哪些指令是控制流指令,哪些指令是非控制流指令。要降低分支历史表和/或分支目标缓冲器中的功耗,分支历史表和/或分支目标缓冲器可以检验对应于控制流指令的分支预测信息,而不检验对应于非控制流指令的分支预测信息。

【技术实现步骤摘要】
本申请是申请日为2008年12月25日、申请号为200810190998.0、专利技术名称为“对非控制流指令减少分支检验”的中国专利技术专利申请的分案申请。
本专利技术一般涉及微处理器,特别是为分支预测降低能耗。
技术介绍
微处理器是响应于实现计算机程序的指令来执行各种计算操作的电子设备。实现计算机程序的通用技术是以预定序列发送多个指令到微处理器的执行单元,然后顺序地执行这些指令。在一些情况下,程序跳出了次序来执行并不是序列里的下条指令的指令。可以引起执行跳出序列的指令的一个例子是分支指令。当执行一分支指令时,微处理器可以跳到由分支指令标识的目标指令,并且微处理器下一步执行的是该目标指令,而非下一顺序指令。如图示,图1显示程序执行序列的示例,其中以顺序方式执行五个顺序指令1-5,指令1首先执行,然后第二执行指令2等等。在该示例中,指令5是一分支指令,其指定指令2为其目标指令。执行分支指令5后,微处理器跳出了顺序指令的次序,接下来执行程序执行顺序中的指令2,而非下一顺序指令6。微处理器经常使用几个阶段来处理指令,其可包括:指令取阶段,其中从指令高速缓存中取出指令;解码指令阶段,其中对取来的指令进行解码分析;指令执行阶段,其中执行指令。为了提高通过各种阶段处理多个指令的速度,一些微处理器采用已知的流水线技术。流水线在流水线的多个阶段对几个不同的指令同时执行处理的不同部分的意义上类似于装配线。流水线技术的一个例<br>子是,在第一计算周期中有流水线的第一阶段处理第一指令1。在第二周期中,第一指令1进入到流水线的第二阶段,并且第二指令2开始流水线的第一阶段。在第三周期中,第一指令1进入到流水线的第三阶段,第二指令2进入到流水线的第二阶段,并且第三指令3开始流水线的第一阶段等等。流水线可以使得多个指令执行得比微处理器每次只处理一条指令的情况更快速。例如,流水线技术允许在每个周期完成不同指令的处理。分支指令会降低流水线技术的效率。当执行一分支指令时,微处理器可能试图跳出顺序的次序,而执行并不在流水线中的目标指令。要跳到目标指令,微处理器可能放弃已经在流水线中的指令,然后开始重新启动在目标指令开始的流水线。结果当目标指令被取和由流水线的初始阶段进行处理时,可能发生延迟,导致通过流水线处理指令时速度的总体下降。分支预测是已用来提高执行分支指令的流水线微处理器的速度的技术。分支预测通过使能微处理器在执行分支指令之前就取出分支指令后有可能执行的指令,可提高流水线微处理器的速度。分支预测可以包括预测条件分支是否采用、和/或预测分支目标,其是分支指令的目标指令。例如,当微处理器确定条件分支可能被采用时,可以在执行分支指令之前将预测的目标指令取入到流水线中,以为分支操作的流水线作准备。分支历史表是可以存储关于之前分支是否被采用的历史信息的分支预测单元,该历史信息可用于预测未来的分支是否将被采用。分支目标缓冲器是可以预测分支指令的目标的分支预测单元。一些微处理器使用分支历史表和分支目标缓冲器来执行分支预测。
技术实现思路
一些实施例涉及一种执行指令的微处理器。微处理器取一组指令,所述指令包括至少一个控制流指令和至少一个非控制流指令。微处理器包括控制指令标识单元和分支预测单元。控制指令标识单元存储控制指令标识信息,所述控制指令标识信息标识已取指令组中该至少一个非控制流指令。分支预测单元检验该对应至少一个控制流指令的已存储的分支预测信息,不检验对应该至少一个非控制流指令的已存储的分支预测信息。一些实施例涉及在微处理器中检验分支预测信息的方法,其中在已取指令组中标识一个或多个控制流指令。对于控制流指令进行分支预测信息的检验,而对于非控制流指令不进行分支预测信息的检验。附图说明附图中,每个相同的或几乎相同的组件在不同图中用相似的数字表示。为了清楚起见,并非每个附图的所有组件都进行标注。附图中:图1.显示包括分支指令的程序执行顺序的示例;图2.显示根据一些实施例的超标量微处理器的前端流水线;图3.显示根据一些实施例,具有对于非控制流指令索引输入可被禁止的分支目标缓冲器;图4.显示根据一些实施例,具有对于非控制流指令索引输入可被禁止的分支历史表;图5.显示根据一些实施例的指令高速缓存标签数组,其存储控制指令标识信息;图6.显示根据一些实施例的控制指令标识单元的示例,其可以存储控制标识信息以使(多个)索引输入对BHT和/或BTB使能/禁止;图7.显示根据一些实施例的电路,其为分支目标缓冲器和/或分支历史表产生掩码信号;具体实施例如上所述,分支指令会降低微处理器流水线的速度,一些微处理器包括(多个)硬件组件诸如分支历史表(branchhistorytable,BHT)和/或分支目标缓冲器(branchtargetbuffer,BTB),其提供可用于提高流水线的速度的分支预测信息。一些微处理器,例如超标量微处理器,使用分支历史表和分支目标缓冲器来改善性能。超标量微处理器是一种在其微处理器核心内利用几个功能单元在一个周期中来执行多于一个指令的处理器,例如算术逻辑单元和/或其它的功能单元。在超标量微处理器中,可以从指令高速缓存中并行地取出几个指令。当取指令正被执行时,可以同时检验BHT和/或BTB关于该被取指令的分支预测信息。例如,如果在取指令阶段取出四个指令,可以检验BHT和/或BTB的对应于该四条被取指令的任何分支预测信息。如果一个或多个指令是分支指令,BHT和/或BTB可以提供对应的分支预测信息,其可用于改善流水线的速度。例如,如果预测要采用一条件分支,微处理器可以在执行该分支指令之前取出目标指令来提前准备。我们已经意识到,为分支预测访问BHT和/或BTB会消耗大量的功率,特别是当并行检验多个指令时。根据现有技术,如果并行取几个指令,都将由BHT和/或BTB检验所有的被取指令的对应的分支预测信息。然而,也已经意识到的是,检验所有已取指令会消耗大量的功率,而且检验所有的已取指令可能并不是必要的。特别是已经意识到,只有控制流指令有可能执行分支操作,而非控制流指令可能不执行分支操作。控制流指令可以引起关于微处理器执行程序流的判断,而且具有引起分支操作的可能性。然而非控制流指令对程序流没有影响,也没有引起分支操作的可能性。因此,在BHT和/或BTB中检验非控制流指令是不必要的,因为非控制流智能不进行分支操作,并且BHT和BTB将没<本文档来自技高网
...

【技术保护点】
一种执行指令的微处理器,其中该微处理器取一组指令,所述指令包括至少一个控制流指令和至少一个非控制流指令,并且其中该微处理器根据包括多个阶段的流水线执行指令,该微处理器包括:至少一个解码器,用于预解码所述一组指令,以产生控制指令标识信息,所述控制指令标识信息确定所述至少一个控制流指令和所述至少一个非控制流指令;控制指令标识单元,其存储控制指令标识信息,所述控制指令标识信息被存储在指令高速缓存标签数组中且对于已取指令组的每个指令包括标识该指令是否是非控制流指令的信息;分支预测单元,其基于控制指令标识信息来检验对应于该至少一个控制流指令的分支预测信息,并且不检验对应于该至少一个非控制流指令的分支预测信息;和指令高速缓存,在流水线的该多个阶段的第一阶段中从所述指令高速缓存中取出该组指令,其中该控制指令标识单元预测该指令高速缓存的地址。

【技术特征摘要】
1.一种执行指令的微处理器,其中该微处理器取一组指令,所述指令包括
至少一个控制流指令和至少一个非控制流指令,并且其中该微处理器根据包括
多个阶段的流水线执行指令,该微处理器包括:
至少一个解码器,用于预解码所述一组指令,以产生控制指令标识信息,
所述控制指令标识信息确定所述至少一个控制流指令和所述至少一个非控制流
指令;
控制指令标识单元,其存储控制指令标识信息,所述控制指令标识信息被
存储在指令高速缓存标签数组中且对于已取指令组的每个指令包括标识该指令
是否是非控制流指令的信息;
分支预测单元,其基于控制指令标识信息来检验对应于该至少一个控制流
指令的分支预测信息,并且不检验对应于该至少一个非控制流指令的分支预测
信息;和
指令高速缓存,在流水线的该多个阶段的第一阶段中从所述指令高速缓存
中取出该组指令,
其中该控制指令标识单元预测该指令高速缓存的地址。
2.如权利要求1所述的微处理器,其中分支预测单元包含分支历史表。
3.如权利要求1所述的微处理器,其中分支预测单元包含分支目标缓冲器。
4.如权利要求1所述的微处理器,其中微处理器是并行取该组指令的超标
量处理器。
5.如权利要求1所述的微处理器,其中分支预测单元在该多个阶段的第一
阶段检验分支预测信息。
6.如权利要求5所述的微处理器,其中控制指令标识单元从指令高速缓存
标签数组中接收控制指令标识信息。
7.如权利要求6所述的微处理器,进一步包括至少一个解码器,其对指令
进行解码以产生控制指令标识信息,其中指令高速缓存标签数组从该至少一个
解码器接收该控制指令标识信息。
8.如权利要求1所述的微处理器,其中该微处理器使用程序计数器对指令

【专利技术属性】
技术研发人员:王凯峰孙红霞吴永强
申请(专利权)人:世意法北京半导体研发有限责任公司
类型:发明
国别省市:北京;11

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

1