控制流水线型处理器中的功率消耗的方法和系统的制作方法

文档序号:6467992阅读:213来源:国知局
专利名称:控制流水线型处理器中的功率消耗的方法和系统的制作方法
技术领域
本发明总地针对数据处理系统领域。
一方面,本发明涉及流水线型处理
器系统(pipelined processor system )中的动态功率控制。
背景技术
在流水线型处理器设计中,典型地设计各个流水线级,以通过在每一级处使从存储器(读出)的等待时间和向存储器(写入)的等待时间最小化、并且使每一级处的带宽最大化来提供最大性能。然而,这种处理器通常被"过度设计(over-designed)" 了,因为典型的处理器使用不需要在每个时钟周期中所有级都最大限度地运行。在处理器被设计以在任何可能的时间都最大限度地执行的情况下,它们的操作可能导致大的功率消耗,并且实际上可能致使对于一些指令分发(instruction distribution)的性能P争低。例如,当执行具有自然低的指令级并行性(instruction-level parallelization, ILP )的工作量时,处理器流水线不需要以全功率/高吞吐量(throughput)模式操作,实际上,这种操作模式由于各单元中的更高的等待时间可能对性能造成负面影响,并且不必要地耗费功率。因此,需要一种控制流水线型处理器系统中的性能和功率消耗的系统和方法。另外,需要一种流水线型处理器系统及设计,其提供所需要等级的性能和吞吐量、而没有过多的功率消耗。在参照随后的附图和详细说明来考察本申请的剩余部分后,传统的解决方案的其它限制和缺陷对于本领域技术人员将会变得显而易见。

发明内容
根据本发明的各种实施例,提出了一种处理器设计和方法,其中当处理器中的各个单元或者级执行给定的工作量时,可动态配置的处理器监视或检
测所述处理器中的各个单元或者级的性能。可动态配置的处理器包括一个或多个具有高性能设计/模式以及低性能设计/模式的级。高性能设计/模式被用来以相对高的功率消耗等级执行工作量,但是当所检测到的、执行工作量的性能特性许可时,处理器切换以使用低性能设计/模式来以相对较低的功率消耗等级执行工作量。通过配置处理器以从高性能设计后退到低性能设计以满
足(meet)所检测到的、执行工作量许可的性能特性,可以优化功率消耗。在所选择的实施例中,诸如通过在所定义的时间窗口期间对级操作的数目进行计数,来在所述时间窗口期间监视各个流水线级(例如,取出、解码、执行、回写(write back)、完成)的吞吐量。 一开始,各个流水线级使用高吞吐量、高功率设计。然而,如果任一级的吞吐量计数指示在该级存在性能瓶颈,
则动态地重新配置处理器流水线以使用较低吞吐量、较低功率设计。
根据各种实施例,在使用这里描述的方法和/或装置的软件控制下,可以动态地配置各个流水线级中的一个或多个流水线级,以在高吞吐量、高功率设计以及较低吞吐量、较低功率设计之间切换,所述软件控制可以在具有包括计算机可执行指令的计算机程序代码的数据处理系统中实现。无论何种实现形式,都可以通过测量在高性能模式下操作的多个流水线级的吞吐量速率来控制流水线型处理器中的功率消耗。在示例实现中,对于每个流水线级,通过对在预定的窗口期间发生多少个级事件进行计数来测量吞吐量速率。通过随时间推移测量吞吐量速率,诸如通过将一个或多个吞吐量速率与预定的高性能吞吐量阈值进行比较,可以检测到速率中的任何跌落(drop-off)。在检测到何时多个吞吐量速率中的一个或数个吞吐量速率被降低到第 一预定吞吐量速率时,将第一功率等级控制信号发送到该多个流水线级。在各种实施例中,可以将功率控制信号作为l-位功率等级控制信号广播到所有流水线级,或者将该功率控制信号作为单独的功率等级控制信号发送到每个流水线级。如果该级具有以各种吞吐量和功率速率操作的多个等级,则可以实现多个功率等级控制信号以在各操作等级之间进行选择。响应于第一功率等级控制信号,每个流水线级被重新配置来在低性能模式下操作,从而降低该多个流水线级的功率消耗。可以通过响应于第一功率等级控制信号而在每一级处选择第一低功率电路,来实现重新配置为低性能模式。为了返回高性能模式,监视现在在低性能模式下操作的多个流水线级的吞吐量速率,以在时钟周期窗口中检测何时吞吐量速率达到或超出第二预定阔值速率,在该时刻将第二功率等级控制信号发送到各流水线级,使得每个流水线级被重新配置为在高性能模式下操作。


