CN102695998B - 用于在虚拟化系统中控制中央处理单元功率的系统和方法 - Google Patents

用于在虚拟化系统中控制中央处理单元功率的系统和方法 Download PDF

Info

Publication number
CN102695998B
CN102695998B CN201080056512.XA CN201080056512A CN102695998B CN 102695998 B CN102695998 B CN 102695998B CN 201080056512 A CN201080056512 A CN 201080056512A CN 102695998 B CN102695998 B CN 102695998B
Authority
CN
China
Prior art keywords
core
degree
concurrence
condition
multiple virtual
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.)
Active
Application number
CN201080056512.XA
Other languages
English (en)
Other versions
CN102695998A (zh
Inventor
博胡斯拉夫·雷赫利克
阿里·伊兰里
布莱恩·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 CN102695998A publication Critical patent/CN102695998A/zh
Application granted granted Critical
Publication of CN102695998B publication Critical patent/CN102695998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

Abstract

本发明揭示一种动态地控制多核中央处理单元内的功率的方法,且所述方法包含:执行多个虚拟核;在所述虚拟核处以虚拟方式执行一个或一个以上任务、一个或一个以上线程,或其组合;以及在第零物理核处以物理方式执行一个或一个以上任务、一个或一个以上线程,或其组合。所述方法可进一步包含接收多个虚拟核的工作负荷的并行程度,且确定所述虚拟核的所述工作负荷的所述并行程度是否等于第一唤醒条件。

Description

用于在虚拟化系统中控制中央处理单元功率的系统和方法
相关申请案
本申请案主张2009年12月16日申请的标题为“动态地控制多核中央处理单元中的多个核的系统和方法(SYSTEM AND METHOD OF DYNAMICALLY CONTROLLINGA PLURALITY OF CORES IN A MULTICORE CENTRAL PROCESSING UNIT)”的第61/286,960号美国临时专利申请案的优先权,所述申请案的内容以引用的方式全部并入。
交叉参考申请
本申请案与同时递交的标题为“SYSTEM AND METHOD FOR CONTROLLINGCENTRAL PROCESSING UNIT POWER BASED ON INFERRED WORKLOADPARALLELISM”、发明人为Rychlik等的第12/944,140号美国专利申请案有关且将该申请案以引用的方式并入本申请案。本申请与同时递交的标题为“SYSTEM AND METHODFOR ASYNCHRONOUSLY AND INDEPENDENTLY CONTROLLING CORE CLOCKS INA MULTICORE CENTRAL PROCESSING UNIT”、发明人为Rychlik等的第12/944,321号美国专利申请案有关且将该申请案以引用的方式并入本申请案。本申请与同时递交的标题为“SYSTEM AND METHOD FOR CONTROLLING CENTRAL PROCESSING UNITPOWER WITH REDUCED FREQUENCY OSCILLATIONS”、发明人为Thomson等的第12/944,378号美国专利申请案有关且将该申请案以引用的方式并入本申请案。本申请与同时递交的标题为“SYSTEM AND METHOD FOR CONTROLLING CENTRALPROCESSING UNIT POWER WITH GUARANTEED TRANSIENT DEADLINES”、发明人为Thomson等的第12/944,467号美国专利申请案有关且将该申请案以引用的方式并入本申请案。本申请与同时递交的标题为“SYSTEM AND METHOD FOR CONTROLLINGCENTRAL PROCESSING UNIT POWER WITH GUARANTEED STEADY STATEDEADLINES”、发明人为Thomson等的第12/944,561号美国专利申请案有关且将该申请案以引用的方式并入本申请案。本申请与同时递交的标题为“SYSTEM AND METHODFOR DYNAMICALLY CONTROLLING A PLURALITY OF CORES IN A MULTICORECENTRAL PROCESSING UNIT BASED ON TEMPERATURE”、发明人为Sur等的第12/944,564号美国专利申请案有关且将该申请案以引用的方式并入本申请案。
技术领域
本发明涉及多核中央处理单元CPU内的功率控制。
背景技术
便携式计算装置(PCD)到处可见。这些装置可包含蜂窝式电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机,和其它便携式电子装置。除了这些装置的主要功能之外,许多装置包含外围功能。举例来说,蜂窝式电话可包含进行蜂窝式电话呼叫的主要功能,和静态相机、视频相机、全球定位系统(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息、即按即说能力等的外围功能。随着此类装置的功能性增加,支持此类功能性所需的计算或处理能力也增加。此外,随着计算能力增加,更需要有效地管理提供计算能力的处理器。
因此,所需的是控制多核CPU内的功率的改进的方法。
发明内容
在一个方面中,本发明涉及一种在无线装置中动态地控制多核中央处理单元CPU内的功率的方法。所述方法包括:在所述多核CPU的至少一个物理核上执行多个虚拟核;在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合;接收指示所述多个虚拟核上的工作负荷的并行程度的值,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件;及至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核CPU内的功率。
在另一方面中,本发明涉及一种无线装置。所述无线装置包括:用于在所述无线装置中的多核中央处理单元CPU的至少一个物理核上执行多个虚拟核的装置;用于在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合的装置;用于接收指示所述多个虚拟核上的工作负荷的并行程度的值的装置,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;用于确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件的装置;及至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核CPU内的功率的装置。
在另一方面中,本发明涉及一种无线装置。所述无线装置包括:处理器,其中所述处理器可操作以:在所述无线装置中的多核中央处理单元CPU的至少一个物理核上执行多个虚拟核;在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合;接收指示所述多个虚拟核上的工作负荷的并行程度的值,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件;及至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核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的方法的流程图。
具体实施方式
词语“示范性”在本文中用于表示“充当实例、例子或说明”。在本文中描述为“示范性”的任何方面不一定解释为比其它方面优选或有利。
在此描述中,术语“应用程序”还可包含具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所涉及的“应用程序”还可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
术语“内容”还可包含具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所涉及的“内容”还可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
如此描述中所使用,术语“组件”、“数据库”、“模块”、“系统”等意欲指代计算机相关实体,硬件、固件、硬件和软件的组合、软件或执行中的软件。举例来说,组件可为(但不限于)运行在处理器上的进程、处理器、对象、可执行程序、执行线程、程序,和/或计算机。以说明的方式,运行在计算装置上的应用程序和计算装置两者均可为组件。一个或一个以上组件可驻留于进程和/或执行线程内,且组件可位于一个计算机上和/或分布于两个或两个以上计算机之间。另外,这些组件可从上面存储有各种数据结构的各种计算机可读媒体来执行。组件可例如根据具有一个或一个以上数据包的信号(例如,来自一个借助所述信号与在本地系统、分布式系统中的另一组件和/或跨越例如因特网等网络与其它系统交互的组件的数据)而通过本地和/或远程进程进行通信。
起初参看图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键盘。在上部外壳部分104相对于下部外壳部分106移动时可露出多按钮键盘120。图2进一步说明PCD 100可包含下部外壳部分106上的复位按钮122。
参看图3,展示便携式计算装置(PCD)的示范性非限制性方面且大体上标示为320。如图所示,PCD 320包含芯片上系统322,芯片上系统322包含多核CPU 324。多核CPU324可包含第零核325、第一核326和第N核327。
如图3中所说明,显示器控制器328和触摸屏控制器330耦合到多核CPU 324。芯片上系统322外部的显示器/触摸屏332又耦合到显示器控制器328和触摸屏控制器330。
图3进一步指示视频编码器334(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器,或美国电视系统委员会(NTSC)编码器)耦合到多核CPU 324。此外,视频放大器336耦合到视频编码器334和显示器/触摸屏332。而且,视频端口338耦合到视频放大器336。如图3中所描绘,通用串行总线(USB)控制器340耦合到多核CPU324。而且,USB端口342耦合到USB控制器340。存储器344和订户身份模块(SIM)卡346也可耦合到多核CPU 324。此外,如图3中所示,数码相机348可耦合到多核CPU324。在示范性方面中,数码相机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为将电力供应给PCD 320的需要电力的各种组件的直流(DC)电源。此外,在特定方面中,电源为可再充电DC电池或从连接到AC电源的交流(AC)/DC变压器得到的DC电源。
图3进一步指示PCD 320还可包含网卡388,网卡388可用于接入数据网络,例如局域网、个域网或任何其它网络。网卡388可为蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡,或此项技术中众所周知的任何其它网卡。此外,网卡388可并入到芯片中,即网卡388可为芯片上的整个解决方案,且可不为单独的网卡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,展示处理系统且大体上标示为400。在特定方面中,处理系统400可并入到上文结合图3所描述的PCD 320中。如图所示,处理器系统400可包含多核中央处理单元(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可独立地在相应核410、412、414上执行。
另外,如所说明,存储器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可包含并行度监视器(PM)444。或者,并行度监视器444可与管理程序440分开,但与其连接。如图所示,存储器404还可包含第零虚拟核446和第一虚拟核448。OS 420可经由管理程序440与虚拟核446、448交互,如同虚拟核446、448正在执行线程一般。然而,任务、线程或其组合可实际上在物理核410、412、414上执行。虚拟核446、448可代表OS 420可存取的虚拟化环境。
如本文中所描述,管理程序440可监视虚拟核446、448上的工作负荷,且MP控制器442可控制到物理核410、412、414的功率,如下文所描述。在特定方面中,通过执行方法步骤中的一者或一者以上,例如,作为计算机程序指令,如本文中所描述,管理程序440、MP控制器442、并行度监视器444或其组合可用作用于动态地控制到多核CPU 402内的核410、412、414的功率的装置。
在特定双虚拟核方面中,在操作期间,MP控制器442可从管理程序440接收输入。所述输入可为工作负荷的并行程度的运行平均值。基于所述输入,MP控制器442可确定单一物理核或两个物理核是否应通电。此外,MP控制器442可将控制信号输出到多核CPU 402。控制信号可指示是接通还是断开额外核。在双虚拟核实例中,MP控制器442可包含四个阈值以用于控制对物理核通电和断电的决策。所述四个阈值可包含用以触发核醒来(core wake)的OS调度器队列中的准备运行(read-to-run)线程的数目Nw;已超过Nw来确认核醒来的持续时间Tw;用以触发核休眠的OS调度器中的准备运行线程的数目Ns;以及已超过Ns来确认核休眠的持续时间Ts
以单一核活动开始,例如第零核410,当第零核410上的工作负荷的并行程度的运行平均值在至少Tw的持续时间内满足或超过Nw时,MP控制器442可唤醒第二个核,例如第一核412。相反,当例如第零核410和第一核412两者均活动时,且当工作负荷的并行程度在至少Ts的持续时间内下降到低于Ns时,MP控制器442可决定将第二个核(例如第一核412)置于休眠。
在特定方面中,时间Tw上的持续的阈值并行度暗示单一虚拟核是饱和的。此外,物理核可在功率最有效电压-频率(VF)操作点处启动。在特定方面中,在最佳VF处操作的两个物理核比在最大VF处操作的单一核提供更多的Dhrystone每秒百万指令(Dhrystone million instructions per second,DMIPS)。在双核方面中,双、独立的DCVS算法可适应不对称的工作负荷,且在一些情况下适应异类核。此外,在双核方面中,两个物理核应在多任务工作负荷期间保持活动,以便避免双倍的性能损失。而且,当并行度在规定时间Ts内下降到低于Ns时,第二核应断电且不置于备用中。在特定方面中,将第二核置于备用中可增加功率泄漏,且还降低性能。
参数Nw、Tw、Ns和Ts的最佳值可取决于系统400的确切的功率消耗特性。然而,在一个方面中,所述值可如下:
Nw=1.2,
Tw=40毫秒(ms),
Ns=0.8且
Ts=80ms。
在此特定方面中,Nw=1.2可确保在第二核被唤醒之前的持续的并行度。Ns=0.8可确保在第二核被置于休眠之前的并行度的持续的缺失。Ts=80ms是基于系统400的功率崩溃阈值。Tw=40ms是Ts的一半,用以改进多核响应性。
参看图5,展示控制多核处理器内的功率的方法的第一方面且大体上标示为500。方法500以do循环开始于方框502处,其中在具有多核处理器的装置的操作期间,可执行接连的步骤。在方框504处,可在物理处理器内执行虚拟中央处理单元(CPU)程序。在执行时,虚拟CPU程序致使两个或两个以上虚拟CPU运行在物理处理器上。虚拟CPU可模拟在所述装置内操作的两个或两个以上物理处理器。在方框506处,可允许操作系统(OS)存取虚拟CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虚拟CPU。
移动到方框508,管理程序,即,虚拟机器管理器,可例如每当虚拟CPU进入闲置状态时检测虚拟CPU进入闲置状态中。在方框510处,管理程序可确定每一虚拟CPU上的利用率。可通过首先确定实际虚拟循环的数目来确定所述利用率。实际虚拟循环是其间虚拟CPU不闲置或不在运行OS闲置任务的循环。其后,可通过将有效虚拟循环的数目除以虚拟CPU循环的总数目来确定所述利用率。
前进到方框512,管理程序可基于每一虚拟CPU上的利用率来确定虚拟CPU的工作负荷的并行程度。接下来,在方框514处,控制器(例如,并行度监视器)可至少部分基于虚拟CPU的工作负荷中的并行程度来将物理核上电或掉电。换句话说,并行度监视器可基于虚拟核中的工作负荷来接通或断开核。
在决策516处,并行度监视器可确定装置是否被断电。如果装置被断电,则所述方法可结束。否则,如果装置保持通电,则方法500可返回到方框504且方法500可如所描述继续下去。
图6说明控制多核处理器内的功率的方法的第二方面。所述方法大体上被标示为600。方法600以do循环开始于方框602处,其中在具有多核处理器的装置的操作期间,可执行接连的步骤。在方框604处,可在物理处理器内执行虚拟中央处理单元(CPU)程序。在执行时,虚拟CPU程序致使两个或两个以上虚拟CPU运行在物理处理器上。虚拟CPU可模拟在所述装置内操作的两个或两个以上物理处理器。在方框606处,可允许操作系统(OS)存取虚拟CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虚拟CPU。
移动到方框608,管理程序,即,虚拟机器管理器,可例如每当虚拟CPU进入闲置状态时从操作系统(OS)接收指示虚拟处理器的闲置状态的调用。在方框610处,管理程序可确定每一虚拟CPU上的利用率。可通过首先确定实际虚拟循环的数目来确定所述利用率。实际虚拟循环是其间虚拟CPU不闲置或不在运行OS闲置任务的循环。其后,可通过将有效虚拟循环的数目除以虚拟CPU循环的总数目来确定所述利用率。
前进到方框612,管理程序可基于每一虚拟CPU上的利用率来确定虚拟CPU的工作负荷的并行程度。接下来,在方框614处,管理程序可至少部分基于虚拟CPU的工作负荷的并行程度来将物理核上电或掉电。换句话说,功率控制器可基于工作负荷来接通或断开核。
在决策616处,功率控制器可确定装置是否被断电。如果装置被断电,则所述方法可结束。否则,如果装置保持通电,则方法600可返回到方框604且方法600可如所描述继续下去。
现在参看图7,展示控制多核处理器内的功率的方法的第三方面且大体上标示为700。方法700以do循环开始于方框702处,其中在具有多核处理器的装置的操作期间,可执行接连的步骤。
在方框704处,可在物理处理器内执行虚拟中央处理单元(CPU)程序。在执行时,虚拟CPU程序致使两个或两个以上虚拟CPU运行在物理处理器上。虚拟CPU可模拟在所述装置内操作的两个或两个以上物理处理器。在方框706处,可允许操作系统(OS)存取虚拟CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虚拟CPU。
移动到方框708,功率控制器(例如,并行度监视器)可周期性地对虚拟CPU利用率取样,以便确定虚拟CPU或核内的工作负荷的并行程度。移动到方框710,至少部分基于虚拟CPU内的工作负荷的并行程度,功率控制器可将物理核上电或掉电。换句话说,功率控制器可基于工作负荷来接通或断开核。
在决策712处,功率控制器可确定装置是否被断电。如果装置被断电,则所述方法可结束。否则,如果装置保持通电,则方法700可返回到方框704且方法700可如所描述继续下去。
图8展示控制多核处理器内的功率的方法的第四方面且所述方法大体上标示为800。方法800以do循环开始于方框802处,其中在具有多核处理器的装置的操作期间,可执行接连的步骤。在方框804处,可在物理处理器内执行虚拟中央处理单元(CPU)程序。在执行时,虚拟CPU程序致使两个或两个以上虚拟CPU运行在物理处理器上。虚拟CPU可模拟在所述装置内操作的两个或两个以上物理处理器。在方框806处,可允许操作系统(OS)存取虚拟CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虚拟CPU。
移动到方框808,功率控制器(例如,并行度监视器)可每当从OS运行队列添加或移除项目时从管理程序接收回调。在方框810处,功率控制器可确定虚拟CPU内的工作负荷的并行程度的运行平均值。其后,在方框812处,至少部分基于虚拟CPU内的工作负荷的并行程度,功率控制器可将物理核上电或掉电。换句话说,功率控制器可基于工作负荷来接通或断开核。
在决策814处,功率控制器可确定装置是否被断电。如果装置被断电,则所述方法可结束。否则,如果装置保持通电,则方法800可返回到方框804且方法800可如所描述继续下去。
参看图9到图12,展示控制多核处理器内的功率的方法的第五方面且大体上标示为900。方法900以do循环开始于方框902处,其中在具有多核处理器的装置通电时,可执行以下步骤。在方框904处,可在物理处理器内执行虚拟中央处理单元(CPU)程序。在执行时,虚拟CPU程序致使两个或两个以上虚拟CPU运行在物理处理器上。虚拟CPU可模拟在所述装置内操作的两个或两个以上物理处理器。
在方框906处,可将第零物理核上电,即给电。在方框907处,可在第零物理核处在本地执行第零DCVS算法。在方框908处,可在虚拟CPU处以虚拟方式执行一个或一个以上任务、线程或其组合。此外,在方框910处,可在第零物理核处执行一个或一个以上任务、线程或其组合。
移动到决策912,MP控制器可确定装置是否被断电。如果是,则方法900可结束。否则,如果装置保持通电,则方法900可移动到方框914,且MP控制器可从管理程序接收虚拟核上的工作负荷的并行程度的运行平均值。在特定方面中,在任何时刻,在操作系统(OS)的准备运行队列上等待的任务、线程或其组合的总数目加上实际运行的任务的数目可为虚拟核上的工作负荷的并行程度的近似。
在决策916处,MP控制器可确定并行程度是否等于第一唤醒条件。在特定方面中,第一唤醒条件可为与虚拟核上的工作负荷的并行程度相关联的阈值。举例来说,所述阈值可为OS调度器队列中的准备运行线程的最大数目,且如果并行程度大于或等于此阈值,则可满足第一唤醒条件。
返回到决策916,如果并行程度不等于第一唤醒条件,则方法900可返回到方框914且方法900可如本文中所描述继续下去。否则,如果并行程度等于第一唤醒条件,则方法900可移动到方框918,且MP控制器可确定满足第一唤醒条件的持续时间。在决策920处,MP控制器可确定持续时间是否等于第一确认唤醒条件。在特定方面中,所述第一确认唤醒条件可为时间阈值,且如果满足第一唤醒条件的持续时间大于或等于时间阈值,则可满足第一确认唤醒条件。
返回到决策920,如果满足第一唤醒条件的持续时间不等于第一确认唤醒条件,则方法900可返回到方框914且方法900可如本文中所描述继续下去。相反,如果满足第一确认唤醒条件,则方法900可移动到方框922,且MP控制器可将第一物理核上电,使得两个核(即,第零物理核和第一物理核)正运行和执行线程和任务。在方框924处,可在第一物理核处在本地执行第一DCVS算法。其后,方法900可前进到图10的方框1002。
现在移动到图10的方框1002,可以物理方式在第零物理核和第一物理核处执行一个或一个以上任务、线程或其组合。在决策1004处,MP控制器可确定装置是否被断电。如果是,则方法900可结束。否则,如果装置保持通电,则方法900可移动到方框1006,且MP控制器可从管理程序接收虚拟核上的工作负荷的并行程度的运行平均值。
在决策1008处,MP控制器可确定并行程度是否等于第一休眠条件。在特定方面中,第一休眠条件可为与虚拟核上的工作负荷的并行程度相关联的阈值。举例来说,所述阈值可为OS调度器队列中的准备运行线程的最小数目,且如果并行程度小于或等于此阈值,则可满足第一休眠条件。
返回到决策1008,如果并行程度不等于第一休眠条件,则方法900可前进到图11的方框1102且方法900可如本文中所描述继续下去。否则,如果并行程度等于第一休眠条件,则方法900可移动到方框1010,且MP控制器可确定满足第一休眠条件的持续时间。在决策1012处,MP控制器可确定所述持续时间是否等于第一确认休眠条件。在特定方面中,所述第一确认休眠条件可为时间阈值,且如果满足第一休眠条件的持续时间大于或等于时间阈值,则可满足第一确认休眠条件。
返回到决策1012,如果满足第一休眠条件的持续时间不等于第一确认休眠条件,则方法900可前进到图11的方框1102且方法900可如本文中所描述继续下去。相反,如果满足第一确认休眠条件,则方法900可移动到方框1014,且MP控制器可将第一物理核掉电,使得一个核(即,第零物理核)正运行和执行线程和任务。其后,方法900可返回到图9的方框910,且方法900可如本文中所描述继续下去。
现在参看图11,在方框1102处,MP控制器可从管理程序接收虚拟核上的工作负荷的并行程度的运行平均值。在决策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控制器可将第N物理核上电,使得N个核(即,第零物理核、第一物理核和第N物理核)正运行和执行线程和任务。在方框1112处,可在第N物理核处在本地执行第N DCVS算法。其后,方法900可前进到图12的方框1202。
在图12的方框1202处,可以物理方式在第零物理核、第一物理核和第N物理核处执行一个或一个以上任务、线程或其组合。在决策1204处,MP控制器可确定装置是否被断电。如果是,则方法900可结束。否则,如果装置保持通电,则方法900可移动到方框1206,且MP控制器可从管理程序接收虚拟核上的工作负荷的并行程度的运行平均值。
在决策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控制器可将第N物理核掉电,使得N减一个核(例如,第零物理核和第一物理核(如果N为10且第二核被掉电))正运行和执行线程和任务。其后,方法900可返回到图10的方框1002,且方法900可如本文中所描述继续下去。
现在参看图13,展示测试多核处理器的方法且大体上标示为1300。如图所示,方法1300可开始于方框1302处,其中可创建测试程序。所述测试程序可包含具有不同并行程度的稳定状态工作负荷,其将依据并行程度致使多个核上电和掉电,如本文中所描述。
移动到方框1304,可将测试程序加载到包含多核处理器的无线装置中。在方框1306处,可在无线装置上监视多个核。举例来说,可监视每一核的核上电/掉电状态。可通过监视每一核上的功率,通过监视所消耗的总功率、完成工作负荷的速度,或其组合,来监视上电/掉电状态。
在方框1308处,可在无线装置处执行测试程序。另外,在决策1310处,可确定无线装置内的核是否正确地响应于测试程序的执行。换句话说,可确定是否正确地响应于测试程序的执行将核上电和/或掉电。在决策1310处,如果所述核未正确地响应于测试程序的执行,则方法1300可移动到方框1312且可指示失败结果。方法1300可随后结束。
在决策1310处,如果所述核正确地响应于测试程序的执行,则方法可前进到方框1314且可指示通过结果。其后,方法1300可结束。
应理解,本文中所描述的方法步骤不需要一定以所描述的次序执行。此外,例如“其后”、“随后”、“接下来”等词语无意限制步骤的次序。这些词语仅用于引导读者阅读方法步骤的描述。另外,本文中所描述的方法被描述为可在便携式计算装置(PCD)上执行。PCD可为移动电话装置、便携式数字助理装置、智能本计算装置、上网本计算装置、膝上型计算装置、桌上型计算装置或其组合。
在特定方面中,本文中所描述的系统和方法可通过监视虚拟化系统中的虚拟CPU的利用率来动态地推断出工作负荷的并行程度。在CPU虚拟化下,某些软件要求可从高级操作系统(HLOS)消除并转移到管理程序。因而,单一管理程序和MP-DCVS设计可理论上在不同的HLOS上一致地工作。在特定方面中,MP-DCVS软件可为管理程序的部分,或其可具有到管理程序的特许接口。
在虚拟化系统中,可将硬件CPU资源抽象为虚拟CPU。可将单一硬件CPU作为一个或一个以上多个虚拟CPU呈现给操作系统。通过使用此能力,对于两个硬件(即,物理)核系统,两个虚拟核可呈现给操作系统,而不管实际上有多少物理核被上电。HLOS可如同其一直在多处理器(MP)系统上一样运行,且HLOS可将任务调度到一个或两个虚拟CPU。
管理程序的并行度监视器MP-DCVS组件可监视两个虚拟CPU的HLOS使用,从而指示工作负荷并行度水平。在一个方面中,并行程度仅为两个虚拟CPU的利用率的总和。每一虚拟CPU上的利用率为有效虚拟CPU循环的数目除以总虚拟CPU循环的数目。有效虚拟循环是其间虚拟CPU不闲置或不在运行OS闲置任务的循环。
在完全虚拟化系统中,可通过管理程序拦截指令(例如,ARM指令WFI或WFE(等待中断或等待事件))来检测虚拟CPU进入闲置状态中。这些指令通常由操作系统的闲置任务调用。因为其影响真实的硬件资源,所以这些指令可导致完全虚拟化系统上的管理程序进入。
在半虚拟化系统中,操作系统可经由特殊指令(例如,SVC、监督程序调用)直接调用管理程序调用以指示闲置情形,以取代尝试直接执行WFI/WFE。在此方面中,管理程序不需要拦截WFI/WFE尝试,且被直接通知闲置情形。
本文中所揭示的系统和方法可监视虚拟CPU利用率的总和。在一个方面中,并行度监视器可周期性地(例如,每一毫秒)对虚拟CPU利用率进行取样。在另一方面中,并行度监视器可每当虚拟CPU进入或退出闲置状态时从管理程序接收回调。在两种情况下,并行度监视器将即时读数累加到工作负荷的并行程度的运行平均值中。
本文中所揭示的多处理器控制器可基于虚拟核中的并行程度来决定给多少物理核供电。在双核系统的一个方面中,多处理器控制器可应用以下决策参数:平均并行度的唤醒阈值Nw;在唤醒第二核之前超过Nw阈值的持续时间Tw;平均并行度的休眠阈值Ns;以及在将第二核置于休眠之前必须超过Ns阈值的持续时间Ts
当运行非并行工作负荷时,HLOS可能不能够将两个虚拟CPU保持在多于0.5的利用率下。因此,此将展示为在任何监视周期上的至多0.5+0.5=1的并行程度。在这些情形下,如果所述值针对大于Ts的周期来说小于Ns,则多处理器控制器可使第二核断开功率。
当实际运行并行工作负荷时,HLOS将能够在多于0.5的利用率下使两个虚拟CPU保持忙。再者,利用率值的总和指示任何监视周期上的并行度的平均水平。在这些情形下,如果所述值针对大于Tw的周期来说大于Nw,则MP-DCVS可恢复给第二核供电。
本文中所揭示的系统和方法可延伸到同时支持来自多个操作系统/环境的并行度。在那种情况下,对于N核硬件系统,用N个虚拟CPU呈现每个运行的操作环境。假设有M个操作系统/环境在运行,则可例示M*N个虚拟CPU。为了计算并行程度,并行度监视器对多个操作系统上的所有M*N个虚拟CPU的总利用率求和。
在另一方面中,本文中所描述的系统和方法可用于动态地控制多个处理器、多核处理器、多个多核处理器或其组合。另外,本文中所描述的系统和方法可用于动态地控制任何数目个处理器,或多核处理器。在一个方面中,呈现给每一操作系统的虚拟核的数目可等于操作系统可存取的物理核的数目。在另一方面中,呈现给每一操作系统的虚拟核的数目可小于操作系统可存取的物理核的数目。另外,在又一方面中,呈现给每一操作系统的虚拟核的数目可大于操作系统可存取的物理核的数目。此外,本文中所描述的系统和方法可用于基于总系统负荷(例如,并行程度)来将多个核或处理器通电和断电。举例来说,在四核系统中,工作负荷可能突然下降且三个核可同时被断电。
本文中所揭示的方法不需要对应用程序或运行那些应用程序的操作系统的任何修改,且本文中所揭示的方法可应用于多个操作系统上。此外,本文中所揭示的方法可不牵涉到操作系统代码,包含潜在开放的源代码。此外,本文中所揭示的方法可发现并利用多个同时操作系统或环境上的并行度。无论是在单一OS内的线程层级处、在单一OS内的进程层级处,还是在多个OS上的线程或进程层级处发现并行度,本文中所揭示的方法都可被视为不可知论的。
在一个或一个以上示范性方面中,可以硬件、软件、固件或其任何组合来实施所描述的功能。如果以软件实施,则可将功能作为一个或一个以上指令或代码而存储在计算机程序产品(例如,机器可读媒体(即,非瞬时性计算机可读媒体))上。计算机可读媒体包含促进将计算机程序从一处传递到另一处的计算机存储媒体。存储媒体可为可由计算机存取的任何可用媒体。举例来说而非限制,此非瞬时性计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘及光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合也应包含在非瞬时性计算机可读媒体的范围内。
虽然已详细地说明和描述了选定的方面,但将理解,在不脱离由所附权利要求书界定的本发明的精神和范围的情况下,可在其中进行各种替代和更改。

Claims (24)

1.一种在无线装置中动态地控制多核中央处理单元CPU内的功率的方法,所述方法包括:
在所述多核CPU的至少一个物理核上执行多个虚拟核;
在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合;
接收指示所述多个虚拟核上的工作负荷的并行程度的值,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;
确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件;及
至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核CPU内的功率。
2.根据权利要求1所述的方法,其中所述指示所述并行程度的值进一步包括在所述多个虚拟核中运行的任务及线程的总数目。
3.根据权利要求1所述的方法,其进一步包括:
在所述指示所述多个虚拟核上的工作负荷的并行程度的值大于或等于所述第一唤醒条件时,确定满足所述第一唤醒条件的持续时间;以及
确定所述持续时间是否等于第一确认唤醒条件。
4.根据权利要求3所述的方法,其进一步包括:
在所述持续时间等于所述第一确认唤醒条件时,将第一物理核上电;以及
在第零物理核和所述第一物理核处以物理方式执行一个或一个以上任务、一个或一个以上线程或其组合。
5.根据权利要求4所述的方法,其进一步包括:
确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否小于或等于第一休眠条件。
6.根据权利要求5所述的方法,其进一步包括:
在所述指示所述多个虚拟核上的工作负荷的并行程度的值小于或等于所述第一休眠条件时,确定满足所述第一休眠条件的第二持续时间。
7.根据权利要求6所述的方法,其进一步包括:
确定满足所述第一休眠条件的所述第二持续时间是否等于第一确认休眠条件。
8.根据权利要求7所述的方法,其进一步包括:
在满足所述第一休眠条件的所述第二持续时间等于所述第一确认休眠条件时,将所述第一物理核掉电。
9.一种无线装置,其包括:
用于在所述无线装置中的多核中央处理单元CPU的至少一个物理核上执行多个虚拟核的装置;
用于在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合的装置;
用于接收指示所述多个虚拟核上的工作负荷的并行程度的值的装置,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;
用于确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件的装置;及
至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核CPU内的功率的装置。
10.根据权利要求9所述的无线装置,其中所述指示所述并行程度的值进一步包括在所述多个虚拟核中运行的任务及线程的总数目。
11.根据权利要求9所述的无线装置,其进一步包括:
用于在所述指示所述多个虚拟核上的工作负荷的并行程度的值大于或等于所述第一唤醒条件时确定满足所述第一唤醒条件的持续时间的装置;以及
用于确定所述持续时间是否等于第一确认唤醒条件的装置。
12.根据权利要求11所述的无线装置,其进一步包括:
用于在所述持续时间等于所述第一确认唤醒条件时将第一物理核上电的装置;以及
用于在第零物理核和所述第一物理核处以物理方式执行一个或一个以上任务、一个或一个以上线程或其组合的装置。
13.根据权利要求12所述的无线装置,其进一步包括:
用于确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否小于或等于第一休眠条件的装置。
14.根据权利要求13所述的无线装置,其进一步包括:
用于在所述指示所述多个虚拟核上的工作负荷的并行程度的值小于或等于所述第一休眠条件时确定满足所述第一休眠条件的第二持续时间的装置。
15.根据权利要求14所述的无线装置,其进一步包括:
用于确定满足所述第一休眠条件的所述第二持续时间是否等于第一确认休眠条件的装置。
16.根据权利要求15所述的无线装置,其进一步包括:
用于在满足所述第一休眠条件的所述第二持续时间等于所述第一确认休眠条件时将所述第一物理核掉电的装置。
17.一种无线装置,其包括:
处理器,其中所述处理器可操作以:
在所述无线装置中的多核中央处理单元CPU的至少一个物理核上执行多个虚拟核;
在所述多个虚拟核的至少一者中执行一个或一个以上任务、一个或一个以上线程或其组合;
接收指示所述多个虚拟核上的工作负荷的并行程度的值,其中指示所述并行程度的值包括所述多核CPU操作系统OS的准备运行队列中的任务及线程的总数目;
确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否大于或等于第一唤醒条件;及
至少部分基于所述多个虚拟核上的工作负荷的所述并行程度来控制所述多核CPU内的功率。
18.根据权利要求17所述的无线装置,其中所述指示所述并行程度的值进一步包括在所述多个虚拟核上运行的任务及线程的总数目。
19.根据权利要求17所述的无线装置,其中所述处理器进一步可操作以:
在所述指示所述多个虚拟核上的工作负荷的并行程度的值大于或等于所述第一唤醒条件时,确定满足所述第一唤醒条件的持续时间;以及
确定所述持续时间是否等于第一确认唤醒条件。
20.根据权利要求19所述的无线装置,其中所述处理器进一步可操作以:
在所述持续时间等于所述第一确认唤醒条件时,将第一物理核上电;以及
在第零物理核和所述第一物理核处以物理方式执行一个或一个以上任务、一个或一个以上线程或其组合。
21.根据权利要求20所述的无线装置,其中所述处理器进一步可操作以:
确定所述指示所述多个虚拟核上的工作负荷的并行程度的值是否小于或等于第一休眠条件。
22.根据权利要求21所述的无线装置,其中所述处理器进一步可操作以:
在所述指示所述多个虚拟核上的工作负荷的并行程度的值小于或等于所述第一休眠条件时,确定满足所述第一休眠条件的第二持续时间。
23.根据权利要求22所述的无线装置,其中所述处理器进一步可操作以:
确定满足所述第一休眠条件的所述第二持续时间是否等于第一确认休眠条件。
24.根据权利要求23所述的无线装置,其中所述处理器进一步可操作以:
在满足所述第一休眠条件的所述第二持续时间等于所述第一确认休眠条件时,将所述第一物理核掉电。
CN201080056512.XA 2009-12-16 2010-12-08 用于在虚拟化系统中控制中央处理单元功率的系统和方法 Active CN102695998B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US28696009P 2009-12-16 2009-12-16
US61/286,960 2009-12-16
US12/944,202 2010-11-11
US12/944,202 US8650426B2 (en) 2009-12-16 2010-11-11 System and method for controlling central processing unit power in a virtualized system
PCT/US2010/059538 WO2011084329A1 (en) 2009-12-16 2010-12-08 System and method for controlling central processing unit power in a virtualized system

Publications (2)

Publication Number Publication Date
CN102695998A CN102695998A (zh) 2012-09-26
CN102695998B true CN102695998B (zh) 2015-05-20

Family

ID=44144256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080056512.XA Active CN102695998B (zh) 2009-12-16 2010-12-08 用于在虚拟化系统中控制中央处理单元功率的系统和方法

Country Status (7)

Country Link
US (1) US8650426B2 (zh)
EP (1) EP2513751B1 (zh)
JP (1) JP5472886B2 (zh)
KR (2) KR101503579B1 (zh)
CN (1) CN102695998B (zh)
BR (1) BR112012014303A2 (zh)
WO (1) WO2011084329A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US9563250B2 (en) 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8909962B2 (en) * 2009-12-16 2014-12-09 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
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
JP5767480B2 (ja) * 2011-01-31 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、情報処理システム、配置構成決定方法、プログラムおよび記録媒体
US9354926B2 (en) * 2011-03-22 2016-05-31 International Business Machines Corporation Processor management via thread status
US9804893B2 (en) 2011-04-08 2017-10-31 Qualcomm Incorporated Method and apparatus for optimized execution using resource utilization maps
US10466989B2 (en) 2011-09-02 2019-11-05 Microsoft Technology Licensing, Llc. Fast presentation of markup content having script code
TWI454905B (zh) * 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
KR20130101693A (ko) * 2012-03-06 2013-09-16 삼성전자주식회사 이종의 운영체제를 사용하는 가상화 시스템의 전력 관리 방법 및 장치
WO2013178864A1 (en) * 2012-05-29 2013-12-05 Nokia Corporation A method and apparatus for deferring processor selection
US9552046B2 (en) * 2012-09-21 2017-01-24 Htc Corporation Performance management methods for electronic devices with multiple central processing units
CN102929381B (zh) * 2012-10-22 2015-08-05 威盛电子股份有限公司 电子系统及其电源管理方法
US10162687B2 (en) 2012-12-28 2018-12-25 Intel Corporation Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets
US9933832B2 (en) * 2013-03-14 2018-04-03 Vmware, Inc. Systems and methods for modifying power states in a virtual environment
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US9727345B2 (en) * 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
JPWO2015015756A1 (ja) * 2013-08-02 2017-03-02 日本電気株式会社 不揮発性メモリ搭載サーバの省電力制御システム、制御装置、制御方法および制御プログラム
KR102169692B1 (ko) 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
US9696787B2 (en) * 2014-12-10 2017-07-04 Qualcomm Innovation Center, Inc. Dynamic control of processors to reduce thermal and power costs
CN105094945A (zh) * 2015-07-01 2015-11-25 北京奇虎科技有限公司 虚拟化平台线程控制方法、设备和系统
US9740266B2 (en) * 2015-09-04 2017-08-22 Mediatek Inc. Apparatus and method for controlling multi-core of electronic device
US10481876B2 (en) 2017-01-11 2019-11-19 Microsoft Technology Licensing, Llc Methods and systems for application rendering
US11294678B2 (en) 2018-05-29 2022-04-05 Advanced Micro Devices, Inc. Scheduler queue assignment
US11347544B1 (en) * 2019-09-26 2022-05-31 Facebook Technologies, Llc. Scheduling work items based on declarative constraints
CN112783713A (zh) * 2019-11-08 2021-05-11 深信服科技股份有限公司 一种多核虚拟机卡顿的处理方法、装置、设备和存储介质
US11334384B2 (en) * 2019-12-10 2022-05-17 Advanced Micro Devices, Inc. Scheduler queue assignment burst mode
US11948000B2 (en) 2020-10-27 2024-04-02 Advanced Micro Devices, Inc. Gang scheduling for low-latency task synchronization
CN113282344B (zh) * 2021-05-25 2022-11-04 中国航空无线电电子研究所 在飞腾非对称双核处理器上实现天脉操作系统的方法
CN115145687B (zh) * 2022-06-29 2023-03-31 科东(广州)软件科技有限公司 一种用户态虚拟机任务的调度方法及装置
CN115756143B (zh) * 2022-11-30 2024-03-12 深圳市领创星通科技有限公司 数据包处理的节能方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076770A (zh) * 2004-09-28 2007-11-21 英特尔公司 根据可用并行数目改变每条指令能量的方法和设备

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US106576A (en) * 1870-08-23 Improvement in washing-machines
US76733A (en) * 1868-04-14 The worftjs peters co
US122101A (en) * 1871-12-26 Improvement in apparatus for preparing salt for culinary use
US37922A (en) * 1863-03-17 Improved foot corn-planter
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 情報処理装置
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
US6086171A (en) * 1999-02-11 2000-07-11 Ashley; Cynthia H. Carousel shoe cabinet
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
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
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
US6901522B2 (en) 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
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
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
US6978389B2 (en) 2001-12-20 2005-12-20 Texas Instruments Incorporated Variable clocking in an embedded symmetric multiprocessor system
US7240223B2 (en) 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
US7134031B2 (en) 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
JP4549652B2 (ja) 2003-10-27 2010-09-22 パナソニック株式会社 プロセッサシステム
US7107187B1 (en) * 2003-11-12 2006-09-12 Sprint Communications Company L.P. Method for modeling system performance
US7133806B2 (en) 2004-05-13 2006-11-07 Ittiam Systems (P) Ltd Method and apparatus for measurement of processor-utilization
US7219245B1 (en) 2004-06-03 2007-05-15 Advanced Micro Devices, Inc. Adaptive CPU clock management
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
KR100716730B1 (ko) 2004-06-11 2007-05-14 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
US7739527B2 (en) * 2004-08-11 2010-06-15 Intel Corporation System and method to enable processor management policy in a multi-processor environment
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
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
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
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
DE102004059996B4 (de) * 2004-12-13 2006-10-05 Infineon Technologies Ag Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors
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
JP4082706B2 (ja) 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
WO2007007300A2 (en) 2005-07-14 2007-01-18 Nxp B.V. Using historic load profiles to dynamically adjust operating frequency and available power to a handheld multimedia device processor core
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
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
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
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
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 パナソニック株式会社 プロセッサシステム
WO2008047179A1 (en) 2006-10-20 2008-04-24 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
JP2008129846A (ja) 2006-11-21 2008-06-05 Nippon Telegr & Teleph Corp <Ntt> データ処理装置、データ処理方法およびプログラム
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
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
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
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
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
US9104411B2 (en) * 2009-12-16 2015-08-11 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
US9176572B2 (en) * 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076770A (zh) * 2004-09-28 2007-11-21 英特尔公司 根据可用并行数目改变每条指令能量的方法和设备

Also Published As

Publication number Publication date
WO2011084329A1 (en) 2011-07-14
BR112012014303A2 (pt) 2016-07-05
EP2513751A1 (en) 2012-10-24
EP2513751B1 (en) 2018-05-09
KR20140069252A (ko) 2014-06-09
US20110145616A1 (en) 2011-06-16
US8650426B2 (en) 2014-02-11
JP2013513189A (ja) 2013-04-18
CN102695998A (zh) 2012-09-26
KR20120104380A (ko) 2012-09-20
KR101503579B1 (ko) 2015-03-17
JP5472886B2 (ja) 2014-04-16

Similar Documents

Publication Publication Date Title
CN102695998B (zh) 用于在虚拟化系统中控制中央处理单元功率的系统和方法
CN102656539B (zh) 用于基于所推断的工作负载并行性控制中央处理单元功率的系统和方法
CN102652296B (zh) 用于基于温度动态地控制多核中央处理单元中的多个核的系统和方法
CN102687098B (zh) 用于无线设备的基于工作负载的功率管理的动态时钟及电压缩放的系统和方法
US8977880B2 (en) Method for managing power supply of multi-core processor system involves powering off main and slave cores when master bus is in idle state
US8082459B2 (en) Power management based on policy
KR101562448B1 (ko) 휴대용 컴퓨팅 디바이스의 멀티코어 프로세서에서 다수의 코어들로의 전력을 동적으로 제어하는 방법 및 시스템
EP2656170B1 (en) Minimizing resource latency between processor application states in a portable computing device by scheduling resource set transitions
CN102687096B (zh) 用于异步地并独立地控制多核中央处理单元中的核时钟的系统和方法
US20150277530A1 (en) Dynamic power supply unit rail switching
CN104969142A (zh) 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法
KR20080079276A (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
TW201205441A (en) Multi-CPU domain mobile electronic device and operation method thereof
CN103140831A (zh) 在处理器处执行线程的系统和方法
CN111625080B (zh) 一种服务器节能方法、装置及电子设备和存储介质
US9110723B2 (en) Multi-core binary translation task processing
WO2012087533A1 (en) Minimizing resource latency between processor application states in a portable computing device by using a next-active state set
US10275007B2 (en) Performance management for a multiple-CPU platform
US20160147577A1 (en) System and method for adaptive thread control in a portable computing device (pcd)
CN104756043B (zh) 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法
CN101866212A (zh) 一种多模式电源管理装置及管理方法
CN112114651B (zh) 处理器簇的节电方法及装置、芯片、设备、存储介质
CN105224060B (zh) 一种计算机运行控制方法、装置、电路及计算机
Kim et al. Display power management that detects user intent

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