CN102656539A - 用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法 - Google Patents

用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法 Download PDF

Info

Publication number
CN102656539A
CN102656539A CN2010800564682A CN201080056468A CN102656539A CN 102656539 A CN102656539 A CN 102656539A CN 2010800564682 A CN2010800564682 A CN 2010800564682A CN 201080056468 A CN201080056468 A CN 201080056468A CN 102656539 A CN102656539 A CN 102656539A
Authority
CN
China
Prior art keywords
nuclear
condition
duration
wake
equals
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
Application number
CN2010800564682A
Other languages
English (en)
Other versions
CN102656539B (zh
Inventor
博胡斯拉夫·雷赫利克
罗伯特·A·格伦
阿里·伊兰里
布莱恩·J·萨尔斯贝瑞
素密·苏尔
史蒂文·S·汤姆森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102656539A publication Critical patent/CN102656539A/zh
Application granted granted Critical
Publication of CN102656539B publication Critical patent/CN102656539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

本发明揭示一种动态地控制多核CPU内的功率的方法,且所述方法可包含接收第零核的工作负载中的并行性程度,以及确定所述第零核的所述工作负载中的所述并行性程度是否等于第一唤醒条件。此外,所述方法可包含当所述第零核的所述工作负载中的所述并行性程度等于所述第一唤醒条件时确定所述第一唤醒条件被满足所持续的持续时间,以及确定所述持续时间是否等于第一确认唤醒条件。所述方法还可包含在所述持续时间等于所述第一确认唤醒条件时调用操作***以对第一核加电。

Description

用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法
相关申请案
本申请案主张2009年12月16日申请的标题为“动态地控制多核中央处理单元中的多个核的***和方法(SYSTEM AND METHOD OF DYNAMICALLY CONTROLLINGA PLURALITY OF CORES IN A MULTICORE CENTRAL PROCESSING UNIT)”的第61/286,953号美国临时专利申请案的优先权,所述临时专利申请案的内容以引用的方式完全并入本文中。
技术领域
背景技术
便携式计算装置(PD)普遍存在。这些装置可包含蜂窝式电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机,和其它便携式电子装置。除了这些装置的主要功能外,许多装置还可包含***功能。举例来说,蜂窝式电话可包含进行蜂窝式电话呼叫的主要功能,以及照相机、摄像机、全球定位***(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息、即按即说能力等***功能。随着此装置的功能性增加,支持此功能性所需的处理能力也增加。此外,随着计算能力增加,更加需要有效管理提供计算能力的处理器。
因此,需要控制多核CPU内的功率的改进的方法。
发明内容
附图说明
图式中,除非另外指示,否则贯穿于各图的相同参考数字指代相同零件。
图1是处于关闭位置的便携式计算装置(PCD)的第一方面的平面前视图;
图2是处于打开位置的PCD的第一方面的平面前视图;
图3是PCD的第二方面的框图;
图4是处理***的框图;
图5是说明动态地控制多核CPU内的功率的方法的第一方面的流程图;
图6是说明动态地控制多核CPU内的功率的方法的第二方面的流程图;
图7是说明动态地控制多核CPU内的功率的方法的第三方面的流程图;
图8是说明动态地控制多核CPU内的功率的方法的第四方面的流程图;
图9是说明动态地控制多核CPU内的功率的方法的第五方面的第一部分的流程图;
图10是说明动态地控制多核CPU内的功率的方法的第五方面的第二部分的流程图;
图11是说明动态地控制多核CPU内的功率的方法的第五方面的第三部分的流程图;
图12是说明动态地控制多核CPU内的功率的方法的第五方面的第四部分的流程图;
图13是说明测试多核CPU的方法的流程图;以及
图14是说明动态地控制多核CPU内的功率的方法的第六方面的流程图。
具体实施方式
本文使用词语“示范性”来表示“充当实例、例子或说明”。本文描述为“示范性”的任何方面不必解释为比其它方面优选或有利。
在此描述中,术语“应用程序”还可包含具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和修补程序。另外,本文引用的“应用程序”还可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”也可包含具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和修补程序。另外,本文引用的“内容”还可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
如此描述中使用,术语“组件”、“数据库”、“模块”“***”等意在指代计算机相关实体,其为硬件、固件、硬件与软件的组合、软件,或执行中的软件。举例来说,组件可为(但不限于为)在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序,和/或计算机。借助说明,在计算装置上运行的应用程序和计算装置两者均可为组件。一个或一个以上组件可驻留在进程和/或执行线程内,且组件可局限于一个计算机上且/或分布于两个或两个以上计算机之间。另外,这些组件可从上面存储有各种数据结构的各种计算机可读媒体执行。所述组件可借助本地和/或远程进程,例如根据具有一个或一个以上数据包的信号(例如,来自一个与本地***、分布式***中的另一组件和/或借助所述信号越过例如因特网等网络与其它***交互的组件的数据)来通信。
首先参看图1和图2,展示示范性便携式计算装置(PCD),且其一般表示为100。如图所示,PCD 100可包含外壳102。外壳102可包含上部外壳部分104和下部外壳部分106。图1展示上部外壳部分104可包含显示器108。在特定方面中,显示器108可为触摸屏显示器。上部外壳部分104还可包含跟踪球输入装置110。此外,如图1所示,上部外壳部分104可包含通电按钮112和断电按钮114。如图1所示,PCD 100的上部外壳部分104可包含多个指示灯116和一扬声器118。每一指示灯116可为发光二极管(LED)。
在特定方面中,如图2中描绘,上部外壳部分104可相对于下部外壳部分106移动。特定来说,上部外壳部分104可相对于下部外壳部分106滑动。如图2所示,下部外壳部分106可包含多按钮键盘120。在特定方面中,多按钮键盘120可为标准QWERTY键盘。多按钮键盘120可在上部外壳部分104相对于下部外壳部分106移动时显露。图2进一步说明PCD 100可包含在下部外壳部分106上的复位按钮122。
参看图3,展示便携式计算装置(PCD)的示范性非限定性方面,且其一般表示为320。如图所示,PCD 320包含包括多核CPU 324的芯片上***322。多核CPU 324可包含第零核325、第一核326和第N核327。
如图3中说明,显示器控制器328和触摸屏控制器330耦合到多核CPU 324。芯片上***322外部的触摸屏显示器332又耦合到显示器控制器328和触摸屏控制器330。
图3进一步指示视频编码器334(例如,逐行倒相(PAL)编码器、顺序传送与彩色存储电视***(SECAM)编码器或国家电视***委员会(NTSC)编码器)耦合到多核CPU324。此外,视频放大器336耦合到视频编码器334和触摸屏显示器332。并且,视频端口338耦合到视频放大器336。如图3中所描绘,通用串行总线(USB)控制器340耦合到多核CPU 324。并且,USB端口342耦合到USB控制器340。存储器344和订户身份模块(SIM)卡346也可耦合到多核CPU 324。此外,如图3所示,数码相机348可耦合到多核CPU 324。在示范性方面中,数码相机348是电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图3中进一步说明,立体声音频CODEC 350可耦合到多核CPU 324。此外,音频放大器352可耦合到立体声音频CODEC 350。在示范性方面中,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图3展示麦克风放大器358也可耦合到立体声音频CODEC 350。另外,麦克风360可耦合到麦克风放大器358。在特定方面中,调频(FM)无线电调谐器362可耦合到立体声音频CODEC 350。并且,FM天线364耦合到FM无线电调谐器362。此外,立体声头戴式耳机366可耦合到立体声音频CODEC 350。
图3进一步指示射频(RF)收发器368可耦合到多核CPU 324。RF开关370可耦合到RF收发器368和RF天线372。如图3所示,小键盘374可耦合到多核CPU 324。并且,具有麦克风的单声道耳机376可耦合到多核CPU 324。此外,振动器装置378可耦合到多核CPU 324。图3还展示电源380可耦合到芯片上***322。在特定方面中,电源380为直流(DC)电源,其将功率提供到PCD 320的需要功率的各个组件。此外,在特定方面中,电源为可再充电DC电池或DC电源,其从连接到AC电源的交流(AC)/DC变换器导出。
图3进一步指示PCD 320还可包含可用于接入数据网络(例如,局域网、个域网,或任何其它网络)的网卡388。网卡388可为蓝牙网卡、WiFi网卡、个域网(PAN)网卡、个域网超低功率技术(PeANUT)网卡,或此项技术中众所周知的任何其它网卡。此外,网卡388可并入到芯片中,即网卡388可为芯片中的一体组件(full solution),且可并非单独的网卡388。
如图3中所描绘,触摸屏显示器332、视频端口338、USB端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声头戴式耳机366、RF开关370、RF天线372、小键盘374、单声道耳机376、振动器378和电源380在芯片上***322外部。
在特定方面中,本文描述的方法步骤中的一者或一者以上可作为计算机程序指令而存储在存储器344中。这些指令可由多核CPU 324执行以便执行本文描述的方法。此外,多核CPU 324、存储器344或其组合可充当用于执行本文描述的方法步骤中的一者或一者以上以便控制到多核CPU 324内的每一CPU或核的功率的装置。
参看图4,展示处理***,且其一般表示为500。在特定方面中,处理***500可并入到上文结合图3描述的PCD 320中。如图所示,处理***500可包含多核中央处理单元(CPU)402和连接到多核CPU 402的存储器404。多核CPU 402可包含第零核410、第一核412和第N核414。第零核410可包含在其上执行的第零动态时钟和电压缩放(DCVS)算法416。第一核412可包含在其上执行的第一DCVS算法417。此外,第N核414可包含在其上执行的第N DCVS算法418。在特定方面中,每一DCVS算法416、417、418可在相应核412、414、416上独立地执行。
此外,如所说明,存储器404可包含存储于其上的操作***420。操作***420可包含调度器422,且调度器422可包含第一运行队列424、第二运行队列426和第N运行队列428。存储器404还可包含存储于其上的第一应用程序430、第二应用程序432和第N应用程序434。
在特定方面中,应用程序430、432、434可将一个或一个以上任务436发送到操作***420以在多核CPU 402内的核410、412、414处进行处理。任务436可作为单独任务、线程或其组合而被处理或执行。此外,调度器422可调度任务、线程或其组合以在多核CPU 402内执行。另外,调度器422可将任务、线程或其组合置于运行队列424、426、428中。核410、412、414可例如按照操作***420所指示从运行队列424、426、428中检索任务、线程或其组合以在核410、412、414处处理或执行那些任务和线程。
图4还展示存储器404可包含存储于其上的并行性监视器440和多核处理器(MP)控制器442。并行性监视器440可连接到操作***420和MP控制器442。特定来说,并行性监视器440可连接到操作***420内的调度器422。如本文所描述,并行性监视器440可监视核410、412、414上的工作负载,且MP控制器442可如下文描述控制到核410、412、414的功率。在特定方面中,通过执行本文描述的方法步骤中的一者或一者以上(例如,作为计算机程序指令),并行性监视器440、MP控制器442或其组合可充当用于动态地控制到多核CPU 402内的核410、412、414的功率的装置。
在特定双核方面中,在操作期间,MP控制器442可接收来自并行性监视器440的输入。所述输入可为总***负载。此外,所述输入可为工作负载中的并行性程度的运行平均值。基于所述输入,MP控制器442可确定是否应使单个核或两个核通电。此外,MP控制器442可将控制信号输出到多核CPU 402。控制信号可指示接通还是关断额外核。在双核实例中,MP控制器442可包含用于控制使核通电和断电的决策的四个阈值。所述四个阈值可包含:OS调度器队列中的用以触发核苏醒的准备好运行的线程的数目Nw;已超过Nw以确认核苏醒的持续时间Tw;OS调度器中的用以触发核休眠的准备好运行的线程的数目Ns;以及已超过Ns以确认核休眠的持续时间Ts
以单个核在作用中开始(例如,第零核410),当第零核410上的工作负载中的并行性程度的运行平均值满足或超过Nw持续至少持续时间Tw时,MP控制器442可唤醒第二核(例如,第一核412)。相反,当两个核(例如,第零核410和第一核412两者)均在作用中时且当工作负载中的并行性程度下降到Ns以下持续至少持续时间Ts时,MP控制器442可决定使第二核(例如,第一核412)休眠。
在特定方面中,时间Tw中的持续阈值并行性暗示单个核饱和。此外,所述核可在最具功率效益的电压-频率(VF)操作点处开始。在特定方面中,在最佳VF处操作的两个核比在最大VF处操作的单个核提供更多Dhrystone百万指令/秒(DMIPS)。在双核方面中,双重独立的DCVS算法可适于非对称工作负载,且在一些情况下适于不同类的核。此外,在双核方面中,两个核应在多任务工作负载期间保持在作用中以便避免加倍的性能损失。并且,当并行性下降到Ns以下持续规定时间Ts时,第二核应断电且不置于备用状态。在特定方面中,将第二核置于备用状态可增加功率泄漏且还可降低性能。
参数Nw、Tw、Ns和Ts的最佳值可取决于***400的确切功率消耗特性。然而,在一个方面中,所述值可如下:
Nw=1.2,
Tw=40毫秒(ms),
Ns=0.8,且
Ts=80ms。
在此特定方面中,Nw=1.2可确保在第二核醒来之前持续的并行性。Ns=0.8可确保在第二核进入休眠之前持续缺乏并行性。Ts=80ms基于***的功率崩溃阈值400ms。Tw=40ms是Ts的一半以改进多核响应性。
图5说明控制多核处理器内的功率的方法的第一方面。所述方法一般表示为500。方法500在框502处以do回路开始,其中在具有多核处理器的装置的操作期间,可执行随后的步骤。在框504处,功率控制器可例如通过监视操作***状态而动态地推断CPU或核内的工作负载并行性的程度。移动到框506,至少部分基于工作负载并行性的程度,功率控制器可将核加电或断电。换句话说,功率控制器可基于工作负载而接通或关断核。
在决策508处,功率控制器可确定装置是否被断电。如果装置被断电,那么所述方法可结束。否则,如果装置保持通电,那么方法500可返回到框504且方法500可如所描述而继续。
现参看图6,展示控制多核处理器内的功率的方法的第二方面,且其一般表示为600。方法600在框602处以do回路开始,其中在具有多核处理器的装置的操作期间,可执行随后的步骤。在框604处,控制器(例如,并行性监视器)可监视所有操作***(OS)调度器准备好运行的队列的长度以便确定CPU或核内的工作负载并行性的程度。在特定方面中,并行性监视器可为驻留在装置的存储器中的软件程序。此外,在特定方面中,调度器准备好运行的队列是可用于在一个或一个以上CPU上进行调度的线程的当前任务的列表。一些多核***可仅具有单个准备好运行的队列。其它多核***可具有多个准备好运行的队列。不论准备好运行的队列的数目如何,在任何时刻,在这些队列上等待的任务、线程或其组合的总数目加上实际正运行的任务、线程或其组合的数目可为工作负载中的并行性程度的近似。
移动到框606,至少部分基于工作负载并行性的程度,并行性监视器可将核加电或断电。换句话说,并行性监视器可基于工作负载而接通或关断核。
在决策608处,并行性监视器可确定装置是否被断电。如果装置被断电,那么所述方法可结束。否则,如果装置保持通电,那么方法600可返回到框604且方法600可如所描述而继续。
参看图7,展示控制多核处理器内的功率的方法的第三方面,且其一般表示为700。方法700在框702处以do回路开始,其中在具有多核处理器的装置的操作期间,可执行随后的步骤。在框704处,并行性监视器可周期性地对准备好运行的队列的长度进行取样。举例来说,并行性监视器可对准备好运行的队列长度/毫秒(1ms)进行取样。在框706处,并行性监视器可确定工作负载中的并行性程度的运行平均值。移动到框708,至少部分基于工作负载并行性的程度,并行性监视器可将核加电或断电。换句话说,并行性监视器可基于工作负载而接通或关断核。
在决策710处,并行性监视器可确定装置是否被断电。如果装置被断电,那么所述方法可结束。否则,如果装置保持通电,那么方法700可返回到框704且方法700可如所描述而继续。
图8描绘展示控制多核处理器内的功率的方法的第四方面。所述方法一般表示为800,且方法800可在框802处以do回路开始,其中在具有多核处理器的装置的操作期间,可执行随后的步骤。在框804处,并行性监视器可每当从操作***(OS)调度器运行队列添加或移除条目时从所述OS接收回叫。此外,在框806处,并行性监视器可确定CPU或核的工作负载中的并行性程度的运行平均值。
移动到框808,至少部分基于工作负载并行性的程度,并行性监视器可将核加电或断电。换句话说,并行性监视器可基于工作负载而接通或关断核。在决策810处,并行性监视器可确定装置是否被断电。如果装置被断电,那么所述方法可结束。否则,如果装置保持通电,那么方法800可返回到框804且方法800可如所描述而继续。
现参看图9到图12,展示控制多核处理器内的功率的方法的第五方面,且其一般表示为900。方法900在框902处以do回路开始,其中当具有多核处理器的装置通电时,可执行随后的步骤。在框904处,可将第零核加电(即,激励)。在框905处,可在第零核上本地执行第零DCVS算法。此外,在框906处,可在第零核处执行一个或一个以上任务或线程。
移动到决策908,多核处理器(MP)控制器可确定装置是否被断电。如果是,那么方法900可结束。否则,如果装置保持通电,那么方法900可移动到框910且MP控制器可从并行性监视器接收第零核上的工作负载中的并行性程度的运行平均值。在特定方面中,在任何时刻,在操作***(OS)的准备好运行的队列上等待的任务、线程或其组合的总数目加上实际正运行的任务的数目可为所述核上的工作负载中的并行性程度的近似。
在决策912处,MP控制器可确定并行性程度是否等于第一唤醒条件。在特定方面中,第一唤醒条件可为与所述核上的工作负载中的并行性程度相关联的阈值。举例来说,所述阈值可为OS调度器队列中的准备好运行的线程的预定数目,且如果并行性大于或等于此阈值,那么可满足第一唤醒条件。
返回决策912,如果并行性程度不等于第一唤醒条件,那么方法900可返回到框910且方法900可如所描述而继续。否则,如果并行性程度等于第一唤醒条件,那么方法900可移动到框914且MP控制器可确定第一唤醒条件被满足所持续的持续时间。在决策916处,MP控制器可确定所述持续时间是否等于第一确认唤醒条件。在特定方面中,第一确认唤醒条件可为时间阈值,且如果第一唤醒条件被满足所持续的持续时间大于或等于所述阈值,那么可满足第一确认唤醒条件。
返回决策916,如果第一唤醒条件被满足所持续的持续时间不等于第一确认唤醒条件,那么方法900可返回到框910且方法900可如所描述而继续。相反,如果满足第一确认唤醒条件,那么方法900可移动到框918且MP控制器可调用OS以将第一核加电使得两个核(即,第零核和第一核)在运行和执行线程及任务。在框920处,MP控制器可调用OS以将第一核添加到OS可用的一组可调度资源。此外,在框922处,可在第一核上本地执行第一DCVS算法。随后,方法900可进行到图10的框1002。
现移动到图10的框1002,可在第零核和第一核处执行一个或一个以上任务、线程或其组合。在决策1004处,MP控制器可确定装置是否被断电。如果是,那么方法900可结束。否则,如果装置保持通电,那么方法900可移动到框1006且MP控制器可从并行性监视器接收第零核和第一核上的工作负载中的并行性程度的运行平均值。在特定方面中,在任何时刻,在操作***(OS)的准备好运行的队列上等待的任务、线程或其组合的总数目加上实际正运行的任务的数目可为所述核上的工作负载中的并行性程度的近似。
在决策1008处,MP控制器可确定并行性程度是否等于第一休眠条件。在特定方面中,第一休眠条件可为与所述核上的工作负载中的并行性程度相关联的阈值。举例来说,所述阈值可为OS调度器中的准备好运行的线程的最小数目,且如果并行性小于或等于此阈值,那么可满足第一休眠条件。
返回决策1008,如果并行性程度不等于第一休眠条件,那么方法900可进行到图11的框1102且方法900可如所描述而继续。否则,如果并行性程度等于第一休眠条件,那么方法900可移动到框1010且MP控制器可确定第一休眠条件被满足所持续的持续时间。在决策1012处,MP控制器可确定所述持续时间是否等于第一确认休眠条件。在特定方面中,第一确认休眠条件可为时间阈值,且如果第一休眠条件被满足所持续的持续时间大于或等于所述阈值,那么可满足第一确认休眠条件。
返回决策1012,如果第一休眠条件被满足所持续的持续时间不等于第一确认休眠条件,那么方法900可进行到图11的框1102且方法900可如所描述而继续。相反,如果满足第一确认休眠条件,那么方法900可移动到框1014且MP控制器可调用OS以保存第一核的当前状态。在框1016处,MP控制器可调用OS以使第一核断电使得一个核(即,第零核)正在运行和执行线程及任务。此外,在框1018处,MP控制器可调用OS以从OS可用的一组可调度资源移除第一核。随后,方法900可返回到图9的框906且方法900可如所描述而继续。
现参看图11,在框1102处,MP控制器可从并行性监视器接收第零核和第一核上的工作负载中的并行性程度的运行平均值。在特定方面中,在任何时刻,在操作***(OS)的准备好运行的队列上等待的任务、线程或其组合的总数目加上实际正运行的任务的数目可为所述核上的工作负载中的并行性程度的近似。在决策1104处,MP控制器可确定并行性程度是否等于第N唤醒条件。在特定方面中,第N唤醒条件可为与所述核上的工作负载中的并行性程度相关联的阈值。举例来说,所述阈值可为OS调度器队列中的准备好运行的线程的最大数目,且如果并行性大于或等于此阈值,那么可满足第N唤醒条件。
返回决策1104,如果并行性程度不等于第N唤醒条件,那么方法900可返回到图10的框1002且方法900可如所描述而继续。否则,如果并行性程度等于第N唤醒条件,那么方法900可移动到框1106且MP控制器可确定第N唤醒条件被满足所持续的持续时间。在决策1108处,MP控制器可确定所述持续时间是否等于第N确认唤醒条件。在特定方面中,第N确认唤醒条件可为时间阈值,且如果第N唤醒条件被满足所持续的持续时间大于或等于所述阈值,那么可满足第N确认唤醒条件。
返回决策1108,如果第N唤醒条件被满足所持续的持续时间不等于第N确认唤醒条件,那么方法900可返回到图10的框1002且方法900可如所描述而继续。相反,如果满足第N确认唤醒条件,那么方法900可移动到框1110且MP控制器可调用OS以将第N核加电,使得N个核(即,第零核、第一核和第N核)正在运行和执行线程及任务。在框1112处,MP控制器可调用OS以将第N核添加到OS可用的一组可调度资源。此外,在框1114处,可在第N核上本地执行第N DCVS算法。随后,方法900可进行到图12的框1202。
在图12的框1202处,可在第零核、第一核和第N核处执行一个或一个以上任务、线程或其组合。在决策1204处,MP控制器可确定装置是否被断电。如果是,那么方法900可结束。否则,如果装置保持通电,那么方法900可移动到框1206且MP控制器可从并行性监视器接收第零核、第一核和第N核上的工作负载中的并行性程度的运行平均值。在特定方面中,在任何时刻,在操作***(OS)的准备好运行的队列上等待的任务、线程或其组合的总数目加上实际正运行的任务的数目可为所述核上的工作负载中的并行性程度的近似。
在决策1208处,MP控制器可确定并行性程度是否等于第N休眠条件。在特定方面中,第N休眠条件可为与所述核上的工作负载中的并行性程度相关联的阈值。举例来说,所述阈值可为OS调度器队列中的准备好运行的线程的最小数目,且如果并行性小于或等于此阈值,那么可满足第N休眠条件。
返回决策1208,如果并行性程度不等于第N休眠条件,那么方法900可进行到框1202且方法900可如所描述而继续。否则,如果并行性程度等于第N休眠条件,那么方法900可移动到框1210且MP控制器可确定第N休眠条件被满足所持续的持续时间。在决策1212处,MP控制器可确定所述持续时间是否等于第N确认休眠条件。在特定方面中,第N确认休眠条件可为时间阈值,且如果第N休眠条件被满足所持续的持续时间大于或等于所述阈值,那么可满足第N确认休眠条件。
返回决策1212,如果第N休眠条件被满足所持续的持续时间不等于第N确认休眠条件,那么方法900可返回到框1202且方法900可如所描述而继续。相反,如果满足第N确认休眠条件,那么方法900可移动到框1214且MP控制器可调用OS以保存第一核的当前状态。在框1216处,MP控制器可调用OS以使第N核断电使得N减1个核(例如,第零核和第一核(如果N为2且第二核被断电))正在运行和执行线程及任务。此外,在框1218处,MP控制器可调用OS以从OS可用的一组可调度资源移除第N核。随后,方法900可返回到图10的框1002且方法900可如所描述而继续。
现参看图13,展示测试多核处理器的方法,且其一般表示为1300。如图所示,方法1300可在框1302处开始,其中可创建测试程序。测试程序可包含具有不同并行性程度的稳态工作负载,这将导致多个核依据并行性程度而通电和断电,如本文所描述。
移动到框1304,测试程序可加载到包含多核处理器的无线装置。在框1306处,可在无线装置上监视多个核。举例来说,可监视每一核的核上升/下降状态。可通过监视每一核上的功率,通过监视所消耗的总功率、完成工作负载的速度或其组合来监视所述上升/下降状态。
在框1308处,可在无线装置处执行测试程序。此外,在决策1310处,可确定无线装置内的核是否正确响应于测试程序的执行。换句话说,可确定所述核是否正确响应于测试程序的执行而加电和/或断电。在决策1310处,如果所述核不正确响应于测试程序的执行,那么方法1300可移动到框1312且可指示失败结果。方法1300接着可结束。
在决策1310处,如果所述核确实正确响应于测试程序的执行,那么所述方法可进行到框1314且可指示通过结果。随后,方法1300可结束。
图14说明动态地控制多核CPU内的功率的方法的第六方面。所述方法一般表示为1400。在框1402处开始,控制器可确定第零核的运行队列值。运行队列值可指示第零核的工作负载。在框1404处,控制器可确定第零核的操作频率。此外,在框1406处,控制器可确定第零核的利用率百分比。在特定方面中,第零核的利用率百分比可为当前操作频率除以第零核的最大操作频率。在框1408处,控制器可确定第零核的闲置百分比。
移动到框1410,控制器可确定第N核的运行队列值。在框1412处,控制器可确定第N核的操作频率。此外,在框1414处,控制器可确定第N核的利用率百分比。在框1416处,控制器可确定第N核的闲置百分比。
移动到框1418,控制器可确定***的负载值。可基于第零核的运行队列值、第N核的运行队列值、第零核的操作频率、第N核的操作频率、第零核的利用率百分比、第N核的利用率百分比、第零核的闲置百分比和第N核的闲置百分比或其任何组合来确定所述负载值。
在特定方面中,可依据以下公式确定所述负载值:
LV=RQ0*((100%-IP0)*(UP0))+RQN*((100%-IPN)*(UPN))
其中,
LV=负载值,
RQ0=第零核的运行队列值,
IP0=第零核的闲置百分比,
UP0=第零核的利用率百分比,
RQN=第N核的运行队列值,
IPN=第N核的闲置百分比,且
UPN=第N核的利用率百分比。
在框1420处,可基于负载值接通或关断一个或一个以上核。可确定负载值是否满足预定条件以便确定是否接通或关断所述一个或一个以上核。举例来说,可将负载值与阈值进行比较,且如果负载值超过所述阈值,那么可接通或关断一个或一个以上核。举例来说,如果存在正操作的两个核且负载值指示两个核已达最大负荷或接近最大负荷而操作,那么可使第三核通电,且可在三个核之间分布工作负载。此外,随着负载值下降到另一阈值以下从而指示使第三核操作是在浪费功率,可使第三核断电,且可在两个剩余核之间分布工作负载。在另一方面中,负载值可指示应在运行以便提供***的最有效率操作的核的实际数目。
在特定方面中,控制器可维持关于***的操作的历史数据,且使用所述历史数据,控制器可实施滤波器(例如,IIR滤波器),控制器可实施移动平均函数,或者控制器可实施其组合。以下展示示范性移动平均函数:
N=f(runQ0,run Q1,N1,N2,N3)
=2if((runQ0+runQ1)+N1+N2+N3)/4>1,and
=1if((runQ0+runQ1)+N1+N2+N3)/4<=1,
其中,
runQ0=第零核的运行队列值;
runQ1=第一核的运行队列值;且
N1、N2、N3=针对最后三个历史周期的N的值。
应了解,本文描述的方法步骤无需一定以所描述的次序执行。此外,例如“随后”、“接着”、“接下来”等词语不希望限制步骤的次序。这些词语仅用于引导读者通读方法步骤的描述。此外,本文描述的方法描述为可在便携式计算装置(PCD)上执行。PCD可为移动电话装置、便携式数字助理装置、智能本计算装置、上网本计算装置、膝上型计算装置、桌上型计算装置,或其组合。
利用本文描述的配置,所揭示的***和方法可在存在归因于工作负载并行性的实际加速的可能性时通过为额外CPU核供电而减少多核CPU内的功率消耗。虽然并行性程度可能不能先验知晓,但可通过观察操作***调度器运行队列长度来推断并行性程度。基于所推断的并行性程度,可视需要将额外核加电或断电。
与对称地为所有CPU核供电(即,全部接通或全部关断)的传统***不同,本发明***和方法可非对称地使CPU核通电和断电。换句话说,可使一个核通电,同时使另一核断电。此外,随着工作负载增加且具有足够的并行性,可使第二核通电。
此外,本文揭示的***和方法可动态地使被供电核的数目适应工作负载中提供的实际动态并行性。这可实现大量功率节省。此外,所述***和方法不要求开发者以任何特殊方式交流其工作负载中的并行性。可不需要以任何方式修改应用程序,且可以典型方式部署应用程序。此外,本发明的***和方法与现有应用程序和装置兼容。
在特定方面中,到MP控制器的输入为调度器队列中的准备好运行的线程的数目。可了解,可使用指示工作负载中的并行性的其它输入。然而,不指示并行性的核闲置/忙碌指示符可能不是到MP控制器的合格输入。举例来说,CPU核可百分之一百(100%)忙碌,但在运行单线程工作负载。在所述情况下,为第二核加电完全不会有助于提高单线程的性能。实际上,其可能由于引入为第二核加电所必需的开销而损害性能。更糟的是,针对单线程工作负载为第二核加电可能由第二核引入浪费的泄漏功率消耗。
因此,在特定方面中,在无存在供第二核进行的足够的并行工作的保证的前提下为第二核加电可能不合需要。在瞬时意义上,并行工作仅当存在准备好在OS调度器队列中运行的两个或两个以上线程时才是可能的。
在正常操作下,在双核实例中,***可以对第零CPU核操作的DCVS算法开始,同时第一CPU核保持休眠。在此模式中,***可通过斜升第零CPU核的频率而响应于瞬时瞬载。只要不存在充足的准备好运行的线程,***就可保持处于单核模式。
然而,一旦准备好运行阈值Nw已被超过持续某一时间量,第零CPU核就可隐含地饱和,且还清楚地存在可用于第一CPU核的并行工作负载。多核处理器(MP)控制器可调用OS以激活第一CPU核且将第一CPU核添加到OS的一组可调度资源。MP制器还可在最佳电压-频率点(即,最低电压下的最高频率)开始第一CPU核,且激活第一CPU核本地的DCVS。MP控制器还可任选地将第零CPU核的频率复位到最佳电压-频率点。否则,MP控制器可使第零CPU核的频率保持在当前设定值。
两个核现可用个别执行的DCVS算法操作。在持续并行工作负载的情况下,有可能两个核将最终获得最大频率。然而,负载中可能存在非常简短的暂停,这可允许核部分从最大频率撤退。然而,此类暂停还伴随着使准备好运行的线程的数目减小到0。
一旦已发生足够的此类暂停,从而导致准备好运行的线程的平均数目下降到Ns阈值以下持续足够长的持续时间,MP控制器就可调用OS以使任何适当状态摆脱第一CPU核且将其从其可调度组移除。随后,可使第一CPU核安全地功率崩溃。在第一CPU核功率崩溃的情况下,***可返回到单核操作模式。
在一个或一个以上示范性方面中,所描述的功能可用硬件、软件、固件或其任何组合实施。如果用软件实施,那么所述功能可作为一个或一个以上指令或代码存储在例如机器可读媒体(即,计算机可读媒体)等计算机程序产品上或经由计算机程序产品传输。计算机可读媒体包含计算机存储媒体和通信媒体两者,通信媒体包含促进将计算机程序从一处传送到另一处的任何媒体。存储媒体可为可通过计算机存取的任何可用媒体。借助实例而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可用于载运或存储呈指令或数据结构的形式的所需程序代码且可通过计算机存取的媒体。并且,任何连接适当地被称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文所使用的磁盘(Disk)与光盘(Disc)包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述内容的组合也应包含于计算机可读媒体的范围内。
尽管已详细说明和描述选定方面,但将了解,可在不脱离如所附权利要求书界定的本发明的精神和范围的情况下在其中作出各种替代和更改。

Claims (40)

1.一种动态地控制多核CPU内的功率的方法,所述方法包括:
接收第零核的工作负载中的并行性程度;以及
确定所述第零核的所述工作负载中的所述并行性程度是否等于第一唤醒条件。
2.根据权利要求1所述的方法,其中所述并行性程度包括在操作***调度器的一个或一个以上准备好运行的队列上等待的任务、线程或其组合的总数目、实际正在所述第零核上运行的任务、线程或其组合的数目,或其组合。
3.根据权利要求1所述的方法,其进一步包括:
当所述第零核的所述工作负载中的所述并行性程度等于所述第一唤醒条件时,确定所述第一唤醒条件被满足所持续的持续时间;以及
确定所述持续时间是否等于第一确认唤醒条件。
4.根据权利要求3所述的方法,其进一步包括:
在所述持续时间等于所述第一确认唤醒条件时调用操作***以对第一核加电。
5.根据权利要求4所述的方法,其进一步包括:
调用所述操作***以将所述第一核添加到一组可调度资源。
6.根据权利要求5所述的方法,其进一步包括:
接收所述第零核和所述第一核上的工作负载中的并行性程度;以及
确定所述第零核和所述第一核上的所述工作负载中的所述并行性程度是否等于第一休眠条件。
7.根据权利要求6所述的方法,其进一步包括:
当所述第零核和所述第一核上的所述工作负载中的所述并行性程度等于所述第一休眠条件时,确定所述第一休眠条件被满足所持续的持续时间;以及
确定所述第一休眠条件被满足所持续的所述持续时间是否等于第一确认休眠条件。
8.根据权利要求7所述的方法,其进一步包括:
在所述第一休眠条件被满足所持续的所述持续时间等于所述第一休眠条件时,调用所述操作***以保存所述第一核的当前状态。
9.根据权利要求8所述的方法,其进一步包括:
调用所述操作***以使所述第一核断电。
10.根据权利要求9所述的方法,其进一步包括:
调用所述操作***以从所述组可调度资源移除所述第一核。
11.一种无线装置,其包括:
用于接收第零核的工作负载中的并行性程度的装置;以及
用于确定所述第零核的所述工作负载中的所述并行性程度是否等于第一唤醒条件的装置。
12.根据权利要求11所述的无线装置,其中所述并行性程度包括在操作***调度器的一个或一个以上准备好运行的队列上等待的任务、线程或其组合的总数目、实际正在所述第零核上运行的任务、线程或其组合的数目,或其组合。
13.根据权利要求11所述的无线装置,其进一步包括:
用于当所述第零核的所述工作负载中的所述并行性程度等于所述第一唤醒条件时确定所述第一唤醒条件被满足所持续的持续时间的装置;以及
用于确定所述持续时间是否等于第一确认唤醒条件的装置。
14.根据权利要求13所述的无线装置,其进一步包括:
用于在所述持续时间等于所述第一确认唤醒条件时调用操作***以对第一核加电的装置。
15.根据权利要求14所述的无线装置,其进一步包括:
用于调用所述操作***以将所述第一核添加到一组可调度资源的装置。
16.根据权利要求15所述的无线装置,其进一步包括:
用于接收所述第零核和所述第一核上的工作负载中的并行性程度的装置;以及
用于确定所述第零核和所述第一核上的所述工作负载中的所述并行性程度是否等于第一休眠条件的装置。
17.根据权利要求16所述的无线装置,其进一步包括:
用于当所述第零核和所述第一核上的所述工作负载中的所述并行性程度等于所述第一休眠条件时确定所述第一休眠条件被满足所持续的持续时间的装置;以及
用于确定所述第一休眠条件被满足所持续的所述持续时间是否等于第一确认休眠条件的装置。
18.根据权利要求17所述的无线装置,其进一步包括:
用于在所述第一休眠条件被满足所持续的所述持续时间等于所述第一休眠条件时调用所述操作***以保存所述第一核的当前状态的装置。
19.根据权利要求18所述的无线装置,其进一步包括:
用于调用所述操作***以使所述第一核断电的装置。
20.根据权利要求19所述的无线装置,其进一步包括:
用于调用所述操作***以从所述组可调度资源移除所述第一核的装置。
21.一种无线装置,其包括:
处理器,其中所述处理器可操作以:
接收第零核的工作负载中的并行性程度;以及
确定所述第零核的所述工作负载中的所述并行性程度是否等于第一唤醒条件。
22.根据权利要求21所述的无线装置,其中所述并行性程度包括在操作***调度器的一个或一个以上准备好运行的队列上等待的任务、线程或其组合的总数目、实际正在所述第零核上运行的任务、线程或其组合的数目,或其组合。
23.根据权利要求21所述的无线装置,其中所述处理器进一步可操作以:
当所述第零核的所述工作负载中的所述并行性程度等于所述第一唤醒条件时,确定所述第一唤醒条件被满足所持续的持续时间;以及
确定所述持续时间是否等于第一确认唤醒条件。
24.根据权利要求23所述的无线装置,其中所述处理器进一步可操作以:
在所述持续时间等于所述第一确认唤醒条件时调用操作***以对第一核加电。
25.根据权利要求24所述的无线装置,其中所述处理器进一步可操作以:
调用所述操作***以将所述第一核添加到一组可调度资源。
26.根据权利要求25所述的无线装置,其中所述处理器进一步可操作以:
接收所述第零核和所述第一核上的工作负载中的并行性程度;以及
确定所述第零核和所述第一核上的所述工作负载中的所述并行性程度是否等于第一休眠条件。
27.根据权利要求26所述的无线装置,其中所述处理器进一步可操作以:
当所述第零核和所述第一核上的所述工作负载中的所述并行性程度等于所述第一休眠条件时,确定所述第一休眠条件被满足所持续的持续时间;以及
确定所述第一休眠条件被满足所持续的所述持续时间是否等于第一确认休眠条件。
28.根据权利要求27所述的无线装置,其中所述处理器进一步可操作以:
在所述第一休眠条件被满足所持续的所述持续时间等于所述第一休眠条件时,调用所述操作***以保存所述第一核的当前状态。
29.根据权利要求28所述的无线装置,其中所述处理器进一步可操作以:
调用所述操作***以使所述第一核断电。
30.根据权利要求29所述的无线装置,其中所述处理器进一步可操作以:
调用所述操作***以从所述组可调度资源移除所述第一核。
31.一种存储器媒体,其包括:
用于接收第零核的工作负载中的并行性程度的至少一个指令;以及
用于确定所述第零核的所述工作负载中的所述并行性程度是否等于第一唤醒条件的至少一个指令。
32.根据权利要求31所述的存储器媒体,其中所述并行性程度包括在操作***调度器的一个或一个以上准备好运行的队列上等待的任务、线程或其组合的总数目、实际正在所述第零核上运行的任务、线程或其组合的数目,或其组合。
33.根据权利要求31所述的存储器媒体,其进一步包括:
用于当所述第零核的所述工作负载中的所述并行性程度等于所述第一唤醒条件时确定所述第一唤醒条件被满足所持续的持续时间的至少一个指令;以及
用于确定所述持续时间是否等于第一确认唤醒条件的至少一个指令。
34.根据权利要求33所述的存储器媒体,其进一步包括:
用于在所述持续时间等于所述第一确认唤醒条件时调用操作***以对第一核加电的至少一个指令。
35.根据权利要求34所述的存储器媒体,其进一步包括:
用于调用所述操作***以将所述第一核添加到一组可调度资源的至少一个指令。
36.根据权利要求35所述的存储器媒体,其进一步包括:
用于接收所述第零核和所述第一核上的工作负载中的并行性程度的至少一个指令;以及
用于确定所述第零核和所述第一核上的所述工作负载中的所述并行性程度是否等于第一休眠条件的至少一个指令。
37.根据权利要求36所述的存储器媒体,其进一步包括:
用于当所述第零核和所述第一核上的所述工作负载中的所述并行性程度等于所述第一休眠条件时确定所述第一休眠条件被满足所持续的持续时间的至少一个指令;以及
用于确定所述第一休眠条件被满足所持续的所述持续时间是否等于第一确认休眠条件的至少一个指令。
38.根据权利要求37所述的存储器媒体,其进一步包括:
用于在所述第一休眠条件被满足所持续的所述持续时间等于所述第一休眠条件时调用所述操作***以保存所述第一核的当前状态的至少一个指令。
39.根据权利要求38所述的存储器媒体,其进一步包括:
用于调用所述操作***以使所述第一核断电的至少一个指令。
40.根据权利要求39所述的存储器媒体,其进一步包括:
用于调用所述操作***以从所述组可调度资源移除所述第一核的至少一个指令。
CN201080056468.2A 2009-12-16 2010-11-24 用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法 Active CN102656539B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US28695309P 2009-12-16 2009-12-16
US61/286,953 2009-12-16
US12/944,140 US9563250B2 (en) 2009-12-16 2010-11-11 System and method for controlling central processing unit power based on inferred workload parallelism
US12/944,140 2010-11-11
PCT/US2010/058075 WO2011084260A1 (en) 2009-12-16 2010-11-24 System and method for controlling central processing unit power based on inferred workload parallelism

Publications (2)

Publication Number Publication Date
CN102656539A true CN102656539A (zh) 2012-09-05
CN102656539B CN102656539B (zh) 2015-09-09

Family

ID=44144255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080056468.2A Active CN102656539B (zh) 2009-12-16 2010-11-24 用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法

Country Status (7)

Country Link
US (1) US9563250B2 (zh)
EP (1) EP2513745B1 (zh)
JP (1) JP5893568B2 (zh)
KR (1) KR101409055B1 (zh)
CN (1) CN102656539B (zh)
BR (1) BR112012014308B1 (zh)
WO (1) WO2011084260A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN106227602A (zh) * 2016-07-26 2016-12-14 张升泽 负载在多核芯片之间的分配方法及***
CN107077185A (zh) * 2014-08-28 2017-08-18 高通股份有限公司 用于基于协处理器操作提供动态服务质量水平的***和方法
CN107430425A (zh) * 2015-04-16 2017-12-01 英特尔公司 用于基于网络负荷来调整处理器功率使用率的设备和方法
WO2017206858A1 (zh) * 2016-05-31 2017-12-07 广东欧珀移动通信有限公司 一种中央处理器的管理方法、及相关产品
CN109240481A (zh) * 2013-08-28 2019-01-18 威盛电子股份有限公司 多核微处理器及使用其省电的方法
CN111666140A (zh) * 2020-05-28 2020-09-15 北京百度网讯科技有限公司 资源调度方法、装置、设备和存储介质

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166319B2 (en) * 2009-07-02 2012-04-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for use-case aware voltage selection
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8689037B2 (en) 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8775830B2 (en) * 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
EP2385440A1 (en) * 2010-05-07 2011-11-09 ST-Ericsson SA Method and system for controlling the operation of an electronic device
KR101770587B1 (ko) * 2011-02-21 2017-08-24 삼성전자주식회사 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템
US9804893B2 (en) 2011-04-08 2017-10-31 Qualcomm Incorporated Method and apparatus for optimized execution using resource utilization maps
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
CN102955549B (zh) * 2011-08-29 2016-06-29 华为技术有限公司 一种多核cpu的电源管理方法、***及cpu
KR20130040485A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 휴대 단말기에서 중앙처리장치를 제어하는 장치 및 방법
JP5554358B2 (ja) * 2012-03-23 2014-07-23 株式会社東芝 マルチプロセッサシステムおよび電力制御方法
KR102375925B1 (ko) 2015-08-31 2022-03-17 삼성전자주식회사 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
US10303384B1 (en) * 2017-11-28 2019-05-28 Western Digital Technologies, Inc. Task readiness for queued storage tasks

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188877A1 (en) * 2001-06-07 2002-12-12 Buch Deep K. System and method for reducing power consumption in multiprocessor system
US20030115495A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
JP2005128937A (ja) * 2003-10-27 2005-05-19 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
US20060036878A1 (en) * 2004-08-11 2006-02-16 Rothman Michael A System and method to enable processor management policy in a multi-processor environment
US20060095807A1 (en) * 2004-09-28 2006-05-04 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
CN101241390A (zh) * 2007-02-07 2008-08-13 华硕电脑股份有限公司 多核心处理器的效能调整方法
CN101414268A (zh) * 2007-10-15 2009-04-22 南京大学 一种在ARM MPCore处理器上管理处理器热插拔的方法
CN101436098A (zh) * 2008-12-24 2009-05-20 华为技术有限公司 降低多核对称多处理***的功耗的方法及装置

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US36878A (en) * 1862-11-04 Improvement in machines for making brace-jaws for steam-boilers
US187775A (en) * 1877-02-27 Improvement in shoe-tips
US115495A (en) * 1871-05-30 Improvement in fme-plugs
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
JPH0351902A (ja) 1989-07-20 1991-03-06 Tokyo Electric Co Ltd データ処理装置
US5644769A (en) * 1993-06-14 1997-07-01 Matsushita Electric Industrial Co., Ltd. System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions
JPH086681A (ja) 1994-04-18 1996-01-12 Hitachi Ltd 省電力制御システム
JP2770760B2 (ja) 1995-01-04 1998-07-02 日本電気株式会社 電力分散マルチプロセッサ
JPH10268963A (ja) 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JPH11143839A (ja) 1997-11-14 1999-05-28 Nec Corp 負荷分散制御システムおよび方法
JPH11184554A (ja) * 1997-12-24 1999-07-09 Mitsubishi Electric Corp クロック制御タイプ情報処理装置
US6230183B1 (en) 1998-03-11 2001-05-08 International Business Machines Corporation Method and apparatus for controlling the number of servers in a multisystem cluster
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
TW521177B (en) * 2000-08-31 2003-02-21 Primarion Inc Apparatus and system for providing transient suppression power regulation
KR100487543B1 (ko) 2000-09-01 2005-05-03 엘지전자 주식회사 시피유 스케쥴링 방법
US6718474B1 (en) 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
JP2002099433A (ja) 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
US6829713B2 (en) * 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7596709B2 (en) * 2000-12-30 2009-09-29 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
US20030123253A1 (en) * 2001-05-08 2003-07-03 Krietzman Mark Howard Multi-layered thin flat illuminator
US7058824B2 (en) * 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6978389B2 (en) * 2001-12-20 2005-12-20 Texas Instruments Incorporated Variable clocking in an embedded symmetric multiprocessor system
JP2003256067A (ja) 2002-03-01 2003-09-10 Mitsubishi Electric Corp 省電力制御方式及び省電力制御方法及びプログラム及び記録媒体
JP2003271401A (ja) * 2002-03-18 2003-09-26 Fujitsu Ltd 負荷監視機能を有するマイクロプロセッサ
US7634668B2 (en) 2002-08-22 2009-12-15 Nvidia Corporation Method and apparatus for adaptive power consumption
US6908227B2 (en) 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7194385B2 (en) 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7240223B2 (en) * 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
GB2403823B (en) 2003-07-08 2005-09-21 Toshiba Res Europ Ltd Controller for processing apparatus
US7134031B2 (en) * 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
US7107187B1 (en) * 2003-11-12 2006-09-12 Sprint Communications Company L.P. Method for modeling system performance
JP3884427B2 (ja) 2003-12-10 2007-02-21 東芝ソリューション株式会社 計算機システム及び資源割り当てプログラム
US7133806B2 (en) * 2004-05-13 2006-11-07 Ittiam Systems (P) Ltd Method and apparatus for measurement of processor-utilization
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands
US7219245B1 (en) * 2004-06-03 2007-05-15 Advanced Micro Devices, Inc. Adaptive CPU clock management
KR100716730B1 (ko) * 2004-06-11 2007-05-14 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
US7761874B2 (en) * 2004-08-13 2010-07-20 Intel Corporation Managing processing system power and performance based on utilization trends
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
US7370189B2 (en) * 2004-09-30 2008-05-06 Intel Corporation Method and apparatus for establishing safe processor operating points in connection with a secure boot
US7543161B2 (en) * 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7814485B2 (en) 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
US7346787B2 (en) * 2004-12-07 2008-03-18 Intel Corporation System and method for adaptive power management
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
US7369967B1 (en) * 2004-12-27 2008-05-06 Sprint Communications Company L.P. System and method for monitoring and modeling system performance
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7467291B1 (en) * 2005-02-28 2008-12-16 Sun Microsystems, Inc. System and method for calibrating headroom margin
JP2006268166A (ja) 2005-03-22 2006-10-05 Fuji Xerox Co Ltd 情報処理装置、方法、及びプログラム
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
CN101223490A (zh) 2005-07-14 2008-07-16 Nxp股份有限公司 使用历史负载简档来动态调整手持多媒体设备处理器内核的工作频率及可用功率
US7490254B2 (en) 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7548859B2 (en) 2005-08-03 2009-06-16 Motorola, Inc. Method and system for assisting users in interacting with multi-modal dialog systems
US7904912B2 (en) 2005-08-30 2011-03-08 International Business Machines Corporation Adaptive processor utilization reporting handling different processor frequencies
US7233188B1 (en) * 2005-12-22 2007-06-19 Sony Computer Entertainment Inc. Methods and apparatus for reducing power consumption in a processor using clock signal control
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US7263457B2 (en) 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US7650527B2 (en) * 2006-02-07 2010-01-19 Broadcom Corporation MIPS recovery technique
US7574613B2 (en) 2006-03-14 2009-08-11 Microsoft Corporation Scaling idle detection metric for power management on computing device
US20070260898A1 (en) * 2006-05-03 2007-11-08 Edward Burton Voltage regulator with suspend mode
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
JP4808108B2 (ja) 2006-08-29 2011-11-02 パナソニック株式会社 プロセッサシステム
US20100325481A1 (en) 2006-10-20 2010-12-23 Freescale Semiconductor, Inc. Device having redundant core and a method for providing core redundancy
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
GB2445167A (en) 2006-12-29 2008-07-02 Advanced Risc Mach Ltd Managing performance of a processor
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7783906B2 (en) 2007-02-15 2010-08-24 International Business Machines Corporation Maximum power usage setting for computing device
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
US7849349B2 (en) * 2007-03-28 2010-12-07 Qimonda Ag Reduced-delay clocked logic
JP4739271B2 (ja) 2007-04-19 2011-08-03 株式会社富士通アドバンストエンジニアリング 電源制御装置、仮想サーバ管理システム、電源制御方法および電源制御プログラム
US7865751B2 (en) * 2007-06-18 2011-01-04 Intel Corporation Microarchitecture controller for thin-film thermoelectric cooling
US7902800B2 (en) * 2007-07-13 2011-03-08 Chil Semiconductor Corporation Adaptive power supply and related circuitry
US8356306B2 (en) * 2007-07-31 2013-01-15 Hewlett-Packard Development Company, L.P. Workload management controller using dynamic statistical control
JP4834625B2 (ja) 2007-07-31 2011-12-14 株式会社東芝 電源管理装置及び電源管理方法
US20090049314A1 (en) * 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
US7945804B2 (en) * 2007-10-17 2011-05-17 International Business Machines Corporation Methods and systems for digitally controlled multi-frequency clocking of multi-core processors
JP5433837B2 (ja) 2007-12-05 2014-03-05 株式会社日立製作所 仮想計算機システム、仮想計算機の制御方法及びプログラム
US8024590B2 (en) * 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
JP4488072B2 (ja) 2008-01-18 2010-06-23 日本電気株式会社 サーバシステム、及びサーバシステムの電力削減方法
US8245236B2 (en) * 2008-02-27 2012-08-14 International Business Machines Corporation Lock based moving of threads in a shared processor partitioning environment
JP4996519B2 (ja) * 2008-03-27 2012-08-08 パナソニック株式会社 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
US20090271646A1 (en) * 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
US8170845B2 (en) * 2008-09-24 2012-05-01 International Business Machines Corporation Method and apparatus for automatic performance modeling with load dependent service times and overheads
US8195962B2 (en) * 2008-11-11 2012-06-05 Globalfoundries Inc. Method and apparatus for regulating power consumption
US8261112B2 (en) * 2008-12-08 2012-09-04 International Business Machines Corporation Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US8245070B2 (en) * 2008-12-30 2012-08-14 Intel Corporation Method for optimizing voltage-frequency setup in multi-core processor systems
JP5091912B2 (ja) * 2009-05-21 2012-12-05 株式会社東芝 マルチコアプロセッサシステム
US8924975B2 (en) 2009-07-23 2014-12-30 Empire Technology Development Llc Core selection for applications running on multiprocessor systems based on core and application characteristics
US20110145559A1 (en) 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8689037B2 (en) 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US8909962B2 (en) 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) * 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US9104411B2 (en) * 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8650426B2 (en) 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188877A1 (en) * 2001-06-07 2002-12-12 Buch Deep K. System and method for reducing power consumption in multiprocessor system
US20030115495A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
JP2005128937A (ja) * 2003-10-27 2005-05-19 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
US20060036878A1 (en) * 2004-08-11 2006-02-16 Rothman Michael A System and method to enable processor management policy in a multi-processor environment
US20060095807A1 (en) * 2004-09-28 2006-05-04 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
JP2008129846A (ja) * 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
CN101241390A (zh) * 2007-02-07 2008-08-13 华硕电脑股份有限公司 多核心处理器的效能调整方法
CN101414268A (zh) * 2007-10-15 2009-04-22 南京大学 一种在ARM MPCore处理器上管理处理器热插拔的方法
CN101436098A (zh) * 2008-12-24 2009-05-20 华为技术有限公司 降低多核对称多处理***的功耗的方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN109240481A (zh) * 2013-08-28 2019-01-18 威盛电子股份有限公司 多核微处理器及使用其省电的方法
CN109240481B (zh) * 2013-08-28 2020-08-11 威盛电子股份有限公司 多核微处理器及使用其省电的方法
CN107077185A (zh) * 2014-08-28 2017-08-18 高通股份有限公司 用于基于协处理器操作提供动态服务质量水平的***和方法
CN107077185B (zh) * 2014-08-28 2019-04-09 高通股份有限公司 用于基于协处理器操作提供动态服务质量水平的***和方法
CN107430425A (zh) * 2015-04-16 2017-12-01 英特尔公司 用于基于网络负荷来调整处理器功率使用率的设备和方法
CN107430425B (zh) * 2015-04-16 2022-09-23 英特尔公司 用于基于网络负荷来调整处理器功率使用率的设备和方法
WO2017206858A1 (zh) * 2016-05-31 2017-12-07 广东欧珀移动通信有限公司 一种中央处理器的管理方法、及相关产品
US10444822B2 (en) 2016-05-31 2019-10-15 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method for managing central processing unit and related products
CN106227602A (zh) * 2016-07-26 2016-12-14 张升泽 负载在多核芯片之间的分配方法及***
CN111666140A (zh) * 2020-05-28 2020-09-15 北京百度网讯科技有限公司 资源调度方法、装置、设备和存储介质

Also Published As

Publication number Publication date
JP5893568B2 (ja) 2016-03-23
BR112012014308B1 (pt) 2021-01-19
KR20120105523A (ko) 2012-09-25
US9563250B2 (en) 2017-02-07
BR112012014308A2 (pt) 2016-07-05
CN102656539B (zh) 2015-09-09
JP2013513891A (ja) 2013-04-22
WO2011084260A1 (en) 2011-07-14
KR101409055B1 (ko) 2014-07-02
EP2513745A1 (en) 2012-10-24
US20110145615A1 (en) 2011-06-16
EP2513745B1 (en) 2018-04-04

Similar Documents

Publication Publication Date Title
CN102656539A (zh) 用于基于所推断的工作负载并行性控制中央处理单元功率的***和方法
CN102652296A (zh) 用于基于温度动态地控制多核中央处理单元中的多个核的***和方法
CN102934045B (zh) 用于以保证的瞬时期限来控制中央处理单元功率的***和方法
EP2513750B1 (en) System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
CN102695998B (zh) 用于在虚拟化***中控制中央处理单元功率的***和方法
KR101562448B1 (ko) 휴대용 컴퓨팅 디바이스의 멀티코어 프로세서에서 다수의 코어들로의 전력을 동적으로 제어하는 방법 및 시스템
KR100700951B1 (ko) 이동통신 시스템에서 다중 작업 관리를 위한 장치 및 방법
US8904399B2 (en) System and method of executing threads at a processor
CN102687097A (zh) 用于以保证的稳定状态期限来控制中央处理单元功率的***和方法
CN102652298A (zh) 用于以减小的频率振荡控制中央处理单元功率的***和方法
CN102667669A (zh) 对中央处理单元内的数据进行取样的***和方法
KR101483897B1 (ko) 휴대용 컴퓨팅 디바이스의 프로세서들에 대한 슬립 상태들로의 신속한 진입 및 슬립 상태들로부터의 신속한 퇴장을 위한 방법 및 시스템
CN102708006A (zh) 处理优化负载调整
WO2012087533A1 (en) Minimizing resource latency between processor application states in a portable computing device by using a next-active state set
CN101866212A (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