首页> 中国专利> 用于基于所推断的工作负载并行性控制中央处理单元功率的系统和方法

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

摘要

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

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-09

    授权

    授权

  • 2012-10-31

    实质审查的生效 IPC(主分类):G06F1/32 申请日:20101124

    实质审查的生效

  • 2012-09-05

    公开

    公开

说明书

相关申请案

本申请案主张2009年12月16日申请的标题为“动态地控制多核中央处理单元中 的多个核的系统和方法(SYSTEM AND METHOD OF DYNAMICALLY CONTROLLING A 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)编码器)耦合到多核CPU 324。此外,视频放大器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)、软性磁盘和蓝光光盘,其中磁盘通常以 磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述内容的组合也应包含于 计算机可读媒体的范围内。

尽管已详细说明和描述选定方面,但将了解,可在不脱离如所附权利要求书界定的 本发明的精神和范围的情况下在其中作出各种替代和更改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号