CN102483646A - 根据性能灵敏度不均匀地改变计算单元的性能 - Google Patents
根据性能灵敏度不均匀地改变计算单元的性能 Download PDFInfo
- Publication number
- CN102483646A CN102483646A CN2010800335768A CN201080033576A CN102483646A CN 102483646 A CN102483646 A CN 102483646A CN 2010800335768 A CN2010800335768 A CN 2010800335768A CN 201080033576 A CN201080033576 A CN 201080033576A CN 102483646 A CN102483646 A CN 102483646A
- Authority
- CN
- China
- Prior art keywords
- performance
- core
- power
- computing unit
- group
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Saccharide Compounds (AREA)
- Steroid Compounds (AREA)
Abstract
根据一个或多个计算单元的有比其它计算单元更高的性能灵敏度的性能而选择性地改变计算机系统的一个或多个计算单元。
Description
技术领域
本发明涉及计算机系统中的功率分配,特别涉及功率分配以提高性能。
背景技术
处理器在各种性能水平运行,以努力使功耗和工作负荷要求相匹配。所述性能水平通常由所述处理器所使用的电压/频率组合来确定。由于处理器变得越来越高度集成多个核心(core)和其它功能(functionality),功耗和散热问题仍然相当重要。
发明内容
为了提供改进的性能,一种实施方式可基于根据计算单元的对例如频率变化导致的性能容量(performance capability)变化的性能灵敏度(sensitivity)的功率分配策略和系统中的可用功率裕量(power headroom)分析在诸如处理核心和图形处理单元之类的计算单元上执行的工作负荷,以在恒功率的包络内改善系统的性能。
相应地,在一种实施方式中,提供一种方法来操作包括多个计算单元的计算机系统。所述方法包括根据计算单元的各自的性能灵敏度改变一个或多个计算单元的性能。所述方法可包括根据一个或多个计算单元有比其它计算单元更高的性能灵敏度而改变一个或多个计算单元的性能。在实施方式中,所述方法进一步包括:其中计算单元包括成组的处理核心,如果由增强所述成组的处理核心的性能所导致的预测功率裕量小于零,就从所述组中去除具有比组中其它核心更低的增强灵敏度(boost sensitivity)的核心以形成更小的组;并计算新的预测功率裕量和确定如果增强所述更小的组中的核心的性能,新的预测功率裕量是否大于零。如果新的预测功率裕量大于零,就增强所述更小的组中的核心的性能。在所述更小的组中的核心可通过提高提供给所述更小的组中的核心的时钟信号的至少一个频率来增强。
可根据在第一性能水平和第二性能水平确定的各自的计算单元的第一性能度量标准和第二性能度量标准确定各自的计算单元的性能灵敏度。
在另一实施方式中,提供了一种包括多个计算单元的设备。所述设备进一步包括存储器来为各自的计算单元存储性能灵敏度。由硬件、固件和/或软件实施的功率分配功能根据性能灵敏度增强一个或多个计算单元的性能。
所述功率分配功能响应于一个或多个计算单元有比其它计算单元更高的性能灵敏度。
所述功率分配功能可被配置为比较每一个计算单元的性能灵敏度和阈值并增强具有高于所述阈值的性能灵敏度的计算单元。
所述功率分配功能可响应于预测功率裕量不足以将成组的核心中的所有核心增强到增强的性能状态,从所述成组的计算单元中去除一个或多个计算单元,并重新计算新的预测功率裕量,所述去除根据所述组中的一个或多个计算单元具有比该组中的其它计算单元的性能灵敏度更低的各自性能灵敏度而确定。所述去除和重新计算不断重复,直至新的预测功率裕量大于零从而适应增强所述计算单元的其余计算单元的性能为止。
附图说明
通过参考附图,本领域的技术人员可更好地理解本发明,其众多的目的、特征和优点对本领域技术人员而言变得明显。
图1示出了根据本发明的实施方式的典范的片上系统(SOC)系统的高级框图。
图2示出了根据本发明的一实施方式,概略描绘对核心频率变化的性能灵敏度的高级流程图。
图3示出了在系统框图级的频率训练。
图4示出了频率训练的另外的方面。
图5示出了根据本发明的实施方式的功率再分配的典范流程图。
图6示出了根据频率灵敏度的节流计算单元的典范流程图。
在不同的附图中使用相同的参考符号表示相似或相同的事项。
具体实施方式
已经提出了几种方法来在处理器集成电路在低于其散热设计功耗(TDP)运行时机会主义地(opportunistically)提高多核处理器上的CPU核心的性能水平(例如,提高频率)。集成电路运行时的实际散热功耗可通过热测量、切换活动测量或电流测量来确定。这样的方法在有预算的功率裕量、电流裕量或散热裕量时允许CPU核心的工作频率一起提高以在给定的TDP下提高性能,并在运转超过那些限制时减少所述工作频率。这样的方法假定所有活跃的CPU核心在其频率以协调的方式提高时都在最高的性能状态下运转。
另一方法是在CPU核心之间提供功率再分配。P0(由操作系统(OS)设置的最高性能状态)中的核心可通过重新分配其它核心上可得的功率裕量而超频,所述其他核心的性能状态低于某一阈值(由较低的性能状态来定义)。
基于核心的性能状态均匀地(homogenously)对所有核心或对一个或多个核心增加功率的上述方法允许从诸如CPU或图形处理单元(GPU)之类闲置的计算单元中重新分配功率,但在抖动频率或提高稳态频率时均匀对待所有活跃单元(active unit)。然而,一些活跃的核心或其它计算单元会从较高核心频率获得很少的或根本没有获得性能提高,而其它核心或计算单元可运行对核心频率的增加具有较高的灵敏度的工作负荷。基于频率灵敏度在活跃的核心或其它计算单元间选择性地分配功率允许在具有不均匀的(heterogeneous)线程的不均匀工作负荷或多线程工作负荷上有更高的总体系统吞吐量。那需要有效的方法来确定对核心频率变化的工作负荷的灵敏度。
图1示出了根据本发明的实施方式的典范的片上系统(SOC)100的高级视图。SOC 100包括多个CPU处理核心101、GPU(图形处理单元)103、I/O桥105(在一些实施方式中称为南桥)和北桥107(在一些实施方式中可与存储器控制器结合)。功率分配控制器109是控制对裸片上(on-die)或平台上(on-platform)组件分配散热设计功耗(TDP)功率裕量的功能元件。如本文进一步所述的,性能分析控制逻辑111分析所述核心和其它计算单元的性能灵敏度。要注意的是,虽然功率分配控制109和性能分析中心111被示为是北桥107的一部分,但在其它实施方式中,它们可以位于SOC 100中的其它地方。
TDP(散热设计功耗)表示整个SOC可消耗的功率,取决于诸如形状因子、可用的冷却方案、交流适配器/电池和稳压器等因素。SOC性能在当前TDP下被优化,在实施方式中,从未超过与TDP相应的功率限制。假设SOC功率限制是SOC TDP限制。SOC特性典型地是基于为每一个裸片上组件分配最大功率而同时保持在SOC TDP限制内。这是通过设置最高运行点(在频率(F)和电压(V))以使得即使在此运行点上执行的最大的预期活动也不会造成功率超过所分配的包络而发生的。例如,假设4核SOC的最大功率是由40w的TDP包络限制。表1逐条列出了为每一个裸片上组件分配的功率预算:
表1
裸片上组件 | 分配的功率 |
核心0 | 8w |
核心1 | 8w |
核心2 | 8w |
核心3 | 8w |
GPU | 5w |
存储器控制器 | 2w |
I/O桥 | 1w |
总计 | 40w |
8w的功率预算是定义核心的最高标称运行点(F,V)的限制,5w的功率预算对GPU起相同作用。然而,该分配是保守的,且只有标称的最大值,因为它是假定同时使用所有的裸片上组件。绝大多数现实世界中的应用是在CPU或GPU的范围内。即使应用程序占用两个计算引擎(例如,回放视频为处理器核心卸载一些任务),也不使用所有的4个处理器核心。甚至在CPU范围内的客户端应用主要是利用1-2个处理器核心(1-2个线程的工作负荷),其中只有很少有足够的并行来长时间使用所有的4个核心。
通过将更多的功率分配给忙的组件,实施方式提供了从闲置的或较不活跃的组件到忙的组件的功率再分配。例如,在工作负荷的样本中,其中4个核心中有2个处于闲置状态、GPU以一半功率运行,那么反映这种情形下的功率预算表如表2所示:
表2
给核心0和核心1分配16.75w以提高总体的CPU吞吐量。可提高两个核心的运行点(F,V)以占满新的功率裕量(是16.75w,而不是8w)。可替换地,只有一个核心的功率预算可以增加到25.5w,而另一个核心则留8w的功率预算。在这种情况下,具有增加的功率预算的核心可被提高到甚至更高的运行点(F,V),使得新的功率裕量(25.5w)可以被利用。在这一特定的情况下,确定是同等地增强两个核心还是将所有的可用功率裕量提供给一个核心取决于什么是提高整体SOC性能的最好的方式。
增强灵敏度的训练和数据结构
根据实施方式,确定如何在核心0和核心1间分配功率以尝试和实现改进性能增益的一种方法是知道这两个核心中哪个核心(如果有的话)可以更好地利用例如通过增加频率提供的性能容量的增加。性能容量的变化也可通过例如核心可用的缓存量的变化、在核心中运行的管道数和/或指令提取率来提供。为了评估哪一核心可以更好地利用性能容量的增加,在一实施方式中,每一个计算单元对频率变化和/或性能容量方面的其它变化的性能灵敏度(本文也称为增强灵敏度)被确定并以计算单元为基础存储。
参照图2,图2所示是根据本发明的一实施方式,概略描绘对核心频率变化的性能灵敏度的高级流程图。首先,在201,向正在被分析的CPU核心施加预定义的低频时钟信号达预定的或程序控制的时间间隔,例如100us-10ms。在此期间,硬件性能分析控制逻辑(见图1,组件111)采样和平均核心的每一个周期的指令数(IPC)(由核心报告)。性能分析控制逻辑基于IPC×核心频率(低频或第一性能水平)确定第一每秒指令数(IPS)度量标准作为第一性能度量标准。所述IPS度量标准可存储在临时寄存器“A”中。然后,在205,所述性能分析控制逻辑使得预定义的高频时钟信号被施加到正在被分析的CPU核心达相同的预定或程序控制的时间间隔。在207,所述性能分析控制逻辑再次采样和平均核心的IPC(由核心报告)。性能分析控制逻辑基于IPC×核心频率(高频或第二性能水平)确定第二每秒指令数(IPS)度量标准,并将所述第二IPS度量标准存储在临时寄存器“B”中,作为第二性能度量标准。在209,所述性能分析控制逻辑确定A和B之间的数值差异,并将结果作为性能灵敏度与被分析的核心的编号和分析期间在CPU核心上运行的进程上下文编号一起存储在性能灵敏度表或增强灵敏度表中。要注意的是,可利用性能容量方面的其它变化替代频率变化或和频率变化结合在一起来确定增强灵敏度。
所述上下文编号可由CR3寄存器的内容或CR3寄存器的哈希(hash)来确定,以允许较短的编号被存储。这个数值差异表示了所述核心的增强灵敏度。也就是说,它代表运行该特定的进程上下文的核心对频率变化的灵敏度。灵敏度越大,通过提高频率获得的性能提高越大。将与图2所示的相同的训练应用到每一个处理器核心和可增强(超频)到其标称最大功率值之上的任何其它的组件,并将所述值存储在增强灵敏度表中。在增强灵敏度表中的值可从具有最高的增强灵敏度的核心或其它裸片上组件开始降序存储。
在其它实施方式中,对其频率可改变以实现各性能状态的所有计算单元进行频率灵敏度训练,而不管它们是否可以定频(或超频)在标称功率水平之上。使用这种方式,系统可仍然将功率预算分配给对频率变化更敏感的核心(或其它计算单元)并且远离对频率变化较不敏感的核心。使用这种方式,核心或其它计算单元可降低其频率以节省功率而对SOC来说没有显着的性能下降。
图3示出了在系统框图级的频率训练。训练核心301是为代表对每一个核心的频率训练。在性能分析控制逻辑111控制下,时钟发生器303在频率期间提供高频时钟信号和低频时钟信号给核心301。核心301提供每个周期指令数的值给按照图2来控制过程的所述性能分析控制逻辑111。图4示出了通过在第一时间周期采样并平均、在乘法器401中乘以在第一时间周期提供的频率(FREQ1)来确定的每个周期指令数的测量结果(IPC1)。类似地,在第二时间周期确定的每个周期指令数的测量结果(IPC2)在乘法器403中乘以在第二时间周期提供的频率(FREQ2)。在加法器405中确定在乘法器401和403中确定的利用率度量标准的差。其结果是存储在增强灵敏度表407中的增强灵敏度。增强灵敏度表407为每一个测量存储结果,还一并存储核心的编号(C#)、核心上运行的进程上下文和自上一次性能灵敏度测量而来的已过时间。结果是性能度量标准或增强灵敏度,表示为例如通过平均IPC×核心频率计算的每秒指令数(IPS)。要注意的是,增强灵敏度表可存储在SOC 100(图1)中或计算机系统中的其它地方。
用于每一个核心的增强灵敏度与当前处理器的上下文联系,可以通过由北桥追踪的CR3的x86寄存器值来估计。在一实施方式中,当上下文变化时,灵敏度被重新评估。在另一实施方式中,增强灵敏度基于固定的或可编程的定时器对每一个上下文到期终止(例如,1-100ms后)。在另一实施方式中,不管哪个先发生,定时器和上下文切换都被用来启动增强灵敏度的重新评估。
因此,对频率训练已经用一实施方式进行说明。在图2中的功能可以用硬件(例如,在性能分析控制块111中的状态机)、固件(微码或微控制器)或软件(例如,驱动程序、BIOS常规程序或更高级别的软件)实施。软件可负责开始低频和高频时钟信号、接收IPC值、平均IPC值和执行有关图2中所说明的其它功能。所述软件可存储在图1的计算机系统的计算机可读的电、光、磁或其它形式的易失性或非易失性存储器中,并由一个或多个核心执行。在其它的实施方式中,如图2所示以及如上所述,频率灵敏度训练根据特定系统的需要和能力,部分由硬件实现,部分由软件实现。例如,软件可负责维护增强灵敏度表、读CR3寄存器以确定过程上下文和维护软件定时器以重新确定增强灵敏度,而硬件在得到软件通知时应用具有第一频率和第二频率的时钟达适当的时间周期并确定所述平均IPC。软件可负责确定IPS值。
功率预算重新分配
增强灵敏度表(BST)是作为对要潜在增强的组件的频率灵敏度训练阶段的结果而维持的。在其它的实施方式中,频率灵敏度表是作为对其性能通常是可通过调整频率(和电压,如有必要的话)调节的所有组件的频率灵敏度训练的结果而维持的。在实施方式中,功率预算的重新分配使用了BST中的信息来确定哪一个裸片上组件对增强是最敏感的并因而在重新分配发生时“值得”获得更高的TDP功率裕量重新分配。
特定的处理器核心可处于N个性能状态中的一个状态。性能状态的特征是一对独特的核心电压和频率值。通常选择和取特征为最高性能的状态,以使任何预期的活动都不会造成核心功率(动态+静态)超出为所述核心分配的功率预算。在当前的系统中,核心的性能状态由当前的核心使用情况所引导的操作系统软件来定义。在其它实施方式中,核心的性能状态可基于目前由所述核心执行的上下文由硬件指定。表3示出了有四个性能状态(P0,P1,P2和P3)的典范系统的性能状态,操作系统(OS)(或任何其它高级软件)可以将其用于每一个核心,这取决于核心在时间间隔上的使用情况。在一个典范操作系统中的时间间隔是在从1毫秒到100毫秒的范围内。当OS(或任何其它高级软件)将核心设置为低C状态时,使用两个闲置状态。C状态是核心的功率状态。在这一具体实施方式中,核心可置于闲置状态(当预计它将短时间闲置时)或深C状态。最高运行点(P-增强)是当核心功率(CoreBoostPwr)超过分配给该特定核心的标称最大功率预算时的状态。
表3
GPU的功率状态传统上是由软件(图形驱动程序)控制的。在其它实施方式中,也可能是由跟踪GPU活动和从其它的图形相关的引擎(统一视频解码器(UVD)、显示器等)接收信息的硬件控制的。在一典范的实施方式中,GPU可以是如表4所示的四个功率状态之一。
表4
GPU的性能状态 | 消耗的GPU功率(动态和静态) |
GPU-增强 | GPUBoostPwr |
GPU_P0 | GPU_Pwr0 |
GPU_P1 | GPU_Pwr1 |
GPU_P2 | GPU_Pwr2 |
GPU_P3 | GPU_Pwr3 |
在一实施方式中,只有两个裸片上组件(核心处理器和GPU)可增强到更高的性能点。I/O模块和存储器控制器可通过重新分配它们的“未使用”的功率预算给这些组件来有助于核心或GPU的增强过程,但他们不能自行增强。在其它的实施方式中,存储器控制器也可通过将动态随机存取存储器(DRAM)和其自身的频率转换到更高的运行点来增强。
一种有效地给计算单元分配功率的实施方式是以长期追踪可用功率裕量或TDP功率裕量为基础的。
SOC TDP裕量是通过从SOC TDP限制中减去所有裸片上组件的功耗总和来计算的:SOC TDP裕量=SOC TDP限制-∑Core(i)Pwr-GPU Pwr-存储器控制器的功耗-I/O桥的功耗。裸片上组件的状态的任何变化触发SOCTDP裕量值的更新。在一实施方式中,触发更新的状态变化是性能或功率状态上的变化,或是应用/工作负荷活动中的变化。在其它实施方式中,触发更新的状态变化可以是进程上下文变化,或者要么是进程上下文变化要么是性能状态变化。在实施方式中,导致诸如性能/功耗状态上的变化或应用/工作负荷活动中的变化之类的组件所消耗的功率的变化的任何事件都可作为状态变化触发事件。
一般地,特定的计算单元的功率(电压×电流)是基于时钟信号的频率、供给电压和计算单元中的活动量。确定每一个计算单元的功率的特定的方法可根据系统能力以及需求而有所不同,可以基于硬件和/或软件方法实施。例如,在一种方法中,计算单元计算并报告平均功率值为:平均功率=动态功率+静态功率。动态功率可以计算为=(平均工作负荷活动/最大活动)×MaxPower,其中MaxPower是与最大活动相关的最大动态功率的融合值或可配置值。静态功耗依赖于计算单元运行时的电压,可从表中提取,或从功率管理资源得到,或在硬件中确定。可以计算平均工作负荷活动为:在该时间间隔内在计算单元间的信号切换的平均数,或该时间间隔上的平均IPC。功率计算也可利用软件方法,其中软件(例如,驱动程序)知道在计算单元中运行的应用活动,并使用与上述的类似的方法确定平均功率。
在实施方式中,只有处于P0状态的核心和处于GPU_P0状态的GPU可以从其它的裸片上组件重新分配功率并增强到更高的性能点。这是基于观察到,在P0状态的核心或在GPU_P0状态的GPU基本上都暗示(由操作系统或诸如图形驱动程序之类的一些高级软件提供)当前所执行的任务都在计算范围内。在其它实施方式中,在核心和/或GPU处于其它非空闲状态时可增强核心和/或GPU。
图5示出了功率分配控制器109(图1)分配功率的实施方式的操作的典范流程图。在501,功率分配控制器等待任何裸片上组件的状态变化,如性能状态、应用/活动的变化或进程上下文变化。当状态变化发生时,在503跟踪TDP SOC裕量,在505确定裕量是否大于0。如果不是,流程去501。如果裕量大于零,这意味着有空间来增强一个或多个核心,在507进行检查,看是否有任何CPU核心处于P0状态。在这个特定的实施方式中,只有在P0的核心才可以被增强。如果没有核心处于P0状态,流程在523检查GPU功率状态。如果至少有一个核心处于P0状态,那么功率分配控制器就在509通过为所有在P0的核心计算新的TDP SOC裕量=TDP SOC裕量-∑(CoreBoostPw-Core_Pwr)来检查是否有足够的空间来增强所有的P0核心。新的TDP SOC裕量是假定所有在P0的核心都被增强的预测裕量值。TDP SOC裕量是当前的裕量值。CoreBoostPwr是增强时的核心功率,Core_Pwr是在P0状态的当前的核心功率。功率分配控制器在511检查新的裕量是否大于零。如果是,就有足够的裕量来增强所有的P0核心,在515完成这一点并更新TDP SOC裕量。然后,流程返回到501,等待另一个状态变化。
如果在511裕量不大于零,流程就去517,以发现是否有可能有些裕量。确定具有最高的灵敏度的核心。这可以例如通过访问由上面所讨论的增强灵敏度训练所提供的增强灵敏度表来完成。在519,在P0状态的核心例如以增强灵敏度下降的顺序排序。这样,在底部的那些就是对频率增加最不敏感的。在521,功率分配控制器从所述列表中一个接一个地去除具有最低的增强灵敏度的核心,并如在509对仍在所述列表上的所有核心重新计算新的TDP SOC裕量。在其它实施方式中,同时从所述列表中去除具有低于预定的或程序控制的阈值的增强灵敏度的所有核心。那样做的原因是不致因增强那些性能不会增加的核心而浪费功率。当新的TDP SOC裕量>0时,将仍在所述列表上的那些P0核心转换为P-增强并更新TDP SOC裕量。
在523,功率分配控制器检查看GPU是否处于GPU_P0状态。如果不是,流程就返回到501去等待状态变化。如果GPU是处于P0状态,则功率分配控制器在525通过从当前的TDP SOC裕量中减去GPU的增强功率与GPU的当前功率之差来计算新的TDP SOC裕量从而确定是否有足够的空间来增强GPU。在527,功率分配控制器检查看新的裕量是否大于零,如果是这样,就将GPU转换到增强状态并更新TDP SOC裕量并返回到503等待组件中的任一组件的另一个状态变化。如果没有足够的裕量,流程就返回到503。
这样,已经说明了用于在有足够的裕量并且通过去除对频率提高较不敏感的那些计算单元找到裕量时为处于P0状态的那些计算单元分配功率的一实施方式。在其它的实施方式中,只为例如那些具有足够高的增强灵敏度的(例如超过预定的或程序控制的阈值的)计算单元提供频率增强,以保证额外的功率。通过这种方式,可以提供提高的性能而同时仍试图在可能的情况下保持降低的功耗。
在图5中的功能可用硬件(例如,状态机)、固件(微码或微控制器)或软件(例如,驱动程序、BIOS程序或更高级别的软件)或任何适当的硬件和软件的结合实施,以基于增强灵敏度分配功率。假设增强灵敏度的信息可从增强灵敏度训练得到,在一实施方式中,软件可被告知在任何组件中的状态变化,并执行结合图5所说明的方法。所述软件可存储在图1的计算机系统中的计算机可读的电、光或磁的易失性或非易失性存储器中,并由一个或多个核心来执行。在其它的实施方式中,图5的功能是根据特定系统的需要和能力而部分由硬件实施、部分由软件实施。
SOC可以各种方式使用增强灵敏度信息的可用性。中央处理单元(CPU)节流是这种使用的一个例子。假设正在执行GPU界定的应用。也就是说,由于例如对所述特定的应用来说当前的性能状态是低于所需的,所以正在GPU上执行的应用受限于GPU的性能。在那种情况下,可通过在所有核心上施加P状态限制(例如,P状态限制=P2状态)来使CPU核心节流(限制它们的性能)。那会释放GPU可用的功率裕量。在实施方式中,基于指示特定的核心或GPU有多忙的数据来识别GPU界限内的或CPU界限内的应用。
可替换地,只有在频率上具有最低的性能灵敏度的那些核心才可被调节为P状态限制。例如,在四核系统中,根据增强灵敏度表,对核心频率变化具有最低IPS灵敏度的两个核心可通过施加P状态限制=P2被节流,而其它核心的状态可保持不变。那会为GPU释放出等于((Core_Pwr0-Core_Pwr2)×2)的功率裕量,其中Core_Pwr0是处于P0状态的核心所消耗的功率,Core_Pwr2是处于P2状态的核心所消耗的功率。
在其它的实施方式中,当正在执行CPU界限内(或计算界限内)的应用(由一个或多个处理核心的性能所限定的应用)时,因为应用往往在可用核心的子集上执行,所以,可以使对频率的增加(或减少)较不敏感的核心节流以给其它核心提供额外的裕量。GPU界限内的应用是由GPU的性能限制的应用。
图6示出了基于增强灵敏度信息的性能节流的高级流程图。在601,识别CPU界限内或GPU界限内的应用。在603,检查存储的增强灵敏度信息或性能灵敏度信息,在605,基于在性能方面对性能容量的下降(比如频率、电压、核心可用的缓存量、在核心中运行的管道数和/或指令提取率等的下降)较不敏感的核心的子集识别要节流的诸如处理核心之类的计算单元的子集。在607,限制所述子集的性能,在609,将通过节流获得的功率裕量提供给执行CPU界限内或GPU界限内的应用的计算单元。图6中所描述的功能可在功率分配控制器109中实施,或在高级软件中实施,或利用硬件和软件实施。
如果应用主要是利用CPU核心,可通过强行使GPU的P状态限制低于GPU_Pwr0或通过节流其指令/存储器运输流来使GPU节流。如果节流了的GPU功率等于GPU_Pwr2,那么,依靠增强灵敏度表的值,可重新分配额外的功率裕量,GPU_Pwr0-GPU_Pwr2,来增强一个或多个CPU核心。
当计算界限内的工作负荷在多核心处理器上或在GPU上运行时,也可使存储器节流。一种方法是将到DRAM的每一个其它访问拖延一些周期,从而将DRAM I/O和DRAM DIMM功率的动态部分减少到近1/2。另一种方法可涉及关停一些可用的存储器通道,也涉及释放给定百分比的DRAM I/O和DRAM DIMM的功率。减少的DRAM I/O功率可根据这些组件的利用情况和BST的值(就CPU核心而言)重新分配给GPU或CPU核心,从而导致更高的整体SOC性能吞吐量。DRAM DIMM不可为SOC的一部分,在这种情况下,它的功率预算不是SOC TDP的一部分。然而,在减少的DRAM DIMM的功率裕量可重新分配回给SOC TDP的情况下,可以使用额外的裕量来增强GPU或一些CPU核心。
虽然在本发明的一些实施方式中一般是推定电路和物理结构,但众所公认,在现代半导体设计和制造中,物理结构和电路可体现为适用于后续设计、测试或制造阶段的计算机可读的描述形式。在典范的配置中作为分立组件出现的结构和功能可作为联合的结构或组件实施。预期本发明包括本文所描述的和在附加的权利要求书中所限定的所有的电路、电路系统、相关的方法以及编码这样的电路、系统和方法的计算机可读介质。如在本文中所使用的,计算机可读介质包括至少磁盘、磁带或其它磁、光、半导体(例如,闪存卡、ROM)或电子介质。
这样,已经描述了不同的实施方式。需要说明的是,这里提出的发明的描述是说明性的,无意限制下面的权利要求书中界定的发明范围。例如,尽管计算单元可以是多核心处理器的一部分,但在其它实施方式中,计算单元是可封装在一起的或单独封装的独立集成电路。例如,图形处理单元(GPU)和处理器可以是封装在一起的或单独封装的独立集成电路。本文所公开的实施方式可以根据本文中的描述进行变化和修改而不偏离在下面的权利要求书中提出的本发明的保护范围。
Claims (15)
1.一种操作包括多个计算单元的计算机系统的方法,包括:
根据所述计算单元的各自的性能灵敏度改变一个或多个计算单元的性能。
2.根据权利要求1所述的方法,还包括根据所述一个或多个计算单元有比其它所述计算单元更高的性能灵敏度通过增强所述一个或多个计算单元的性能而改变所述一个或多个计算单元的性能。
3.根据权利要求1所述的方法,还包括将每一个所述计算单元的所述各自的性能灵敏度和阈值进行比较,并根据所述比较改变所述计算单元的性能。
4.根据权利要求1所述的方法,其中性能被改变的所述一个或多个计算单元在被改变之前都处在同一功率状态,且其中所述同一功率状态是标称的最大功率状态。
5.根据权利要求1所述的方法,其中所述计算单元包括组中的多个处理核心,且所述方法进一步包括:
在所述组中去除具有比该组中的其它处理核心更低的性能灵敏度的一个或多个所述处理核心,直至留在所述组中的处理核心的预测功率裕量大于零为止;并
通过增强留在所述组中的所述核心的性能来改变性能。
6.根据权利要求1所述的方法,其中所述计算单元包括多个处理核心,且所述方法进一步包括:
如果由增强成组的所述处理核心的性能导致的预测功率裕量小于零;
从所述组中去除具有比该组中的其它核心更低的性能灵敏度的核心以形成更小的组;和
计算新的预测功率裕量,并确定如果增强所述更小的组中的所述核心的性能,所述新的预测功率裕量是否大于零;
如果对于所述更小的组中的所述核心的所述新的预测功率裕量大于零,就通过增强所述更小的组中的所述核心的所述性能来改变性能;和
如果对于当前的组中的所述新的预测功率裕量仍小于零,就从所述更小的组中去除具有比该更小的组中的其它核心更低的增强灵敏度的另一核心以形成另一更小的组。
7.根据权利要求6所述的方法,还包括根据当前实际功率裕量-∑(增强功率-当前功率)确定所述新的预测功率裕量,其中所述增强功率是在增强功率水平运行的所述更小的组中的所述核心的功率,而所述当前功率是在当前功率水平运行的所述更小的组中的所述核心的功率,且所述当前实际功率裕量是对应于所述计算单元的当前功耗的功率裕量。
8.根据权利要求1所述的方法,其中改变所述性能是增强所述一个或多个计算单元的性能。
9.根据权利要求1所述的方法,还包括:
访问存储器以确定所述计算单元的所述各自的性能灵敏度,所述存储器存储与在每一个所述处理核心上执行的各自的进程上下文对应的性能灵敏度。
10.一种设备,包括:
多个计算单元;
为所述计算单元存储各自的性能灵敏度的存储器;和
功率分配功能,其被配置为根据所述性能灵敏度增强一个或多个所述计算单元的性能。
11.根据权利要求10所述的设备,其中所述功率分配功能响应于一个或多个所述计算单元有比其它所述计算单元更高的性能灵敏度。
12.根据权利要求10所述的设备,其中所述功率分配功能配置为比较每一个所述计算单元的所述性能灵敏度和阈值并增强具有高于所述阈值的性能灵敏度的计算单元。
13.根据权利要求10所述的设备,其中所述功率分配功能还响应于预测功率裕量不足以将成组的核心中的所有核心增强到增强的性能状态,从所述成组的计算单元中去除一个或多个计算单元,并重新计算新的预测功率裕量,所述去除是根据所述组中的所述一个或多个计算单元具有比该组中的其它计算单元的性能灵敏度更低的各自性能灵敏度来确定的,所述去除和重新计算不断重复,直至所述新的预测功率裕量大于零从而适应增强所述计算单元中的其余计算单元的性能为止。
14.根据权利要求10-13中任一项所述的设备,其中所述设备包括至少一个集成电路,且所述计算单元包括至少一个处理核心、存储器控制器和图形处理单元,其中所述功率分配功能是由一个或多个硬件、固件和存储在计算机可读介质上的软件实施的。
15.根据权利要求10所述的设备,其中各自的计算单元的所述性能灵敏度是根据在第一性能水平和第二性能水平确定的所述各自的计算单元的第一性能度量标准和第二性能度量标准确定的。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/508,935 US8443209B2 (en) | 2009-07-24 | 2009-07-24 | Throttling computational units according to performance sensitivity |
US12/508,929 | 2009-07-24 | ||
US12/508,902 | 2009-07-24 | ||
US12/508,902 US20110022356A1 (en) | 2009-07-24 | 2009-07-24 | Determining performance sensitivities of computational units |
US12/508,929 US8447994B2 (en) | 2009-07-24 | 2009-07-24 | Altering performance of computational units heterogeneously according to performance sensitivity |
US12/508,935 | 2009-07-24 | ||
PCT/US2010/043032 WO2011011670A1 (en) | 2009-07-24 | 2010-07-23 | Altering performance of computational units heterogeneously according to performance sensitivity |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102483646A true CN102483646A (zh) | 2012-05-30 |
CN102483646B CN102483646B (zh) | 2015-06-03 |
Family
ID=42953822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080033576.8A Active CN102483646B (zh) | 2009-07-24 | 2010-07-23 | 根据性能灵敏度不均匀地改变计算单元的性能 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2457139A1 (zh) |
JP (1) | JP5564564B2 (zh) |
KR (1) | KR20120046232A (zh) |
CN (1) | CN102483646B (zh) |
IN (1) | IN2012DN00933A (zh) |
WO (3) | WO2011011670A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830035A (zh) * | 2013-12-20 | 2016-08-03 | 高通股份有限公司 | 多核动态工作负荷管理 |
CN106662908A (zh) * | 2014-09-17 | 2017-05-10 | 英特尔公司 | 用于基于协作硬件和软件场景的功率管理的技术 |
CN110096224A (zh) * | 2018-01-30 | 2019-08-06 | 慧与发展有限责任合伙企业 | 存储器子系统中的功率控制 |
CN110442224A (zh) * | 2019-09-17 | 2019-11-12 | 联想(北京)有限公司 | 电子设备的电源功率分配方法、电子设备和可读存储介质 |
CN110941325A (zh) * | 2019-10-17 | 2020-03-31 | 华为技术有限公司 | 处理器的调频方法及装置、计算设备 |
WO2023143333A1 (zh) * | 2022-01-30 | 2023-08-03 | 台达电子企业管理(上海)有限公司 | 提升处理器峰值算力的方法、用于提升处理器峰值算力的系统 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5601236B2 (ja) * | 2011-02-10 | 2014-10-08 | 富士通株式会社 | 情報抽出プログラム、情報抽出方法、および情報抽出装置 |
US20120297232A1 (en) * | 2011-05-16 | 2012-11-22 | Bircher William L | Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value |
JP5958395B2 (ja) * | 2013-03-22 | 2016-08-02 | 日本電気株式会社 | コンピュータシステム |
US9348380B2 (en) * | 2013-12-28 | 2016-05-24 | Samsung Electronics Co., Ltd. | Dynamic thermal budget allocation for memory array |
JP5986138B2 (ja) * | 2014-05-09 | 2016-09-06 | レノボ・シンガポール・プライベート・リミテッド | 複数のプロセッサに電力を供給する電源装置の出力を制御する方法、電源システムおよび情報処理装置 |
US9882383B2 (en) * | 2014-12-23 | 2018-01-30 | Intel Corporation | Smart power delivery network |
US9572104B2 (en) | 2015-02-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Dynamic adjustment of user experience based on system capabilities |
JP2016177689A (ja) | 2015-03-20 | 2016-10-06 | 株式会社東芝 | メモリシステム |
CN108139960B (zh) * | 2016-04-18 | 2020-07-07 | 华为技术有限公司 | 中央处理器cpu的调频方法、调频装置和处理设备 |
US11379337B2 (en) * | 2018-06-21 | 2022-07-05 | Hewlett-Packard Development Company, L.P. | Increasing CPU clock speed to improve system performance |
WO2021021185A1 (en) * | 2019-07-31 | 2021-02-04 | Hewlett-Packard Development Company, L.P. | Configuring power level of central processing units at boot time |
KR102103842B1 (ko) * | 2019-10-02 | 2020-05-29 | 한화시스템 주식회사 | 차세대 함정 전투체계의 트래픽 모델링 장치 |
KR102275529B1 (ko) * | 2019-12-23 | 2021-07-09 | 주식회사 텔레칩스 | 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법 |
CN113078933B (zh) * | 2020-01-03 | 2023-01-24 | 内蒙古龙图电气有限公司 | 一种基于北斗卫星通信的组网式终端控制器 |
US11971774B2 (en) * | 2020-10-13 | 2024-04-30 | Nvidia Corporation | Programmable power balancing in a datacenter |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233475A (zh) * | 2005-08-02 | 2008-07-30 | 先进微装置公司 | 增加于多核心处理器上的一个或多个核心的工作量效能 |
CN101241392A (zh) * | 2007-03-01 | 2008-08-13 | 威盛电子股份有限公司 | 根据工作温度的变化来动态改变功耗的微处理器及方法 |
US20080307240A1 (en) * | 2007-06-08 | 2008-12-11 | Texas Instruments Incorporated | Power management electronic circuits, systems, and methods and processes of manufacture |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10268963A (ja) * | 1997-03-28 | 1998-10-09 | Mitsubishi Electric Corp | 情報処理装置 |
US20020087904A1 (en) * | 2000-12-28 | 2002-07-04 | Zhong-Ning (George) Cai | Method and apparatus for thermal sensitivity based dynamic power control |
US7386739B2 (en) * | 2005-05-03 | 2008-06-10 | International Business Machines Corporation | Scheduling processor voltages and frequencies based on performance prediction and power constraints |
US7412353B2 (en) * | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
US7971073B2 (en) * | 2005-11-03 | 2011-06-28 | Los Alamos National Security, Llc | Adaptive real-time methodology for optimizing energy-efficient computing |
-
2010
- 2010-07-23 KR KR1020127003135A patent/KR20120046232A/ko not_active Application Discontinuation
- 2010-07-23 WO PCT/US2010/043032 patent/WO2011011670A1/en active Application Filing
- 2010-07-23 JP JP2012521824A patent/JP5564564B2/ja active Active
- 2010-07-23 WO PCT/US2010/043035 patent/WO2011011673A1/en active Application Filing
- 2010-07-23 WO PCT/US2010/043029 patent/WO2011011668A1/en active Application Filing
- 2010-07-23 EP EP10737218A patent/EP2457139A1/en not_active Withdrawn
- 2010-07-23 CN CN201080033576.8A patent/CN102483646B/zh active Active
- 2010-07-23 IN IN933DEN2012 patent/IN2012DN00933A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101233475A (zh) * | 2005-08-02 | 2008-07-30 | 先进微装置公司 | 增加于多核心处理器上的一个或多个核心的工作量效能 |
CN101241392A (zh) * | 2007-03-01 | 2008-08-13 | 威盛电子股份有限公司 | 根据工作温度的变化来动态改变功耗的微处理器及方法 |
US20080307240A1 (en) * | 2007-06-08 | 2008-12-11 | Texas Instruments Incorporated | Power management electronic circuits, systems, and methods and processes of manufacture |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830035A (zh) * | 2013-12-20 | 2016-08-03 | 高通股份有限公司 | 多核动态工作负荷管理 |
CN105830035B (zh) * | 2013-12-20 | 2020-02-14 | 高通股份有限公司 | 多核动态工作负荷管理 |
CN106662908A (zh) * | 2014-09-17 | 2017-05-10 | 英特尔公司 | 用于基于协作硬件和软件场景的功率管理的技术 |
CN110096224A (zh) * | 2018-01-30 | 2019-08-06 | 慧与发展有限责任合伙企业 | 存储器子系统中的功率控制 |
CN110442224A (zh) * | 2019-09-17 | 2019-11-12 | 联想(北京)有限公司 | 电子设备的电源功率分配方法、电子设备和可读存储介质 |
CN110941325A (zh) * | 2019-10-17 | 2020-03-31 | 华为技术有限公司 | 处理器的调频方法及装置、计算设备 |
WO2021073130A1 (zh) * | 2019-10-17 | 2021-04-22 | 华为技术有限公司 | 处理器的调频方法及装置、计算设备 |
WO2023143333A1 (zh) * | 2022-01-30 | 2023-08-03 | 台达电子企业管理(上海)有限公司 | 提升处理器峰值算力的方法、用于提升处理器峰值算力的系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2011011668A1 (en) | 2011-01-27 |
EP2457139A1 (en) | 2012-05-30 |
KR20120046232A (ko) | 2012-05-09 |
WO2011011670A1 (en) | 2011-01-27 |
JP2013500520A (ja) | 2013-01-07 |
CN102483646B (zh) | 2015-06-03 |
WO2011011673A1 (en) | 2011-01-27 |
JP5564564B2 (ja) | 2014-07-30 |
IN2012DN00933A (zh) | 2015-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102483646A (zh) | 根据性能灵敏度不均匀地改变计算单元的性能 | |
US8443209B2 (en) | Throttling computational units according to performance sensitivity | |
US8447994B2 (en) | Altering performance of computational units heterogeneously according to performance sensitivity | |
US8356194B2 (en) | Method and apparatus for estimating overshoot power after estimating power of executing events | |
US8284205B2 (en) | Methods and apparatuses for load balancing between multiple processing units | |
US9176569B2 (en) | Apparatus and method for dynamically adjusting frequency of central processing unit | |
US7788519B2 (en) | Method, system, and apparatus for improving multi-core processor performance | |
EP2270625B1 (en) | System and method for processor utilization adjustment to improve deep c-state use | |
US7475262B2 (en) | Processor power management associated with workloads | |
US7373269B2 (en) | Processor power consumption control | |
US9087146B2 (en) | Wear-out equalization techniques for multiple functional units | |
US9552046B2 (en) | Performance management methods for electronic devices with multiple central processing units | |
US9239611B2 (en) | Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme | |
US20110022356A1 (en) | Determining performance sensitivities of computational units | |
CN110941325B (zh) | 处理器的调频方法及装置、计算设备 | |
US20160327999A1 (en) | Dynamic frequency scaling in multi-processor systems | |
US20190146567A1 (en) | Processor throttling based on accumulated combined current measurements | |
US11138037B2 (en) | Switch policy for hybrid scheduling in multi-processor systems | |
US9110716B2 (en) | Information handling system power management device and methods thereof | |
Chetsa et al. | A runtime framework for energy efficient HPC systems without a priori knowledge of applications | |
Kim et al. | Application-aware scaling governor for wearable devices | |
US9785218B2 (en) | Performance state selection for low activity scenarios | |
JP5444964B2 (ja) | 情報処理装置及びスケジューリング方法 | |
Oi | Effectiveness of DFS Tuning on Java Server Workload | |
CN112579299B (zh) | 资源调度方法、电子设备及存储介质 |
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 |