CN101652739B - 一种处理器、操作处理器的方法以及信息处理系统 - Google Patents

一种处理器、操作处理器的方法以及信息处理系统 Download PDF

Info

Publication number
CN101652739B
CN101652739B CN2008800116195A CN200880011619A CN101652739B CN 101652739 B CN101652739 B CN 101652739B CN 2008800116195 A CN2008800116195 A CN 2008800116195A CN 200880011619 A CN200880011619 A CN 200880011619A CN 101652739 B CN101652739 B CN 101652739B
Authority
CN
China
Prior art keywords
branch instruction
branch
instruction
confidence
fetching
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
Application number
CN2008800116195A
Other languages
English (en)
Other versions
CN101652739A (zh
Inventor
R·C·扬
M·K·克施温德
P·博塞
A·布于克托苏诺格卢
C-Y·谢尔
R·奈尔
R·A·菲洛维尔
S·沃尔弗拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101652739A publication Critical patent/CN101652739A/zh
Application granted granted Critical
Publication of CN101652739B publication Critical patent/CN101652739B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

一种信息处理系统,其包括处理器,每当在分支指令队列中存储的分支指令的分支预测中的不准确度或缺乏置信度超过不准确度或错误的预定阈值置信水平时,所述处理器对指令取回器进行节流。这样,在处理器可能错误预测分支指令的结果时,取回操作减慢以节约处理器功率。在处理器可能正确预测分支指令的结果时,取回操作返回全速。

Description

一种处理器、操作处理器的方法以及信息处理系统
技术领域
概括地说,本发明涉及处理器;更具体地,涉及在信息处理系统中采用节能方法的处理器。
背景技术
现代的信息处理系统使用通常生成大量热量的处理器。存在读出处理器温度的热节流技术。当处理器的温度超过预定阈值温度时,系统节流或降低处理器的时钟速率以相应地降低处理器的温度。这样,系统防止不期望的过热。备选地,系统可采用时钟门控,即使得处理器的时钟停止一段时间,以降低处理器的温度。
功耗是现代处理器的最大工作频率的重要的起作用因素。存在读出处理器消耗的功率数量的功率节流技术。当消耗的功率超过预定的阈值功率水平时,功率节流系统降低处理器的工作频率,使得处理器消耗较少的功率。
需要一种实现在信息处理系统中进一步降低处理器功耗的装置和方法。
发明内容
相应地,在一个实施例中,公开了一种操作处理器的方法。该方法包括:由取回器从指令源取回指令以提供包括取回的分支指令的指令流。该方法还包括:由分支指令队列存储来自所述指令流的多个取回的分支指令。该方法还包括:由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令。该方法还包括:由置信度存储存储器存储置信度信息,所述置信度信息描述了所述分支指令队列中的取回的分支指令在所述分支预测信息中的置信度数量。该方法还包括:如果所述置信度信息指示置信度小于预定置信度阈值,则由节流电路对从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
在另一实施例中,公开了一种操作处理器的方法。该方法包括:由取回器从指令源取回指令以提供包括取回的分支指令的指令流。该方法还包括:由分支指令队列存储来自所述指令流的多个取回的分支指令。该方法还包括:由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令。该方法还包括:由置信度存储存储器存储多个置信度值,其描述了所述分支指令队列中相应取回的分支指令的分支预测信息的不准确度。该方法还包括:如果置信度值的总和超过预定阈值,则由节流电路对所述取回器从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
在另一实施例中,公开了一种处理器,包括:指令源,其存储指令。该处理器还包括:取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括取回的分支指令的指令流。该处理器还包括:分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个分支指令中的分支,由此提供执行的分支指令。该处理器还包括:节流控制器,其耦合至所述取回器。所述节流控制器能够对所述取回器取回指令进行节流。所述节流控制器包括:分支指令队列,其存储多个取回的分支指令。所述节流控制器还包括:置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的相应置信度值。所述置信度值描述了所述分支指令队列中相应取回的分支指令在分支预测信息中缺乏置信度。如果所述置信度存储存储器中的置信度值的总和超过预定阈值,则所述节流控制器对从所述指令源取回指令进行节流,从而所述节流操作 降低所述处理器的功耗。
附图说明
附图仅示出本发明的示例性实施例,因此不限制本发明的范围,因为本发明的概念使得其自身依附于其他等同有效的实施例。
图1示出所公开处理器的一个实施例的框图;
图2示出所公开处理器采用的代表性节流控制器的框图;
图3示出所公开处理器可采用的备选节流控制器的框图;
图4是示出所公开处理器在执行取回节流操作时在处理器中的处理流的流程图;以及
图5是采用图1的所公开处理器的信息处理系统(HIS)的框图。
具体实施方式
许多当前的处理器采用推测执行技术,这种技术使用分支预测来增加处理效率。处理器中的指令取回器取回含有分支指令的指令流。响应于分支预测,处理器可推测性地执行分支指令之后的指令。更具体地,在指令解码器解码指令流的所取回分支指令之后,分支预测电路做出是否采用分支指令提供的分支的预测。分支或者“被采用”或者“未被采用”。分支预测电路通过使用分支历史信息(即当处理器在过去遇到此特定分支指令时的分支结果)预测是否采用分支。如果分支预测电路正确预测分支,则处理器保存分支之后的指令的结果。然而,如果分支预测不正确,则处理器丢弃分支之后的指令的结果。
处理器对指令的推测执行将消耗功率。期望以基本上不影响处理器性能的方式最小化推测执行行为消耗的功率。在一个实施例中,当处理器遇到其在预测分支指令的结果时具有低置信度的分支指令时,处理器通过节流处理行为来降低功耗。所述处理器包括分支指令队列(BIQ),其存储指令流的分支指令以及每个存储的分支指令的置信度信息。置信度信息指示处理器在BIQ内的每个分支预测的正确度中展示的置信水平。在一个实 施例中,所述处理器对BIQ中的低置信度分支的数目求和。如果低置信度分支数的和大于预定可编程阈值,则处理器执行指令取回节流以降低功耗。由于处理器对低置信度分支路径执行指令取回节流,而不对高置信度分支路径执行节流,所以此方法对处理器性能几乎没有负面影响。换句话说,所述处理器在高置信度分支路径中继续全速执行指令而不执行节流。
图1示出在低置信度分支上采用节流来降低处理器消耗的功率的处理器100的一个实施例。处理器100包括存储器105,例如本地高速缓冲存储器,其包括处理器100执行的指令流。因此,存储器105用作指令源。在实际操作中,存储器105连接到更大的外部系统存储器(未示出),后者包括处理器执行的指令流或程序。取回器110耦合至存储器105,以从存储器105取回指令用于执行。取回器110包括指令地址输入端110A。解码器电路115耦合至取回器110,以解码其从取回器110接收的取回的指令。取回的指令流包括具有操作码和操作数的指令。指令流中的一些指令是分支指令。定序器电路117耦合至解码器115。定序器电路117确定应接收特定解码指令用于执行的适当执行单元。定序器电路117耦合至以下执行单元:定点执行单元(FXU)120、浮点执行(FPU)单元125、加载存储单元(LSU)130、和分支执行单元(BRU)135。定点执行单元(FXU)120包括寄存器文件120A。浮点执行单元125包括寄存器文件125A。
执行单元推测性地执行指令流中解码的分支指令之后的指令。分支历史表(BHT)140耦合在取回器110的指令地址输入端110A与分支执行单元(BRU)135之间。分支历史表140跟踪先前执行的分支指令的历史结果。分支单元(BRU)135使用该历史分支执行信息对其当前接收的分支指令做出分支预测。完成单元145耦合至每个执行单元,即FXU 120、FPU125、LSU 130和BRU 135。更具体地,完成单元145耦合至FXU寄存器文件120A和FPU寄存器文件125A。完成单元145确定是否应完成推测执行的指令。如果分支单元(BRU)135正确预测分支,则在分支之后的指令应完成。例如,如果分支单元135正确预测分支,则在该分支之后的定点或整数指令应完成。在这种情况下,完成单元145控制将分支的定点 结果写回定点寄存器文件120A。如果在正确预测的分支之后的指令是浮点指令,则完成单元145控制将该浮点指令的结果写回浮点寄存器文件125A。当指令完成时,它们不再是推测性的。分支执行单元(BRU)135与完成单元145和BHT协同工作,以判断是否采用特定的分支指令。
更具体地,分支历史表(BHT)140包括先前执行的分支指令的历史。BHT 140中的每个表项包括方向位和置信度位。对于特定分支指令,其在BHT中的表项包括指出“分支被采用”或“分支未被采用”的方向位。在一个实施例中,如果上次分支未被采用,则方向位可等于0;或者,如果上次分支被采用,则方向位可等于1。在一个实施例中,对于特定分支指令,方向位指出在下一次处理器遇到该分支指令时处理器是否应采用该分支。方向位不一定代表前一次处理器遇到分支指令时分支的方向。然而,在大部分时间,方向位确实指出上一次处理器遇到分支指令时分支的方向。对于特定分支指令,如果在分支被采用或分支未被采用预测中存在低置信度,则置信度位可等于1。如果在分支被采用或分支未被采用预测中存在高置信度,则置信度位可等于0。特定分支预测展示低置信度的一个原因是在上两次处理器执行特定分支指令时,处理器在一种情况下采用分支,但是在另一种情况下未采用分支。特定分支预测展示高置信度的原因包括在上两次处理器执行特定分支指令时,处理器两次都采用分支,或者两次都未采用分支。
处理器100包括节流控制电路或节流控制器200,其具有分支指令队列(BIQ)205。在该特定实施例中,分支指令队列(BIQ)205包括16个表项,即取回器取回的但处理器尚未完成的指令流中多达16个的分支指令。根据特定应用,BIQ 205可包括比16个表项更多或更少的表项。节流控制器200还包括与BIQ 205相关的置信度跟踪队列或置信度队列(CQ)210。CQ 210用作存储置信度信息的置信度信息存储存储器。对于BIQ 205的每个分支指令表项,CQ 210包括相应的置信度位。在该特定实施例中,CQ包括16个表项,即低置信度位。对于BIQ 205中的特定分支指令表项,如果在CQ 210中的相应CQ置信度位表项展示逻辑1,则这表示该特定分 支指令在分支预测中的低置信度。然而,对于BIQ 205中的特定分支指令表项,如果在CQ 210中的相应CQ置信度位表项展示逻辑0,则这表示该特定分支指令在分支预测中的高置信度。节流控制器200访问分支历史表140,以帮助在CQ 210中填充置信度位。例如,在一个实施例中,对于BIQ 205存储的特定分支指令,为了使用相应的不同置信度位填充CQ 210,如果最后一次处理器执行分支指令时BRU 135和BHT 140错误预测了该分支指令,则节流控制器200在CQ表项中存储为1的置信度位。然而,如果最后一次处理器执行分支指令时BRU 135和BHT 140正确预测了该分支指令,则节流控制器200使用为0的置信度位填充CQ中该分支的相应表项。在一个实施例中,BHT 140保存或存储相应分支指令的置信度位或置信度值,并且BHT 140在分支指令执行时更新自身。当取回器110取回特定分支指令时,CQ 210访问BHT 140,并读取和存储与该特定分支指令对应的置信度位。
在图1的实施例中,分支指令队列(BIQ)205是循环队列。BIQ 205包括:头指针,其概念性地示为头指针215;以及尾指针,其概念性地示为尾指针220。头指针215指向BIQ 205中最新的分支指令,尾指针220指向BIQ 205中最早的分支指令。在BIQ 205从取回器110接收分支指令时,头和尾指针每次移动一个分支指令,使得头指针215始终指向进入BIQ205的最新分支指令,以及使得尾指针始终指向BIQ 205中的最早分支指令。
节流控制器200还包括控制逻辑225,其耦合至头指针215、尾指针220和置信度队列(CQ)210。由此,控制逻辑225接收当前头指针、当前尾指针和CQ 210的所有置信度位。头指针在每次另一分支指令进入BIQ205时改变。尾指针在每次分支指令完成时改变。置信度队列(CQ)210为BIQ 205的每个分支指令表项存储相应的置信度位。换句话说,BIQ 205的每个分支指令表项都在CQ 210中具有关联的对应置信度位。控制逻辑225对CQ 210的所有置信度位进行求和或相加以获得置信度位总计。在该特定实施例中,由于CQ 210存储低置信度位,所以控制逻辑225确定低 置信度位总计。控制逻辑225执行测试以确定当前低置信度位总计是否大于预定的阈值低置信水平。如果控制逻辑225确定当前低置信度位总计确实大于预定的阈值低置信水平,则节流控制器200指示取回器110开始取回节流以减少处理器功耗。通过在不太可能具有正确分支预测的指令的推测执行期间以此方式进行取回节流,处理器100减少了功耗。然而,如果当前低置信度位总计不大于预定的阈值置信水平,则分支预测很可能正确,并且控制逻辑225允许以全速取回指令并推测执行,而不执行节流。
图2是图1的节流控制器200的更详细的框图。图2示出:分支指令队列(BIQ)205、置信度队列(CQ)210、控制逻辑225、和取回节流状态机230,已经参照图1对它们进行了讨论。BIQ 205包括16个分支指令表项,如图2所示为BI-0、BI-1、...BI-15。置信度队列(CQ)包括指定为0-15的16个置信度位表项。尽管在图2中头指针215和尾指针220指向分支指令BI-1和BI-2,但是头和尾指针将在新分支指令从取回的指令流进入BIQ 205时移动。在处理器取回、执行和完成指令流中的分支指令时,BIQ 205存储的特定分支指令持续流动。BIQ 205存储来自取回指令流的16个最近取回的分支指令。因此,在某一时刻,与BIQ 205中的相应分支指令相关的置信度位可作为整体指出节流控制器在这些分支指令的预测正确性中具有低置信度。在这种情况下,节流控制器200开始取回节流以减少功耗。然而,在另一时刻,使用另一组分支指令填充BIQ。在这种情况下,与BIQ 205的相应分支指令相关的置信度位可作为整体指出节流控制器200在这些分支指令的预测正确性中具有高置信度。因此,节流控制器200不开始取回节流以减少功耗,而是指示取回器110全速取回。
控制逻辑225包括“与”电路235,其具有16线输入端235A和16线输入端235B。“与”电路输入端235A耦合至CQ 210中的16个槽或存储位置,从而“与”电路235从CQ 210接收16个置信度位。头指针215和尾指针220耦合至有效向量生成电路240。有效向量生成电路240使用头和尾指针信息生成16位向量,其中向量的每个位对应于BIQ 205的不同表项。16位向量的每个位指示BIQ 205中的相应分支指令表项是否有效。如 果16位向量的特定位展示逻辑1,则BIQ 205的相应分支指令表项有效,即分支指令仍在处理中。然而,如果16位向量的特定位展示逻辑0,则BIQ 205的相应分支指令表项无效。有效的BIQ 205的表项在尾指针处开始,并向下跨越到头指针。例如,如果头指针在表项BI-3处并且尾指针在表项BI-7处,则16位有效向量是0001111100000000。这意味着表项BI-3、BI-4、BI-5、BI-6和BI-7有效,同时剩余表项无效。如果头指针在尾指针之上,则有效向量环绕并且不是连续的。例如,如果头指针在表项BI-14处并且尾指针在表项BI-2处,则有效向量是1110000000000011。这意味着表项BI-0、BI-1、BI-2、BI-14和BI-15有效,同时剩余表项无效。在图2中,有效向量框245表示有效向量245的16个位。
因此,在输入端235A,“与”电路235从CQ 210接收16个低置信度位,同时在输入端235B,“与”电路235接收有效向量的16个位。当“与”电路235将16个低置信度位和16个相应有效向量位进行逻辑“与”时,有效向量用作在“与”电路235的输出端从16个位结果有效去除任何无效低置信度位的掩码。因此,在该特定实施例中,在“与”门235的输出端的16位结果仅包含有效低置信度位。换句话说,在“与”电路235的输出端的16个低置信度位对应于BIQ 205中相应有效分支指令的低置信度位。
加法器250耦合至“与”电路235的输出端。加法器250对其从“与”电路235接收的有效低置信度位求和以在加法器250的输出端提供低置信度分支总计,即填充计数(POPCOUNT)。因此,在特定时刻,POPCOUNT表示BIQ 205中的有效低置信度分支的总数。比较器255包括耦合至加法器250的一个输入端,其从加法器250接收低置信度分支总计,POPCOUNT。比较器255的剩余输入端耦合可编程阈值电路260,后者向比较器255提供可编程置信度阈值。设计者或其他实体选择置信度阈值,从而其表示这样的低置信度水平:如果超过该低置信度水平,则指示BIQ中的分支预测的置信度低到应开始取回节流并节约功率。
比较器255的输出端耦合至取回节流状态机230。如果低置信度分支 的总数POPCOUNT超过预定可编程阈值,则比较器255向取回节流状态机230输出逻辑1。作为响应,取回节流状态机230向取回器输入端110B发送THROTTLE信号,以指示取回器110减慢取回指令的速率。减慢指令取回的速率降低了处理器100执行可能未采用的分支(即对于低置信度分支)消耗的功率量。然而,如果低置信度分支的总数POPCOUNT未超过预定可编程阈值,则比较器255向取回节流状态机230输出逻辑0。作为响应,取回节流状态机230向取回器输入端110B发送THROTTLE信号,以指示取回器110全速取回指令。在这种情况下,在BIQ 205的分支指令的预测中,处理器展示高置信度。因此,分支指令的推测执行全速继续,而无需取回器节流和功率降低。
图3示出作为控制器300的节流控制器的简化版本。图3的节流控制器300类似于图2的节流控制器200,其中类似的标号表示类似的元素。在节流控制器300中,控制器没有采用有效向量生成来检查BIQ 205中的分支指令的有效性。因此,节流控制器300没有采用有效向量生成器240和“与”电路235。图3的控制逻辑225’类似于图2的控制逻辑225,除了控制逻辑225’没有使用“与”电路235之外。然而,通过去除检查BIQ 205中的分支指令的有效性的有效向量生成,加法器250从CQ 210接收的低置信度位可包含错误的或过期的置信度信息。通过消除有效向量检查功能,节流控制器可能在不应节流时对取回器节流。为了解决这个问题,每当处理器100遇到刷新或分支误预测时,节流控制器300清除CQ 210的所有置信度位。换句话说,当处理器遇到刷新或分支误预测时,控制器300对CQ 210的RESET输入端应用RESET信号以将所有CQ置信度位重设为0。在实际操作中,完成单元145向CQ 210(未示出连接)的RESET输入端发送RESET信号。在异常处理时,处理器可能遇到这种刷新操作。
图4是示出当BIQ 205中的分支指令展示低置信度时处理器100执行取回节流操作以节约功率中的处理流程的流程图。为了该流程图的目的,图1的处理器100采用图2的节流控制器200作为节流控制器。根据方框405,处理流程开始于处理器100的初始化。根据方框410,程序员、设计 者或其他实体通过取回节流状态机230选择启用取回节流或禁用取回节流。例如,处理器可包括锁存器(未示出),程序员可在处理器初始化时设置该锁存器以启用或禁用取回节流。根据决定框415,节流控制器200执行测试以确定取回节流状态机230展示启用状态还是禁用状态。如果取回节流状态机230没有启用,则根据方框420,所有后续取回操作以全速正常继续,而不需要取回节流状态机230进行取回节流。换句话说,处理器100继续执行指令,而没有所公开的功率节约特性的优点。然而,如果在决策框415取回节流状态机展示启用状态,则根据方框425,取回器110从包括分支指令的指令的指令流开始取回指令。此时,分支单元(BRU)135读取分支历史表(BHT)140,以获得与分支指令的结果有关的预测。在初始化时,BHT 140不包括表项。然而,随时间流逝,BHT 140累积指令流中的先前分支指令的结果的历史。BHT 140还包括置信度信息,后者指示在最后一次HBT 140预测分支的结果时其是否正确预测每个分支指令。在处理器100继续执行指令流的指令时,根据方框430,使用分支指令填充分支指令队列(BIQ 205)。对于BIQ 205的每个分支指令,使用相应置信度位填充CQ 210。
根据方框435,控制逻辑225通过将来自有效向量生成器240的有效向量245和CQ 210的置信度位进行逻辑“与”来限定CQ 210中有效的那些置信度位。根据方框440,加法器250将来自CQ 210的所有有效置信度位累加在一起,以确定总和POPCOUNT。POPCOUNT的值表示低置信度分支指令总计。根据方框445,控制逻辑225执行测试以确定低置信度分支指令总计POPCOUNT是否大于预定的低置信度阈值THRESH。如果决策方框445确定当前低置信度分支指令总计POPCOUNT大于预定低置信度阈值THRESH,则BIQ中分支指令的分支预测的准确度的置信度很低,使得取回节流状态机230开始取回节流。在低置信度分支指令以及从那些分支指令延伸的分支中的指令的推测性执行期间,此操作降低了功耗。
更具体地,取回节流状态机230是生成1位信号THROTTLE的可编程状态机,其中0表示“阻止取回”,1表示“允许取回”。状态机230 的输出端耦合至取回器110,以向其提供节流信号。如果节流信号等于0,则这指示取回器不执行取回。如上所述,取回节流状态机230可根据程序员、设计者或其他实体的选择展示启用状态或非启用状态。如果取回节流状态机230展示非启用状态,则其始终输出具有值1的节流信号,从而根据方框420,取回器110全速取回指令而不执行节流。然而,如果取回节流状态机230展示启用状态,则处理流继续通过如上讨论的方框425、430、435、440。
在确定低置信度分支指令总计POPCOUNT之后,比较器255执行比较测试以确定当前低置信度分支指令总计POPCOUNT是否大于低置信度阈值水平THRESH。如果当前低置信度分支指令总计POPCOUNT不大于低置信度阈值THRESH,则根据方框450,比较器255指示取回节流状态机230不进行节流。作为响应,取回节流状态机230向取回器110发送节流信号THROTTLE,其中节流信号是一系列1,指示取回器110不进行节流。换句话说,节流信号的一系列1(即连续的逻辑1值)指示取回器110以全速取回指令。
然而,如果当前低置信度分支指令总计POPCOUNT大于低置信度阈值THRESH,则根据方框455,比较器255指示取回节流状态机230开始对取回器111节流。例如,为了造成取回节流,状态机230生成节流信号THROTTLE,其展示确定取回器110采用的节流量的数字模式。在一个实施例中,节流信号展示在节流操作的持续时间内重复的数字模式1000。模式中的1指示取回器在相应机器循环期间取回。模式中的000指示取回器在接下来的3个机器循环内不取回。因此,数字节流模式1000指示取回器110在每隔3个机器循环取回一次指令。这对应于75%的节流。数字模式1010提供比1000数字模式更少的节流,即对50%的处理器机器循环节流。根据特定应用所期望的节流量,状态机230可使用其他数字模式作为节流信号。在一个实施例中,可根据期望的节流量和功率节约对数字节流模式编程。
图5示出采用处理器100的信息处理系统(IHS)500。IHS是以数字 形式、模拟形式和其他形式处理、传输、传送、修改、存储或以其他方式处理信息的系统。IHS 500包括总线505,后者经由存储器控制器520将处理器100耦合至系统存储器510。视频图形控制器525将显示器530耦合至总线505。非易失性存储装置535(例如硬盘驱动器、CD驱动器、DVD驱动器、或其他非易失性存储装置)耦合至总线505,以向IHS 500提供信息的永久存储。操作系统540加载到存储器510中以控制IHS 500的操作。I/O设备545(例如键盘和鼠标指点设备)经由I/O控制器550和I/O总线555耦合至总线505。一个或多个扩展总线560(例如USB、IEEE 1394总线、ATA、SATA、PCI、PCIE和其他总线)耦合至总线505,以便于外围设备和装置连接至IHS 500。网络适配器565耦合至总线505,以使得IHS 500能够有线或无线地连接至网络和其他信息处理系统。尽管图5示出采用处理器100的一个HIS,但是HIS可采用许多形式。例如,IHS 500可采用台式电脑、服务器、便携式设备、膝上型电脑、或其他形式因素计算机或数据处理系统的形式。IHS 500可采用例如游戏设备、个人数字助理(PDA)、便携式电话设备、通信设备或包括处理器和存储器的其他设备的其他形式因素。
尽管在上述实施例中,CQ 210存储置信度位,后者根据分支预测的低置信度描述BIQ 205中的分支指令在这些预测中的置信度,但是等同方法和装置可反转处理器的逻辑并仍实现公开的技术。例如,与图1实施例的分支预测中的低置信度量相反,处理器100可采用CQ 210中描述在BIQ205中的分支指令的分支预测中的高置信度量的置信度信息。在此类实施例中,CQ 210中的置信度位指示BIQ 205存储的分支指令的分支预测的准确度的置信度。如上所述,加法器250仍将置信度位累加在一起,以确定POPCOUNT值。然而,比较器255执行测试以确定POPCOUNT值(其指示BIQ分支指令的分支预测的准确度的置信水平)是否大于预定的置信度阈值水平。如果由POPCOUNT表示的置信度超过预定的置信度阈值水平,则来自状态机230的THROTTLE信号指示取回器110不进行节流。由于BIQ分支指令的分支预测的准确度的置信度很高,所以取回指令的推 测执行以全速继续,而不进行取回节流和功率节约。然而,如果POPCOUNT不超过预定的置信度阈值水平,则来自状态机230的THROTTLE信号指示取回器110节流。换句话说,由于BIQ分支指令的分支预测的准确度的置信度很低,所以取回器110开始取回节流,从而取回指令的推测执行以降低的速度继续以节约功率。在备选实施例中,置信度队列(CQ)210可存在于分支指令队列(BIQ)205内部,只要对于每个BIQ分支指令表项来说,BIQ 205存储相应的置信度位。
根据本发明的说明书,本发明的修改和备选实施例对于本领域普通技术人员是清楚的。因此,本说明书向本领域普通技术人员教导了执行本发明的方式,并旨在被理解为只是示例性的。所示和所述的本发明的形式构成各实施例。本领域普通技术人员可在部件的形状、大小和配置方面做出各种变化。例如,本领域普通技术人员可用等同元素代替这里所示和所述的元素。此外,在不脱离本发明范围的情况下,本领域普通技术人员在获得本发明的这里描述的益处之后可使用本发明的某些特征,与其他特征的使用无关。

Claims (14)

1.一种操作处理器的方法,该方法包括:
由取回器从指令源取回指令以提供包括分支指令的指令流;
由分支指令队列存储来自所述指令流的多个取回的分支指令;
在所述分支指令队列从所述取回器接收所述分支指令时,头指针和尾指针每次移动一个分支指令,使得所述头指针始终指向进入所述分支指令队列的最新分支指令,以及使得尾指针始终指向所述分支指令队列中的最早分支指令;
由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令;
由置信度存储存储器存储一个或多个置信度值,每个置信度值描述了所述分支指令队列中的相应取回的分支指令在所述分支预测信息中的置信度;以及
位于所述头指针和所述尾指针之间的分支指令的置信度值为有效置信度值;
如果所述有效置信度值的总和超过预定阈值,则由节流电路对所述取回器从所述指令源取回指令进行节流,其中所述节流步骤降低了所述处理器的功耗。
2.如权利要求1所述的方法,其中由置信度存储存储器存储的步骤包括:对于所述分支指令队列中存储的每个取回的分支指令,在所述置信度存储存储器中存储相应的置信度值。
3.如权利要求1或2所述的方法,还包括:由有效向量生成电路生成有效向量,所述有效向量标识了在所述分支指令队列中存储的有效的取回分支指令,所述头指针和所述尾指针耦合至所述有效向量生成电路,位于所述头指针和所述尾指针之间的分支指令为所述有效的取回分支指令。
4.如权利要求3所述的方法,还包括:由“与”电路将所述有效向量和所述置信度值进行逻辑“与”以获得有效置信度值。
5.如权利要求4所述的方法,还包括:由加法器电路将所述有效置信度值相加以获得在所述置信度存储存储器中存储的有效置信度值的总和。
6.如权利要求5所述的方法,其中所述节流步骤包括:
由比较器将所述有效置信度值的总和与所述预定阈值相比较;以及
如果所述比较器确定所述有效置信度值的总和超过所述预定阈值,则由取回节流状态机降低所述取回器从所述指令源取回指令的速率,否则所述取回节流状态机允许所述取回器从所述指令源全速取回指令。
7.如权利要求1或2中的任一权利要求所述的方法,其中所述预定阈值是可编程阈值。
8.一种处理器,包括:
指令源,其存储指令;
取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括取回的分支指令的指令流;
分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令;以及
节流控制器,其耦合至所述取回器,并能够对所述取回器取回指令进行节流,所述节流控制器包括:
分支指令队列,其存储多个取回的分支指令,在所述分支指令队列从所述取回器接收所述分支指令时,头指针和尾指针每次移动一个分支指令,使得所述头指针始终指向进入所述分支指令队列的最新分支指令,以及使得尾指针始终指向所述分支指令队列中的最早分支指令;
置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的相应置信度值,所述置信度值描述了所述分支指令队列中的相应取回的分支指令在所述分支预测信息中的置信度;
位于所述头指针和所述尾指针之间的分支指令的置信度值为有效置信度值,如果所述置信度存储存储器中的有效置信度值的总和超过预定阈值,则所述节流控制器对从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
9.如权利要求8所述的处理器,还包括:有效向量生成电路,其生成有效向量,所述有效向量标识了在所述分支指令队列中存储的有效的取回分支指令,所述头指针和所述尾指针耦合至所述有效向量生成电路,位于所述头指针和所述尾指针之间的分支指令为所述有效的取回分支指令。
10.如权利要求9所述的处理器,还包括:“与”电路,其耦合至所述置信度存储存储器和所述有效向量生成电路,并将所述有效向量和所述置信度值进行逻辑“与”以获得有效置信度值。
11.如权利要求10所述的处理器,还包括:加法器电路,其耦合至所述“与”电路,并将所述有效置信度值相加以获得在所述置信度存储存储器中存储的有效置信度值的总和。
12.如权利要求11所述的处理器,还包括:比较器,其耦合至所述加法器电路和阈值电路,并将所述有效置信度值的总和与所述阈值电路提供的所述预定阈值相比较。
13.如权利要求12所述的处理器,还包括:取回节流状态机,其耦合至所述比较器和所述取回器,如果所述比较器确定所述有效置信度值的总和超过所述预定阈值,则所述取回节流状态机降低所述取回器从所述指令源取回指令的速率,否则所述取回节流状态机允许所述取回器从所述指令源全速取回指令。
14.一种信息处理系统,所述信息处理系统包括:
存储器;
处理器,其耦合至所述存储器,所述处理器包括:
指令源,其存储指令,所述指令源耦合至所述存储器;
取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括取回的分支指令的指令流;
分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令;以及
节流控制器,其耦合至所述取回器,并能够对所述取回器取回指令进行节流,所述节流控制器包括:
分支指令队列,其存储多个取回的分支指令,在所述分支指令队列从所述取回器接收所述分支指令时,头指针和尾指针每次移动一个分支指令,使得所述头指针始终指向进入所述分支指令队列的最新分支指令,以及使得尾指针始终指向所述分支指令队列中的最早分支指令;
置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的相应置信度值,所述置信度值描述了所述分支指令队列中的相应取回的分支指令在所述分支预测信息中的置信度;
位于所述头指针和所述尾指针之间的分支指令的置信度值为有效置信度值,如果所述置信度存储存储器中的有效置信度值的总和超过预定阈值,则所述节流控制器对从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
CN2008800116195A 2007-04-10 2008-04-10 一种处理器、操作处理器的方法以及信息处理系统 Expired - Fee Related CN101652739B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/733,589 2007-04-10
US11/733,589 US7627742B2 (en) 2007-04-10 2007-04-10 Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system
PCT/EP2008/054335 WO2008122662A1 (en) 2007-04-10 2008-04-10 Method and apparatus for conserving power by throttling instruction fetching when a processor encounters low confidence branches in an information handling system

Publications (2)

Publication Number Publication Date
CN101652739A CN101652739A (zh) 2010-02-17
CN101652739B true CN101652739B (zh) 2011-10-12

Family

ID=39591449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800116195A Expired - Fee Related CN101652739B (zh) 2007-04-10 2008-04-10 一种处理器、操作处理器的方法以及信息处理系统

Country Status (5)

Country Link
US (1) US7627742B2 (zh)
JP (1) JP5172942B2 (zh)
KR (1) KR101159407B1 (zh)
CN (1) CN101652739B (zh)
WO (1) WO2008122662A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566568B2 (en) * 2006-08-16 2013-10-22 Qualcomm Incorporated Method and apparatus for executing processor instructions based on a dynamically alterable delay
WO2008097710A2 (en) * 2007-02-02 2008-08-14 Tarari, Inc. Systems and methods for processing access control lists (acls) in network switches using regular expression matching logic
US8006070B2 (en) * 2007-12-05 2011-08-23 International Business Machines Corporation Method and apparatus for inhibiting fetch throttling when a processor encounters a low confidence branch instruction in an information handling system
US7925853B2 (en) * 2008-01-04 2011-04-12 International Business Machines Corporation Method and apparatus for controlling memory array gating when a processor executes a low confidence branch instruction in an information handling system
US8255669B2 (en) * 2008-01-30 2012-08-28 International Business Machines Corporation Method and apparatus for thread priority control in a multi-threaded processor based upon branch issue information including branch confidence information
US20090193240A1 (en) * 2008-01-30 2009-07-30 Ibm Corporation Method and apparatus for increasing thread priority in response to flush information in a multi-threaded processor of an information handling system
JP5387819B2 (ja) * 2008-12-26 2014-01-15 日本電気株式会社 分岐予測の信頼度見積もり回路及びその方法
US9836304B2 (en) * 2010-11-15 2017-12-05 Advanced Micro Devices, Inc. Cumulative confidence fetch throttling
US9182991B2 (en) 2012-02-06 2015-11-10 International Business Machines Corporation Multi-threaded processor instruction balancing through instruction uncertainty
US9442732B2 (en) * 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
US9389860B2 (en) 2012-04-02 2016-07-12 Apple Inc. Prediction optimizations for Macroscalar vector partitioning loops
US9116686B2 (en) * 2012-04-02 2015-08-25 Apple Inc. Selective suppression of branch prediction in vector partitioning loops until dependency vector is available for predicate generating instruction
US9354679B2 (en) * 2012-12-28 2016-05-31 Intel Corporation System and method for causing reduced power consumption associated with thermal remediation
US9201490B2 (en) 2013-03-15 2015-12-01 International Business Machines Corporation Power management for a computer system
US9348589B2 (en) 2013-03-19 2016-05-24 Apple Inc. Enhanced predicate registers having predicates corresponding to element widths
US9817663B2 (en) 2013-03-19 2017-11-14 Apple Inc. Enhanced Macroscalar predicate operations
US10001998B2 (en) 2014-04-18 2018-06-19 Oracle International Corporation Dynamically enabled branch prediction
US9658961B2 (en) 2014-06-27 2017-05-23 International Business Machines Corporation Speculation control for improving transaction success rate, and instruction therefor
US11755484B2 (en) * 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US20170046159A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Power efficient fetch adaptation
US10915446B2 (en) 2015-11-23 2021-02-09 International Business Machines Corporation Prefetch confidence and phase prediction for improving prefetch performance in bandwidth constrained scenarios
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10474462B2 (en) * 2016-02-29 2019-11-12 Qualcomm Incorporated Dynamic pipeline throttling using confidence-based weighting of in-flight branch instructions
US10599577B2 (en) 2016-05-09 2020-03-24 Cavium, Llc Admission control for memory access requests
US10013357B2 (en) 2016-05-09 2018-07-03 Cavium, Inc. Managing memory access requests with prefetch for streams
US10191845B2 (en) 2017-05-26 2019-01-29 International Business Machines Corporation Prefetch performance
US10776122B2 (en) * 2018-06-14 2020-09-15 International Business Machines Corporation Prioritization protocols of conditional branch instructions
US11507380B2 (en) * 2018-08-29 2022-11-22 Advanced Micro Devices, Inc. Branch confidence throttle
US11099852B2 (en) * 2018-10-25 2021-08-24 Arm Limitied Apparatus and method for maintaining prediction performance metrics for prediction components for each of a plurality of execution regions and implementing a prediction adjustment action based thereon
US10929062B2 (en) * 2018-11-07 2021-02-23 International Business Machines Corporation Gradually throttling memory due to dynamic thermal conditions
US11379372B1 (en) 2019-07-19 2022-07-05 Marvell Asia Pte, Ltd. Managing prefetch lookahead distance based on memory access latency
US11442864B2 (en) 2020-06-29 2022-09-13 Marvell Asia Pte, Ltd. Managing prefetch requests based on stream information for previously recognized streams

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US6282663B1 (en) 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US6411156B1 (en) 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
US6438682B1 (en) * 1998-10-12 2002-08-20 Intel Corporation Method and apparatus for predicting loop exit branches
US6415388B1 (en) 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
TW451132B (en) * 1998-12-15 2001-08-21 Nippon Electric Co System and method for cache processing
US6272666B1 (en) 1998-12-30 2001-08-07 Intel Corporation Transistor group mismatch detection and reduction
US6484265B2 (en) 1998-12-30 2002-11-19 Intel Corporation Software control of transistor body bias in controlling chip parameters
US6393374B1 (en) 1999-03-30 2002-05-21 Intel Corporation Programmable thermal management of an integrated circuit die
US6363490B1 (en) 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
US6330660B1 (en) * 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6625744B1 (en) 1999-11-19 2003-09-23 Intel Corporation Controlling population size of confidence assignments
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US6766441B2 (en) * 2001-01-19 2004-07-20 International Business Machines Corporation Prefetching instructions in mis-predicted path for low confidence branches
US6608528B2 (en) 2001-10-22 2003-08-19 Intel Corporation Adaptive variable frequency clock system for high performance low power microprocessors
US7032116B2 (en) 2001-12-21 2006-04-18 Intel Corporation Thermal management for computer systems running legacy or thermal management operating systems
US7281140B2 (en) 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US6931559B2 (en) 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
TW567408B (en) 2002-03-29 2003-12-21 Uniwill Comp Corp Apparatus and method for controlling power and clock speed of electronic system
TWI262380B (en) 2002-04-25 2006-09-21 Quanta Comp Inc Dynamic adjustment method for power consumption of computer system
US6762629B2 (en) 2002-07-26 2004-07-13 Intel Corporation VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
US6908227B2 (en) 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7076672B2 (en) 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7143269B2 (en) * 2003-01-14 2006-11-28 Ip-First, Llc Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7085945B2 (en) 2003-01-24 2006-08-01 Intel Corporation Using multiple thermal points to enable component level power and thermal management
US7124321B2 (en) 2003-02-10 2006-10-17 Sun Microsystems, Inc. Adaptive throttling
US7496776B2 (en) 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
US7240225B2 (en) 2003-11-10 2007-07-03 Dell Products L.P. System and method for throttling power in one or more information handling systems
US7363517B2 (en) 2003-12-19 2008-04-22 Intel Corporation Methods and apparatus to manage system power and performance
US7194641B2 (en) 2004-01-22 2007-03-20 International Business Machines Corporation Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation
US7334143B2 (en) * 2004-04-19 2008-02-19 Hewlett-Packard Development Company, L.P. Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value
US7418608B2 (en) 2004-06-17 2008-08-26 Intel Corporation Method and an apparatus for managing power consumption of a server
US7330988B2 (en) 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7587580B2 (en) 2005-02-03 2009-09-08 Qualcomm Corporated Power efficient instruction prefetch mechanism

Also Published As

Publication number Publication date
JP2010524107A (ja) 2010-07-15
KR101159407B1 (ko) 2012-06-28
CN101652739A (zh) 2010-02-17
US7627742B2 (en) 2009-12-01
KR20090112645A (ko) 2009-10-28
WO2008122662A1 (en) 2008-10-16
JP5172942B2 (ja) 2013-03-27
US20080256345A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
CN101652739B (zh) 一种处理器、操作处理器的方法以及信息处理系统
CN101452378B (zh) 阻止指令提取调节的方法、处理器和装置
US9891923B2 (en) Loop predictor-directed loop buffer
US7609582B2 (en) Branch target buffer and method of use
KR101421346B1 (ko) 프로세서 명령어 발행 스로틀링
KR101513953B1 (ko) 조건부 비-분기 명령들의 비-실행을 예측하기 위한 방법들 및 장치들
KR101496009B1 (ko) 루프 버퍼 패킹
US9201658B2 (en) Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries
CN101449238A (zh) 本地和全局分支预测信息存储
CN101681258A (zh) 使用可变长度指令集处理器中分支目标地址缓存的分支预测
GB2416412A (en) Branch target buffer memory array with an associated word line and gating circuit, the circuit storing a word line gating value
Sethuram et al. A neural net branch predictor to reduce power
Lee et al. On augmenting trace cache for high-bandwidth value prediction
Wang et al. BBQ-A Simple and Effective Approach to Backward Branch Predictions for Embedded Processors
US20050044318A1 (en) Method and apparatus for a trace cache trace-end predictor
Guy et al. High performance branch prediction
Hwang et al. Two cache lines prediction for a wide-issue micro-architecture
AbdelHak et al. Reducing misprediction penalty in the branch target buffer
Panda A Branch-Directed Data Cache Prefetching Technique for Inorder Processors
Marr Microarchitecture choices and tradeoffs for maximizing processing efficiency

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111012

CF01 Termination of patent right due to non-payment of annual fee