当结合随后的附图考虑下面的详细描述时,可以理解本发明的所选择的
实施例、以及本发明的众多目的、特性以及所得到的优点,附图中
图1图示可以实现本发明的所选择的实施例的多处理器计算机架构;图2以简化的示意形式图示具有性能监视器逻辑的处理器流水线,该性
能监视器逻辑对在所定义的多个周期的窗口中的事件进行计数;
图3以简化形式图示用于对可编程的周期窗口中的事件进行计数的计数
器;
图4以简化的示意开,式图示处理器流水线,其中, 一个或多个功率等级信号馈送到流水线并控制各级的功能;
图5图示可以响应于功率等级信号而单独选择高性能设计和低性能设计的执行级的示例实现;以及
图6示出用于监视各个流水线级的性能并且生成一个或多个功率等级位以控制各流水线级的示例序列的流程图。
具体实施例方式
公开了一种用于监视流水线型处理器的性能来在检测到处理器吞吐量降低时重新配置流水线以从高性能(高功率)模式切换到低性能(低功率)模式的方法、系统和程序。通过将各单元设计为具有多种操作模式,并且采用通过感测吞吐量或者执行工作量的ILP特性来在模式之间切换的机制,功率消耗可以与每个周期的执行等待时间一起被降低,使得性能并不必然恶化,并且实际上可能提高性能。在所选择的实施例中,性能监视器协调如何配置每个流水线级的操作,使得使用高性能配置以相对高的功率消耗等级来执行工作量,而在所检测到的、执行工作量的性能特性许可时,使用低性能配置以相对较低的功率消耗等级来执行工作量。
现在将参照附图详细描述本发明的各种示例实施例。将理解可以将这里描述的流程示和/或框图整体地或者部分地由如下方式实现专用硬件电路、固件和/或计算机程序指令,该计算机程序指令被提供给通用计算机、专用计算机或者其它可编程数据处理装置的处理器以产生一机器,使得该指令(其经由计算机或者其它可编程数据处理装置的处理器执行)实现在流程图和/或框图中的一个或多个框中指定的功能/动作。另外,当在下面的描述中提出各种细节时,将了解可以在没有这些特定细节的情况下实践本发明,并且可以对这里描述的发明做出许多特定实现决定以达到设备设计者的特定目标,诸如遵循技术或者与设计有关的限制,这些限制将依每个实现而有所变化。尽管这样的开发工作可能是复杂和耗时的,但对于受益于本公开的本领域普通技术人员来说这仍然是可以从事的工作。例如,以框图形式、而不是详细地示出所选择的方面,从而避免限制本发明或者使本发明不明确。另外,按照关于计算机存储器内数据的算法或者操作来呈现这里提供的详细描述的一些部分。本领域技术人员使用这样的描述和表述来将他们工作的主旨描述和传递给本领域其他技术人员。现在将在下面参照附图详细描述本发明的各种示例实施例。
现在参照图1,其中图示了根据本发明的所选择的实施例的、提供程序
工作量的低功率执行而不降低性能的多处理器(MP)数据处理系统100的高层级框图。数据处理系统100具有被布置在一个或多个处理器组中的一个或多个处理单元,并且如所示的包括处理器组10中的四个处理单元11、 21、31、 41。在对称多处理器(SMP)实施例中,所有的处理单元ll、 21、 31、41通常是相同的,即它们都使用共同的指令和协议集或者子集来操作,并且通常具有相同架构。如用处理单元ll所示的,每个处理单元可以包括一个或多个处理器核16a、 16b,其运行程序指令从而操作计算机。示例处理单元可以是由国际商业机器公司出售的POWER5 处理器,其包括具有都由集成电路形成的各种执行单元、寄存器、緩冲器、存储器、以及其它功能单元的单个集成电路超标量体系结构(superscalar)微处理器。处理器核可以根据精简指令集计算(RISC)技术操作,并且可以采用流水线以及指令的乱序执行这两者来进一步提高超标量体系结构架构的性能。
如图1进一步所示的,每个处理器核16a、 16b包括由高速存储器设备构成的板上(L1)高速緩沖存储器19a、 19b(典型地,单独的指令和数据高速緩冲存储器)。高速緩冲存储器一般被用来临时存储可能被处理器重复存取的值,从而通过避免从系统存储器61加载值的较长(时间)的步骤来加快处理速度。处理单元可以包括诸如第二级(L2 )高速緩冲存储器12的另 一高速緩冲存储器,其连同高速緩冲存储器控制器(未示出) 一起支持分别作为核16a和16b的部分的Ll高速缓冲存储器19a、 19b。可以提供额外的緩冲存储器级,诸如可经由结构总线(fabric bus) 50存取的L3高速緩冲存储器66。从
7最高(LI )到最低(L3)的每个高速緩沖存储器级依次可以存储更多的信息,但是以更长的存取(时间)作为代价。例如,处理器核(例如,16a)中的板上L1高速緩冲存储器(例如,19a)可能具有128千字节的存储器存储容量,L2高速緩冲存储器12可能具有4兆字节的存储容量,以及L3高速緩沖存储器66可能具有132兆字节的存储容量。为了便于修理/更换有缺陷的处理单元组件,可以以可更换电路板、可插入模块、或者类似的现场可更换单元(FRU)的形式来构成每个处理单元11、 21、 31、 41,所述可更换电路板、可插入模块、或者类似的现场可更换单元(FRU)可以被以组件形式容易地换入、装入、或者换出系统100。
处理单元经由系统互连或者结构总线50与系统100的其它组件通信。将结构总线50连接到一个或多个服务处理器60、系统存储器设备61、存储器控制器62、共享的或者L3系统高速緩冲存储器66、和/或各种外围设备69。可选地,可以使用处理器桥70将另外的处理器组相互连接。尽管未示出,将理解数据处理系统IOO还可以包括固件,其存储系统的基本输入/输出逻辑,并且无论何时首次打开(引导)计算机系统,都从外围设备之一搜出并加载操作系统。
如图1所描述的,可以将数据处理系统100中包括的每个核(例如16a)与流水线结构50 —起实现,在该流水线结构50中,提供多个流水线级使得每一级可以同时执行任务。在示例实现中,流水线结构50可以包括取出级51、解码级52、执行级53、回写级54以及完成级55,其中每一级可以包括一个或多个单元。当操作为流水线时,取出级51在给定的周期中取出一个或多个指令,同时在同一周期期间,解码级52解码在前一周期中取出的指令。同时,执行级53计算之前取出并解码的一个或多个指令的结果,回写级54执行前一周期中的执行级所需要的任何寄存器回写操作,完成级55通过考虑之前执行的指令来维持正确的架构机器状态。
系统存储器设备61 (随机存取存储器或RAM)以易失性(临时)状态存储由处理单元使用的程序指令和操作数数据(叩erand data),该系统存储器设备61包括操作系统61A和应用程序61B。另外,可以以诸如操作系统模块或者系统管理器(supervisor)的任何期望的形式将性能监视器模块61C存储在系统存储器中,该系统管理器诸如是管理程序(hypervisor)组件等,并且响应于流水线结构50中的所检测到的性能或者吞吐量状况,使用该性能监视器模块61C来优化处理器核的功耗。尽管作为系统存储器内的设施示出,但本领域技术人员将理解可以替代地在数据处理系统100的另一组件内实现性能监视器模块61C,或者可以在每个处理核中实现性能监视器模块的各个实例(instance),以分别控制每个核处的功率消耗。无论被如何实现,性能监视器模块61C都可以使用可执行指令、代码和/或包括可编程寄存器的控制逻辑,以便在某一数目(或者窗口)的时钟周期上检查给定的流水线结构的性能吞吐量(例如,8个时钟周期中有5个事件);检测任何正在以较低的吞吐量性能进行操作(例如,正被停止运转(stall))的流水线级;并且在受影响的流水线级中选择以较低的功率消耗操作的低性能模式或者电路设计,且同时维持该流水线现有的性能等级,如在下面将更全面地描述的。
在各种实施例中,性能监视器模块可被用来监视和控制处理器核中的各个流水线级的性能等级,从而将吞吐量(或者带宽)与等待时间和功率进行权衡。图2中描述了示例实施例,以筒化的示意形式图示具有性能监视器逻辑220的示例处理器流水线200,该性能监视器逻辑220监视每个流水线级的吞吐量,然后基于所检测到的各个流水线级的吞吐量来控制各个流水线级的功耗。可以使用包括多个级的任何期望的流水线架构。例如,流水线200可以包括取出并转送指令的指令高速緩冲存储器取出级202、解码所取出的指令的指令解码级204、基于执行和回写反馈来执行解码后的指令的执行级206、对寄存器文件执行回写操作的回写级208、以及完成各指令的完成级210。如图2中所示,处理器流水线200的取出级、解码级、执行任务(executionissue)级、回写级、以及完成级中的每一级具有多种操作模式和/或可分别选择的电路或者逻辑。例如,流水线200可以包括取出级202,该取出级202具有至少两种模式,诸如(1 )在2个流水线周期上每周期可以取出4个指令的高功率、高吞吐量模式、以及(2)在1个流水线周期上每周期可以取出2个指令的低功率、低吞吐量模式。可以利用第一取出电路202A实现高功率、高吞吐量取出模式,可以利用第二取出电路202B实现低功率、低吞吐量模式。另外,解码级204可以具有两个或者多个可分别选择的解码电路,诸如(l)在3个流水线周期上解码4个指令的第一解码电路204A、以及(2)在1个流水线周期上解码2个指令的第二解码电路204B。以类似的方式,可以在执行级206处提供可分别选择的电路、模式和/或逻辑,用来执行指令,诸如(1 )以解码单元的时钟频率的两倍的时钟频率运行的、在2个周期中执行一指令的第一执行电路206A、以及(2)以与解码单元相同的时钟频率运行的、在4个周期中执行一指令的第二执行电路206B。类似地,可以给回写级208提供可分别选择的电路、模式和/或逻辑,以处理对于寄存器文件的各种回写数目和各种回写等待时间,并且在完成级210处处理各种完成指令数目和各种完成指令等待时间。在每个所描述的级中,利用后缀"A,,指示高功率、高吞吐量的电路或模式,而利用后缀"B"指示低功率、低吞吐量的电路或模式。
如图2所描述的,流水线级202、 204、 206、 208、 210每一个具有通过检测每个周期的吞吐量计数来监视每个流水线级的性能的逻辑和/或电路,该吞吐量计数被发送到性能监视器逻辑220。因此,指令高速緩冲存储器取出级202对每个周期中被取出并被转送到指令解码级204的指令的数目进行计数,并将取出计数213提供给性能监视器220。同样,指令解码级204对每个周期的解码事件进行计数,并将解码计数215发送到性能监视器220,而执行级206对每个周期的执行事件进行计数,并将执行计数217提供给性能监斗见器220。以类似的方式,回写级208发送被转送到完成级210的回写揭:作的数目的回写计数219,而完成级210对所执行的完成的数目进行计数,并将完成计数221提供给性能监视器220。还示出了功率消耗信号222,其可由热传感器生成,并且指示系统的当前功率消耗状态。信号222可以包括源自系统的不同部件的多个信号。
尽管可以使用任何期望的技术来监视流水线性能,但是本发明的所选择的实施例通过在计数窗口期间对每一级的操作的数目进行计数来监视各个级的性能。图3中描述示例实现,以筒化形式图示给每一级提供的、以在可编程的周期窗口期间对在该级处发生的事件的数目进行计数的吞吐量计数器300。尽管可以使用任何期望的窗口来进行计数,但所描述的吞吐量计数器300通过使用8周期移位寄存器302来在8周期窗口上对级事件进行计数。提供可编程移位寄存器302来从该级接收事件计数指示,其中将每个事件计数指示加到由计数器304保持的值。还将计数器304耦接到可编程移位寄存器302的输出端,使得从计数器304中减去从寄存器302中移出的事件计数。在操作中,进入移位寄存器302的最左边的寄存器位的事件计数在每个时钟点(tick)时被移到下一寄存器位。利用该配置,计数器304将输出事件计数,该事件计数等于级的数目乘以当在高性能模式下以稳定状态操作时每个时钟周期在该级中可以发生的最大的事件数目。例如,如果每个时钟周期可以发
10生4个事件并且寄存器302长为8级,则最大计数器值可以是"32"。然而,如果该级在一时钟周期期间无法生成任何事件,则计数器304将输出较低的事件值,从而发信号通知该级的降低的性能吞吐量。以此方式,由吞吐量计数器300生成的事件计数提供正被吞吐量计数器300监视的级的性能等级的指示。
返回参照图2,性能监视器220使用吞吐量计数213、 215、 217、 219、221生成一个或多个信号以调节各个流水线级的性能,从而匹配最低性能级的性能等级。因此,如果性能监视器220由吞吐量计数确定处理器流水线的后端停止运转(例如,等待明显的负载丟失(outstanding load miss )、分支预测错误、以及执行单元等待时间),则可将前端级的性能从高性能、高功耗模式(其使用高性能取出电路202A)转换到低性能、低功耗模式(其使用较低性能的取出电路202B)。在这样的情况下,前端取出级202也可以使用较低性能电路202B或者模式来一次一个地取出较少的指令,而对于整个流水线200而言具有相同的性能,这是因为流水线的后端正在限制总吞吐量。同样,如果前端级停止运转(例如,取出级202由于指令丢失(miss)而停止运转),则不需要随后的解码级204继续使用高性能、高功耗解码电路204A来在同一周期中解码最大数目的指令以供在处理器流水线中的后面进一步使用,这是因为在这些指令被解码后,由于取出单元停止运转的状况而在管道(pipe)中将出现空泡(bubble)。通过在使用较低性能解码电路204B来解码较少的指令而不存在性能影响时使用该较低性能解码电路204B来解码较少的指令,可以降低每个周期的功率消耗。以类似的方式,可以有效地降低其它后端级的功率,以匹配停止运转的前端级的性能等级,从而实质上降低整个流水线的功耗。
在所选择的实施例中,性能监视器220包括控制逻辑,'用于生成被广播到所有各级的一个或多个功率等级信号224。实际上(in effect),控制逻辑将吞吐量计数213、 215、 217、 219、 221 (单独地或者与功率消耗信号22组合地,该功率消耗信号22量化正被处理器流水线200消耗的功率量)拼合为一个(或多个)功率等级信号224。可以将性能监视器220中的控制逻辑配置为使用吞吐量计数来确定一级与其它各级相比是否具有降低的吞吐量,并且为该流水线识别具有最低吞吐量的流水线级。当检测到低性能级时,性能监视器220中的控制逻辑生成一个或多个功率等级信号224来控制各个级的性能,以通过为每一级选择较低功率的电路或者操作模式来匹配最低性能级
的吞吐量。因此,功率等级信号224向各级指示应当使用哪种操作模式,使得每一级要么提供高功率/高吞吐量、要么提供低功率/低吞吐量。
使用性能监视器控制逻辑,可以降低各个流水线级的功耗以满足最低性能流水线级的性能吞吐量。为了例示的目的,下面示出了示例伪代码,其可被操作系统或者系统管理器使用来利用事件阈值动态地重新配置被提供给各个流水线级的功率等级信号,以确定何时流水线的吞吐量计数将允许改变功率等级而不减损(impair)流水线的总体吞吐量。可以将该伪代码实现为软件、微代码、或者硬件逻辑电路。此伪代码可以适于其中每级每时钟周期有4个
可能事件的8周期事件计数窗口。
#define HI_EVENT—THRESH 12#define L6[jEVENiLTHRESH 16#defme PL—COUNT—THRESH 256
FH = (FetohEventCount >= HI—EVENT—THRESH);DH = (DecodeEventCount >= 5l—EVElT丁一THRESH);EH = (ExecutionEventCount >= 5i一EVEl^i—THRESH);WH = (WritebackEventCount 〉= HY一EVENf一THRESH);CH = (CompletionEventCoimt >= H匸EVENiL丁HRESH);FL = (FetchEventCount = LO—EVE^TT—THRisH);DL = (DecodeEventCount = iTo—EVEl^T—THRESH);EL = (ExecuteEventCount = LO—EVENT—THRESH);WL = (WritebackEventCount = lo—EVENT—THRESH);CL = (CompleteEventCount = LO—EVENT—THRESH);
if ((!FH && !DH && !EH && !WH && !CH && 〃几个事件PL) 〃高功率II SYS_POWER) { 〃系统功率消耗信号高PL = 0; 〃进入低功率PL—COUNT = 0; 〃复位} elseif(!PL&& 〃低功率
((FL && DL && EL && WL && CL) || 〃所有级都繁忙PL_COUNT 〉= PL—COUNT—THRESH)) { 〃低功率计数高PL=1; 〃进入高功率} else PL_COUNT++; 〃向上计lt直到阔值
利用此示例代码序列,设置事件阈值以定义何时充分利用了处于高功率/高性能模式下的单个级(例如,在窗口期间来自级的事件计数何时超出
HI—EVENTJTHRESH,该HI—EVENTJTHRESH为12),并且定义何时充分利 用了处于低功率/低性能模式下的单个级(例如,在窗口期间来自级的事件计 数何时等于LO—EVENT—THRESH,该LO—EVENT—THRESH为16 )。另夕卜, 设置超时计数器阈值(PL—COUNT—THRESH )以定义在切换回高功率/高性 能模式之前流水线应当在低功率/低性能模式下运行多少时钟周期,这给予监 视器确定流水线现在是否可以具有较高的总体吞吐量的机会。将来自每个流 水线级的事件计数(例如,FetchEventCount, DecodeEventCount, ExcuteEventCount, WritebackEventCount, CompleteEventCount ) 与高功率事件阈值
(HI—EVENT—THRESH)进行比较,并且使用比较结果来生成被用来控制流 水线执行的功率等级(PL)逻辑位。在所描述的代码序列中,当所有级没有 被很好地利用时(例如,来自各级的事件计数低于高功率事件阈值 HI—EVENT—THRESH),将在高功率模式(例如,当PL=1时)下操作的流水 线切换到低功率模式(例如,当PL=0时)。当将流水线切换到低功率模式(!PL ) 时,随着每个时钟周期对复位功率等级超时计数器(PL_COUNT)增计数, 并且将来自每个流水线级的事件计数与最大低功率事件阈值
(LO—EVENT—THRESH )进行比较,该最大低功率事件阈值
(LO—EVENT—THRESH)在一个实施例中意味着在8周期窗口上每个周期 计数2个事件。当此比较指示各流水线级在其低功率/低性能模式下被充分利 用并且功率等级超时计数器达到或者超出超时计数器阈值
(PL—COUNT—THRESH)时,选择高功率模式(PL=1)。还示出了系统功率 消耗信号(SYS—POWER)的使用,当通过系统热传感器或者其它高功率状 况,将该系统功率消耗信号设置为高(例如,SYS—POWER=l)时,该系统 功率消耗信号使得功率等级信号保持为低(例如,pl=0),其依次降低系统 功率并且逐渐使得功率消耗信号返回低(例如,SYS—POWER=0 )。
可以参照图4中描述的示例来示出施加一个(或多个)功率等级(PL) 信号以控制各个流水线级的操作,图4以筒化形式图示处理器流水线400, 其中一个或多个功率等级信号412馈入流水线级402、 404、 406、 408、 410, 并且控制各级的功能。在每一级中,可以利用第一电路(如利用后缀"A" 指示的)实现第一高功率、高吞吐量模式,可以利用第二电路(如利用后缀
"B"指示的)实现第二低功率、低吞吐量模式。如果性能监视器检测到完成单元410A每周期完成平均2个或者更少的指令,则可以使该各级使用低功 率/低吞吐量模式,这是因为在高功率/高吞吐量模式下运行取出、解码、回写 以及发出单元是不理智的。为了完成这点,性能监视器发出一个或多个功率 等级信号412来指示完成级和其它级开始在降低的或者低功率/低吞吐量模式 下执行。在功率等级信号412是被发送到所有级的单个信号的示例实施中, 接收"低"功率等级信号412的级选择低功率模式或者低功率电路来执行其 功能。因此,如果取出级402A接收"低"功率等级信号412,则重新配置取 出级以使用低功率、低吞吐量电路402B,使得每周期仅取出2个指令,而不 是每周期取出4个指令(当其在高功率/高吞吐量^t式下时)。同样,可以将 接收"低,,功率等级信号412的解码级404A重新配置为低功率、低吞吐量 模式,其中,使用两个低功率解码器404B以便每周期最多仅解码2个指令。 并且,当提供"低"功率等级信号412时,将高性能执行级406A重新配置 为低性能执行级406B,以便每周期仅调度(schedule)两个指令或者在低频 率模式下执行。另外,将高功率回写级408A重新配置为低性能回写级408B, 以便每周期4义回写两个指令。以此方式,当完成级410的吞吐量将流水线400 的总体工作量执行特性降低为每周期完成两个指令时,可以"下移"其它级 来匹配完成单元410的性能等级,而不使总体流水线性能降级。
如将理解的,不应当无限期地将各流水线级留在低性能、低功率模式下, 并且应当提供在明显地工作量可以受益于更高吞吐量时允许流水线返回高性 能模式的机制,如在程序执行阶段中工作量的固有指令级并行性(ILP)增加 时发生的。这可以通过在各级在低功率/低吞吐量模式下操作时继续监视来自 各级的吞吐量计数来完成。当性能监视器220 (图2中示出)随后检测到处 于低功率/低吞吐量模式下的各级平均为或者接近于在低功率/低通过率模式 下所允许的每周期的最大利用指令处理时,可以将各流水线级重新配置以返 回高性能、高功率模式。为此目的,性能监视器220可以发出一个或多个功 率等级信号224以指示所有级切换到高功率/高吞吐量模式。 一旦返回高功率 /高吞吐量模式,性能监视器224继续监视来自每一级的吞吐量计数,以确定 工作量特性是否已经改变以及现在是否可以并行地处理更多指令。如将理解 的,可以在同一周期或者不同周期中使各个级在各模式之间切换,并且可以 利用各个功率等级信号224单独控制该各个级。
除了降低功耗之外,与有时被称作设计的"贪婪(greedy)"方式的、仅
14被设计来用于最大性能执行的流水线级相比,对于各个级选择性地使用较低 性能电路的能力实际上可以改进对于特定工作量的工作量性能。例如,净皮设 计为在单个周期中解码四个指令的流水线解码级可能比单个周期解码两个指 令的解码占用更多的时钟周期。在此情况下,当工作量仅需要每周期解码两 个指令时,相对于更长的等待时间(但更高的吞吐量)而言,降低的等待时 间的解码器将动态地是优选的。这种工作量的示例为具有自然低的指令级平 行性(ILP)的工作量,其中在全功率/高吞吐量中执行处理器流水线是不必 要的,并且由于各单元中较高的等待时间可能对性能造成负面影响,并且不 必要地耗费功率。
为了例示如何使用功率等级信号来动态地重新配置单个处理器级从而使
其在高性能和低性能模式之间切换,图5图示可以响应于功率等级信号而分 别选择高性能设计和低性能设计的执行级500的示例实现。如所描述的,执 行级500包括多个可分别选择的执行电路,其包括第一高功率执行流水线电 路520、第二高功率执行流水线电路522、低功率执行流水线电路524以及可 配置执行流水线电路526。高功率执行流水线520和522以及可配置流水线 526可以使用额外的电路或者倍频以明显更多的功率消耗为代价来降低指令 执行的等待时间。如所描述的,执行调度器510包括调度逻辑512以及门控
(gating)逻辑514、 516,该调度逻辑512以及门控逻辑514、 516接收解码 后的指令501,并且取决于功率等级信号502的值来选择性地路由指令,以 便由执行电路520、 522、 524、 526执行。 一般而言,功率等级信号确定执行 级500使用执行电路来实现高性能模式(其造成较高的功率消耗)还是低性 能模式(其造成较低的功率消耗)。如图5的简单示例实现中所示,被设置为
"高"并且被施加到门控逻辑514、 516的单个功率等级位502有效地使得所 有执行电路520、 522、 524、 526能够被处于高性能模式下的执行级500使用。 然而,当将功率等级位502设置为"低"时,门控逻辑514、 516有效地禁用 第一和第二高功率执行流水线电路520、 522,使得低功率执行流水线电路524 被处于低性能模式下的执行级500使用。除了选择性地使能高功率执行流水 线电路520、 522之外,还可以使用功率等级位502来单独配置可配置执行单 元526。还可以将功率等级位502并入调度逻辑512中以限制所调度的操作。
当然,将理解可以使用其它途径来在各个流水线级处降低功耗和性能, 而不降低在其当前吞吐量速率上的总体流水线吞吐量。例如,可以通过降低每一级的时钟速率来节流(throttle back)各个流水线级。另外或者作为替换, 如果单个级包括重复的资源(例如,执行级中的两个浮点单元),则可以通过
仅使用所述资源之一来将该级重新配置为较低功率^t式。
为了进一步例示本发明的所选择的实施例,图6示出了用于监视各个流 水线级的性能并且生成一个或多个功率等级位来控制流水线级的示例方法 600的流程图示。在步骤601中,处理开始,诸如当处理器正在以被配置为 处于高性能、高功率模式下的流水线操作时。在步骤602中,监视流水线性 能以检测流水线吞吐量或者性能何时下降。对于每一级,这可以通过计数或 者检测在时间窗口中发生多少个级事件来完成,其中该窗口可以是固定的或 者可被可编程地调节。因此,性能监视器对在计数窗口期间在取出级处发生 的取出事件进行计数,并且分离地对在计数窗口期间在解码级处发生的解码 事件进行计数,依此类推。步骤602的结果是为每个流水线级测量吞吐量计 数或者事件窗口计数。在步骤603中,使用性能监视器中的控制逻辑将每一 级的事件窗口计数与预定阈值进行比较。基于比较,生成功率等级位以控制 流水线操作。如果来自单个级的事件窗口计数低于第一阈值,则该比较可以 生成"低"功率等级位,或者可以要求来自所有级的事件计数都低于第一阈 值。相反,如果来自所有级的事件窗口计数都等于或者高于第二阈值,则该 比较可以生成"高"功率等级位。在步骤604中,将功率等级位分发或者广 播到各流水线级以控制在每一级处如何使用资源。当功率等级位在步骤604 中指示要实现较低性能、较低功率模式时,重新配置流水线级资源以降低取 出、解码、执行、回写以及完成指令时的速率。相反,如果功率等级位在步 骤604指示要实现较高性能、高功率模式时,则重新配置流水线级资源以提 高取出、解码、执行、回写以及完成指令时的速率。因此,当随时间推进而 重复方法600时,使用检测到的吞吐量计数以调节功率等级位来要么降低要 么提高流水线性能(以及随之的功井毛)。
尽管已经参照用于控制流水线处理中的各个级的功耗的示例实现提供了 前述描述,但将理解这里公开的技术可被更广泛地应用。例如,可以基于多 核处理器系统的总体工作量执行特性来将多核处理器系统从第一、高性能模 式(其中所有处理器核都在操作)动态地重新配置为第二、较低功率性能模 式(其中仅所选择的处理器核被使能并且可操作)。在另一示例中,在较低性 能模式下可以选择通用处理器核来应对图形处理要求,否则该图形处理要求将通过更快、更消耗功率的专用图形加速器电路来应对。
如本领域技术人员将理解的,可以将本发明整体或者部分地实现为方法、
系统、或者计算机程序产品。因此,本发明可以采用以下形式整体硬件实 施例、整体软件实施例(包括固件、驻留软件、微代码)等、或者组合软件 和硬件方面的实施例,这些实施例在这里被统称作"电路"、"模块"、或者"系 统"。此外,本发明可以釆用计算机可用存储介质上的计算机程序产品的形式, 在该计算机可用存储介质上包含计算机可用程序代码。例如,多处理器系统 中的每个处理器核可以具有其自身的编程指令或者代码,用于基于检测到的 流水线吞吐量来重新配置流水线性能以降低功耗。可替换地,性能监视器逻 辑可以集中地(centrally)位于整个多处理器系统的单个位置处。
已经为例示和说明的目的提出了前述描述。并非意在穷举或者将本发明 限制为所公开的确切形式。按照上述教导,可以进行许多修改和变化。意在 本发明的范围不由此详细描述、而是由所附的权利要求书限制。上述说明和 示例实现提供了制造和使用本发明的组成部分的完整描述。由于可以在不背 离本发明的精神和范围的前提下做出本发明的许多实施例,因此本发明在于 所附的权利要求书。
权利要求
1. 一种用于控制流水线型处理器中的功率消耗的方法,包括测量在高性能模式下操作的多个流水线级的对应的多个吞吐量速率;检测该多个吞吐量速率中的一个或数个吞吐量速率何时被降低到第一预定吞吐量速率;在检测到该多个吞吐量速率被降低到该第一预定吞吐量速率时,将第一功率等级控制信号发送到该多个流水线级;以及响应于该第一功率等级控制信号来重新配置该多个流水线级以在低性能模式下操作,从而降低该多个流水线级的功率消耗。
2. 如权利要求l所述的方法,还包括监^f见该多个流水线级的该多个吞吐量速率,以^r测该多个吞吐量速率何 时达到或超出第二预定阈值速率;在检测到该多个吞吐量速率达到或超出第二预定阈值速率时,将第二功 率等级控制信号发送到该多个流水线级;以及响应于该第二功率等级控制信号来重新配置该多个流水线级以在高性能 模式下操作。
3. 如权利要求l所述的方法,其中,测量多个吞吐量速率包括对于每 个流水线级,计数在预定窗口期间发生多少个级事件。
4. 如权利要求l所述的方法,其中,检测该多个吞吐量速率中的一个或 数个吞吐量速率何时被降低到第一预定吞吐量速率包括将该多个吞吐量速 率中的 一个或数个吞吐量速率与预定高性能吞吐量阈值进行比较。
5. 如权利要求l所述的方法,其中,发送第一功率等级控制信号包括 将1-位功率等级控制信号广播到该多个流水线级。
6. 如权利要求l所述的方法,其中,发送第一功率等级控制信号包括 将单独的功率等级控制信号发送到该多个流水线级中的每一个流水线级。
7. 如权利要求l所述的方法,其中,发送第一功率等级控制信号包括 将多个功率等级控制信号发送到每一级,以选择对应的多个流水线级功率消 耗模式、等级或者电路。
8. 如权利要求l所述的方法,其中,重新配置该多个流水线级包括响 应于该第一功率等级控制信号,来在每一级处选择第一低功率电路。
9. 一种婆:据处理系统,包括处理器,包括多个电路模块,其中,每个电路模块执行预定电路操作, 并且包括用于执行该预定电路操作的较高功率电路以及用于执行该预定电路 操作的较低功率电路;数据总线,其被耦接到该处理器;以及计算机可用介质,包含计算机程序代码,该计算机可用介质被耦接到该 数据总线,该计算机程序代码包括可由该处理器执行、并被配置为通过以下 步骤来控制该处理器中的功率消耗的指令测量多个电路模块的对应的多个吞吐量速率,该多个电路模块中的每 个电路模块通过使用其较高功率电路来进行操作;检测该多个吞吐量速率中的一个或数个吞吐量速率何时被降低到第 一预定吞吐量速率;在检测到该多个吞吐量速率被降低到该第一预定吞吐量速率时,将第 一功率等级控制信号发送到该多个电路模块;以及响应于该第一功率等级控制信号来重新配置该多个电路模块,使得每 个电路模块通过使用其较低功率电路而操作,从而降低该多个电路模块的 功率消耗。
10. 如权利要求9所述的数据处理系统,还包括被配置为通过以下步骤 来控制该处理器中的功率消耗的指令监视该多个电路模块的该多个吞吐量速率,以检测该多个吞吐量速率何 时达到或超出第二预定阈值速率;在检测到该多个呑吐量速率达到或超出第二预定阈值速率时,将第二功 率等级控制信号发送到该多个电路模块;以及响应于该第二功率等级控制信号来重新配置该多个电路模块,使得每个 电路模块通过使用其较高功率电路而操作。
11. 如权利要求9所述的数据处理系统,其中,该多个电路模块包括处 理器核中的多个流水线型处理器级。
全文摘要
提供了一种用于动态地重新配置流水线型处理器来以降低的功耗操作而不降低现有性能的方法、系统和程序。通过在处理器中的各个单元或者级执行给定的工作量时监视或者检测它们的性能,每一级可以一直使用高性能电路直到诸如检测到吞吐量性能下降时为止,在该时间点重新配置各级以使用较低性能的电路,从而使用较少的功率来满足降低的性能吞吐量的要求。通过配置处理器以从高性能设计后退到低性能设计以满足所检测到的、执行工作量许可的性能特性,可以优化功率消耗。
文档编号G06F1/32GK101464721SQ200810176830
公开日2009年6月24日 申请日期2008年11月25日 优先权日2007年12月19日
发明者小罗伯特·H·贝尔, 小路易斯·B·卡普斯, 迈克尔·J·夏皮罗 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1