用于管理多核片上系统上的全局芯片功率的方法和装置与流程

文档序号:11773618阅读:218来源:国知局
用于管理多核片上系统上的全局芯片功率的方法和装置与流程

本申请是申请号为201410498360.9、申请日为2014年09月25日、发明名称为“用于管理多核片上系统上的全局芯片功率的方法和装置”的发明专利申请的分案申请。



背景技术:

通常以避免处理器或相应的芯片过热的方式控制计算机处理器内的功率损耗。换言之,通过控制处理器内的功率损耗,相应的温度也保持在控制之下。



技术实现要素:

通常在每个内核处理器局部地执行多核处理器设备内的功率管理。为了改善性能并增强效率,需要对此类设备上的全局芯片功率进行管理的能力。

根据至少一个示例实施例,一种用于控制多核处理器芯片中的功率损耗的全局功率管理方式包括:在该多核处理器芯片内的一个控制器处积累与该多核处理器芯片内的多个内核处理器相关联的一个或多个功率估计值。基于一个累加功率估计值确定一个全局功率阈值,至少部分地基于所积累的该一个或多个功率估计值确定该累加功率估计值。该控制器使得基于所确定的该全局功率阈值控制该多个内核处理器中的每一个内核处理器处的功率损耗。

在积累该一个或多个功率估计值时,该控制器可以接收单个值,该值指示该累加功率估计值代表该多个内核处理器的总功率损耗。可以用形成串行配置的方式将该多个内核处理器彼此耦合,其中,在每个内核处理器处,将局部功率损耗估计值与代表累加功率损耗估计值的值相加并转发至下一内核处理器。在最后一个内核处理器,将累加功率估计值的最终值转发至控制器。可替代地,可以用形成不只一种串行配置的方式耦合该多个内核处理器,在这种情况下,该控制器接收不只一个功率估计值。在又一示例中,每个内核处理器可以将其局部功率损耗估计值直接发送至该控制器。

该控制器可以被配置成用于从该控制器发送一个读命令至该多个内核处理器中的至少一个内核处理器。该读命令可以包括一个读操作的指示和一个有效载荷值。一个接收该读命令的内核处理器将局部功率估计值与该有效载荷值相加并将该读命令与经更新的有效载荷值一起转发至下一内核处理器或转发至该控制器。该有效载荷值代表与一个或多个内核处理器相关联的功率估计值的累加和。

在确定全局功率阈值时,该控制器被配置成用于:当确定所确定的该累加功率估计值和在时间上的一个相应的平均值两者都小于一个期望目标功率时增大代表该全局功率阈值的一个参数值,以及当确定所确定的该累加功率估计值大于该期望目标功率时减小代表该全局功率阈值的该参数值。该期望目标功率可以是该多核处理器芯片的使用者或制造者所设定的一个常数。可替代地,可以至少部分地基于该多核处理器芯片的多个所测量的温度值动态地设定该期望目标功率。

该多核处理器芯片还可以包括一个或多个协处理器块。为了解释该一个或多个协处理器块的功率损耗,该控制器被配置成用于:积累与该一个或多个协处理器块相关联的多项时钟活动的一种或多种表示;至少部分地基于所累积的该一种或多种表示确定与该一个或多个协处理器块相关联的一个或多个功率估计值,其中,该多核处理器芯片的累加功率估计值的确定进一步基于与该一个或多个协处理器块相关联的该一个或多个功率估计值。在确定与该一个或多个协处理器块相关联的该一个或多个功率估计值时,该控制器可以使用一个查找表(例如)来确定与时钟活动的每种表示相关联的功率损耗。可以通过以下各项形成与该一个或多个协处理器块相关联的这些时钟活动的一种或多种表示:在每个协处理器块处对与同一协处理器块相关联的多个时钟活动周期进行计数,以及通过将一个预定义数量的已计数的时钟活动周期映射到与该协处理器块相关联的该时钟活动的一种表示内的单个符号来生成与该协处理器块相关联的该时钟活动的这种表示。然后,由该控制器接收与该协处理器块相关联的该时钟活动的这种表示。

