首页> 中国专利> 用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统

用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统

摘要

本发明描述一种用于动态地确定工作负载并行性程度且自动地调整便携式计算装置中支持工作负载的核心(和/或处理器)的数目的方法和系统。所述方法和系统包含并行性监视器模块,其监视操作系统调度器的活动以及多核心处理器和/或多个中央处理单元“CPU”的一个或一个以上工作队列。所述并行性监视器可基于所述多核心处理器或多个处理器的当前操作模式而计算并行工作百分比。此并行工作百分比随后被传递到多处理器决策算法模块。所述多处理器决策算法模块基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器(或多个处理器)的所述当前操作模式。

著录项

  • 公开/公告号CN103502946A

    专利类型发明专利

  • 公开/公告日2014-01-08

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201280021937.6

  • 申请日2012-04-03

  • 分类号G06F9/50(20060101);G06F11/34(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 21:36:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-02-12

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20120403

    实质审查的生效

  • 2014-01-08

    公开

    公开

说明书

技术领域

背景技术

便携式计算装置(“PCD”)在个人和专业水平上正在变为人们必不可少的。这些装 置可包含蜂窝式电话、便携式/个人数字助理(“PDA”)、便携式游戏控制台、便携式导 航单元、掌上型计算机以及其它便携式电子装置。

这些PCD可具有多个中央处理单元(“CPU”)以及多核心CPU以执行多种软件应 用程序模块。大多数PCD对称地对其CPU进行供电。每一PCD还通常针对单线程软件 应用程序模块来设计,而没有在多个CPU或多核心CPU上分布单线程工作负载的任何 考虑。关于PCD中的CPU的此对称供电以及对单线程工作负载的个别化支持,由于从 空闲CPU的泄漏或核心未经计时而引起所述核心不工作,PCD通常发生浪费的电力消 耗。

与单线程工作负载相反的是多线程工作负载,多线程工作负载可能需要来自多个 CPU或多核心CPU的并行处理。虽然一些多线程工作负载可能能够向操作系统传达支 持特定软件应用程序模块所需的理想数目的多个CPU是可行的,但当PCD需要执行多 个软件应用程序模块、其中每一模块具有其自己的多线程工作负载时,此信息可能只有 极少价值或没有价值。

因此,此项技术中需要的是用于控制到PCD的多核心处理器中的多个核心的电力 的方法和系统。特定来说,此项技术中需要可动态地确定一个或一个以上软件应用程序 模块的工作负载并行性程度且自动地调整支持所述一个或一个以上软件应用程序模块 的工作负载的核心数目的方法和系统。

发明内容

本发明描述一种用于动态地确定工作负载并行性程度且自动地调整便携式计算装 置中支持工作负载的核心(和/或处理器)数目的方法和系统。所述方法和系统包含并行性 监视器模块,其接收来自操作系统调度器的活动数据以及多核心处理器和/或多个中央处 理单元(“CPU”)的一个或一个以上工作队列。所述并行性监视器可基于所述多核心处 理器或多个处理器的当前操作模式而计算并行工作百分比。此并行工作百分比随后传递 到多处理器决策算法模块。所述多处理器决策算法模块基于所述计算的并行工作百分比 而确定是否应改变所述多核心处理器(或多个处理器)的所述当前操作模式。

附图说明

在图中,在全部各图中相同参考标号指代相同部分,除非另外指示。对于带有例如 “102A”或“102B”等字母符号表示的参考标号,字母符号表示可区分同一图中存在的 两个相似部分或元件。当既定一参考标号涵盖在所有图中具有相同参考标号的所有部分 时可省略用于参考标号的字母符号表示。

图1是说明具有结合多处理器决策算法模块而工作的并行性监视器的便携式计算装 置(PCD)的实施例的功能框图;

图2是说明用于动态地控制多个CPU和/或多核心CPU的系统的元件之间的通信流 的功能框图;

图3A是针对第一工作负载情形随着时间绘制的指派给CPU和/或多核心CPU的核 心的工作任务的曲线图;

图3B是针对第二工作负载情形随着时间绘制的指派给CPU和/或多核心CPU的核 心的工作任务的曲线图;

图4是随着时间绘制的示范性工作负载的并行工作百分比的曲线图;

图5是说明用于动态地控制多个CPU和/或多核心CPU的示范性方法的逻辑流程图;

图6是说明用于计算多个CPU和/或多核心CPU的核心之间的并行工作百分比的示 范性子方法或例程的逻辑流程图;

图7是说明图1的便携式计算装置的特征的示意图;以及

图8A和8B包含说明使用情况的实施例的示意图。

具体实施方式

词语“示范性”在本文中用以表示“充当实例、例子或说明”。本文描述为“示范 性”的任何方面不一定解释为比其它方面优选或有利。

在本描述中,术语“应用程序”也可包含具有可执行内容的文件,例如:目标代码、 脚本、字节代码、标记语言文件和补丁程序。另外,本文提到的“应用程序”也可包含 本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。

术语“内容”也可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、 标记语言文件和补丁程序。另外,本文提到的“内容”也可包含本质上不可执行的文件, 例如可能需要打开的文档或需要存取的其它数据文件。

如本描述中使用,术语“组件”、“数据库”、“模块”、“系统”和类似术语既定指代 计算机相关实体,其为硬件、固件、硬件与软件的组合、软件或执行中的软件。举例来 说,组件可为(但不限于)在处理器上运行的进程、处理器、对象、可执行程序、执行线 程、程序和/或计算机。借助于说明,在计算装置上运行的应用程序和计算装置两者可为 组件。一个或一个以上组件可驻留于进程和/或执行线程内,且组件可局部化于一个计算 机上和/或分布于两个或两个以上计算机之间。另外,这些组件可从其上存储有各种数据 结构的各种计算机可读媒体执行。组件可例如根据具有一个或一个以上数据包的信号(例 如来自与本地系统、分布式系统中的另一组件交互和/或跨越例如因特网等网络借助于所 述信号与其它系统交互的一个组件的数据),借助于本地和/或远程进程来通信。

在本描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”和“无 线手持机”可互换使用。随着第三代(“3G”)和第四代(“4G”)无线技术的出现,较大 的带宽可用性已实现了具有更多种无线能力的更便携的计算装置。

在本描述中,术语“便携式计算装置”(“PCD”)用以描述基于例如电池等有限容 量电力供应器而操作的任何装置。虽然以电池操作的PCD已使用数十年,但与第三代 (“3G”)和第四代(“4G”)无线技术的出现相关的可再充电电池的技术进步已实现了许 多具有多种能力的PCD。因此,PCD可为蜂窝式电话、卫星电话、寻呼机、个人数字助 理(“PDA”)、智能电话、导航装置、智能本或阅读器、媒体播放器、上述装置的组合、 以及具有无线连接的膝上型计算机等等。

用于动态地控制多个CPU110和/或多核心CPU110的核心的PCD100的元件

参见图1,此图是呈无线电话的形式的PCD100的示范性非限制性方面的功能框图, 所述无线电话用于实施用于动态地控制多个中央处理单元(“CPU”)110和/或多核心CPU 110的方法和系统。如图1中说明,PCD100可包括多核心CPU110和模拟信号处理器 126。这些处理器110和126可耦合在一起。

CPU110可包括第0核心222、第1核心224和第N核心226,如所属领域的技术 人员所了解。在替代实施例中,替代于使用CPU110,也可采用一个或一个以上数字信 号处理器(“DSP”),如所属领域的技术人员所了解。CPU110可耦合到性能监视器模 块114。性能监视器模块114可根据如下文将结合图7更详细描述的动态电压和频率按 比例缩放(“DVFS”)算法来按比例缩放相应处理器核心222、224、226的性能。

PCD100可包括并行性监视器模块120和多处理器决策算法模块125。所属领域的 技术人员将认识到,每一模块120或125可包括一个或一个以上软件模块,其在不脱离 本发明的情况下可划分为各种部分且由不同处理器110、126执行。或者,每一模块120 或125可经组织为单个元件且由单个处理器110或126执行,如图1说明。

每一模块120或125可包括由CPU110执行以用于监视和控制多个CPU110和/或 多核心CPU110的核心222、224、226的工作流的软件。然而,每一模块120或125还 可由硬件和/或固件形成,如所属领域的技术人员所了解。

结合多处理器解码算法模块125工作的并行性监视器模块120可确定何时应将消息 发送到CPU功率控制器130以便对特定核心222、224、226或处理器126进行加电。 并行性监视器模块120监视游程队列115是否有并行工作,且将其关于并行工作的观察 结果传递到多核心处理器解码算法模块125。多核心解码算法模块125确定在存在并行 工作时应何时对一个或一个以上核心222、224、226或处理器126进行加电以及在不存 在并行工作时应何时对一个或一个以上核心222、224、226或处理器126进行断电。

多核心CPU110与O/S调度器模块105、一个或一个以上游程队列115、并行性监 视器模块120和多处理器决策算法模块125通信和/或可执行O/S调度器模块105、一个 或一个以上游程队列115、并行性监视器模块120和多处理器决策算法模块125。多核 心CPU110还耦合到存储器112中的多核心CPU功率控制器130。多核心CPU功率控 制器130可负责控制到多核心CPU110的核心222、224和226的电力。存储器112可 包括易失性和/或非易失性存储装置。存储器112可包含(但不限于)任一类型的计算机可 读媒体,例如随机存取存储器(“RAM”)、动态随机存取存储器(“DRAM”)、电可擦 除可编程只读存储器(“EEPROM”)和类似存储器。存储器112可在执行之前存储例如 一个或一个以上应用程序模块119、O/S调度器模块105、并行性监视器模块120和多处 理器决策算法模块125等程序模块(当这些模块体现为软件时),如所属领域的技术人员 所了解。

图1:PCD100的其它元件

如图1中说明,显示器控制器128和触摸屏控制器130耦合到CPU110。在芯片上 系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。

图1是说明视频译码器/解码器(“codec”)134的示意图,例如,逐行倒相(“PAL”) 编码器、顺序彩色与存储(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器 或耦合到多核心中央处理单元(“CPU”)110A的任一其它类型的视频编码器134。视频 放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大 器136。如图1中描绘,通用串行总线(“USB”)控制器140耦合到CPU110。而且, USB端口142耦合到USB控制器140。订户身份模块(SIM)卡146也可耦合到CPU110。 此外,如图1所示,数码相机148可耦合到CPU110。在示范性方面中,数码相机148 是电荷耦合装置(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。

如图1中进一步说明,立体声音频CODEC150可耦合到模拟信号处理器126。而且, 音频放大器152可耦合到立体声音频CODEC150。在示范性方面中,第一立体声扬声器 154和第二立体声扬声器156耦合到音频放大器152。图1展示麦克风放大器158也可 耦合到立体声音频CODEC150。另外,麦克风160可耦合到麦克风放大器158。在特定 方面中,调频(“FM”)无线电调谐器162可耦合到立体声音频CODEC150。而且,FM 天线164耦合到FM无线电调谐器162。此外,立体声头戴受话器166可耦合到立体声 音频CODEC150。

图1进一步指示,射频(“RF”)收发器168可耦合到模拟信号处理器126。RF开关 170可耦合到RF收发器168和RF天线172。如图1中所示,小键盘174可耦合到模拟 信号处理器126。而且,具有麦克风的单声道头戴式耳机176可耦合到模拟信号处理器 126。此外,振动器装置178可耦合到模拟信号处理器126。图1还展示电力供应器180 (例如电池)耦合到芯片上系统102。在特定方面中,电力供应器180包含可再充电DC电 池或从连接到AC电源的交流(“AC”)/DC变压器得出的DC电力供应器。

如图1中描绘,触摸屏显示器132、视频端口138、USB端口142、相机148、第一 立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声头戴受 话器166、RF开关170、RF天线172、小键盘174、单声道头戴式耳机176、振动器178、 热传感器157B以及电力供应器180在芯片上系统322的外部。

图2是说明用于动态地控制多个CPU110和/或多核心CPU110的系统101的元件 之间的通信流的功能框图。在系统101中,O/S调度器模块105耦合到一个或一个以上 游程队列115和并行性监视器模块120。虽然针对一个或一个以上游程队列115说明单 个功能块,但所属领域的技术人员认识到,可为系统101正管理的多核心CPU110的每 一核心222、224、226或多个CPU110中的每一CPU110提供单独的游程队列115。

一个或一个以上游程队列115将工作任务馈送到多核心CPU110的每一核心222、 224、226中,如图2中说明。或者,游程队列115可将工作任务馈送到多个CPU110 中的每一CPU110。

并行性监视器模块120耦合到游程队列115、O/S调度器105以及多处理器决策算 法模块125。虽然将并行性监视器模块120说明为相对于多处理器决策算法模块125的 单独模块,但这两个模块120、125可形成为单个单一模块,如所属领域的技术人员所 了解。

多处理器决策算法模块125耦合到并行性监视器模块120和CPU功率控制器130。 多处理器决策算法模块125从并行性监视器模块120接收数据且基于此数据做出决策。 多处理器决策算法模块125做出的决策的结果作为消息被发射到CPU功率控制器130, 如下文将更详细描述。

O/S调度器模块105可体现为软件。O/S调度器模块105可负责调度从由多核心CPU 110或处理器126执行的一个或一个以上应用程序119接收的工作任务。应用程序119 可包含(但不限于)无线电话呼叫应用程序、全球定位卫星(“GPS”)应用程序、电子邮件 应用程序、日历应用程序、文字处理应用程序、电子数据表应用程序、支持音频和/或视 频的娱乐应用程序等等。

工作任务可包含来自应用程序119的请求。举例来说,用于娱乐的应用程序119可 请求O/S调度器模块105在PCD100的显示器132上显示用于视频的多个帧。O/S调度 器模块105可在多核心CPU110的核心222、224、226上指派和分布这些视频工作任务。 O/S调度器模块105可指派每一工作任务且将具有相应核心指派的工作任务放置于游程 队列115中。游程队列115可体现为软件和/或硬件,如所属领域的技术人员所了解。游 程队列115可保持所指派的工作任务和/或线程,直到特定CPU和/或多核心CPU110的 核心准备好处理工作任务为止。

并行性监视器120负责跟踪正由O/S调度器模块105管理的工作任务。并行性监视 器120与游程队列115通信。并行性监视器模块120可体现为软件。或者,并行性监视 器模块120可体现为硬件,如所属领域的技术人员所了解。

并行性监视器模块120确定在多个CPU110和/或多核心CPU110的核心222、224、 226上指派和分布的并行工作的量。并行性监视器模块120通常通过对从游程队列115 取得的数据进行取样来确定并行工作的量。并行性监视器模块120对来自游程队列115 的数据进行取样的频率可按需要改变或修改。取样频率可基于工作量来调整。

举例来说,当CPU110正在执行多个应用程序119时,可增加取样频率,因为可能 在游程队列115中将产生和放置增加数目的工作任务。因此,当应用程序的数目相对小 时,例如大约两个程序或更少,则可向下或以减少的方式调整并行性监视器模块120的 取样频率。

并行性监视器模块120可从O/S调度器105接收回呼。这些回呼可在每当从用于核 心222、224和226的游程队列115中的任一者添加或移除新任务时发生。在每一回呼 处,并行性监视器120可更新其在游程队列115中的任务的局部计数。以周期性为基础, 例如大约每二十毫秒,并行性监视器模块120可将其瞬时读数累加为在其取样周期期间 在核心222、224、226上并行执行的工作的运行百分比。

驻留在由并行性监视器模块120取样的游程队列115中的数据可包含由O/S调度器 105在给定时刻正指派的任务的总数目。并行性监视器模块120使用样本数据来计算并 行工作的百分比。下文将结合图3A到3B更详细描述并行工作的此百分比。并行工作百 分比参数从并行性监视器模块120传递到多处理器决策算法模块125。

多处理器决策算法模块125可包括软件或硬件或两者。根据一个示范性实施例,多 处理器决策算法模块125可包括软件。多处理器决策算法模块125基于其从并行性监视 器模块120接收的运行工作百分比而确定多少核心222、224、226应被供电或“在作用 中”。

多处理器决策算法模块125可通过使用包含阈值的各种参数来做出其关于应对哪些 核心222、224、226供电的决策。这些参数可基于在对核心222、224、226进行加电/ 断电时涉及的开销中特定便携式计算装置100的功率消耗特性来导出。示范性参数包含 (但不限于):并行工作的唤醒百分比(“Pw”),其为用于激活一个或一个以上核心222、 224、226的并行执行的工作百分比的阈值;唤醒持续时间(“Tw”),其为在一个或一个 以上额外核心222、224、226经加电之前对于在持续时间Tw期间取得的某一数目的样 本已实现或超过Pw阈值的时间量的阈值;休眠百分比(“Ps”),其为用于减活一个或 一个以上核心222、224、226的已实现或低于此阈值而存在的并行执行的工作百分比的 阈值,以及休眠持续时间(“Ts”),其为在一个或一个以上核心222、224、226经断电 之前针对在持续时间Ts期间取得的某一数目的样本Ps阈值经维持或下落到低于此阈值 的时间量的阈值。

形成由多处理器决策算法模块125做出的决策的参数之间的示范性关系包含:如果 并行性监视器模块120检测到的并行工作的当前运行百分比大于Pw阈值,以及如果针 对大于Tw阈值的持续时间已检测到此运行百分比,那么多处理器决策算法模块125可 向功率控制器130发出命令以接通一个或一个以上额外核心222、224、226以管理当前 并行工作负载。在并行核心222、224、226正在同时处理工作任务的情形中,且如果并 行性监视器模块120检测到的并行工作的当前运行百分比小于或等于Ps参数且如果针 对大于或等于Ts阈值的持续时间已检测到此运行百分比,那么多处理器决策算法模块 125可向功率控制器130发出命令以断开一个或一个以上核心222、224、226。

如上所述,CPU功率控制器130从多处理器决策算法模块125接收用于对一个或一 个以上核心222、224、226或其它CPU110进行加电和断电的消息。CPU功率控制器 130通常以硬件体现以用于控制到一个或一个以上核心222、224、226或其它CPU110 的电力。当CPU功率控制器130断开核心222、224或226或另一CPU110时,此“断 开”状态可包括低功率状态,如所属领域的技术人员所了解。在其它实例中,此“断开” 状态也可包括完全无电力。

图3A是针对第一工作负载情形随着时间绘制的指派给CPU110和/或多核心CPU 110的核心222、224或226的工作任务的曲线图300A。数据绘制曲线图300A包含来自 由O/S调度器105管理且指派给游程队列115的应用程序模块119的工作任务。在Y轴 上绘制工作任务的数目,而沿着X轴绘制以毫秒表示的时间。图3A中的此数据包含三 个百分比样本周期311A、311B、311C,其各自具有在具有60毫秒的长度的唤醒持续时 间“Tw”期间取得的20毫秒的长度。在特定百分比样本周期311上监视工作任务的总 数目的频率可包括约两毫秒,使得在约20毫秒的给定百分比样本周期311上可取得10 个工作读数。

Tw唤醒持续时间的长度、每一百分比样本周期311的大小、在百分比样本周期311 期间取得样本的频率可变化且在本发明的范围内,如所属领域的技术人员所了解。

针对给定百分比样本周期的并行工作百分比(Pw或Ps)由以下等式决定:

等式1:P%=并行工作的实例数/针对给定样本周期的样本数目

将并行工作界定为其中工作任务数目允许使用两个或两个以上核心222、224、226 或者两个或两个以上CPU110的阈值。这意味着通常每当工作任务数目大于1时,则并 行工作存在,其中可激活多核心CPU110的两个或两个以上核心222、224、226或者两 个或两个以上CPU110以支持当前数目的并行工作任务。

举例来说,在图3A中说明的示范性工作情形中,第一百分比样本周期311A中的第 一数据点反映0个工作任务,其也等于0个并行工作。参见第一表305A,第一列。第 一百分比样本周期311中的第二数据点反映一个工作任务的值,其小于用于指示并行工 作的存在的两个工作任务的阈值。因此,在第一表305A的第二列中针对第一百分比样 本周期311A的第二数据点存在0值或无并行工作。同理适用于第一百分比样本周期 311A的第三数据点,其具有一个工作任务和如第一表305A的第三列反映的0并行工作 的对应值。

然而,用于第一百分比样本周期311的第四和第五数据点反映针对每一数据点的至 少两个工作任务,其转换为并行工作的存在。参见第一表305A,第四和第五列。

针对第一百分比样本周期311A的并行工作的百分比(用于唤醒核心222、224、226 或额外CPU110)是60%,其基于在第一百分比样本周期311A期间取得的总共10个样 本中6个计数的并行工作。类似地,针对第二百分比样本周期311B的并行工作百分比 是30%,而针对第三百分比样本周期311C的并行工作百分比是80%,如第二表305B 和第三表305C分别反映。

为在唤醒持续时间Tw内发生每一百分比取样周期311的频率、在特定百分比取样 周期311期间取得的数据点的频率和数目,以及取样持续时间Tw的长度选择适当量值 的重要性对于所属领域的技术人员基于在第一曲线图300A中反映的若干数据点是明显 的。

举例来说,第一曲线图300A的第一区303A反映第一百分比样本周期311A的第五 与第六数据点之间的工作任务下降。由于在第一百分比取样周期311期间取得的数据点 的频率在此实例中是针对约2毫秒而设定,因此在第一区303A处在第五与第六数据点 之间的此工作任务下降未被检测到。未被检测到的此工作任务下降不太显著,因为百分 比样本周期311A的大小经适当确定以俘获正由系统101管理的大量工作活动。即使在 第一百分比样本周期311期间检测到第一曲线图300A的区303A中发生的此工作下降, 则其对所计算的并行工作百分比的影响也将极小,因为第一百分比样本周期311A的长 度俘获了在第一百分比样本周期311A上处理的大部分工作。

如先前所述,并行工作百分比参数(Pw和Ps)由并行性监视器模块120计算且传输 到多处理器决策算法模块125。多处理器决策算法125可具有阈值,可针对并行工作百 分比参数(Ps)设定所述阈值以用于“断开”且针对并行工作百分比参数(Pw)设定所述阈 值以用于“接通”多核心CPU110的一个或一个以上额外核心222、224和226或额外 CPU110。用于并行工作百分比参数(Pw和Ps)的阈值可以经验方式确定且更新,使得当 为并行工作激活多核心和/或额外CPU110时实现约5%或更少的性能差异,如所属领域 的技术人员所了解。

举例来说,可通过使用此标准5%性能量度来确定用于唤醒并行工作百分比参数Pw 的阈值。举例来说,假设设定数目的工作任务通常花费近似100毫秒来由单个处理器110 完成。随后,应计算用于“接通”一个或一个以上额外核心222、224和226或额外CPU 110的Pw参数,使得当在多核心CPU110的两个或两个以上核心222、224、226之间 或在两个或两个以上CPU110之间划分工作时不超过105毫秒的最大值。所属领域的技 术人员认识到,5毫秒近似为100毫秒的5%。

作为另一实例,如先前所述,用于唤醒并行工作百分比参数Pw的阈值通常在PCD 100的操作之前离线地设定或建立。如果用于唤醒并行工作百分比参数Pw的阈值设定 为等于近似百分之五十五(55%),那么这将意味着并行性监视器模块120将需要针对在 唤醒Tw持续时间期间取得的某一连续数目的百分比样本检测此量或更多的并行工作。

在图3A中说明的示范性情形中,唤醒持续时间Tw设定为60毫秒,而百分比样本 的数目设定为每20毫秒发生。这意味着针对每一60毫秒的唤醒持续时间的至少三个连 续样本必须满足Pw的55%值。

在图3A的示范性实施例中,仅第一百分比样本311A和第三百分比样本311C超过 55%的唤醒并行工作百分比Pw值。第二百分比样本是30%,其低于55%的阈值Pw。由 于在311A、311B和311C的三个连续百分比样本上未实现Pw,因此多处理器决策算法 模块125将不向CPU功率控制器130发出任何命令。

然而,如果Pw阈值是针对55%设定且百分比样本长度设定为等于唤醒持续时间Tw 以使得仅每60毫秒取得并行工作百分比(意味着针对每一持续时间Tw仅取得一个样 本),那么将满足Pw阈值。在此情形中将满足Pw阈值,因为针对60毫秒窗口的单个并 行工作百分比值将等于约56.6%(17个并行工作实例除以30个读数)。在此情形中多处理 器决策算法模块125将发出含有用于CPU功率控制器130的命令的消息,以“接通” 多核心CPU110的一个或一个以上额外核心222、224或226或者额外CPU110(未说明)。

图3B是针对第二工作负载情形随着时间绘制的指派给CPU110和/或多核心CPU 110的核心222、224或226的工作任务的曲线图300B。图3B极为类似于图3A,因此, 下文将仅描述这两幅图之间的差异。

根据曲线图300B说明的示范性第二工作负载情形,百分比样本周期311设定为近 似30毫秒的长度,其中近似每2毫秒取得工作量的读数。用于“断开”一个或一个以 上CPU110和/或核心222、224或226的休眠持续时间Ts的长度可针对120毫秒设定。 这意味着在此情形中,如果针对至少四个连续百分比样本周期311实现休眠工作百分比 Pw,那么多处理器决策算法模块125将发出含有使CPU功率控制器130“断开”多核 心CPU110的一个或一个以上核心222、224或226或者额外CPU110(未说明)的命令 的消息。

相对于第一曲线图300A的处理器“唤醒”百分比样本周期311A到311C,第二曲 线图300B的处理器“休眠”百分比样本周期311D到311E近似多10毫秒。当采取用 于关闭一个或一个以上核心222、224、226或额外CPU110的保守方法时,处理器“休 眠”样本周期311D到311E将大体上比“唤醒”百分比样本周期311A到311C长。所 属领域的技术人员认识到,与在较短时间周期中关闭核心222、224、226或额外CPU110 且随后重新启动相同核心222、224、226或CPU110以相对于正在处理的工作任务匹配 当前需求相比,在较长时间周期中保持额外核心222、224、226或额外CPU110“加电” 通常更好。所属领域的技术人员认识到,当与在较长持续时间中使多个装置加电且随后 将其关闭较长持续时间相比,更频繁地接通和断开所述多个装置可消耗更多电力。

作为另一实例,如先前所述,用于休眠并行工作百分比参数Ps的阈值通常在PCD 100的操作之前离线地设定或建立。如果用于休眠并行工作百分比参数Ps的阈值设定为 等于近似35%,那么这将意味着并行性监视器模块120将需要针对某一数目的百分比样 本周期针对给定样本持续时间Ts检测此量或更少的并行工作。百分比样本周期的数目 是基于其大小。

因此,如果用于“断开”一个或一个以上CPU110和/或核心222、224或226的休 眠持续时间Ts的长度是针对具有30毫秒的样本百分比大小的120毫秒来设定,那么将 需要针对至少4个连续样本(4×30=120)满足Ps的阈值。如果针对20毫秒设定样本百 分比大小,那么将需要针对至少6个连续样本(6×20=120)满足Ps的阈值。

在图3B中说明的示范性情形中,第一和第四百分比样本周期311D、311E满足用 于Ps参数的35%阈值。图3B中未说明第二和第三百分比样本周期。对于第一百分比样 本周期311D,并行工作百分比(Ps)具有近似33%的值。对于第四百分比样本周期311E, 并行工作百分比(Ps)具有近似20%的值。

如果假定第二和第三百分比周期311(图3B中未说明)具有小于或等于35%百分比阈 值(Ps)的并行工作百分比值(Ps),那么多处理器决策算法模块125在第四百分比周期311E 之后将发出含有使CPU功率控制器130“断开”(或置于休眠模式)多核心CPU110的一 个或一个以上额外核心222、224或226或额外CPU110(未说明)的命令的消息。

如下文描述的流程图中将概括,多处理器决策算法模块125取决于其当前操作模式 而使用休眠并行工作百分比参数Ps或唤醒并行工作百分比参数Pw。多处理器决策算法 模块125可具有至少两个操作模式:多核心/CPU模式或单核心/CPU模式。唤醒并行工 作百分比参数Pw由多处理器决策算法模块125在其处于其单核心/CPU模式中时使用。 休眠并行工作百分比参数Ps由多处理器决策算法模块125在其处于其多核心/CPU模式 中时使用。

图4是随着时间绘制的示范性工作负载的并行工作百分比的曲线图400。根据示范 性实施例,工作负载包括在用系统101回放电影期间显示的视频帧,所述系统包括PCD 100的多核心CPU110的至少两个核心222、224。

第一条线402表示从单个核心监视的并行工作百分比。第二条线404表示在多核心 系统101的两个核心上监视的并行工作百分比。

根据此示范性实施例,唤醒并行工作百分比参数Pw被设定为等于近似50%。因此, 直到曲线图400上的点405,支持视频回放工作负载的双核心系统101都在单核心模式 中操作。在表示近似50%的工作百分比参数的点405处,与其先前的单核心模式相比, 双核心系统101进入并行工作模式(“双核心模式”)。

根据此示范性环境,多处理器决策算法模块125使用唤醒并行工作百分比参数Pw 监视第一条线402直到点405,所述Pw在此实例中被设定为等于近似50%。从点405 和之后,多处理器决策算法模块125使用休眠并行工作百分比参数Ps监视第二条线404。 休眠并行工作百分比参数Ps可设定为任何值,如所属领域的技术人员所了解。

图5是说明用于动态地控制便携式计算装置100的多个CPU和/或多核心CPU110 的示范性方法500的逻辑流程图。框505包括方法500的第一步骤。在框505中,来自 O/S调度器模块505的数据可由并行性监视器模块120接收。如上所述,当工作任务正 被添加到系统101或从系统101移除时,并行性监视器模块120可接收来自O/S调度器 105的回呼。

接着,在框505中,可用并行性监视器模块120监视系统101的工作队列115。并 行性监视器模块120可在某些预定时间周期(例如如图3A中说明大约每2毫秒)轮询 游程队列115。如果并行性监视器模块120如框505中检测到那样接收到任何回呼,那 么此活动可致使并行性监视器模块120立即轮询其当前工作负载的游程队列115。或者, 可针对每一动作接收不同呼叫,例如当添加任务时或如果从游程队列115移除任务。并 行性监视器模块120可保持在游程队列115中存在的任务的局部计数。

接着,在例程或子方法515中,并行性监视器模块120可计算并行工作百分比。如 先前描述,在此阶段或框515处计算的并行工作百分比(Ps或Pw)取决于系统101的当 前操作模式(是使用持续时间Ts还是持续时间Tw)。在多核心/CPU操作模式中,并行性 监视器模块120在其处于其单核心/CPU模式中时利用具有对应持续时间Tw的唤醒并行 工作百分比参数Pw。具有对应持续时间Ts的休眠并行工作百分比参数Ps由并行性监 视器模块120在系统101处于其多核心/CPU模式中时使用,如上文所述。

举例来说,如果系统101处于单核心(不处于多核心或不处于多处理器)操作模式中, 那么多处理器决策算法模块125将使用对应持续时间Tw监视与唤醒并行工作百分比Pw 相关联的参数。图3A和表305A到305C说明根据一个示范性实施例将如何计算唤醒并 行工作百分比Pw。同时,如果系统101处于多核心/多处理器操作模式中,那么多处理 器决策算法模块125将监视与使用持续时间Ts的休眠并行工作百分比Ps相关联的参数, 如图3B中说明和表305D到305E中计算。在一些示范性实施例中,持续时间Tw和Ts 以及其相应百分比样本311的数目可相等。

接着,在决策框520中,多处理器决策算法模块125确定系统101是否正在多核心 /CPU模式中操作。如果对决策框520的询问为否定,那么沿循“否”分支到决策框525。 如果对决策框520的询问为肯定,那么沿循“是”分支到框540。

在决策框525中,多处理器决策算法模块125通过将并行工作百分比的当前值与针 对具有对应持续时间Tw和设定百分比样本周期大小的唤醒并行工作百分比参数Pw设 定的阈值进行比较,来确定当前单核心/单处理器模式是否应改变为多核心/多处理器模 式。如果对决策框525的询问为否定(意味着针对持续时间Tw的连续数目的百分比样本 周期不满足Pw阈值),那么沿循“否”分支回到例程或子方法515。如果对决策框520 的询问为肯定(意味着针对持续时间Tw的连续数目的百分比样本周期满足或实现了Pw 阈值),那么沿循“是”分支到框530。

在框530中,多处理器决策算法模块125发出命令到CPU功率控制器130以“接 通”一个或一个以上核心222、224、226或处理器110以使得系统101处于多核心/处理 器状态。举例来说,如果检测到如图3A的第一到第三唤醒并行工作百分比周期311A 到311C说明的并行工作状态(假定Tw设定为等于60毫秒且每一百分比周期311A到 311C设定为等于20毫秒),且如果Pw阈值是针对30%或更高而设定,那么将执行框530。

接着,在框535中,多处理器决策算法模块125也可通过CPU功率控制器130或 直接地发出命令到每一核心222、224、226/处理器110以初始化多核心/多处理器模式特 定使用的相应动态电压和频率按比例缩放(“DVFS”)算法。下文将结合图7描述关于 DVFS算法的更多细节。过程或方法500随后继续回到例程或子方法515。

在决策框540中,多处理器决策算法模块125通过将并行工作百分比的当前值与针 对具有对应取样持续时间Ts的休眠并行工作百分比参数Ps设定的阈值进行比较,来确 定当前多核心模式是否应改变为单核心/减少核心模式。如果对决策框540的询问为否 定,那么沿循“否”分支回到例程或子方法515。如果对决策框540的询问为肯定,那 么沿循“是”分支到框545。

在框545中,多处理器决策算法模块125发出命令到CPU功率控制器130以使系 统101从多核心/多处理器状态转变到单核心/减少核心处理器状态。多处理器决策算法 模块125可发出命令到CPU功率控制器130以“断开”或断电一个或一个以上核心222、 224、226或CPU110。如先前所述,此“断开”状态可包括“休眠”状态或低功率状态 而非完全没有电力。举例来说,如果检测到如图3B的第一到第四休眠并行工作百分比 周期311D、311E说明的并行工作状态(假定Ts设定为等于120毫秒的持续时间,且每 一百分比周期311D、311E设定为等于30毫秒),且如果Ps阈值是针对33%或更低而设 定,那么将执行框545。

接着,在框550中,多处理器决策算法模块125可发出命令到其余的作用中单核心 222、224或226或者CPU110以针对单核心/减少处理器操作调整其DVFS算法。下文 将结合图7描述关于DVFS算法的更多细节。方法500随后返回到例程或子方法515。

图6是说明用于计算多个核心222、224、226和/或多个CPU110之间的并行工作 百分比的示范性子方法或例程515的逻辑流程图。框605是子方法或例程515的第一步 骤。在框605中,由并行性监视器模块120计算在选定时间间隔中的任务和/或线程的总 数目。此总数目是基于系统101的当前操作模式。

对于此框605,在系统101的多核心/多处理器操作模式中,并行性监视器模块120 将使用与休眠并行工作百分比Ps相关联的持续时间Ts,如图3B和表305D到305E中 所说明。而系统101的单核心/单处理器操作模式,并行性监视器模块120使用与唤醒工 作百分比参数Pw相关联的持续时间Tw,如图3A和表305A到305C中所说明。每一持 续时间Ts和Tw可具有其基于持续时间的量值而定制的百分比取样周期。举例来说,持 续时间Ts可具有50毫秒的量值。这意味着一个示范性百分比取样周期可包括每10毫 秒取得的百分比读数,其等同于在持续时间Ts上的5个读数。示范性百分比取样周期 可包括每5毫秒取得的百分比读数,其等同于在持续时间Ts上的10个读数。以此类推。

接着,在框610中,并行性监视器模块120可基于系统101的当前操作模式来计算 并行工作百分比。如上文结合框605描述,并行性监视器模块120在此框中可取决于系 统101的当前操作模式来计算唤醒百分比参数Pw或休眠百分比参数Ps,如图3A到3B 中所说明。接着,在框615中,并行性监视器模块120可将Pw或Ps参数存储在表中, 且将此参数传送到多处理器决策算法模块125。子方法或例程515随后返回到图5的决 策框520。

图7是说明图1的PCD100且具体来说在处理器设计中的PCD100的支持动态电压 和频率按比例缩放(“DVFS”)的元件的特征的示意图。DVFS实现功率消耗与性能之间 的折中。经设计以利用DVFS的处理器110允许以对应的电压调整来调整处理器的时钟 频率。单独减少时钟频率不是有用的,因为任何电力节省均被执行时间的增加所抵消, 从而得不到所消耗的总能量的净减少。然而,操作电压的减少导致所消耗电力的成比例 节省。

如图7中所说明,中心处理单元110经由总线211耦合到存储器112。中央处理单 元110是具有N个核心处理器的多核心处理器。也就是说,中央处理单元110包含第一 核心222、第二核心224以及第N核心226。如已知,第一核心222、第二核心224和 第N核心226中的每一者可用于支持专用应用或程序119。或者,可分布一个或一个以 上应用或程序119以用于跨可用核心中的两者或两者以上进行处理。

第一核心222、第二核心224到第N核心226可集成在单个集成电路裸片上,或其 可集成或耦合在多电路封装中的单独裸片上。设计者可经由一个或一个以上共享高速缓 冲存储器耦合第一核心222、第二核心224到第N核心226,且其可经由例如总线、环、 网和纵横拓扑等网络拓扑来实施消息或指令传递。

在所说明的实施例中,RF收发器268是经由数字电路元件实施,且包含至少一个 处理器,例如核心处理器210(标记为“核心”)。在此数字实施方案中,RF收发器268 经由总线213耦合到存储器112。

总线211和总线213中的每一者可包含经由一个或一个以上有线或无线连接的多个 通信路径,如此项技术中已知。总线211和总线213可具有用以实现通信的额外元件, 其为了简明而被省略,例如控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收 器。此外,总线211和总线213可包含用以在上文提到的组件之间实现适当通信的地址、 控制和/或数据连接。

当由PCD100使用的逻辑是以软件实施时,如图7中所示,应注意,启动逻辑250、 管理逻辑260、DVFS接口逻辑270、应用程序存储装置280中的应用程序以及文件系统 290的部分中的一者或一者以上可存储在任何计算机可读媒体上用于由任何计算机相关 系统或方法使用或结合其使用。

在替代实施例中,在启动逻辑250、管理逻辑260和也许DVFS接口逻辑270中的 一者或一者以上以硬件实施的情况下,各种逻辑可以此项技术中各自均众所周知的以下 技术中的任一者或组合来实施:具有用于对数据信号实施逻辑功能的逻辑门的离散逻辑 电路,具有适当组合逻辑门的专用集成电路(ASIC),可编程门阵列(PGA),现场可编程 门阵列(FPGA)等等。

如上文所述,存储器112可包括非易失性数据存储装置,例如快闪存储器或固态存 储器装置。虽然描绘为单个装置,但存储器112可为具有耦合到RF收发器268中的中 央处理单元或核心210(或额外处理器核心)的单独数据存储装置的分布式存储器装置。

启动逻辑250包含用于选择性地识别、加载和执行选择程序的一个或一个以上可执 行指令,所述程序用于管理或控制例如第一核心222、第二核心224到第N核心226等 可用核心中的一者或一者以上的性能。选择程序可在嵌入式文件系统290的程序存储装 置296中发现,且由性能按比例缩放算法297与参数集298的特定组合界定。当由中央 处理单元110中的核心处理器222、224和226中的一者或一者以上以及RF收发器268 中的核心210执行时,选择程序可根据由性能监视器模块114提供的一个或一个以上信 号而操作以按比例缩放相应处理器核心的性能。在此方面,监视器模块114可提供事件、 过程、应用程序、资源状态条件、逝去的时间、温度等等的一个或一个以上指示符。

举例来说,监视器模块114可从多处理器决策算法模块125接收CPU110现在应在 多核心/多处理器模式中操作的信号。或者,监视器模块114可从多处理器决策算法模块 125接收CPU110现在应在单核心/减少代码模式中操作的信号。

管理逻辑260包含一个或一个以上可执行指令,用于终止相应处理器核心222、224、 226中的一者或一者以上上操作的性能按比例缩放程序,以及选择性地识别、加载和执 行用于管理或控制可用核心222、224、226中的一者或一者以上的性能的更合适的替换 程序。管理逻辑260经布置以在运行时间或在PCD100被供电且由装置的操作者使用的 同时执行这些功能。替换程序可在嵌入式文件系统290的程序存储装置296中发现,且 由性能按比例缩放算法297与参数集298的特定组合界定。如图8中所说明,程序存储 装置296可以阶层方式布置在核心存储装置294和DVFS存储装置292内。当由中央处 理单元110中的核心处理器222、224、226中的一者或一者以上或RF收发器268中的 核心210执行时,替换程序可根据由监视器模块114提供的一个或一个以上信号或在各 个处理器核心222、224、226的相应控制输入上提供的一个或一个以上信号而操作以按 比例缩放相应处理器核心的性能。

DVFS接口逻辑或接口逻辑270包含一个或一个以上可执行指令,用于呈现、管理 和与外部输入交互以观察、配置或以另外方式更新存储在嵌入式文件系统290中的信息。 在一个实施例中,接口逻辑270可结合经由USB端口142接收的制造者输入来操作。 这些输入可包含将从程序存储装置296删除或添加到程序存储装置296的一个或一个以 上程序。或者,输入可包含对程序存储装置296中的程序中的一者或一者以上的编辑或 改变。而且,输入可识别对启动逻辑250和管理逻辑260中的一者或两者的一个或一个 以上改变或完全替换。举例来说,输入可包含对管理逻辑260的改变,其指示PCD100 在接收的信号功率下降到低于所识别阈值时暂停RF收发器268中的所有性能按比例缩 放。进一步举例来说,输入可包含对管理逻辑260的改变,其指示PCD100在CPU110 处于多核心/多处理器模式时或在CPU110处于单核心/减少处理器模式时(如上文结合图 5描述的方法500所控制)应用所要程序。

作为另一实例,可调谐DVFS算法297以使得当针对指定并行工作激活多个核心 222、224、226和/或额外CPU110时实现大约5%或更小的性能差异,如所属领域的技 术人员所了解。可与用于并行工作百分比参数(Pw和Ps)的阈值一致地调整算法297以 实现大约5%或更小的性能差异的目标。

接口逻辑270使得制造者能够以可控方式配置和调整在PCD100上的经界定操作条 件下的最终用户体验。当存储器112为快闪存储器时,可编辑、替换或以另外方式修改 启动逻辑250、管理逻辑260、接口逻辑270、应用程序存储装置280中的应用程序或嵌 入式文件系统290中的信息中的一者或一者以上。在一些实施例中,接口逻辑270可准 许PCD100的最终用户或操作者搜索、定位、修改或替换启动逻辑250、管理逻辑260、 应用程序存储装置280中的应用程序以及嵌入式文件系统290中的信息。操作者可使用 所得接口来做出在PCD100的下一启动后将即刻实施的改变。或者,操作者可使用所得 接口来做出在运行时间期间实施的改变。

图8A和8B包含说明使用情况的实施例的示意图,其中并行工作可由图2的系统 101产生和支持。图8A的表800中说明第一实例使用情况。所述使用情况包含能够在 PCD100上执行的一组任务。所述任务包含网络浏览(即,在PCD100处于耦合到因特 网的发射器的通信范围中时执行浏览器应用程序)、音频/视频回放、音频回放、运行电 子邮件应用程序,以及运行一个或一个以上其它应用程序。与DVFS算法297相关联的 参数298(P)在表810中列出。表810的列A可列出与第一使用情况“A”的第一和第二 核心222、224相关联的操作参数P1和P2。与下文描述的第二使用情况“B”相比,第 一使用情况“A”可对应于单核心/减少处理器操作模式。表810的行大体对应于表800 的行。

表810的列B可列出第二使用情况“B”的用于第一、第二和第五核心(例如222、 224和未说明的第五核心)的操作参数P1、P2和P5。如上文描述相对于表810的第一使 用情况“A”,第二使用情况“B”可对应于多核心/多处理器操作。

图8B的表850中说明第二实例使用情况。此第二使用情况包含短消息接发服务 (SMS)应用程序代替第一使用情况的电子邮件应用程序。与DVFS算法相关联的参数298 (也表示为P)在表860中列出。表860的行大体对应于表850的行。

表810的列A可列出与第一使用情况“A”的第一和第四核心(例如222和未说明的 第四核心)相关联的操作参数P1和P4。与下文描述的表860的第二使用情况“B”相比, 第一使用情况“A”可对应于单核心/减少处理器操作模式。

表860的列B可列出第二使用情况“B”的用于第一、第三和第四核心(例如222、 未说明的第三和第四核心)的操作参数P1、P3和P4。如上文描述相对于表860的第一使 用情况“A”,第二使用情况“B”可对应于多核心/多处理器操作。

可能一个或一个以上使用情况可呈现PCD100的处理资源上的可识别并行工作负 载。如果PCD100上的并行工作负载可由并行性监视器模块120识别,那么多处理器决 策算法模块125可发出命令到监视器模块114和CPU功率控制器130以按可能希望的那 样调整PCD100上的操作条件,以确保性能、节省电池电力,或应用经设计以实现性能 与功率消耗之间的所要折中的特定性能按比例缩放算法297和对应参数298。

多处理器决策算法模块125实时操作以识别PCD100上的当前并行工作负载,且在 例如达到Pw或Ps的阈值等某些情况下,通过调整PCD100上的一个或一个以上操作 参数来对所识别并行工作负载做出动作,例如“加电”额外核心222、224、226或“断 电”此些核心,如上文结合图5在框525和540中所描述。对于包含已知实现操作者体 验与功率消耗之间的所要平衡的多个性能按比例缩放算法297的PCD100,所识别并行 工作负载的识别可由多处理器决策算法模块125使用以选择和应用PCD100上的选择性 能按比例缩放算法297与一个或一个以上参数298的适当组合,例如在图5中所说明的 方法500的框535和550中。

鉴于上文的揭示内容,编程领域的技术人员能够基于例如本说明书中的流程图和相 关联描述而编写计算机代码或识别适当的硬件和/或电路以无困难地实施所揭示的发明。 因此,对程序代码指令的特定集合或详细硬件装置的揭示不被视为对于充分理解如何制 作和使用本发明来说是必要的。所主张计算机实施的过程的创造性功能性在以上描述中 且结合可说明各种过程流的附图而更详细地阐释。

在一个或一个以上示范性方面中,所描述的功能可以硬件、软件、固件或其任一组 合来实施。如果以软件实施,那么功能可作为一个或一个以上指令或代码存储在计算机 可读媒体上或在计算机可读媒体上传输。计算机可读媒体包含计算机存储媒体以及包含 促进计算机程序从一处传送到另一处的任何媒体的通信媒体。存储媒体可为可由计算机 存取的任何可用媒体。举例来说且并非限制,此类计算机可读媒体可包括RAM、ROM、 EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、或可用 来以指令或数据结构的形式载运或存储所要程序代码且可由计算机存取的任何其它媒 体。

而且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光 纤电缆、双绞线、数字订户线(“DSL”)或例如红外线、无线电和微波等无线技术从网 站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红 外线、无线电和微波等无线技术包含在媒体的定义中。

如本文中所使用,磁盘及光盘包含压缩光盘(“CD”)、激光光盘、光学光盘、数字 多功能光盘(“DVD”)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光 盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读媒体的范围内。

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

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号