专利名称:在信息处理系统中当处理器遇到低置信度分支时通过对指令取回节流来节约功率的方法 ...的制作方法
技术领域:
概括地说,本发明涉及处理器;更具体地,涉及在信息处理系统中采用节能方法的处理器。
背景技术:
现代的信息处理系统使用通常生成大量热量的处理器。存在读出处理器温度的热节流技术。当处理器的温度超过预定阔值温度时,系统节流或降低处理器的时钟速率以相应地降低处理器的温度。这样,系统防止不期望的过热。备选地,系统可采用时钟门控,即使得处理器的时钟停止一段时间,以降低处理器的温度。
功耗是现代处理器的最大工作频率的重要的起作用因素。存在读出处理器消耗的功率数量的功率节流技术。当消耗的功率超过预定的阈值功率水平时,功率节流系统降低处理器的工作频率,^f吏得处理器消耗较少的功率。
需要一种实现在信息处理系统中进一步降低处理器功耗的装置和方法。
发明内容
相应地,在一个实施例中,公开了一种操作处理器的方法。该方法包括由取回器从指令源取回指令以提供包括取回的分支指令的指令流。该方法还包括由分支指令队列存储来自所述指令流的多个取回的分支指令。该方法还包括由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执
行的分支指令。该方法还包括由置信度存储存储器存储置信度信息,所述置信度信息描述了所述分支指令队列中的取回的分支指令在所述分支预测信息中的置信度数量。该方法还包括如果所述置信度信息指示置信度小于预定置信度阈值,则由节流电路对从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
在另一实施例中,公开了一种操作处理器的方法。该方法包括由取回器从指令源取回指令以提供包括取回的分支指令的指令流。该方法还包括由分支指令队列存储来自所述指令流的多个取回的分支指令。该方法还包括由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令。该方法还包括由置信度存储存储器存储多个置信度值,其描述了所述分支指令队列中相应取回的分支指令的分支预测信息的不准确度。该方法还包括如果置信度值的总和超过预定阈值,则由节流电路对所述取回器从所述指令源取回指令进行节流,其中所述节流操作降低了所述处理器的功耗。
在另一实施例中,公开了一种处理器,包括指令源,其存储指令。该处理器还包括取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括取回的分支指令的指令流。该处理器还包括分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个分支指令中的分支,由此提供执行的分支指令。该处理器还包括节流控制器,其耦合至所述取回器。所述节流控制器能够对所述取回器取回指令进行节流。所述节流控制器包括分支指令队列,其存储多个取回的分支指令。所述节流控制器还包括置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的相应置信度值。所述置信度值描述了所述分支指令队列中相应取回的分支指令在分支预测信息中缺乏置信度。如果所述置信度存储存储器中的置信度值的总和超过预定阈值,则所述节流控制器对从所述指令源取回指令进行节流,从而所述节流操作
6降低所述处理器的功耗。
附图仅示出本发明的示例性实施例,因此不限制本发明的范围,因为本发明的概念使得其自身依附于其他等同有效的实施例。
图1示出所公开处理器的一个实施例的框图;图2示出所公开处理器采用的代表性节流控制器的框图;图3示出所公开处理器可采用的备选节流控制器的框图;图4是示出所公开处理器在执行取回节流操作时在处理器中的处理流的流程图;以及
图5是采用图1的所公开处理器的信息处理系统(HIS)的框图。M实施方式
许多当前 的处理器采用推测执行技术,这种技术使用分支预测来增加处理效率。处理器中的指令取回器取回含有分支指令的指令流。响应于分支预测,处理器可推测性地执行分支指令之后的指令。更具体地,在指令解码器解码指令流的所取回分支指令之后,分支预测电路做出是否采用分支指令提供的分支的预测。分支或者"被采用"或者"未^皮采用"。分支预测电路通过使用分支历史信息(即当处理器在过去遇到此特定分支指令时的分支结果)预测是否采用分支。如果分支预测电路正确预测分支,则处理器保存分支之后的指令的结果。然而,如果分支预测不正确,则处理器丢弃分支之后的指令的结果。
处理器对指令的推测执行将消耗功率。期望以基本上不影响处理器性能的方式最小化推测执行行为消耗的功率。在一个实施例中,当处理器遇到其在预测分支指令的结果时具有低置信度的分支指令时,处理器通过节流处理行为来降低功耗。所述处理器包括分支指令队列(BIQ),其存储指令流的分支指令以及每个存储的分支指令的置信度信息。置信度信息指示处理器在mQ内的每个分支预测的正确度中展示的置信水平。在一个实施例中,所述处理器对BIQ中的低置信度分支的数目求和。如果低置信度 分支数的和大于预定可编程阈值,则处理器执行指令取回节流以降低功耗。 由于处理器对低置信度分支路径执行指令取回节流,而不对高置信度分支 路径执行节流,所以此方法对处理器性能几乎没有负面影响。换句话说, 所述处理器在高置信度分支路径中继续全速执行指令而不执行节流。
图1示出在低置信度分支上采用节流来降^f氐处理器消耗的功率的处理 器100的一个实施例。处理器100包括存储器105,例如本地高速緩沖存 储器,其包括处理器100执行的指令流。因此,存储器105用作指令源。 在实际操作中,存储器105连接到更大的外部系统存储器(未示出),后 者包括处理器执行的指令流或程序。取回器110耦合至存储器105,以从 存储器105取回指令用于执行。取回器110包括指令地址输入端IIOA。解 码器电路115耦合至取回器110,以解码其从取回器110接收的取回的指 令。取回的指令流包括具有操作码和操作数的指令。指令流中的一些指令 是分支指令。定序器电路117耦合至解码器115。定序器电路117确定应 接收特定解码指令用于执行的适当执行单元。定序器电路117耦合至以下 执行单元定点执行单元(FXU) 120、浮点执4亍(FPU)单元125、加载 存储单元(LSU) 130、和分支执行单元(BRU) 135。定点执行单元(FXU) 120包括寄存器文件120A。浮点执行单元125包括寄存器文件125A。
执行单元推测性地执行指令流中解码的分支指令之后的指令。分支历 史表(BHT) 140耦合在取回器110的指令地址输入端110A与分支执行单 元(BRU) 135之间。分支历史表140跟踪先前执行的分支指令的历史结 果。分支单元(BRU) 135使用该历史分支执行信息对其当前接收的分支 指令做出分支预测。完成单元145耦合至每个执行单元,即FXU 120、 FPU 125、 LSU 130和BRU 135。更具体地,完成单元145耦合至FXU寄存器 文件120A和FPU寄存器文件125A。完成单元145确定是否应完成推测 执行的指令。如果分支单元(BRU) 135正确预测分支,则在分支之后的 指令应完成。例如,如果分支单元135正确预测分支,则在该分支之后的 定点或整数指令应完成。在这种情况下,完成单元145控制将分支的定点结果写回定点寄存器文件120A。如果在正确预测的分支之后的指令是浮点 指令,则完成单元145控制将该浮点指令的结果写回浮点寄存器文件125A。 当指令完成时,它们不再是推测性的。分支执行单元(BRU) 135与完成 单元145和BHT协同工作,以判断是否采用特定的分支指令。
更具体地,分支历史表(BHT) 140包括先前执行的分支指令的历史。 BHT140中的每个表项包括方向位和置信度位。对于特定分支指令,其在 BHT中的表项包括指出"分支被采用"或"分支未被采用"的方向位。在 一个实施例中,如果上次分支未被采用,则方向位可等于0;或者,如果 上次分支被采用,则方向位可等于1。在一个实施例中,对于特定分支指 令,方向位指出在下一次处理器遇到该分支指令时处理器是否应采用该分 支。方向位不一定代表前一次处理器遇到分支指令时分支的方向。然而, 在大部分时间,方向位确实指出上一次处理器遇到分支指令时分支的方向。 对于特定分支指令,如果在分支被采用或分支未3皮采用预测中存在低置信 度,则置信度位可等于1。如果在分支被采用或分支未,皮采用预测中存在 高置信度,则置信度位可等于0。特定分支预测展示低置信度的一个原因 是在上两次处理器执行特定分支指令时,处理器在一种情况下采用分支, 但是在另一种情况下未采用分支。特定分支预测展示高置信度的原因包括 在上两次处理器执行特定分支指令时,处理器两次都采用分支,或者两次 都未采用分支。
处理器100包括节流控制电路或节流控制器200,其具有分支指令队 列(BIQ) 205。在该特定实施例中,分支指令队列(BIQ ) 205包括16个 表项,即取回器取回的但处理器尚未完成的指令流中多达16个的分支指 令。根据特定应用,BIQ205可包括比16个表项更多或更少的表项。节流 控制器200还包括与BIQ 205相关的置信度跟踪队列或置信度队列(CQ ) 210。 CQ 210用作存储置信度信息的置信度信息存储存储器。对于BIQ 205 的每个分支指令表项,CQ210包括相应的置信度位。在该特定实施例中, CQ包括16个表项,即低置信度位。对于BIQ 205中的特定分支指令表项, 如果在CQ 210中的相应CQ置信度位表项展示逻辑1,则W示该特定分支指令在分支预测中的低置信度。然而,对于BIQ205中的特定分支指令 表项,如果在CQ 210中的相应CQ置信度位表项展示逻辑0,则这表示该 特定分支指令在分支预测中的高置信度。节流控制器200访问分支历史表 140,以帮助在CQ 210中填充置信度位。例如,在一个实施例中,对于 BIQ 205存储的特定分支指令,为了使用相应的不同置信度位填充CQ 210, 如果最后一次处理器执行分支指令时BRU 135和BHT 140错误预测了该 分支指令,则节流控制器200在CQ表项中存储为1的置信度位。然而, 如果最后一次处理器执4于分支指令时BRU 135和BHT 140正确预测了该 分支指令,则节流控制器200使用为0的置信度位填充CQ中该分支的相 应表项。在一个实施例中,BHT140保存或存储相应分支指令的置信度位 或置信度值,并且BHT 140在分支指令执行时更新自身。当取回器110取 回特定分支指令时,CQ 210访问BHT 140,并读取和存储与该特定分支 指令对应的置信度位。
在图l的实施例中,分支指令队列(BIQ) 205是循环队列。BIQ205 包括头指针,其概念性地示为头指针215;以M指针,其概念性地示 为尾指针220。头指针215指向BIQ 205中最新的分支指令,尾指针220 指向BIQ 205中最早的分支指令。在BIQ 205从取回器110接收分支指令 时,头和尾指针每次移动一个分支指令,使得头指针215始终指向^ BIQ 205的最新分支指令,以及使得尾指针始终指向BIQ 205中的最早分支指 令。
节流控制器200还包括控制逻辑225,其耦合至头指针215、尾指针 220和置信度队列(CQ)210。由此,控制逻辑225接收当前头指针、当 前尾指针和CQ 210的所有置信度位。头指针在每次另 一分支指令进入BIQ 205时改变。尾指针在每次分支指令完成时改变。置信度队列(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,已经参照图l对它们进行了讨论。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个最近取回的分支指令。因此,在某一时刻,与BIQ205中的相应分支 指令相关的置信度位可作为整体指出节流控制器在这些分支指令的预测正 确性中具有低置信度。在这种情况下,节流控制器200开始取回节流以减 少功耗。然而,在另一时刻,使用另一组分支指令填充BIQ。在这种情况 下,与BIQ 205的相应分支指令相关的置信度位可作为整体指出节流控制 器200在这些分支指令的预测正确性中具有高置信度。因此,节流控制器 200不开始取回节流以减少功耗,而是指示取回器110全速取回。
控制逻辑225包括"与,,电路235,其具有16线输入端235A和16线 输入端235B。"与"电路输入端235A耦合至CQ 210中的16个槽或存储 位置,从而"与"电路235从CQ210接收16个置信度位。头指针215和 尾指针220耦合至有效向量生成电路240。有效向量生成电路240使用头 和尾指针信息生成16位向量,其中向量的每个位对应于BIQ 205的不同表 项。16位向量的每个位指示BIQ205中的相应分支指令表项是否有效。如
ii果16位向量的特定位展示逻辑1,则BIQ 205的相应分支指令表项有效, 即分支指令仍在处理中。然而,如果16位向量的特定位展示逻辑0,则 BIQ 205的相应分支指令表项无效。有效的BIQ 205的表项在尾指针处开 始,并向下跨越到头指针。例如,如果头指针在表项BI-3处并且尾指针在 表项m-7处,则16位有效向量是0001111100000000。这意味着表项BI-3、 BI-4、 BI-5、 BI-6和BI-7有效,同时剩余表项无效。如果头指针在尾指针 之上,则有效向量环绕并且不是连续的。例如,如果头指针在表项BI-14 处并JLC指针在表项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全速取回指令。在这种情况下,在BIQ205的分支 指令的预测中,处理器展示高置信度。因此,分支指令的推测执行全速继 续,而无需取回器节流和功率降低。
图3示出作为控制器300的节流控制器的简化版本。图3的节流控制 器300类似于图2的节流控制器200,其中类似的标号表示类似的元素。 在节流控制器300中,控制器没有采用有效向量生成来检查BIQ 205中的 分支指令的有效性。因此,节流控制器300没有釆用有效向量生成器240 和"与"电路235。图3的控制逻辑225,类似于图2的控制逻辑225,除了 控制逻辑225,没有使用"与,,电路235之外。然而,通过去除检查BIQ205 中的分支指令的有效性的有效向量生成,加法器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,取回器IIO 从包括分支指令的指令的指令流开始取回指令。此时,分支单元(BRU) 135读取分支历史表(BHT) 140,以获得与分支指令的结果有关的预测。 在初始化时,BHT140不包括表项。然而,随时间流逝,BHT140累积指 令流中的先前分支指令的结果的历史。BHT140还包括置信度信息,后者 指示在最后一次HBT 140预测分支的结果时其是否正确预测每个分支指 令。在处理器100继续执行指令流的指令时,根据方框430,使用分支指 令填充分支指令队列(BIQ 205)。对于BIQ 205的每个分支指令,使用 相应置信度位填充CQ 210。
根据方框435,控制逻辑225通过将来自有效向量生成器240的有效 向量245和CQ 210的置信度位进行逻辑"与"来限定CQ 210中有效的那 些置信度位。才艮据方框440,加法器250将来自CQ210的所有有效置信度 位累加在一起,以确定总和POPCOUNT。 POPCOUNT的值表示低置信 度分支指令总计。根据方框445,控制逻辑225执行测试以确定低置信度 分支指令总计POPCOUNT是否大于预定的低置信度阁值THRESH。如果 决策方框445确定当前低置信度分支指令总计POPCOUNT大于预定低置 信度阈值THRESH,则BIQ中分支指令的分支预测的准确度的置信度很 低,使得取回节流状态机230开始取回节流。在低置信度分支指令以及从 那些分支指令延伸的分支中的指令的推测性执行期间,此操作降低了功耗。
更具体地,取回节流状态机230是生成1位信号THROTTLE的可编 程状态机,其中0表示"阻止取回",1表示"允许取回,,。状态机230
14的输出端耦合至取回器110,以向其提供节流信号。如果节流信号等于o,
则这指示取回器不执行取回。如上所述,取回节流状态机230可根据程序 员、i殳计者或其他实体的选择展示启用状态或非启用状态。如果取回节流 状态机230展示非启用状态,则其始终输出具有值l的节流信号,从而根 据方框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开始 对取回器lll节流。例如,为了造成取回节流,状态机230生成节流信号 THROTTLE,其展示确定取回器110采用的节流量的数字模式。在一个 实施例中,节流信号展示在节流操作的持续时间内重复的数字模式1000。 模式中的1指示取回器在相应机器循环期间取回。模式中的000指示取回 器在接下来的3个机器循环内不取回。因此,数字节流模式1000指示取回 器110在每隔3个机器循环取回一次指令。这对应于75V。的节流。数字模 式1010提供比1000数字模式更少的节流,即对50%的处理器机器循环节 流。根据特定应用所期望的节流量,状态机230可使用其他数字模式作为 节流信号。在一个实施例中,可才艮据期望的节流量和功率节约对数字节流 模式编程。
图5示出采用处理器100的信息处理系统(IHS) 500 IHS是以数字形式、模拟形式和其他形式处理、传输、传送、修改、存储或以其他方式处理信息的系统。IHS500包括总线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,以便于 外围设备和装置连接至IHS500。网络适配器565耦合至总线505,以使得 IHS 500能够有线或无线地连接至网络和其他信息处理系统。尽管图5示 出采用处理器IOO的一个HIS,但是HIS可采用许多形式。例如,IHS500 可采用台式电脑、服务器、便携式设备、膝上型电脑、或其他形式因素计 算机或数据处理系统的形式。IHS 500可采用例如游戏设备、个人数字助 理(PDA)、便携式电话设备、通信设备或包括处理器和存储器的其他设 备的其他形式因素。尽管在上述实施例中,CQ210存储置信度位,后者根据分支预测的低 置信度描述BIQ205中的分支指令在这些预测中的置信度,但是等同方法 和装置可反转处理器的逻辑并仍实现公开的技术。例如,与图1实施例的 分支预测中的低置信度量相反,处理器100可釆用CQ 210中描述在BIQ 205中的分支指令的分支预测中的高置信度量的置信度信息。在此类实施 例中,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分支指令表项来说,BIQ205存储相应的置信度位。根据本发明的说明书,本发明的修改和备选实施例对于本领域普通技 术人员是清楚的。因此,本说明书向本领域普通技术人员教导了执行本发 明的方式,并旨在4皮理解为只是示例性的。所示和所述的本发明的形式构 成各实施例。本领域普通技术人员可在部件的形状、大小和配置方面做出 各种变化。例如,本领域普通技术人员可用等同元素代替这里所示和所述 的元素。此外,在不脱离本发明范围的情况下,本领域普通4支术人员在获 得本发明的这里描述的益处之后可使用本发明的某些特征,与其他特征的 使用无关。
权利要求
1.一种操作处理器的方法,该方法包括由取回器从指令源取回指令以提供包括分支指令的指令流;由分支指令队列存储来自所述指令流的多个取回的分支指令;由分支执行单元通过使用分支预测信息推测性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支,由此提供执行的分支指令;由置信度存储存储器存储一个或多个置信度值,每个置信度值描述了所述分支指令队列中的相应取回的分支指令在所述分支预测信息中的置信度;以及如果所述置信度值的总和低于预定阈值,则由节流电路对所述取回器从所述指令源取回指令进行节流,其中所述节流步骤降低了所述处理器的功耗。
2. 如权利要求1所述的方法,其中由置信度存储存储器存储的步骤 包括对于所述分支指令队列中存储的每个取回的分支指令,在所述置信 度存储存储器中存储相应的置信度值。
3. 如权利要求1或2所述的方法,还包括由有效向量生成电路生 成有效向量,所述有效向量标识了在所述分支指令队列中存储的有效的取 回分支指令。
4. 如权利要求3所述的方法,还包括由"与"电路将所述有效向 量和所述置信度值进行逻辑"与,,以获得有效置信度值。
5. 如权利要求4所述的方法,还包括由加法器电路将所述有效置 信度值相加以获得在所述置信度存储存储器中存储的有效置信度值的总 和。
6. 如权利要求5所述的方法,其中所述节流步骤包括 由比较器将所述有效置信度值的总和与所述预定阈值相比较;以及 如果所述比较器确定所述有效置信度值的总和超过所述预定阈值,则由取回节流状态机降低所述取回器从所述指令源取回指令的速率,否则所 述取回节流状态机允许所述取回器从所述指令源全速取回指令。
7. 如权利要求1至6中的任一权利要求所述的方法,其中所述预定 阈值是可编程阈值。
8. —种处理器,包括 指令源,其存储指令;取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括 取回的分支指令的指令流;分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测 性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支, 由此提供执行的分支指令;以及节流控制器,其耦合至所述取回器,并能够对所述取回器取回指令进 行节流,所述节流控制器包括分支指令队列,其存储多个取回的分支指令;置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的 相应置信度值,所述置信度值描述了所述分支指令队列中的相应取回的分 支指令在所述分支预测信息中缺乏置信度;如果所述置信度存储存储器中的置信度值的总和超过预定阈值,则所 述节流控制器对从所述指令源取回指令进行节流,其中所述节流操作降低 了所述处理器的功耗。
9. 如权利要求8所述的处理器,还包括有效向量生成电路,其生 成有效向量,所述有效向量标识了在所述分支指令队列中存储的有效的取 回分支指令。
10. 如权利要求9所述的处理器,还包括"与"电路,其耦合至所 述置信度存储存储器和所述有效向量生成电路,并将所述有效向量和所述 置信度值进行逻辑"与"以获得有效置信度值。
11. 如权利要求10所述的处理器,还包括加法器电路,其耦合至 所述"与"电路,并将所述有效置信度值相加以获得在所述置信度存储存储器中存储的有效置信度值的总和。
12. 如权利要求11所述的处理器,还包括比较器,其耦合至所述 加法器电路和阈值电路,并将所述有效置信度值的总和与所述阚值电, 供的所述预定阈值相比较。
13. 如权利要求12所述的处理器,还包括取回节流状态机,其耦 合至所述比较器和所述取回器,如果所述比较器确定所述有效置信度值的 总和超过所述预定阈值,则所述取回节流状态机降低所述取回器从所述指 令源取回指令的速率,否则所述取回节流状态机允许所述取回器从所述指 令源全速取回指令。
14. 一种信息处理系统(IHS),所述IHS包括 存储器;处理器,其耦合至所述存储器,所述处理器包括指令源,其存储指令,所述指令源耦合至所述存储器;取回器,其耦合至所述指令源,并从所述指令源取回指令以提供包括取回的分支指令的指令流;分支执行单元,其耦合至所述取回器,并通过使用分支预测信息推测 性地执行取回的分支指令,并判断是否采用每个取回的分支指令中的分支, 由此提供执行的分支指令;以及节流控制器,其耦合至所述取回器,并能够对所述取回器取回指令进 行节流,所述节流控制器包括分支指令队列,其存储多个取回的分支指令;置信度存储存储器,其存储所述分支指令队列中的取回的分支指令的 相应置信度值,所述置信度值描述了所述分支指令队列中的相应取回的分 支指令在所述分支预测信息中缺乏置信度;如果所述置信度存储存储器中的置信度值的总和超过预定阈值,则所 述节流控制器对从所述指令源取回指令进行节流,其中所述节流操作降低 了所述处理器的功耗。
全文摘要
一种信息处理系统,其包括处理器,每当在分支指令队列中存储的分支指令的分支预测中的不准确度或缺乏置信度超过不准确度或错误的预定阈值置信水平时,所述处理器对指令取回器进行节流。这样,在处理器可能错误预测分支指令的结果时,取回操作减慢以节约处理器功率。在处理器可能正确预测分支指令的结果时,取回操作返回全速。
文档编号G06F1/32GK101652739SQ200880011619
公开日2010年2月17日 申请日期2008年4月10日 优先权日2007年4月10日
发明者A·布于克托苏诺格卢, C-Y·谢尔, M·K·克施温德, P·博塞, R·A·菲洛维尔, R·C·扬, R·奈尔, S·沃尔弗拉姆 申请人:国际商业机器公司