在使得控制每个内核处理器处的功率损耗时,该控制器可以通过调整一个主时钟频率并因此影响与该多个内核处理器相关联的时钟的频率来控制这些内核处理器处的功率损耗。可替代地,该控制器向所有内核处理器发送一个命令,从而指示它们控制其局部功率损耗。这种命令可以包括该全局阈值的一个指示。在接收到该全局功率阈值时,每个内核处理器将该全局功率阈值与一个局部功率阈值进行比较,从而确定一个有待该内核处理器使用的功率极限。

附图说明

上述内容将从本发明的示例实施例的以下更具体的说明中明显,如在这些附图中所展示的,其中,贯穿这些不同的视图,相似的参考字符是指相同的部分。附图不一定按比例,而是着重于展示本发明的实施例。

图1是展示了根据至少一个示例实施例的多核处理器芯片的框图;

图2是展示了根据至少一个示例实施例的用于控制多核处理器芯片中的功率的方法的流程图;

图3a和图3b是展示了用于从该多个内核处理器积累功率估计值的示例串行配置的框图;

图4是展示了用于从多个协处理器块积累功率估计值的配置的框图;以及

图5根据至少一个示例实施例示出了与协处理器块时钟相关联的时钟信号和相应的经修改的时钟信号的示例。

具体实施方式

以下是本发明的示例实施例的说明。

用于多核处理器芯片的典型功率管理技术通常在相应的内核处理器的局部,并且不对该多核处理器芯片全局地执行。当在每个内核处理器处局部地应用功率管理时,该多核处理器芯片的功率损耗预算除以相应数量的内核处理器以计算每个内核处理器的功率预算。然而,每个内核处理器基于所计算的每个内核处理器的功率预算独立于其他内核处理器管理其功率。如此,给定的内核处理器的动态功率可能有限。同样,在每个内核处理器处局部地应用功率管理会导致性能下降。例如,虽然第一内核处理器可以仅使用其可用的功率预算的一小部分,第二内核处理器可能需要比所计算的每个内核处理器的功率预算所允许的更多的功率。如此,会花费更长时间来执行某些任务(当局部地执行功率管理时)并且会导致在该多核处理器芯片处消耗更多的功率。在下文中描述了在芯片级应用全局功率管理的实施例。

图1是展示了根据至少一个示例实施例的多核处理器芯片100的框图。多核处理器芯片100包括多个内核处理器(例如,120-1–120-n)和一个中央控制器110。中央控制器110被配置成用于管理多核处理器芯片100的全局功率。该中央控制器耦合至该多个内核处理器120-1—120-n并且被配置成用于确定多核处理器芯片100在给定时间间隔内的全局功率损耗的估计值。根据至少一个方面,在固定时间间隔内周期性地确定全局功率估计值。在确定该全局功率估计值的过程中,中央控制器110被配置成用于记录与该多个内核处理器(例如,120-1–120-n)相关联的一个或多个功率估计值。在该多个内核处理器(例如,120-1–120-n)中的每一个内核处理器处,可以根据美国专利号8,356,194中所描述的实施例执行局部功率估计,该专利以其全文结合在此。

多核处理器芯片100可以进一步包括一个或多个协处理器块,例如,130-1–130-m。根据至少一个示例实施例,协处理器块(例如,130-1–130-m)被配置成用于执行输入/输出(i/o)接口连接操作和/或其他操作,从而补充该多个内核处理器(例如,120-1–120-n)的功能。中央控制器110被配置成用于当确定多核处理器芯片100的该全局功率估计值时考虑协处理器块(例如,130-1–130-m)所消耗的功率。

图2是展示了根据至少一个示例实施例的用于控制多核处理器芯片100中的功率的方法的流程图。在框210,中央控制器110积累与该多个内核处理器(例如,120-1–120-n)相关联的一个或多个功率估计值。在框220,中央控制器110可以进一步积累与该一个或多个协处理器块(例如,130-1–130-m)相关联的功率估计值,如果多核处理器芯片100包括此类协处理器块的话。

