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

xiaoxiao2020-7-22  17

用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统的制作方法
【专利摘要】本发明描述一种用于动态地确定工作负载并行性程度且自动地调整便携式计算装置中支持工作负载的核心(和/或处理器)的数目的方法和系统。所述方法和系统包含并行性监视器模块,其监视操作系统调度器的活动以及多核心处理器和/或多个中央处理单元“CPU”的一个或一个以上工作队列。所述并行性监视器可基于所述多核心处理器或多个处理器的当前操作模式而计算并行工作百分比。此并行工作百分比随后被传递到多处理器决策算法模块。所述多处理器决策算法模块基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器(或多个处理器)的所述当前操作模式。
【专利说明】用于动态控制到便携式计算装置的多核心处理器中的多个核心的电力的方法和系统
【技术领域】【背景技术】
[0001]便携式计算装置(“pro”)在个人和专业水平上正在变为人们必不可少的。这些装置可包含蜂窝式电话、便携式/个人数字助理(“PDA”)、便携式游戏控制台、便携式导航单元、掌上型计算机以及其它便携式电子装置。
[0002]这些P⑶可具有多个中央处理单元(“CPU”)以及多核心CPU以执行多种软件应用程序模块。大多数PCD对称地对其CPU进行供电。每一 PCD还通常针对单线程软件应用程序模块来设计,而没有在多个CPU或多核心CPU上分布单线程工作负载的任何考虑。关于PCD中的CPU的此对称供电以及对单线程工作负载的个别化支持,由于从空闲CPU的泄漏或核心未经计时而引起所述核心不工作,PCD通常发生浪费的电力消耗。
[0003]与单线程工作负载相反的是多线程工作负载,多线程工作负载可能需要来自多个CPU或多核心CPU的并行处理。虽然一些多线程工作负载可能能够向操作系统传达支持特定软件应用程序模块所需的理想数目的多个CPU是可行的,但当PCD需要执行多个软件应用程序模块、其中每一模块具有其自己的多线程工作负载时,此信息可能只有极少价值或没有价值。
[0004]因此,此项技术中需要的是用于控制到P⑶的多核心处理器中的多个核心的电力的方法和系统。特定来说,此项技术中需要可动态地确定一个或一个以上软件应用程序模块的工作负载并行性程度且自动地调整支持所述一个或一个以上软件应用程序模块的工作负载的核心数目的方法和系统。

【发明内容】

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

