有效频率加速操作的制作方法

文档序号:6495732阅读:200来源:国知局
有效频率加速操作的制作方法
【专利摘要】操作计算系统的系统和方法可以包括识别多个状态值,其中每个状态值对应于与处理器相关的计算线程。可对多个状态值确定平均值,其中可以至少部分基于该平均值作出关于是否批准频率加速请求的判定。
【专利说明】有效频率加速操作
【背景技术】【技术领域】
[0001]实施例一般性地涉及计算平台中的频率加速操作。更具体地,实施例涉及性能状态和/或功率状态值的平均以提高频率加速的效率。
[0002]讨论
[0003]特定的计算平台可以通过加速处理器内核频率超出所建议的频率值(例如,“睿频”加速(turbo boost))以提供改进的性能从而使用可用的功率余量和热余量。尽管睿频加速可以增加性能,但在特定环境下其也会减少能量效率。例如,已知的睿频加速方法在范围从大约60%至80%的负载期间会展现出明显的效率降级,特别是在多核、多线程架构中。
[0004]附图简要说明
[0005]通过阅读下列说明书和附属权利要求,以及通过参照下列附图,本发明实施例的各种优点对本领域技术人员是显而易见的,在其中:
[0006]图1是依照实施例管理频率加速的方法不例的流程图;
[0007]图2是依照实施例使用上限/下限约束和滞后控制功能以管理频率加速的方法示例的流程图;
[0008]图3是依照实施例的多个状态计数器值示例的曲线图;
[0009]图4是依照实施例的一组活动水平与功率的关系曲线的示例的曲线图;
[0010]图5是依照实施例的一组每瓦性能曲线的示例的曲线图;
[0011]图6是依照实施例的系统的框图。
【具体实施方式】
[0012]实施例可以包括具有指令集的计算机可读存储介质,如果指令由处理器执行,导致计算机识别多个状态值,其中每个状态值对应于计算线程。该指令还可以使计算机确定多个状态值的平均值,并且至少部分基于平均值确定是否批准频率加速请求。
[0013]实施例还可以包括计算机执行方法,在其中识别多个状态值,其中每个状态值对应于计算线程。该方法还可以提供确定多个状态值的平均值,并且至少部分基于平均值确定是否批准频率加速请求。
[0014]此外,实施例可以包括具有处理器和识别多个状态值的逻辑的系统,其中每个状态值对应于与处理器相关的计算线程。该逻辑还能确定多个状态值的平均值,并且至少部分基于平均值确定是否批准频率加速请求。
[0015]其他实施例可以包括计算机执行方法,在其中识别多个状态值,其中每个状态值对应于与处理器相关的计算线程。对于一个或多个计算线程,识别状态值可以包括采样线程性能状态,在线程性能状态和与频率加速请求相关的性能状态之间进行比较,并且至少部分基于该比较修改对应于计算线程的状态计数器。该方法可以提供确定多个状态值的平均值,并且如果该平均值超出阈值则批准频率加速请求。如果平均值没有超过阈值则可以拒绝该频率加速请求。
[0016]现在转向图1,示出了管理频率加速的方法10。该方法10可以在可执行软件中被实现为存储在存储器的机器或计算机可读介质中的逻辑指令集,存储器例如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存、等等,以及在使用电路技术(例如,专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术、或它们的任意组合)的固定功能逻辑硬件中实现,。例如,执行在方法10中示出的操作的计算机程序代码可以用一种或多种编程语言的任意组合编写,包括面向对象的编程语言(例如Java、Smalltalk、C++等等)以及传统的过程编程语言(例如“C”编程语言或类似的编程语目)。
[0017]处理框12提供用于识别多个状态值,其中每个状态值对应于与多线程物理处理器相关的计算线程(例如,逻辑处理器)。例如,状态值能够代表如在高级配置和电源接口规范(例如,ACPI规范,Ref.4.0a, 2010年4月5日)、或其他适当规范中定义的处理器性能状态(例如,Px)值和/或功率状态(例如,Cx)值。处理器功率状态(Cx状态)可以定义具有特定入口和出口语义的功耗和热管理条件,并且性能状态(Px状态)可以定义在活动/执行状态(例如,用于处理器的CO)内的功耗和能力状态。因此,每个活动线程可以处于特定的Cx/Px状态,其中示出的框12识别用于每个线程的至少一个状态。此外,该处理器可以是中央处理单元(CPU)或具有单核或多核配置的分布式计算架构。
[0018]在框14可以对多个状态值确定平均值,其中示出的框16至少部分基于平均值确定是否批准频率加速请求。如将要更详细地讨论,频率加速请求可以仅当跨所有线程的平均性能/功率状态值高于特定阈值时才被批准。因此,在存在将处理器的操作频率增加至高于所建议处理器最大频率的水平的待批睿频加速请求的情况下,所述的示例使用平均值整体上评估多线程处理器负载,而不是在每线程基础上解释负载。简单地说,所述的方法限制了单个线程在多线程、多内核环境下主导频率加速管理方案的能力。相应地,方法10能够实现更有效的频率加速操作。
[0019]图2示出了管理频率加速的更详细方法18,其中上限/下限约束和滞后控制功能被用于进一步增强操作。在所示的示例中,在框20确定多线程处理架构中的一个或多个线程(例如,逻辑处理器)正在请求睿频加速操作。响应于该请求,框22初始化相应于活动线程的处理器状态计数器至下限值。特别地,每个计算线程可以与跟踪其性能状态以及其功率状态的计数器相关联,其中该下限值可以是小的非零值,用于防止状态计数器具有可能会对平均功能带来问题的负值。
[0020]频率加速阈值在框24可以被设置为“批准水平”。如将要被更详细地描述,多个水平可被用于阈值以实现频率控制系统的滞后控制功能。框26提供用于周期地采样每个线程的性能和/或功率状态。采样率可被设置为任何合适的值(例如,每15微秒)。框28提供用于在采样状态和与频率加速请求相关的性能/功率状态之间进行比较,并且相应地修改状态计数器。例如,如果线程应当在C0/P0状态以适合频率加速,则每个线程的状态会与该C0/P0状态比较并且其计数器会基于比较结果递增或递减。此外,用于递增/递减的阶值可以是可变的。因此,在上述示例中,在CO/Px状态的线程可以使其状态计数器递减特定量并且在Cx/Px状态的线程可以使其状态计数器递减更大量,而C0/P0状态的线程可以使其状态计数器仍递增另一量。
[0021]所示的框30将上限/下限约束应用至计数器。特别地,如果给定状态计数器超出上限值,则其可被设置为(例如,约束为)上限值,以及如果状态计数器下降低于下限值则其可被设置为(例如,约束为)下限制。如已被注意的,下限值能够防止状态计数器具有可能会对平均功能带来问题的负值。上限值能够限制在平均确定中反映的历史量,同时仍允许单个线程触发频率加速。例如,用于二十线程处理器架构的上限值可被设置用来支持约二十倍阈值加一,以便保持在单线程应用过程中(例如,当单个处理器线程单独请求频率加速时的情形)做出频率加速判定所需的历史量。
[0022]在框32可以平均计数器值,其中在框34可以作出关于平均值是否超出频率加速阈值的判定。如果这样,所示的框36允许进行频率加速操作,并且框38能够将阈值设置为“拒绝水平”。因此,如果该阈值之前处于批准水平,则框38可以包括将其降低至较低水平从而使得处理器稍微容易地保持以频率加速模式继续操作。相应地,所述方法实现滞后控制功能,该功能考虑可能原本围绕频率加速阈值上下振荡的平均值。
[0023]如果平均值没有超过当前频率加速阈值,则所示框40阻止频率加速操作进行,并且框42可以将阈值设置回批准水平。因此,如果阈值之前被降至拒绝水平,框42可以包括将其增加至较高水平(例如,一旦滞后已经被计入)。如果确定不再有任何频率加速请求待批,该频率加速阈值还可以被设置为批准水平。
[0024]现在转向图3,曲线图44示出了八个状态计数器值和随时间的平均计数器值。在所述的示例中,曲线图44的第一区域46反映平均值曲线48低于频率加速阈值的批准水平50。相应地,在所示的示例中,尽管一个或多个频率加速请求可能待批,但是没有一个被批准。另一方面,曲线图44的第二区域52展示了平均值曲线48超过频率加速阈值的批准水平50,在所示的示例中,这使得频率加速操作被批准并且频率加速阈值被降低至较低的拒绝水平54 (例如,批准至拒绝/G2D)。
[0025]图4示出了用于各种操作模式的一组活动水平与功率的关系曲线。一般来说,所示曲线图示出在范围从零至百分之百活动水平(例如,负载)的十一个性能间隔处的系统功耗。更具体地,“节能”曲线56反映在其中频率加速被禁止的操作模式,而“性能”曲线58反映在其中频率加速请求被自动批准的操作模式。因此,性能曲线58和节能曲线56可以相对于功耗和性能,分别构成上边界和下边界。所示曲线图还包括“无平均”的曲线60,其反映在其中如果任何线程满足频率加速请求则批准频率加速请求的平衡操作模式(例如,没有跨线程的平均),以及“基于平均”的曲线62,其反映在其中如果平均状态值超过阈值则批准频率加速请求的平衡操作模式,如上述已经讨论的。
[0026]在所述的示例中,性能曲线58在40%活动水平处与节能曲线56相分离并且无平均的曲线60在60%活动水平处与节能曲线56相分离。另一方面,在所示示例中,基于平均的曲线62直到80%活动水平才与节能曲线56相分离。因此,基于平均的曲线62与无平均的曲线60相比在60%至90%负载之间与低得多的功耗相关。
[0027]现在转向图5,示出了用于多种操作模式的一组每瓦性能曲线。在所示的示例中,性能曲线64反映在其中频率加速请求被自动批准的操作模式,并且无平均的曲线66反映在其中如果任何线程满足频率加速请求则批准频率加速请求的平衡操作模式。两个曲线64和66都展示了比对应于平衡操作模式的基于平均的曲线低的线性,在该平衡操作模式中如果平均状态值超出阈值则频率加速请求被批准,如已经讨论的。简单地说,基于平均的曲线68展示在此描述的方法能够相对于传统方法对在60%至90%之间的负载提供本质上更多的每瓦性能。
[0028]图6示出了平台70,其可以包括移动设备,例如膝上型电脑、个人数字助理(PDA)、移动互联网设备(MID)、无线智能电话、媒体播放器、图像设备、智能平板、等等,或它们的任意组合。该平台70还可以包括固定平台,例如台式个人计算机(PC)或服务器。在所示的示例中,处理器72包括一个或多个核74以及提供对系统存储器78的访问的集成存储器控制器(IMC)76。该存储器控制器可以可选地位于处理器72的外部。系统存储器78可以包括,例如,双数据率(DDR)同步动态随机访问存储器(SDRAM,例如,DDR3SDRAM JEDEC标准JESD79-3C,2008年4月)模块,或其他合适的存储器结构。系统存储器78的模块可以被组合至,例如,单个单列直插式存储器模块(SIMM)、双列直插式存储器模块(DIMM)、小型外嵌DMM(DMM,S0DIMM)、等等。处理器72还可以具有高级POT (电源控制单元,例如,“非核”)82,其能够通过增加或减少核电压/频率(P-状态转换)或功率状态(C-状态转换)管理片上功率。此外,处理器72可以执行各种软件应用、驱动和/或操作系统(OS),例如,Microsoft Windows、Linux、或 Mac (Macintosh)操作系统。
[0029]所示的处理器72经由总线与平台控制器中枢(PCH)80(也被称为南桥)通信。IMC76/处理器72和PCH80有时被称为芯片组。处理器72也可以通过PCH80和网络控制器84可操作地连接至网络(未示出)。因此,网络控制器84可以为各种各样的目的提供平台外通信功能,例如蜂窝电话(例如,ff-CDMA(UMTS)、CDMA2000 (IS-856/IS-2000)、等等)、WiFi (例如,IEEE802.11,1999 版,LAN/MAN 无线 LANS)、蓝牙(例如,IEEE802.15.1-2005,无线个域网)、WiMax (例如,IEEE802.16-2004,LAN/MAN宽带无线局域网)、全球定位系统(GPS)、扩展频谱(例如,900MHz)、以及其他射频(RF)电话的目的。网络控制器84还可以使用有线数据连接(例如,RS-232 (电子工业联盟/EIA)、以太网(例如,IEEE802.3-2005,LAN/MAN CSMA/CD接入方法)、电源线通信(例如,X10,IEEE P1675)、USB (例如,通用串行总线2.0规范)、数字用户线(DSL)、电缆调制解调器、Tl连接)、等等,以实现对附加平台外资源的访问。
[0030]所示的PCH80被耦合至用户接口(UI,例如,触摸屏、液晶显示器/IXD、发光二极管/LED、等等)86,能够使用户能够与平台70交互并且感知来自平台70的信息。PCH80还可以具有内部控制器,例如串行ATA(SATA,例如,SATA版本3.0规范,2009年5月27 H , SATA国际组织/SATA-10)控制器(未示出)、高分辨率音频控制器(未示出)、等等。PCH80还可以被耦合至存储器,该存储器可以包括BIOS (基本输入/输出系统)存储器88、硬盘驱动、只读存储器(ROM)、光盘、闪存(未示出)、等等。
[0031]所示的PCU82可以被配置用来识别多个状态值,其中每个状态值相应于计算线程,为多个状态值确定移动平均值,并且至少部分基于平均值确定是否批准一个或多个频率加速请求,如已经讨论的。频率加速请求可以来自OS或在处理器72上执行的其它软件组件,其中频率加速操作可以包括以比处理器72的所建议最大操作频率更高的频率操作处理器72 (例如,睿频加速操作)。在一个示例中,PCU82包括逻辑,用于采样线程性能状态、在采样线程性能状态和与频率加速请求相关的性能状态之间进行比较、以及至少部分基于该比较修改相应于计算线程的状态计数器。此外,PCU82的逻辑还能够在确定是否批准频率加速请求时考虑处理器功率状态。
[0032]因此在此描述的技术可以提供用于监控多个可用并行线程,同时计算使用每线程最佳历史量的累计活动参数。相应地,极端活跃或极端不活跃的线程的影响可以在复杂计算环境下被紧密地控制。此外,频率加速可以被动态地约束至特定负载点以进一步增强效率,即便在平衡模式操作过程中。另外的效率好处可以通过能够阻止短暂频率加速的独特滞后控制机制而获取。
[0033]本发明的实施例适用于所有类型的半导体集成电路(“1C”)芯片。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC、以及类似物。此外,在某些图示中,信号传导线由线条表示。某些可能较粗,用以表示更多组成信号路径,具有数字标签,用以表示许多组成信号路径,和/或在一端或多端具有箭头,用以表示主要信息流方向。然而,这不应当以限制的方式解释。相反,这种附加的细节可以与一个或多个示例性实施例结合使用以帮助更容易地理解电路。任何被展示的信号线,不管是否带附加信息,可以实际上包括可以在多个方向传输的一个或多个信号并且可以以任何合适类型的信号方案实现,例如,以差分对、光纤、和/或单端线路实现的数字或模拟线路。
[0034]示例尺寸/模块/值/范围已经被给出,但是本发明的实施例并没局限于此。由于制造技术(例如,光刻)随着时间日益成熟,可以预见更小尺寸的设备能够被生产。此外,众所周知的至IC芯片以及其他组件的功率/接地连接可能或可能没有在图表中示出,这是为了描述和讨论的简单性以及为了不模糊本发明实施例的特定方面。更进一步,布局可以在框图形式中示出以免模糊本发明的实施例,并且同样考虑到实施这种方框图布局的相关细节高度地依赖于实施例被执行的平台这一事实,即,这种细节应该在本领域技术人员的眼界之内。特定细节(例如电路)被阐述以便描述本发明的示例性实施例,对本领域技术人员来说应当是显而易见的是:本发明的实施例可以在无需这些细节或者采用这些实施例细节的变化的情况下被实施。因此描述被认为是示意性的而不是限制。
[0035]术语“耦合”在本文中用于指示在讨论的组件之间的任何类型的关系,直接或间接,并且可以应用于电子、机械、流体、光学、电磁、机电或其他连接。此外,术语“第一”、“第二”等等在本文中仅仅用于方便讨论,并且除非另有指出,否则不携带特定时间或年代顺序含义。
[0036]那些本领域技术人员从前述中将意识到本发明实施例的宽泛技术可以以各种形式实现。因此,尽管本发明的实施例已经结合特定的示例描述,本发明实施例的真实范围不应该被限制因为对于熟练的从业者来说通过对附图、说明书和所附权利要求的研究,其他修改将变得显而易见。
【权利要求】
1.一种计算机实现方法包括: 识别多个状态值,其中每个状态值对应于与处理器相关的计算线程,并且其中对一个或多个计算线程,识别状态值包括, 周期性地采样线程性能状态, 在线程性能状态和与频率加速请求相关的性能状态之间进行比较,以及 至少部分基于所述比较修改对应于计算线程的状态计数器; 确定所述多个状态值的平均值; 如果所述平均值超出阈值,批准所述频率加速请求;以及 如果所述平均值没有超过阈值,拒绝所述频率加速请求。
2.如权利要求1的方法,还包括如果所述频率加速请求被批准,将所述阈值从第一水平降低至第二水平。
3.如权利要求2的方法,还包括如果所述频率加速请求被拒绝,将所述阈值从所述第二水平增加至所述第一水平。
4.如权利要求1的方法,其中修改状态计数器包括以下中的至少一个:将所述状态计数器递增或递减可变阶值。
5.如权利要求4的方 法,其中,对于一个或多个计算线程,识别状态值包括: 米样线程功率状态; 在线程功率状态和与所述频率加速请求相关的功率状态之间进行附加比较;以及 至少部分基于所述附加比较修改所述状态计数器。
6.如权利要求4的方法,还包括: 如果所述状态计数器超出上限值,设置所述状态计数器至上限值;以及 如果所述状态计数器低于下限值,设置所述状态计数器至下限值。
7.一种计算机实现方法包括: 识别多个状态值,其中每个状态值对应于与处理器相关的计算线程; 确定所述多个状态值的平均值;以及 至少部分基于所述平均值确定是否批准频率加速请求。
8.如权利要求7的方法,还包括: 如果所述平均值超出阈值,批准所述频率加速请求;以及 如果所述平均值没有超过阈值,拒绝所述频率加速请求。
9.如权利要求8的方法,还包括如果所述频率加速请求被批准,将所述阈值从第一水平降低至第二水平。
10.如权利要求9的方法,还包括如果所述频率加速请求被拒绝,将所述阈值从第二水平增加至第一水平。
11.如权利要求7的方法,其中,对于一个或多个计算线程,识别状态值包括: 周期性地采样线程性能状态; 在线程性能状态和与所述频率加速请求相关的性能状态之间进行比较;以及 至少部分基于所述比较修改对应于计算线程的状态计数器。
12.如权利要求11的方法,其中修改状态计数器包括以下中的至少一个:将所述状态计数器递增和递减可变阶值。
13.如权利要求11的方法,其中,对于一个或多个计算线程,识别状态值包括: 米样线程功率状态; 在线程功率状态和与所述频率加速请求相关的功率状态之间执行附加比较;以及 至少部分基于所述附加比较修改所述状态计数器。
14.如权利要求13的方法,还包括: 如果所述状态计数器超出上限值,设置所述状态计数器至上限值;以及 如果所述状态计数器低于下限值,设置所述状态计数器至下限值。
15.—种系统包括: 处理器;以及 逻辑,用于: 识别多个状态值,其中每个状态值对应于与所述处理器相关的计算线程, 确定所述多个状态值的平均值,以及 至少部分基于所述平均值确定是否批准频率加速请求。
16.如权利要求15的系统,所述逻辑用于: 如果所述平均值超出阈值,批准所述频率加速请求,以及 如果所述平均值没有超过阈值,拒绝所述频率加速请求。
17.如权利要求16的系统,其中所述逻辑用于如果所述频率加速请求被批准,将所述阈值从第一水平降低至第二水 平。
18.如权利要求17的系统,其中所述逻辑用于如果所述频率加速请求被拒绝,将所述阈值从第二水平增加至第一水平。
19.如权利要求15的系统,其中,对于一个或多个计算线程,所述逻辑用于: 周期性地采样线程性能状态, 在线程性能状态和与所述频率加速请求相关的性能状态之间进行比较,以及 至少部分基于所述比较修改对应于计算线程的状态计数器。
20.如权利要求19的方法,其中所述逻辑用于以下中的至少一个:将所述状态计数器递增和递减可变阶值。
【文档编号】G06F9/06GK103782269SQ201280031860
【公开日】2014年5月7日 申请日期:2012年6月30日 优先权日:2011年7月1日
【发明者】B·加内桑, J·S·波恩斯, S·苏古玛, D·V·博达斯, S·R·伊恩加, F·尼尔森, D·纳加拉, R·J·芬格 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1