在框230,中央控制器110使用积累的功率估计值确定多核处理器芯片100在固定时间间隔内所消耗的累加功率的估计值。例如,中央控制器110可以对与该多个内核处理器(例如,120-1–120-n)相关联的这些所积累的功率估计值以及(如果适用的话)与该一个或多个协处理器块(例如,130-1–130-m)相关联的所积累的功率估计值求和数。该中央控制器在确定累加功率估计值时可以可替代地或另外执行其他的计算处理。框230处的过程可以是可选的。例如,该中央控制器可以积累指示该多个内核处理器(例如,120-1–120-n)所消耗的累加功率的单个功率估计值。在这种情况下,所积累的该单个功率估计值可以被用作累加功率估计值。

在框240,中央控制器110确定一个全局功率阈值。基于该累加功率估计值确定该全局功率阈值。除了该累加功率估计值之外,在确定该全局功率阈值时可以进一步使用一个目标功率值。该全局功率阈值代表这些内核处理器中的任何一个在固定时间间隔内将不会超过的全局功率损耗极限。该目标功率值指示多核处理器芯片100在固定时间间隔内的目标功率损耗水平。

根据至少一种示例实施方式,中央控制器110维护一个累加差参数和一个全局阈值参数。累加差参数(例如,cum_diff)代表所确定的累加功率估计值(例如,cum_power_estimate)与目标功率(例如,target_power)之差的总和或平均值。例如,在每个时间间隔,将该累加差参数更新为:cum_diff=cum_diff+(cum_power_estimate–target_power)。如果有足够的工作量将该多个内核处理器(例如,120-1–120-n)持续忙碌一个给定时间间隔,期望cum_diff参数接近零。如果在某一时间段内没有足够的工作量,cum_diff参数变为负,直到它达到负最小值,该参数在该负最小值处饱和。可以基于热常数定义负最小值或饱和值,该热常数指示例如多核处理器芯片100在最后几毫秒一直是空闲的。换言之,该饱和值使多核处理器芯片100能够仅记忆其较短的和相关的历史。可替代地,可以将累加功率差定义为加权和。

在每个时间间隔可以将全局阈值参数(例如,global_lim)更新为:global_lim=global_lim+1if(cum_power_estimate<target_power)and(cum_diff<0),以及global_lim=global_lim-1if(cum_power_estimate>target_power)。即,只有当累加功率估计值小于目标功率且累加差小于零时全局功率阈值才增加。同样,只有当累加功率估计值大于目标功率时全局功率阈值才减小。

根据一个示例方面,多核处理器芯片100的制造者可以将目标功率值设置为常数。可替代地,该目标功率值是多核处理器芯片100的软件可设置的。根据又一个方面,该目标功率可以是动态的,例如,基于温度传感器所提供的信息。例如,该目标功率可以基于已记录的多核处理器芯片100的温度而变化。

一旦针对具体时间间隔确定了全局阈值(例如,global_lim),中央控制器110被配置成用于使得至少一个内核处理器减小或增大其功率损耗。根据一个示例实施例,中央控制器110可以向所有内核处理器(例如,120-1–120n)发送一个命令,指示这些内核处理器控制其相应的功率损耗。例如,中央控制器110可以将所确定的全局阈值(例如,global_lim)发送至所有内核处理器(例如,120-1–120-n)。每个内核处理器维护一个局部功率极限值(例如,power_lim)。可替代地,中央控制器110可以发送有待应用于前一全局阈值的代表增量或减量的值。在每个内核处理器处,全局阈值和局部功率极限的最小值被用作至少下一时间间隔内的功率损耗的上限。根据又一示例实施例,中央控制器110可以直接减小或增大该多个内核处理器(例如,120-1–120-n)处的功率损耗。例如,该中央控制器可以调整主时钟的频率,从而导致对该多个内核处理器(例如,120-1–120-n)的时钟的频谱的调整。