【附图说明】
[0006]在图中,在全部各图中相同参考标号指代相同部分,除非另外指示。对于带有例如“102A”或“102B”等字母符号表示的参考标号,字母符号表示可区分同一图中存在的两个相似部分或元件。当既定一参考标号涵盖在所有图中具有相同参考标号的所有部分时可省略用于参考标号的字母符号表不。[0007]图1是说明具有结合多处理器决策算法模块而工作的并行性监视器的便携式计算装置(PCD)的实施例的功能框图;
[0008]图2是说明用于动态地控制多个CPU和/或多核心CPU的系统的元件之间的通信流的功能框图;
[0009]图3A是针对第一工作负载情形随着时间绘制的指派给CPU和/或多核心CPU的核心的工作任务的曲线图;
[0010]图3B是针对第二工作负载情形随着时间绘制的指派给CPU和/或多核心CPU的核心的工作任务的曲线图;
[0011]图4是随着时间绘制的示范性工作负载的并行工作百分比的曲线图;
[0012]图5是说明用于动态地控制多个CPU和/或多核心CPU的示范性方法的逻辑流程图;
[0013]图6是说明用于计算多个CPU和/或多核心CPU的核心之间的并行工作百分比的示范性子方法或例程的逻辑流程图;
[0014]图7是说明图1的便携式计算装置的特征的示意图;以及
[0015]图8A和8B包含说明使用情况的实施例的示意图。
【具体实施方式】
[0016]词语“示范性”在本文中用以表示“充当实例、例子或说明”。本文描述为“示范性”的任何方面不一定解释为比其它方面优选或有利。
[0017]在本描述中,术语“应用程序”也可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁程序。另外,本文提到的“应用程序”也可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
[0018]术语“内容”也可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁程序。另外,本文提到的“内容”也可包含本质上不可执行的文件,例如可能需要打开的文档或需要存取的其它数据文件。
[0019]如本描述中使用,术语“组件”、“数据库”、“模块”、“系统”和类似术语既定指代计算机相关实体,其为硬件、固件、硬件与软件的组合、软件或执行中的软件。举例来说,组件可为(但不限于)在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序和/或计算机。借助于说明,在计算装置上运行的应用程序和计算装置两者可为组件。一个或一个以上组件可驻留于进程和/或执行线程内,且组件可局部化于一个计算机上和/或分布于两个或两个以上计算机之间。另外,这些组件可从其上存储有各种数据结构的各种计算机可读媒体执行。组件可例如根据具有一个或一个以上数据包的信号(例如来自与本地系统、分布式系统中的另一组件交互和/或跨越例如因特网等网络借助于所述信号与其它系统交互的一个组件的数据),借助于本地和/或远程进程来通信。
[0020]在本描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”和“无线手持机”可互换使用。随着第三代(“3G”)和第四代(“4G”)无线技术的出现,较大的带宽可用性已实现了具有更多种无线能力的更便携的计算装置。
[0021]在本描述中,术语“便携式计算装置”(“PCD”)用以描述基于例如电池等有限容量电力供应器而操作的任何装置。虽然以电池操作的P⑶已使用数十年,但与第三代(“3G”)和第四代(“4G”)无线技术的出现相关的可再充电电池的技术进步已实现了许多具有多种能力的rcD。因此,P⑶可为蜂窝式电话、卫星电话、寻呼机、个人数字助理(“PDA”)、智能电话、导航装置、智能本或阅读器、媒体播放器、上述装置的组合、以及具有无线连接的膝上型计算机等等。
[0022]用于动态地控制多个CPUllO和/或多核心CPUllO的核心的P⑶100的元件
[0023]参见图1,此图是呈无线电话的形式的PCD100的示范性非限制性方面的功能框图,所述无线电话用于实施用于动态地控制多个中央处理单元(“CPU”)110和/或多核心CPUllO的方法和系统。如图1中说明,P⑶100可包括多核心CPUllO和模拟信号处理器126。这些处理器Iio和126可耦合在一起。
[0024]CPUllO可包括第O核心222、第I核心224和第N核心226,如所属领域的技术人员所了解。在替代实施例中,替代于使用CPU110,也可采用一个或一个以上数字信号处理器(“DSP”),如所属领域的技术人员所了解。CPUllO可耦合到性能监视器模块114。性能监视器模块114可根据如下文将结合图7更详细描述的动态电压和频率按比例缩放(“DVFS”)算法来按比例缩放相应处理器核心222、224、226的性能。
[0025]P⑶100可包括并行性监视器模块120和多处理器决策算法模块125。所属领域的技术人员将认识到,每一模块120或125可包括一个或一个以上软件模块,其在不脱离本发明的情况下可划分为各种部分且由不同处理器110、126执行。或者,每一模块120或125可经组织为单个元件且由单个处理器110或126执行,如图1说明。
[0026]每一模块120或125可包括由CPUllO执行以用于监视和控制多个CPUllO和/或多核心CPUllO的核心222、224、226的工作流的软件。然而,每一模块120或125还可由硬件和/或固件形成,如所属领域的技术人员所了解。
[0027]结合多处理器解码算法模块125工作的并行性监视器模块120可确定何时应将消息发送到CPU功率控制器130以便对特定核心222、224、226或处理器126进行加电。并行性监视器模块120监视游程队列115是否有并行工作,且将其关于并行工作的观察结果传递到多核心处理器解码算法模块125。多核心解码算法模块125确定在存在并行工作时应何时对一个或一个以上核心222、224、226或处理器126进行加电以及在不存在并行工作时应何时对一个或一个以上核心222、224、226或处理器126进行断电。
[0028]多核心CPUllO与O / S调度器模块105、一个或一个以上游程队列115、并行性监视器模块120和多处理器决策算法模块125通信和/或可执行O / S调度器模块105、一个或一个以上游程队列115、并行性监视器模块120和多处理器决策算法模块125。多核心CPUllO还耦合到存储器112中的多核心CPU功率控制器130。多核心CPU功率控制器130可负责控制到多核心CPUllO的核心222、224和226的电力。存储器112可包括易失性和/或非易失性存储装置。存储器112可包含(但不限于)任一类型的计算机可读媒体,例如随机存取存储器(“RAM”)、动态随机存取存储器(“DRAM”)、电可擦除可编程只读存储器(“EEPR0M”)和类似存储器。存储器112可在执行之前存储例如一个或一个以上应用程序模块119、O / S调度器模块105、并行性监视器模块120和多处理器决策算法模块125等程序模块(当这些模块体现为软件时),如所属领域的技术人员所了解。
[0029]图1:PCD100的其它元件
[0030]如图1中说明,显示器控制器128和触摸屏控制器130耦合到CPU110。在芯片上系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。
[0031]图1是说明视频译码器/解码器(“codec”) 134的示意图,例如,逐行倒相(“PAL”)编码器、顺序彩色与存储(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器或耦合到多核心中央处理单元(“CPU”)110A的任一其它类型的视频编码器134。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口 138耦合到视频放大器136。如图1中描绘,通用串行总线(“USB”)控制器140耦合到CPU110。而且,USB端口 142耦合到USB控制器140。订户身份模块(SM)卡146也可耦合到CPU110。此外,如图1所示,数码相机148可耦合到CPU110。在示范性方面中,数码相机148是电荷耦合装置(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
[0032]如图1中进一步说明,立体声音频C0DEC150可耦合到模拟信号处理器126。而且,音频放大器152可耦合到立体声音频C0DEC150。在示范性方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1展示麦克风放大器158也可耦合到立体声音频C0DEC150。另外,麦克风160可耦合到麦克风放大器158。在特定方面中,调频(“FM”)无线电调谐器162可耦合到立体声音频C0DEC150。而且,FM天线164耦合到FM无线电调谐器162。此外,立体声头戴受话器166可耦合到立体声音频C0DEC150。
[0033]图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电力供应器。
[0034]如图1中描绘,触摸屏显示器132、视频端口 138、USB端口 142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声头戴受话器166、RF开关170、RF天线172、小键盘174、单声道头戴式耳机176、振动器178、热传感器157B以及电力供应器180在芯片上系统322的外部。
[0035]图2是说明用于动态地控制多个CPUllO和/或多核心CPUllO的系统101的元件之间的通信流的功能框图。在系统101中,O / S调度器模块105耦合到一个或一个以上游程队列115和并行性监视器模块120。虽然针对一个或一个以上游程队列115说明单个功能块,但所属领域的技术人员认识到,可为系统101正管理的多核心CPUllO的每一核心222、224、226或多个CPUllO中的每一 CPUllO提供单独的游程队列115。
[0036]一个或一个以上游程队列115将工作任务馈送到多核心CPUllO的每一核心222、224,226中,如图2中说明。或者,游程队列115可将工作任务馈送到多个CPUllO中的每一CPUl10。
[0037]并行性监视器模块120耦合到游程队列115、0 / S调度器105以及多处理器决策算法模块125。虽然将并行性监视器模块120说明为相对于多处理器决策算法模块125的单独模块,但这两个模块120、125可形成为单个单一模块,如所属领域的技术人员所了解。
[0038]多处理器决策算法模块125耦合到并行性监视器模块120和CPU功率控制器130。多处理器决策算法模块125从并行性监视器模块120接收数据且基于此数据做出决策。多处理器决策算法模块125做出的决策的结果作为消息被发射到CPU功率控制器130,如下文将更详细描述。
[0039]O / S调度器模块105可体现为软件。O / S调度器模块105可负责调度从由多核心CPUllO或处理器126执行的一个或一个以上应用程序119接收的工作任务。应用程序119可包含(但不限于)无线电话呼叫应用程序、全球定位卫星(“GPS”)应用程序、电子邮件应用程序、日历应用程序、文字处理应用程序、电子数据表应用程序、支持音频和/或视频的娱乐应用程序等等。
[0040]工作任务可包含来自应用程序119的请求。举例来说,用于娱乐的应用程序119可请求O / S调度器模块105在P⑶100的显示器132上显示用于视频的多个帧。O / S调度器模块105可在多核心CPUllO的核心222、224、226上指派和分布这些视频工作任务。O / S调度器模块105可指派每一工作任务且将具有相应核心指派的工作任务放置于游程队列115中。游程队列115可体现为软件和/或硬件,如所属领域的技术人员所了解。游程队列115可保持所指派的工作任务和/或线程,直到特定CPU和/或多核心CPUllO的核心准备好处理工作任务为止。
[0041]并行性监视器120负责跟踪正由O / S调度器模块105管理的工作任务。并行性监视器120与游程队列115通信。并行性监视器模块120可体现为软件。或者,并行性监视器模块120可体现为硬件,如所属领域的技术人员所了解。
[0042]并行性监视器模块120确定在多个CPUllO和/或多核心CPUllO的核心222、224、226上指派和分布的并行工作的量。并行性监视器模块120通常通过对从游程队列115取得的数据进行取样来确定并行工作的量。并行性监视器模块120对来自游程队列115的数据进行取样的频率可按需要改变或修改。取样频率可基于工作量来调整。
[0043]举例来说,当CPUllO正在执行多个应用程序119时,可增加取样频率,因为可能在游程队列115中将产生和放置增加数目的工作任务。因此,当应用程序的数目相对小时,例如大约两个程序或更少,则可向下或以减少的方式调整并行性监视器模块120的取样频率。
[0044]并行性监视器模块120可从O / S调度器105接收回呼。这些回呼可在每当从用于核心222、224和226的游程队列115中的任一者添加或移除新任务时发生。在每一回呼处,并行性监视器120可更新其在游程队列115中的任务的局部计数。以周期性为基础,例如大约每二十毫秒,并行性监视器模块120可将其瞬时读数累加为在其取样周期期间在核心222、224、226上并行执行的工作的运行百分比。
[0045]驻留在由并行性监视器模块120取样的游程队列115中的数据可包含由O / S调度器105在给定时刻正指派的任务的总数目。并行性监视器模块120使用样本数据来计算并行工作的百分比。下文将结合图3A到3B更详细描述并行工作的此百分比。并行工作百分比参数从并行性监视器模块120传递到多处理器决策算法模块125。
[0046]多处理器决策算法模块125可包括软件或硬件或两者。根据一个示范性实施例,多处理器决策算法模块125可包括软件。多处理器决策算法模块125基于其从并行性监视器模块120接收的运行工作百分比而确定多少核心222、224、226应被供电或“在作用中”。
[0047]多处理器决策算法模块125可通过使用包含阈值的各种参数来做出其关于应对哪些核心222、224、226供电的决策。这些参数可基于在对核心222、224、226进行加电/断电时涉及的开销中特定便携式计算装置100的功率消耗特性来导出。示范性参数包含(但不限于):并行工作的唤醒百分比(“?《”),其为用于激活一个或一个以上核心222、224、226的并行执行的工作百分比的阈值;唤醒持续时间(“Tw”),其为在一个或一个以上额外核心222、224、226经加电之前对于在持续时间Tw期间取得的某一数目的样本已实现或超过Pw阈值的时间量的阈值;休眠百分比(“Ps”),其为用于减活一个或一个以上核心222、224,226的已实现或低于此阈值而存在的并行执行的工作百分比的阈值,以及休眠持续时间(“Ts”),其为在一个或一个以上核心222、224、226经断电之前针对在持续时间Ts期间取得的某一数目的样本Ps阈值经维持或下落到低于此阈值的时间量的阈值。
[0048]形成由多处理器决策算法模块125做出的决策的参数之间的示范性关系包含:如果并行性监视器模块120检测到的并行工作的当前运行百分比大于Pw阈值,以及如果针对大于Tw阈值的持续时间已检测到此运行百分比,那么多处理器决策算法模块125可向功率控制器130发出命令以接通一个或一个以上额外核心222、224、226以管理当前并行工作负载。在并行核心222、224、226正在同时处理工作任务的情形中,且如果并行性监视器模块120检测到的并行工作的当前运行百分比小于或等于Ps参数且如果针对大于或等于Ts阈值的持续时间已检测到此运行百分比,那么多处理器决策算法模块125可向功率控制器130发出命令以断开一个或一个以上核心222、224、226。
[0049]如上所述,CPU功率控制器130从多处理器决策算法模块125接收用于对一个或一个以上核心222、224、226或其它CPUllO进行加电和断电的消息。CPU功率控制器130通常以硬件体现以用于控制到一个或一个以上核心222、224、226或其它CPUllO的电力。当CPU功率控制器130断开核心222、224或226或另一 CPUllO时,此“断开”状态可包括低功率状态,如所属领域的技术人员所了解。在其它实例中,此“断开”状态也可包括完全无电力。
[0050]图3A是针对第一工作负载情形随着时间绘制的指派给CPUllO和/或多核心CPUllO的核心222、224或226的工作任务的曲线图300A。数据绘制曲线图300A包含来自由O / S调度器105管理且指派给游程队列115的应用程序模块119的工作任务。在Y轴上绘制工作任务的数目,而沿着X轴 绘制以毫秒表示的时间。图3A中的此数据包含三个百分比样本周期31IA、31IB、311C,其各自具有在具有60毫秒的长度的唤醒持续时间“ IV’期间取得的20毫秒的长度。在特定百分比样本周期311上监视工作任务的总数目的频率可包括约两毫秒,使得在约20毫秒的给定百分比样本周期311上可取得10个工作读数。
[0051]Tw唤醒持续时间的长度、每一百分比样本周期311的大小、在百分比样本周期311期间取得样本的频率可变化且在本发明的范围内,如所属领域的技术人员所了解。
[0052]针对给定百分比样本周期的并行工作百分比(Pw或Ps)由以下等式决定:
[0053]等式1:P% =并行工作的实例数/针对给定样本周期的样本数目
[0054]将并行工作界定为其中工作任务数目允许使用两个或两个以上核心222、224、226或者两个或两个以上CPUllO的阈值。这意味着通常每当工作任务数目大于I时,则并行工作存在,其中可激活多核心CPUllO的两个或两个以上核心222、224、226或者两个或两个以上CPUllO以支持当前数目的并行工作任务。
[0055]举例来说,在图3A中说明的示范性工作情形中,第一百分比样本周期311A中的第一数据点反映O个工作任务,其也等于O个并行工作。参见第一表305A,第一列。第一百分比样本周期311中的第二数据点反映一个工作任务的值,其小于用于指示并行工作的存在的两个工作任务的阈值。因此,在第一表305A的第二列中针对第一百分比样本周期311A的第二数据点存在O值或无并行工作。同理适用于第一百分比样本周期311A的第三数据点,其具有一个工作任务和如第一表305A的第三列反映的O并行工作的对应值。
[0056]然而,用于第一百分比样本周期311的第四和第五数据点反映针对每一数据点的至少两个工作任务,其转换为并行工作的存在。参见第一表305A,第四和第五列。
[0057]针对第一百分比样本周期311A的并行工作的百分比(用于唤醒核心222、224、226或额外CPU110)是60%,其基于在第一百分比样本周期311A期间取得的总共10个样本中6个计数的并行工作。类似地,针对第二百分比样本周期311B的并行工作百分比是30%,而针对第三百分比样本周期31IC的并行工作百分比是80 %,如第二表305B和第三表305C分别反映。
[0058]为在唤醒持续时间Tw内发生每一百分比取样周期311的频率、在特定百分比取样周期311期间取得的数据点的频率和数目,以及取样持续时间Tw的长度选择适当量值的重要性对于所属领域的技术人员基于在第一曲线图300A中反映的若干数据点是明显的。
[0059]举例来说,第一曲线图300A的第一区303A反映第一百分比样本周期311A的第五与第六数据点之间的工作任务下降。由于在第一百分比取样周期311期间取得的数据点的频率在此实例中是针对约2毫秒而设定,因此在第一区303A处在第五与第六数据点之间的此工作任务下降未被检测到。未被检测到的此工作任务下降不太显著,因为百分比样本周期311A的大小经适当确定以俘获正由系统101管理的大量工作活动。即使在第一百分比样本周期311期间检测到第一曲线图300A的区303A中发生的此工作下降,则其对所计算的并行工作百分比的影响也将极小,因为第一百分比样本周期311A的长度俘获了在第一百分比样本周期311A上处理的大部分工作。
[0060]如先前所述,并行工作百分比参数(Pw和Ps)由并行性监视器模块120计算且传输到多处理器决策算法模块125。多处理器决策算法125可具有阈值,可针对并行工作百分比参数(Ps)设定所述阈值以用于“断开”且针对并行工作百分比参数(Pw)设定所述阈值以用于“接通”多核心CPUllO的一个或一个以上额外核心222、224和226或额外CPU110。用于并行工作百分比参数(Pw和Ps)的阈值可以经验方式确定且更新,使得当为并行工作激活多核心和/或额外CPUllO时实现约5%或更少的性能差异,如所属领域的技术人员所了解。
[0061]举例来说,可通过使用此标准5%性能量度来确定用于唤醒并行工作百分比参数Pw的阈值。举例来说,假设设定数目的工作任务通常花费近似100毫秒来由单个处理器110完成。随后,应计算用于“接通”一个或一个以上额外核心222、224和226或额外CPUllO的Pw参数,使得当在多核心CPUllO的两个或两个以上核心222、224、226之间或在两个或两个以上CPUllO之间划分工作时不超过105毫秒的最大值。所属领域的技术人员认识到,5毫秒近似为100毫秒的5%。
[0062]作为另一实例,如先前所述,用于唤醒并行工作百分比参数Pw的阈值通常在P⑶100的操作之前离线地设定或建立。如果用于唤醒并行工作百分比参数Pw的阈值设定为等于近似百分之五十五(55% ),那么这将意味着并行性监视器模块120将需要针对在唤醒Tw持续时间期间取得的某一连续数目的百分比样本检测此量或更多的并行工作。
[0063]在图3A中说明的示范性情形中,唤醒持续时间Tw设定为60毫秒,而百分比样本的数目设定为每20毫秒发生。这意味着针对每一 60毫秒的唤醒持续时间的至少三个连续样本必须满足Pw的55%值。
[0064]在图3A的示范性实施例中,仅第一百分比样本31IA和第三百分比样本31IC超过55%的唤醒并行工作百分比Pw值。第二百分比样本是30%,其低于55%的阈值Pw。由于在311A、311B和31IC的三个连续百分比样本上未实现Pw,因此多处理器决策算法模块125将不向CPU功率控制器130发出任何命令。
[0065]然而,如果Pw阈值是针对55%设定且百分比样本长度设定为等于唤醒持续时间Tw以使得仅每60毫秒取得并行工作百分比(意味着针对每一持续时间Tw仅取得一个样本),那么将满足Pw阈值。在此情形中将满足Pw阈值,因为针对60毫秒窗口的单个并行工作百分比值将等于约56.6% (17个并行工作实例除以30个读数)。在此情形中多处理器决策算法模块125将发出含有用于CPU功率控制器130的命令的消息,以“接通”多核心CPUllO的一个或一个以上额外核心222、224或226或者额外CPUllO (未说明)。
[0066]图3B是针对第二工作负载情形随着时间绘制的指派给CPUllO和/或多核心CPUllO的核心222、224或226的工作任务的曲线图300B。图3B极为类似于图3A,因此,下文将仅描述这两幅图之间的差异。
[0067]根据曲线图300B说明的示范性第二工作负载情形,百分比样本周期311设定为近似30毫秒的长度,其中近似每2毫秒取得工作量的读数。用于“断开” 一个或一个以上CPUllO和/或核心222、224或226的休眠持续时间Ts的长度可针对120毫秒设定。这意味着在此情形中,如果针对至少四个连续百分比样本周期311实现休眠工作百分比PwjP么多处理器决策算法模块125将发出含有使CPU功率控制器130 “断开”多核心CPUllO的一个或一个以上核心222、224或226或者额外CPUllO (未说明)的命令的消息。
[0068]相对于第一曲线图300A的处理器“唤醒”百分比样本周期311A到311C,第二曲线图300B的处理器“休眠”百分比样本周期311D到311E近似多10毫秒。当采取用于关闭一个或一个以上核心222、224、226或额外CPUllO的保守方法时,处理器“休眠”样本周期311D到311E将大体上比“唤醒”百分比样本周期311A到311C长。所属领域的技术人员认识到,与在较短时间周期中关闭核心222、224、226或额外CPUllO且随后重新启动相同核心222、224、226或CPUllO以相对于正在处理的工作任务匹配当前需求相比,在较长时间周期中保持额外核心222、224、226或额外CPUllO “加电”通常更好。所属领域的技术人员认识至IJ,当与在较长持续时间中使多个装置加电且随后将其关闭较长持续时间相比,更频繁地接通和断开所述多个装置可消耗更多电力。
[0069]作为另一实例,如先前所述,用于休眠并行工作百分比参数Ps的阈值通常在PCD100的操作之前离线地设定或建立。如果用于休眠并行工作百分比参数Ps的阈值设定为等于近似35%,那么这将意味着并行性监视器模块120将需要针对某一数目的百分比样本周期针对给定样本持续时间Ts检测此量或更少的并行工作。百分比样本周期的数目是基于其大小。
[0070]因此,如果用于“断开”一个或一个以上CPUllO和/或核心222、224或226的休眠持续时间Ts的长度是针对具有30毫秒的样本百分比大小的120毫秒来设定,那么将需要针对至少4个连续样本(4X30=120)满足Ps的阈值。如果针对20毫秒设定样本百分比大小,那么将需要针对至少6个连续样本(6X20=120)满足Ps的阈值。[0071]在图3B中说明的示范性情形中,第一和第四百分比样本周期311D、311E满足用于Ps参数的35%阈值。图3B中未说明第二和第三百分比样本周期。对于第一百分比样本周期311D,并行工作百分比(Ps)具有近似33%的值。对于第四百分比样本周期311E,并行工作百分比(Ps)具有近似20%的值。
[0072]如果假定第二和第三百分比周期311 (图3B中未说明)具有小于或等于35%百分比阈值(Ps)的并行工作百分比值(Ps),那么多处理器决策算法模块125在第四百分比周期31IE之后将发出含有使CPU功率控制器130 “断开”(或置于休眠模式)多核心CPUllO的一个或一个以上额外核心222、224或226或额外CPUllO (未说明)的命令的消息。
[0073]如下文描述的流程图中将概括,多处理器决策算法模块125取决于其当前操作模式而使用休眠并行工作百分比参数Ps或唤醒并行工作百分比参数Pw。多处理器决策算法模块125可具有至少两个操作模式:多核心/ CPU模式或单核心/ CPU模式。唤醒并行工作百分比参数Pw由多处理器决策算法模块125在其处于其单核心/ CPU模式中时使用。休眠并行工作百分比参数Ps由多处理器决策算法模块125在其处于其多核心/ CPU模式中时使用。
[0074]图4是随着时间绘制的示范性工作负载的并行工作百分比的曲线图400。根据示范性实施例,工作负载包括在用系统101回放电影期间显示的视频帧,所述系统包括PCD100的多核心CPUllO的至少两个核心222、224。
[0075]第一条线402表示从单个核心监视的并行工作百分比。第二条线404表示在多核心系统101的两个核心上监视的并行工作百分比。
[0076]根据此示范性实施例,唤醒并行工作百分比参数Pw被设定为等于近似50%。因此,直到曲线图400上的点405,支持视频回放工作负载的双核心系统101都在单核心模式中操作。在表示近似50 %的工作百分比参数的点405处,与其先前的单核心模式相比,双核心系统101进入并行工作模式(“双核心模式”)。
[0077]根据此示范性环境,多处理器决策算法模块125使用唤醒并行工作百分比参数Pw监视第一条线402直到点405,所述Pw在此实例中被设定为等于近似50%。从点405和之后,多处理器决策算法模块125使用休眠并行工作百分比参数Ps监视第二条线404。休眠并行工作百分比参数Ps可设定为任何值,如所属领域的技术人员所了解。
[0078]图5是说明用于动态地控制便携式计算装置100的多个CPU和/或多核心CPUllO的示范性方法500的逻辑流程图。框505包括方法500的第一步骤。在框505中,来自O /S调度器模块505的数据可由并行性监视器模块120接收。如上所述,当工作任务正被添加到系统101或从系统101移除时,并行性监视器模块120可接收来自O / S调度器105的回呼。
[0079]接着,在框505中,可用并行性监视器模块120监视系统101的工作队列115。并行性监视器模块120可在某些预定时间周期(例如如图3A中说明大约每2毫秒)轮询游程队列115。如果并行性监视器模块120如框505中检测到那样接收到任何回呼,那么此活动可致使并行性监视器模块120立即轮询其当前工作负载的游程队列115。或者,可针对每一动作接收不同呼叫,例如当添加任务时或如果从游程队列115移除任务。并行性监视器模块120可保持在游程队列115中存在的任务的局部计数。
[0080]接着,在例程或子方法515中,并行性监视器模块120可计算并行工作百分比。如先前描述,在此阶段或框515处计算的并行工作百分比(Ps或Pw)取决于系统101的当前操作模式(是使用持续时间Ts还是持续时间Tw)。在多核心/ CPU操作模式中,并行性监视器模块120在其处于其单核心/ CPU模式中时利用具有对应持续时间Tw的唤醒并行工作百分比参数Pw。具有对应持续时间Ts的休眠并行工作百分比参数Ps由并行性监视器模块120在系统101处于其多核心/ CPU模式中时使用,如上文所述。
[0081]举例来说,如果系统101处于单核心(不处于多核心或不处于多处理器)操作模式中,那么多处理器决策算法模块125将使用对应持续时间Tw监视与唤醒并行工作百分比Pw相关联的参数。图3A和表305A到305C说明根据一个示范性实施例将如何计算唤醒并行工作百分比Pw。同时,如果系统101处于多核心/多处理器操作模式中,那么多处理器决策算法模块125将监视与使用持续时间Ts的休眠并行工作百分比Ps相关联的参数,如图3B中说明和表30?到305E中计算。在一些示范性实施例中,持续时间Tw和Ts以及其相应百分比样本311的数目可相等。
[0082]接着,在决策框520中,多处理器决策算法模块125确定系统101是否正在多核心/ CPU模式中操作。如果对决策框520的询问为否定,那么沿循“否”分支到决策框525。如果对决策框520的询问为肯定,那么沿循“是”分支到框540。
[0083]在决策框525中,多处理器决策算法模块125通过将并行工作百分比的当前值与针对具有对应持续时间Tw和设定百分比样本周期大小的唤醒并行工作百分比参数Pw设定的阈值进行比较,来确定当前单核心/单处理器模式是否应改变为多核心/多处理器模式。如果对决策框525的询问为否定(意味着针对持续时间Tw的连续数目的百分比样本周期不满足Pw阈值),那么沿循“否”分支回到例程或子方法515。如果对决策框520的询问为肯定(意味着针对持续时间Tw的连续数目的百分比样本周期满足或实现了 Pw阈值),那么沿循“是”分支到框530。
[0084]在框530中,多处理器决策算法模块125发出命令到CPU功率控制器130以“接通” 一个或一个以上核心222、224、226或处理器110以使得系统101处于多核心/处理器状态。举例来说,如果检测到如图3A的第一到第三唤醒并行工作百分比周期311A到311C说明的并行工作状态(假定Tw设定为等于60毫秒且每一百分比周期311A到311C设定为等于20毫秒),且如果Pw阈值是针对30%或更高而设定,那么将执行框530。
[0085]接着,在框535中,多处理器决策算法模块125也可通过CPU功率控制器130或直接地发出命令到每一核心222、224、226 /处理器110以初始化多核心/多处理器模式特定使用的相应动态电压和频率按比例缩放(“DVFS”)算法。下文将结合图7描述关于DVFS算法的更多细节。过程或方法500随后继续回到例程或子方法515。
[0086]在决策框540中,多处理器决策算法模块125通过将并行工作百分比的当前值与针对具有对应取样持续时间Ts的休眠并行工作百分比参数Ps设定的阈值进行比较,来确定当前多核心模式是否应改变为单核心/减少核心模式。如果对决策框540的询问为否定,那么沿循“否”分支回到例程或子方法515。如果对决策框540的询问为肯定,那么沿循“是”分支到框545。
[0087]在框545中,多处理器决策算法模块125发出命令到CPU功率控制器130以使系统101从多核心/多处理器状态转变到单核心/减少核心处理器状态。多处理器决策算法模块125可发出命令到CPU功率控制器130以“断开”或断电一个或一个以上核心222、224、226或CPU110。如先前所述,此“断开”状态可包括“休眠”状态或低功率状态而非完全没有电力。举例来说,如果检测到如图3B的第一到第四休眠并行工作百分比周期311D、311E说明的并行工作状态(假定Ts设定为等于120毫秒的持续时间,且每一百分比周期311D、311E设定为等于30毫秒),且如果Ps阈值是针对33%或更低而设定,那么将执行框545。
[0088]接着,在框550中,多处理器决策算法模块125可发出命令到其余的作用中单核心222,224或226或者CPUllO以针对单核心/减少处理器操作调整其DVFS算法。下文将结合图7描述关于DVFS算法的更多细节。方法500随后返回到例程或子方法515。
[0089]图6是说明用于计算多个核心222、224、226和/或多个CPUllO之间的并行工作百分比的示范性子方法或例程515的逻辑流程图。框605是子方法或例程515的第一步骤。在框605中,由并行性监视器模块120计算在选定时间间隔中的任务和/或线程的总数目。此总数目是基于系统101的当前操作模式。
[0090]对于此框605,在系统101的多核心/多处理器操作模式中,并行性监视器模块120将使用与休眠并行工作百分比Ps相关联的持续时间Ts,如图3B和表30?到305E中所说明。而系统101的单核心/单处理器操作模式,并行性监视器模块120使用与唤醒工作百分比参数Pw相关联的持续时间Tw,如图3A和表305A到305C中所说明。每一持续时间Ts和Tw可具有其基于持续时间的量值而定制的百分比取样周期。举例来说,持续时间Ts可具有50毫秒的量值。这意味着一个示范性百分比取样周期可包括每10毫秒取得的百分比读数,其等同于在持续时间Ts上的5个读数。示范性百分比取样周期可包括每5毫秒取得的百分比读数,其等同于在持续时间Ts上的10个读数。以此类推。
[0091]接着,在框610中,并行性监视器模块120可基于系统101的当前操作模式来计算并行工作百分比。如上文结合框605描述,并行性监视器模块120在此框中可取决于系统101的当前操作模式来计算唤醒百分比参数Pw或休眠百分比参数Ps,如图3A到3B中所说明。接着,在框615中,并行性监视器模块120可将Pw或Ps参数存储在表中,且将此参数传送到多处理器决策算法模块125。子方法或例程515随后返回到图5的决策框520。
[0092]图7是说明图1的P⑶100且具体来说在处理器设计中的P⑶100的支持动态电压和频率按比例缩放(“DVFS”)的元件的特征的示意图。DVFS实现功率消耗与性能之间的折中。经设计以利用DVFS的处理器110允许以对应的电压调整来调整处理器的时钟频率。单独减少时钟频率不是有用的,因为任何电力节省均被执行时间的增加所抵消,从而得不到所消耗的总能量的净减少。然而,操作电压的减少导致所消耗电力的成比例节省。
[0093]如图7中所说明,中心处理单元110经由总线211耦合到存储器112。中央处理单元110是具有N个核心处理器的多核心处理器。也就是说,中央处理单元110包含第一核心222、第二核心224以及第N核心226。如已知,第一核心222、第二核心224和第N核心226中的每一者可用于支持专用应用或程序119。或者,可分布一个或一个以上应用或程序119以用于跨可用核心中的两者或两者以上进行处理。
[0094]第一核心222、第二核心224到第N核心226可集成在单个集成电路裸片上,或其可集成或耦合在多电路封装中的单独裸片上。设计者可经由一个或一个以上共享高速缓冲存储器耦合第一核心222、第二核心224到第N核心226,且其可经由例如总线、环、网和纵横拓扑等网络拓扑来实施消息或指令传递。
[0095]在所说明的实施例中,RF收发器268是经由数字电路元件实施,且包含至少一个处理器,例如核心处理器210 (标记为“核心”)。在此数字实施方案中,RF收发器268经由总线213耦合到存储器112。
[0096]总线211和总线213中的每一者可包含经由一个或一个以上有线或无线连接的多个通信路径,如此项技术中已知。总线211和总线213可具有用以实现通信的额外元件,其为了简明而被省略,例如控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收器。此夕卜,总线211和总线213可包含用以在上文提到的组件之间实现适当通信的地址、控制和/或数据连接。
[0097]当由PCD100使用的逻辑是以软件实施时,如图7中所示,应注意,启动逻辑250、管理逻辑260、DVFS接口逻辑270、应用程序存储装置280中的应用程序以及文件系统290的部分中的一者或一者以上可存储在任何计算机可读媒体上用于由任何计算机相关系统或方法使用或结合其使用。
[0098]在替代实施例中,在启动逻辑250、管理逻辑260和也许DVFS接口逻辑270中的一者或一者以上以硬件实施的情况下,各种逻辑可以此项技术中各自均众所周知的以下技术中的任一者或组合来实施:具有用于对数据信号实施逻辑功能的逻辑门的离散逻辑电路,具有适当组合逻辑门的专用集成电路(ASIC),可编程门阵列(PGA),现场可编程门阵列(FPGA)等等。
[0099]如上文所述,存储器112可包括非易失性数据存储装置,例如快闪存储器或固态存储器装置。虽然描绘为单个装置,但存储器112可为具有耦合到RF收发器268中的中央处理单元或核心210 (或额外处理器核心)的单独数据存储装置的分布式存储器装置。
[0100]启动逻辑250包含用于选择性地识别、加载和执行选择程序的一个或一个以上可执行指令,所述程序用于管理或控制例如第一核心222、第二核心224到第N核心226等可用核心中的一者或一者以上的性能。选择程序可在嵌入式文件系统290的程序存储装置296中发现,且由性能按比例缩放算法297与参数集298的特定组合界定。当由中央处理单元110中的核心处理器222、224和226中的一者或一者以上以及RF收发器268中的核心210执行时,选择程序可根据由性能监视器模块114提供的一个或一个以上信号而操作以按比例缩放相应处理器核心的性能。在此方面,监视器模块114可提供事件、过程、应用程序、资源状态条件、逝去的时间、温度等等的一个或一个以上指示符。
[0101]举例来说,监视器模块114可从多处理器决策算法模块125接收CPUllO现在应在多核心/多处理器模式中操作的信号。或者,监视器模块114可从多处理器决策算法模块125接收CPUllO现在应在单核心/减少代码模式中操作的信号。
[0102]管理逻辑260包含一个或一个以上可执行指令,用于终止相应处理器核心222、224,226中的一者或一者以上上操作的性能按比例缩放程序,以及选择性地识别、加载和执行用于管理或控制可用核心222、224、226中的一者或一者以上的性能的更合适的替换程序。管理逻辑260经布置以在运行时间或在P⑶100被供电且由装置的操作者使用的同时执行这些功能。替换程序可在嵌入式文件系统290的程序存储装置296中发现,且由性能按比例缩放算法297与参数集298的特定组合界定。如图8中所说明,程序存储装置296可以阶层方式布置在核心存储装置294和DVFS存储装置292内。当由中央处理单元110中的核心处理器222、224、226中的一者或一者以上或RF收发器268中的核心210执行时,替换程序可根据由监视器模块114提供的一个或一个以上信号或在各个处理器核心222、224、226的相应控制输入上提供的一个或一个以上信号而操作以按比例缩放相应处理器核心的性能。
[0103]DVFS接口逻辑或接口逻辑270包含一个或一个以上可执行指令,用于呈现、管理和与外部输入交互以观察、配置或以另外方式更新存储在嵌入式文件系统290中的信息。在一个实施例中,接口逻辑270可结合经由USB端口 142接收的制造者输入来操作。这些输入可包含将从程序存储装置296删除或添加到程序存储装置296的一个或一个以上程序。或者,输入可包含对程序存储装置296中的程序中的一者或一者以上的编辑或改变。而且,输入可识别对启动逻辑250和管理逻辑260中的一者或两者的一个或一个以上改变或完全替换。举例来说,输入可包含对管理逻辑260的改变,其指示PCD100在接收的信号功率下降到低于所识别阈值时暂停RF收发器268中的所有性能按比例缩放。进一步举例来说,输入可包含对管理逻辑260的改变,其指示P⑶100在CPUllO处于多核心/多处理器模式时或在CPUllO处于单核心/减少处理器模式时(如上文结合图5描述的方法500所控制)应用所要程序。
[0104]作为另一实例,可调谐DVFS算法297以使得当针对指定并行工作激活多个核心222、224、226和/或额外CPUllO时实现大约5%或更小的性能差异,如所属领域的技术人员所了解。可与用于并行工作百分比参数(Pw和Ps)的阈值一致地调整算法297以实现大约5%或更小的性能差异的目标。
[0105]接口逻辑270使得制造者能够以可控方式配置和调整在P⑶100上的经界定操作条件下的最终用户体验。当存储器112为快闪存储器时,可编辑、替换或以另外方式修改启动逻辑250、管理逻辑260、接口逻辑270、应用程序存储装置280中的应用程序或嵌入式文件系统290中的信息中的一者或一者以上。在一些实施例中,接口逻辑270可准许P⑶100的最终用户或操作者搜索、定位、修改或替换启动逻辑250、管理逻辑260、应用程序存储装置280中的应用程序以及嵌入式文件系统290中的信息。操作者可使用所得接口来做出在PCD100的下一启动后将即刻实施的改变。或者,操作者可使用所得接口来做出在运行时间期间实施的改变。
[0106]图8A和8B包含说明使用情况的实施例的示意图,其中并行工作可由图2的系统101产生和支持。图8A的表800中说明第一实例使用情况。所述使用情况包含能够在P⑶100上执行的一组任务。所述任务包含网络浏览(即,在P⑶100处于耦合到因特网的发射器的通信范围中时执行浏览器应用程序)、音频/视频回放、音频回放、运行电子邮件应用程序,以及运行一个或一个以上其它应用程序。与DVFS算法297相关联的参数298 (P)在表810中列出。表810的列A可列出与第一使用情况“A”的第一和第二核心222、224相关联的操作参数Pl和P2。与下文描述的第二使用情况“B”相比,第一使用情况“A”可对应于单核心/减少处理器操作模式。表810的行大体对应于表800的行。
[0107]表810的列B可列出第二使用情况“B”的用于第一、第二和第五核心(例如222、224和未说明的第五核心)的操作参数P1、P2和P5。如上文描述相对于表810的第一使用情况“A”,第二使用情况“B”可对应于多核心/多处理器操作。
[0108]图SB的表850中说明第二实例使用情况。此第二使用情况包含短消息接发服务(SMS)应用程序代替第一使用情况的电子邮件应用程序。与DVFS算法相关联的参数298(也衰不为P)在表860中列出。表860的行大体对应于表850的行。[0109]表810的列A可列出与第一使用情况“A”的第一和第四核心(例如222和未说明的第四核心)相关联的操作参数Pl和P4。与下文描述的表860的第二使用情况“B”相比,第一使用情况“A”可对应于单核心/减少处理器操作模式。
[0110]表860的列B可列出第二使用情况“B”的用于第一、第三和第四核心(例如222、未说明的第三和第四核心)的操作参数PU P3和P4。如上文描述相对于表860的第一使用情况“A”,第二使用情况“B”可对应于多核心/多处理器操作。
[0111]可能一个或一个以上使用情况可呈现P⑶100的处理资源上的可识别并行工作负载。如果P⑶100上的并行工作负载可由并行性监视器模块120识别,那么多处理器决策算法模块125可发出命令到监视器模块114和CPU功率控制器130以按可能希望的那样调整PCD100上的操作条件,以确保性能、节省电池电力,或应用经设计以实现性能与功率消耗之间的所要折中的特定性能按比例缩放算法297和对应参数298。
[0112]多处理器决策算法模块125实时操作以识别P⑶100上的当前并行工作负载,且在例如达到Pw或Ps的阈值等某些情况下,通过调整P⑶100上的一个或一个以上操作参数来对所识别并行工作负载做出动作,例如“加电”额外核心222、224、226或“断电”此些核心,如上文结合图5在框525和540中所描述。对于包含已知实现操作者体验与功率消耗之间的所要平衡的多个性能按比例缩放算法297的PCD100,所识别并行工作负载的识别可由多处理器决策算法模块125使用以选择和应用PCD100上的选择性能按比例缩放算法297与一个或一个以上参数298的适当组合,例如在图5中所说明的方法500的框535和550中。
[0113]鉴于上文的揭示内容,编程领域的技术人员能够基于例如本说明书中的流程图和相关联描述而编写计算机代码或识别适当的硬件和/或电路以无困难地实施所揭示的发明。因此,对程序代码指令的特定集合或详细硬件装置的揭示不被视为对于充分理解如何制作和使用本发明来说是必要的。所主张计算机实施的过程的创造性功能性在以上描述中且结合可说明各种过程流的附图而更详细地阐释。
[0114]在一个或一个以上示范性方面中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或一个以上指令或代码存储在计算机可读媒体上或在计算机可读媒体上传输。计算机可读媒体包含计算机存储媒体以及包含促进计算机程序从一处传送到另一处的任何媒体的通信媒体。存储媒体可为可由计算机存取的任何可用媒体。举例来说且并非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、或可用来以指令或数据结构的形式载运或存储所要程序代码且可由计算机存取的任何其它媒体。
[0115]而且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(“DSL”)或例如红外线、无线电和微波等无线技术从网站、月艮务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。
[0116]如本文中所使用,磁盘及光盘包含压缩光盘(“⑶”)、激光光盘、光学光盘、数字多功能光盘(“DVD”)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读媒体的范围内。
[0117]虽然已详细说明和描述了选定方面,但将了解,在不脱离如所附权利要求书界定的本发明的精神和范围的情况下可在其中做出各种代替和更改。
【权利要求】
1.一种用于动态地确定工作负载并行性程度且自动地调整便携式计算装置中支持工作负载的核心的数目的方法,所述方法包括: 监视多核心处理器的一个或一个以上工作队列; 基于所述多核心处理器的当前操作模式以及对所述一个或一个以上工作队列的所述监视而计算并行工作百分比; 基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器的所述当前操作模式;以及 如果确定应改变所述多核心处理器的所述当前操作模式,则指令所述多核心处理器的一个或一个以上核心切换动态电压和频率按比例缩放算法。
2.根据权利要求1所述的方法,其中所述并行工作百分比由以下等式控制:P=并行工作的实例数/ 一百分比周期内的样本数目,其中P包括并行工作百分比。
3.根据权利要求1所述的方法,其进一步包括通过测量在多个连续样本上的并行工作来确定是否已实现所述计算的并行工作百分比。
4.根据权利要求1所述的方法,其中基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括确定所述并行工作百分比是否已超过为进入多核心状态而建立的阈值。
5.根据权利要求4所述的方法,其中所述阈值是第一阈值,其中基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括确定所述并行工作百分比是否已下降到低于为进入单处理器状态而建立的第二阈值。
6.根据权利要求1所述的方法,其中计算所述并行工作百分比进一步包括确定所述一个或一个以上工作队列中存在的线程或工`作任务的数目。
7.根据权利要求1所述的方法,其进一步包括如果基于所述计算的并行工作百分比应改变所述多核心处理器的所述当前操作模式,则将一个或一个以上命令发出到中央处理单元功率控制器。
8.根据权利要求7所述的方法,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于休眠状态的指令。
9.根据权利要求7所述的方法,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于作用中状态的指令。
10.根据权利要求1所述的方法,其中所述便携式计算装置包括移动电话、寻呼机、个人数字助理“PDA”、智能电话、导航装置、智能本和媒体播放器中的至少一者。
11.一种用于动态地确定工作负载并行性程度且自动地调整便携式计算装置中支持工作负载的核心的数目的计算机系统,所述系统包括: 处理器,其可操作以用于: 监视多核心处理器的一个或一个以上工作队列; 基于所述多核心处理器的当前操作模式以及对所述一个或一个以上工作队列的所述监视而计算并行工作百分比; 基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器的所述当前操作模式;以及 如果确定应改变所述多核心处理器的所述当前操作模式,则指令所述多核心处理器的一个或一个以上核心切换动态电压和频率按比例缩放算法。
12.根据权利要求11所述的系统,其中所述并行工作百分比由以下等式控制:P=并行工作的实例数/ 一百分比周期内的样本数目,其中P包括并行工作百分比。
13.根据权利要求12所述的系统,其中所述处理器进一步可操作以用于通过测量在多个连续样本上的并行工作来确定是否已实现所述计算的并行工作百分比。
14.根据权利要求11所述的系统,其中所述处理器基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括所述处理器确定所述并行工作百分比是否已超过为进入多核心状态而建立的阈值。
15.根据权利要求14所述的系统,其中所述阈值是第一阈值,其中所述处理器基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括所述处理器确定所述并行工作百分比是否已下降到低于为进入单处理器状态而建立的第二阈值。
16.根据权利要求11所述的系统,其中所述处理器计算所述并行工作百分比进一步包括所述处理器确定所述一个或一个以上工作队列中存在的线程或工作任务的数目。
17.根据权利要求11所述的系统,其进一步包括如果基于所述计算的并行工作百分比应改变所述多核心处理器的所述当前操作模式,则所述处理器将一个或一个以上命令发出到中央处理单元功率控制器。
18.根据权利要求17 所述的系统,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于休眠状态的指令。
19.根据权利要求17所述的系统,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于作用中状态的指令。
20.根据权利要求11所述的系统,其中所述便携式计算装置包括移动电话、个人数字助理、寻呼机、智能电话、导航装置和具有无线连接或链路的手持式计算机中的至少一者。
21.一种用于管理无线手持式计算装置的一个或一个以上存储器资源的计算机系统,所述系统包括: 用于监视多核心处理器的一个或一个以上工作队列的装置; 用于基于所述多核心处理器的当前操作模式以及对所述一个或一个以上工作队列的所述监视而计算并行工作百分比的装置; 用于基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器的所述当前操作模式的装置;以及 用于在确定应改变所述多核心处理器的所述当前操作模式的情况下指令所述多核心处理器的一个或一个以上核心切换动态电压和频率按比例缩放算法的装置。
22.根据权利要求21所述的系统,其中所述并行工作百分比由以下等式控制: P=并行工作的实例数/针对一百分比周期的样本数目,其中P包括并行工作百分比。
23.根据权利要求22所述的系统,其进一步包括用于通过测量在多个连续样本上的并行工作来确定是否已实现所述计算的并行工作百分比的装置。
24.根据权利要求21所述的系统,其中所述用于基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式的装置进一步包括用于确定所述并行工作百分比是否已超过为进入多核心状态而建立的阈值的装置。
25.根据权利要求24所述的系统,其中所述阈值是第一阈值,其中所述用于基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式的装置进一步包括用于确定所述并行工作百分比是否已下降到低于为进入单处理器状态而建立的第二阈值的装置。
26.根据权利要求21所述的方法,其中所述用于计算所述并行工作百分比的装置进一步包括用于确定所述一个或一个以上工作队列中存在的线程或工作任务的数目的装置。
27.根据权利要求21所述的系统,其进一步包括用于在基于所述计算的并行工作百分比应改变所述多核心处理器的所述当前操作模式的情况下将一个或一个以上命令发出到中央处理单元功率控制器的装置。
28.根据权利要求27所述的系统,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于休眠状态的指令。
29.根据权利要求27所述的系统,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于作用中状态的指令。
30.根据权利要求21所述的系统,其中所述便携式计算装置包括移动电话、个人数字助理、寻呼机、智能电话、导航装置和具有无线连接或链路的手持式计算机中的至少一者。
31.一种包括计算机可用媒体的计算机程序产品,所述计算机可用媒体中体现有计算机可读程序代码,所述计算机可读程序代码适于经执行以实施用于动态地确定工作负载并行性程度且自动地调整便携式计算装置中支持工作负载的核心的数目的方法,所述方法包括: 监视多核心处理器的一个 或一个以上工作队列; 基于所述多核心处理器的当 前操作模式以及对所述一个或一个以上工作队列的所述监视而计算并行工作百分比; 基于所述计算的并行工作百分比而确定是否应改变所述多核心处理器的所述当前操作模式;以及 如果确定应改变所述多核心处理器的所述当前操作模式,则指令所述多核心处理器的一个或一个以上核心切换动态电压和频率按比例缩放算法。
32.根据权利要求31所述的计算机程序产品,其中所述并行工作百分比由以下等式控制: P=并行工作的实例数/ 一百分比周期内的样本数目,其中P包括并行工作百分比。
33.根据权利要求31所述的计算机程序产品,其中实施所述方法的所述程序代码进一步包括: 通过测量在多个连续样本上的并行工作来确定是否已实现所述计算的并行工作百分比。
34.根据权利要求31所述的计算机程序产品,其中基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括确定所述并行工作百分比是否已超过为进入多核心状态而建立的阈值。
35.根据权利要求34所述的计算机程序产品,其中所述阈值是第一阈值,其中基于所述计算的并行工作百分比确定是否应改变所述多核心处理器的所述当前操作模式进一步包括确定所述并行工作百分比是否已下降到低于为进入单处理器状态而建立的第二阈值。
36.根据权利要求31所述的计算机程序产品,其中计算所述并行工作百分比进一步包括确定所述一个或一个以上工作队列中存在的线程或工作任务的数目。
37.根据权利要求31所述的计算机程序产品,其中实施所述方法的所述程序代码进一步包括如果基于所述计算的并行工作百分比应改变所述多核心处理器的所述当前操作模式则将一个或一个以上命令发出到中央处理单元功率控制器。
38.根据权利要求37所述的计算机程序产品,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于休眠状态的指令。
39.根据权利要求37所述的计算机程序产品,其中所述一个或一个以上命令包括用以将一个或一个以上核心置于作用中状态的指令。
40.根据权利要求31所述的计算机程序产品,其中所述便携式计算装置包括移动电话、个人数字助理、寻呼机、智能电话、导航装置和具有无线连接或链路的手持式计算机中的至少一者。`
【文档编号】G06F9/50GK103502946SQ201280021937
【公开日】2014年1月8日 申请日期:2012年4月3日 优先权日:2011年4月5日
【发明者】爱德华多·雷吉尼, 博胡斯拉夫·雷赫利克 申请人:高通股份有限公司

最新回复(0)