根据至少一个示例实施例,当多核处理器芯片100的所确定的累加功率估计值不超过目标功率时,中央控制器110向这些内核处理器(例如,120-1–120-n)发送一个信号,指示它们自身不需要节流,即,减小其相应的频率。然而,当多核处理器芯片100的所确定的累加功率估计值不超过目标功率且累加差为零时,中央控制器110发送一个信号以指示内核处理器(例如,120-1–120-n)自身节流。不论是否指示内核处理器(例如,120-1–120-n)自身节流,所发送的信号可以包括控制操作的指示和携带全局阈值的有效载荷。然而,通过将全局阈值与局部功率极限进行比较,每个内核处理器决定是否进行节流。换言之,所发送的信号可以与代表读命令的信号类似,除了该操作的指示指示控制操作而非读操作并且有效载荷代表全局阈值而非功率估计值。例如,可以用0指示读命令,并且可以用1指示控制命令。

根据另一种示例实施方式,两条导线可以将中央控制器110与内核处理器(例如,120-1–120-n)耦合。可以将一条导线称为“throttle_this_interval(节流_本_间隔)”导线。将此导线散布至所有内核处理器(例如,120-1–120-n)。可以将该“throttle_this_interval”导线串行地散布至内核处理器(例如,120-1–120-n)。第二导线可以被称为“sum(求和)”导线。该“sum”导线被四处串行地发送至每个内核处理器或发送至该多个内核处理器的一个子集,并在遍历过每个内核处理器之后返回中央控制器110。一个空闲阶段之后,对“sum”导线的第一断言指示累加功率估计值在导线上的下一数量的位内遵守lsb先且最高有效位(msb)后。当内核处理器检测到“sum”导线导通时,它知道在下一数量的位上将其局部功率估计值与累加功率估计值相加。该中央控制器接收“sum”导线,并且当适用时适当地设置“throttle_this_interval”。

根据至少一种示例实施方式,在半个固定时间间隔内进行对功率估计值的积累,同时指示内核处理器控制在另一半固定时间间隔内产生的相应的功率损耗。例如,如果固定时间间隔等于256个时钟周期,在128个时钟周期内由中央控制器110执行对功率估计值的积累,并且指示内核控制器(例如,120-1–120-n)控制其花费另外128个时钟周期的相应的功率损耗。通过中央控制器110确定全局阈值可以被当做积累功率估计值的一部分或指示内核处理器(例如,120-1–120-n)控制其相应的功率损耗的一部分。

在该多个内核处理器(例如,120-1–120-n)中的每一个内核处理器处,一旦信号或命令与减小局部功率损耗的指令一起被接收到,内核处理器就采取适当的行动。一种减小功率损耗的方式是减小局部时钟频率。当每个内核处理器具有其自己的锁相环(pll)时,这种方式会适用。另一种减小内核处理器处的局部功率损耗的方式是阻止发布指令。例如,内核处理器可以在固定时间间隔内保持处理指令直到功率损耗超过从中央控制器110接收到的局部功率极限或全局阈值,并且然后阻止发布指令直到固定时间间隔结束。

图3a和图3b是展示了用于从该多个内核处理器(例如,120-1–120-n)积累功率估计值的示例串行配置的框图。图3a示出了单个串行配置,中央控制器根据这种串行配置向内核处理器之一(例如,120-1)发送读命令。根据一个示例方面,该读命令包括读操作的指示和代表有待返回中央控制器110的功率估计值的有效载荷。第一内核处理器(例如,120-1)从中央控制器110接收该读命令并将所估计的其功率损耗值结合至该读命令的有效载荷。如果有效载荷初始值为零,可以通过加法运算结合所估计的功率损耗值。然后将该读命令转发至下一内核处理器(例如,120-2)。

内核处理器120-2被配置成用于将所估计的其功率损耗值与有效载荷值相加并将该读命令转发至下一内核处理器(例如,120-3)。在内核处理器(例如,120-2–120-n)中的每一个内核处理器处重复局部估计的功率损耗值和有效载荷值的相加。在最后一个内核处理器(例如,120-n)处,将最终相加结果转发至中央控制器110。转发至中央控制器的值可以用作所有内核处理器(例如,120-1–120-n)的累加估计值,或者可以应用进一步的计算处理。在内核处理器处执行的加法运算会导致最终结果到达中央控制器110的延时。

根据一种示例实施方式,可以通过应用逐位相加和转发来减小这种延时。换言之,从最低有效位(lsb)开始,一旦执行加法,存储进位值,同时转发加法结果位。然而,将进位值与局部估计的损耗功率值和有效载荷值的接下来的lsb相加。存储新的进位值,并且将加法结果位转发至下一内核处理器。在下一内核处理器,执行类似的操作。即,一旦接收到有效载荷的一个位,执行相应的加法并将加法结果位转发至另一内核处理器。如此,显著地减小了延时。

在图3b中,将内核处理器安排成四种串行配置,例如,120-1–120-k1、120-(k1+1)–120-k2、120-(k2+1)–120-k3、和120-(k3+1)–120-n。在每种串行配置中可以应用逐位加法和转发。中央控制器110例如从内核处理器120-k1、120-k2、120-k3、和120-n接收四个功率估计值。这四个功率估计值中的每一个代表相应的串行配置的累加功率估计值。为了计算累加功率估计值,中央控制器110例如对所接收到的四个功率估计值求和。中央控制器110在确定所有内核处理器(例如,120-1–120-n)的累加功率估计值时可以执行其他计算处理。

图4是展示了用于从多个协处理器块(例如,130-1–130-m)积累功率估计值的配置的框图。在每个协处理器块内,大多数功率(例如,约百分之90)被相应的时钟所消耗。协处理器块(例如,130-1,130-2,……,或130-m)可以具有一个或多个时钟。根据一个示例实施例,中央控制器110从协处理器块(例如,130-1–130-m)接收信息,从而使得能够对相应的时钟中的每个时钟进行功率消耗估计。例如,中央控制器110接收与协处理器块相关联的每个时钟的经修改的时钟信号。将与协处理器块(例如,130-1–130-m)的时钟相关联的所估计的功率损耗与从该多个内核处理器(例如,120-1–120-n)积累的功率估计值求和,从而生成整个多核处理器芯片100的全局累加功率损耗估计值。

图5根据至少一个示例实施例示出了与协处理器块时钟相关联的时钟信号510和相应的经修改的时钟信号520的示例。在中央控制器110处从协处理器块(例如,130-1,130-2,……,或130-m)接收经修改的时钟信号520。时钟信号510通常具有比中央控制器110的频率更高的频率。如此,如果时钟信号510被发送至中央控制器110,中央控制器可能不会正确地采样时钟信号510以估计相应的功率。时钟信号510可以包括空闲时段511,该时钟信号使得与协处理器块(例如,130-1、130-m)相关联的不同时钟信号510同步。

根据一个示例实施例,通过将时钟信号510内的时钟周期数减小至经修改的时钟信号520内的单个周期来生成经修改的时钟信号520。例如,时钟信号510内的32个时钟周期对应于经修改的时钟信号520内的单个周期。如此,中央控制器110能够正确地采样经修改的时钟信号520。

每个协处理器块(例如,130-1,130-2,……,或130-m)被配置成用于提供对同一协处理器块内的时钟相关联的时钟活动周期的计数。基于对时钟周期的计数,通过将预定义数量(例如,32个)的计数的时钟活动周期映射到所生成的时钟活动的表示内的单个符号内来生成时钟活动的这种表示(例如,经修改的时钟信号520)然后由中央控制器110接收所生成的表示。中央控制器110可以使用查找表(例如)来确定与所生成的时钟活动的每种表示相关联的功率耗散。在确定整个多核处理器芯片100的累加功率耗散估计值时,中央控制器110可以对与该多个内核处理器(例如,120-1–120-n)相关联的积累的功率估计值以及对应于协处理器块(例如,130-1、130-m)的功率估计值求和。

尽管本发明已经参照其示例实施例做了具体的展示和说明,本领域技术人员将理解到通过在不偏离由所附的权利要求书涵盖的本发明的范围的情况下可以从中做出在形式和细节上的不同的变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1