操作系统中的启发式处理器电力管理背景技术
计算设备中的电力消耗的管理对于扩展电池的操作能力以及降低总电力消耗而
言是重要的,其可以增大用户安全性并且在财政和环境二者上是有益的,例如通过减少设
备的热覆盖区(thermal footprint)。甚至对于非移动计算机,当诸如在工具(utility)电
力中断期间依赖于电池备用系统时,降低电力要求对于节省重要全局资源以及延长操作是
有益的。然而,基于用户预期和设备的工作负载和功能,必须对照设备的性能需求来权衡减
小电力消耗的愿望。
处理器传统地使用计算设备中的大部分电力。许多现代处理器还允许在内核、操
作系统和/或应用级别下的电力消耗的编程控制。一些处理器可以在表示例如50%、70%或
90%处理能力的各种处理器模式之间切换。在较低处理能力模式中,减少了性能(例如,处理
器计算速度)和电力消耗二者。
通过例如基于设备的工作负载、用户性能预期和所监控的处理器性能数据来操控
系统中的处理器模式,可以降低设备的总电力消耗而同时维持可接受的性能准则。操控处
理器模式可以例如包括,调节处理器性能或者电力使用参数、控制可用于调度设备中的线
程的处理器核心的数目、或者将一些处理器或处理器核心置于“休眠”模式中以节约电力或
者降低设备温度。此外,在利用多个处理器和/或虚拟机器的系统中,每一个处理器可以不
同地配置以增强效率。
用于增强处理器电力消耗的效率的一些现有策略着重于检测中央处理单元(CPU)
的利用来预测未来需要或者广义上检测由系统执行的特定任务或线程的工作负载并且使
用先验或预设的量度以用于使性能要求与设备的工作负载相关联。一些现有策略可能由于
以下限制中的一个或多个而不是最佳的:(1)在使性能要求排他性地或者主要地与特定工
作负载相关联时的可扩展性的困难,因为与现有工作负载共享特性的新类型的工作负载可
能由于它们不是与类似现有工作负载相同类型的分类而不能够受益于现有性能或电力调
谐;(2)粗略地基于整个工作负载或任务类型,而不是工作负载内的关键高性能时段来确定
性能要求;(3)工作负载特定调谐没有考虑到变化的用户性能预期,例如用户对于特定应用
或硬件配置应当比其它更好地或者更差地执行的预期;(4)现有工作负载特定调谐系统可
能没有在真实硬件系统和虚拟环境之间转变;以及(5)现有方案没有充分地区分重叠的工
作负载来确定每一个工作负载的单独特性,或者现有方案强加显著执行成本以执行这样的
分析。
发明内容
提供该发明内容来介绍计算设备的基于启发法的处理器电力管理的概念和技术,
其在以下具体实施方式中进一步描述。出于本公开的目的,术语“处理器”可以是指其适用
于执行计算设备或系统中的逻辑或算术功能的任何硬件或虚拟实现。例如,除其它之外,
“处理器”可以是指以下设备的硬件或虚拟实现:中央处理单元、补充处理器或协同处理器、
微处理器、图形处理单元、存储器管理单元、数学协同处理器或者信号处理器。本文中讨论
的技术和设备使得能够监控处理器使用量度并且基于性能预期和设备的工作负载来均衡
性能和电力消耗。处理器电力管理技术可以使用以所观察的设备内的资源使用的形式的启
发法来调节或者导出处理器管理简档和性能要求。
提供该发明内容来以简化形式介绍以下在具体实施方式中进一步描述的概念的
选择。该发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在用来帮助确
定所要求保护的主题的范围。术语“技术”例如可以是指如通过以上上下文以及遍及该文档
所准许的(多个)系统、(多个)方法、计算机可读指令、(多个)模块、算法、硬件逻辑(例如,现
场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统的系统
(SOC)、复杂可编程逻辑器件(CPLD))和/或(多个)技术。
附图说明
参照附图描述具体实施方式。在图中,参考标号最左边的数位标识参考标号第一
次出现在其中的图。在不同图中的相同参考标号指示相似或等同的项目。
图1是提供计算设备的基于启发法的处理器电力管理的说明性计算架构100的框
图。
图2是根据一些实施例的用于调节CPU电力管理参数的示例算法的流程图。
图3是根据一些实施例的所监控的处理器性能量度的示例表格。
图4是根据一些实施例的用于响应于所监控的处理器性能量度和所监控的用户性
能预期来更新所存储的CPU电力管理简档的示例算法的流程图。
图5是并入与单个计算设备相关联的多个虚拟机器的说明性系统的框图。
图6是根据一些实施例的用于响应于从与硬件CPU相关联的一个或多个虚拟机器
采样的数据来调节硬件CPU管理参数的示例算法的流程图。
具体实施方式
概述
各种计算硬件,特别地计算设备处理器,能够在减小的电力状态(模式或p状态)中操
作。例如,更加复杂的设备,诸如处理器,可以包括各种电力状态,诸如低电力状态、空闲状
态等,其允许变化程度的低电力操作。一些处理器可以启用在另外的粒度(例如表示50%、
70%或90%或任何其它数额的处理能力)下的可选操作模式。在较低处理能力模式下,可以降
低性能(例如,处理器计算速度)和电力消耗二者。
为了提高处理器的效率并且节约电力,操作系统可以监控一个或许多处理器使用
量度以估计和/或记录执行特定线程或任务的处理器性能要求和处理器性能。在虚拟化环
境中,这些量度可以从实际硬件搜集,从每一个虚拟机器搜集并且聚集(例如,通过PPM
120)以提供与物理硬件有关的信息,或者以上二者。
计算设备的电力管理模块确定要应用于处理器的可应用处理器管理简档。处理器
管理简档可以例如包括对诸如电力使用和处理器利用之类的处理器控制参数的调节,或者
调节可用于处理的核心数目,包括通过将一个或多个处理器或核心设置成非活跃或“休眠”
模式。电力管理模块可以对比用户或系统性能预期来均衡包括处理器性能或要求中的改变
的数据以选取适合的电力管理简档。例如,电力管理模块可以配置成相比于针对预期的近
期处理要求的所有其它可用电力管理简档而言,选取将使用最少电力满足性能预期的电力
管理简档。
例如涉及类似处理要求之下的处理器使用量度和其中的改变的启发式或所观察
的数据以及之前的用户性能预期可以用于修改或更新所存储的电力管理简档和/或可以直
接地由电力管理模块使用以选取处理器管理简档。
本文中描述的过程和系统可以以数个方式实现。以下参照图1-4提供示例实现。
说明性环境
图1是提供计算设备的基于启发法的处理器电力管理的说明性计算架构100的框图。架
构100包括计算设备102。例如,除其它可能的计算设备之外,计算设备可以是服务器102
(1)、桌面型计算机102(2)、平板计算机102(3)、移动计算机102(4)、移动电话102(5)、游戏
操控台和音乐播放器102(n)。如本文中所讨论的,对计算设备102的任何引用被解释为包括
计算设备102(1)-(n)中的任一个。
在非常基本的配置中,计算设备102可以典型地包括一个或多个处理器(“处理
器”)104。例如,处理器104可以是单独地或者以任何组合在多核心处理单元中并行或串行
配置的多个独立处理器中的至少一个。处理器可能具有包括在相同芯片或者集成电路上的
两个或更多处理器(“核心”)。术语“处理器”、“核心”和“逻辑处理器”可以贯穿本公开可互
换地使用,除非以其它方式参照特定元件而特别地声明。
此外,计算设备102可以包括系统存储器106。取决于计算设备的确切配置和类型,
系统存储器106可以是易失性(诸如RAM)、非易失性(诸如ROM、闪速存储器等)或二者的某种
组合。系统存储器106可以包括操作系统108、一个或多个程序模块110,并且可以包括程序
数据112。
依照一个或多个实施例,操作系统108可以包括线程调度器114,除了其它可能的
调度相关活动之外,其使得能够跨架构100中的所有可用处理器104或其它硬件(例如,监控
器、存储器、盘驱动器、外围设备等)实现工作单元(线程)的排队、调度、优先化和分派。例
如,当活跃线程准备好运行时,经由一个或多个模块,线程调度器114可以将线程分派给处
理器104中任何可用的一个以进行处理。
依照一些实施例,线程调度器114可以包括监控计算活动(用户生成的活动、硬件
操作、应用状态等)的分析器模块116。所分析的调度器可以由预报模块118使用以便预报计
算设备102的工作负载。预报可以包括低容量分段(low volume segment),其中可以通过降
低计算设备102的或者连接到计算设备的其它硬件和/或(多个)处理器104的电力状态来可
预见地实现电力减少。
操作系统108可以包括处理器电力管理器(“PPM”)120以在例如由预报模块118预
计到性能上的提高或者减少的电力需要时调节处理器104和/或硬件的性能。频率模块122
可以使得能够调节处理器104和/或硬件的速度(经由频率和电压),诸如通过控制处理器
104的P状态(频率/电压控制器)。此外,处理器电力管理器120可以包括电力模块124,其可
以将处理器104和/或硬件的电力(性能)状态降低成低电力(性能)状态,诸如通过控制处理
器的C状态。
当成本效益分析指示与降低的电力状态相关联的净电力减少时,线程调度器114
和处理器电力管理器120可以共同工作以通过预报性能要求并且然后引导硬件降低或增加
电力状态(经由频率模块122和/或电力模块124),来降低计算设备102的电力消耗。
在一些实施例中,操作系统108可以包括延迟管理器126以评价与计算设备102的
硬件和/或作为处理器104的结果的程序模块110的性能相关联的用户所感知的延迟。例如,
作为在用户所感知的延迟满足(或超出)延迟阈值时控制电力要求(经由处理器电力管理器
120)的一部分,延迟管理器126将用户所感知的延迟与延迟阈值相比较。在其它实施例中,
性能预期评级或层级可以与设备、硬件配置或者各种活动相关联,各种活动例如是线程、应
用和设备功能。
计算设备102可以具有附加特征或功能性。例如,计算设备102还可以包括附加数
据存储设备(可移除和/或不可移除的),诸如例如磁盘、光盘、带、或者到远程或“云”存储装
置的连接。这样的附加存储装置在图1中通过可移除存储装置128和不可移除存储装置130
图示出。计算机存储介质可以包括在用于存储信息的任何方法或技术中实现的易失性和非
易失性、可移除和不可移除的介质,信息诸如是计算机可读指令、数据结构、程序模块或其
它数据。系统存储器106、可移除存储装置128和不可移除存储装置130全部是计算机存储介
质的示例。因而,计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器
技术、CD-ROM、数字多用盘(DVD)或其它光学存储装置、磁盒、磁带、磁盘存储设备或其它磁
性存储设备、或者可以用于存储期望的信息并且可以由计算设备102访问的任何其它介质。
任何这样的计算机存储介质可以是计算设备102的部分。
计算设备102还可以具有一个或多个输入设备132,诸如键盘、鼠标、笔、语音输入
设备、触摸输入设备等。诸如显示器、扬声器、打印机等一个或多个输出设备134也可以直接
地或者经由连接包括到计算设备102。计算设备102还可以包括通信连接136,其允许设备通
过例如有线或无线网络与其它计算设备进行通信。
说明性过程
图2是根据一些实施例的用于调节CPU电力管理参数的示例算法的流程图。在各种实施
例中,图2的过程可以基本上由PPM 120或者由线程调度器114、分析器模块116、预报模块
118、PPM 120、延迟管理器126、以及其它有形或抽象的软件或硬件模块或设备的任何组合
来执行。
在一些实施例中,在步骤202处监控样本处理器性能量度。所监控的处理器性能量
度的示例包括但不限于运行线程的延迟容忍度、线程优先级、存储器页面错误计数或导出
的统计数据、输入/输出操作计数、设备中断计数、由系统中的各个线程完成的工作的百分
比、以及线程执行时间。在图3处提供并且以下在图3的详细描述中讨论所监控的处理器性
能量度的进一步的详细示例。
在一些实施例中,延迟管理器126可以评价与计算设备102的硬件相关联的用户所
感知的延迟。这样的评价可以发生在许多级别中的任一个或全部下,例如对一般的特定硬
件配置的用户所感知的延迟的评价,或者对任何数目的特定线程、线程或任务类型、原生设
备和/或操作系统功能或工具、或者软件应用的用户所感知的延迟的评价。
在一些实施例中,优先级可以与由设备执行的各种任务相关联。例如,可以将一个
或多个优先级分配给特定核心执行线程或其部分、特定活动或设备活动类型、操作系统功
能或工具、或者软件应用。优先级系统可以例如是简单的二进制高优先级或低优先级评级。
在其它实施例中,线程优先级系统可以包含任何数目的中间优先级评级。
在一些实施例中,各种线程或任务类型可以由PPM 102不同地处置。例如,例如用
户、组织或系统管理员的性能预期可以与特定线程、任务类型、设备功能或应用相关联。在
一些实施例中,诸如延迟管理器126之类的模块可以被动地或者主动地评价用户对于设备
是否针对特定活动或线程良好地执行的感知。在一些实施例中,性能预期层级评级可以与
特定线程、任务类型、应用、或者包括性能和电力状态的设备或外围功能相关联。在各种实
施例中,这样的关联可以明确地由用户或者由系统模块做出。在一些实施例中,诸如外围设
备(例如,图形处理单元、设备相机、媒体编解码器)的电力状态和使用频率之类的功能可以
在计算性能预期时使用。在一些实现中,用于处理器的性能预期可以整体地或者部分地基
于涉及其它设备或处理器的信息而导出。例如,可以在计算用户的智能设备的CPU的性能预
期时使用相同用户的平板设备的操作频率。
在一些实施例的步骤204处,系统生成近期处理器要求的预测。该预测可以例如由
PPM 120或者预报模块118基于以下各项而生成:当前或者已知未来的核心线程及其相关联
的特性;考虑到例如当日时间(time of day)和星期中的某日(day of week)、地理位置、或
者之前的用户行为(包括之前同时地或者在时间上彼此紧密接近地使用的应用和活动)的
用户设备使用习惯;或者当前样本处理器性能量度的直接观察,包括对之前在这样的量度
中观察到的样式的考虑。
在一些实施例中,在步骤206处,PPM 120对照所保存的用于改变处理器管理简档
的条件来比较经采样的处理器性能量度。简档改变条件可以由系统设计者限定或者使用所
观察的系统数据来生成。在一些实施例中,简档改变条件可以使用所观察的启发式数据来
调节。在一些实施例中,处理器管理简档可以被表述为两个数X/Y,其中X表示处理器性能提
高阈值,并且Y表示处理器性能降低阈值。X和Y中的每一个可以表示特定处理器管理简档中
的处理器利用百分比——X是可以触发在处理器性能或p状态上的提高的处理器利用百分
比,并且Y是可以触发在处理器性能或p状态上的降低的处理器利用百分比。例如,被表示为
60/30的处理器管理简档可以向操作系统告知,当处理器处于60%利用或更高时,p状态可以
提高,并且当处理器利用处于30%或更低时,p状态可以降低。
在各种实现中,用于改变处理器性能简档的其它条件可以包括,在线程执行阶段
中的改变或者对与高或低处理要求相关联的事件的检测。例如,移动设备上的web浏览器应
用可能被动地执行搜集和更新设备上的数据,甚至是在设备的屏幕处于空闲模式中时。当
设备的用户“唤起”电话以查看web浏览器数据显示时,该事件可以触发性能简档中的改变,
即便是设备上的执行应用尚未改变。主动地显示和刷新屏幕所要求的额外电力和处理性能
必然要求附加性能。附加地或者可替换地,关于特定线程或线程类型的特定阶段的性能要
求的启发式数据可以用于修订现有处理器电力管理简档改变条件或者创建新的条件。
在步骤208处,在一些实施例中,在已经确定已经满足用于简档改变的条件的情况
下,PPM 120使用所存储的简档改变条件和经采样的处理器性能量度来选择适合的管理简
档。在一些实施例中,在设置了多于一个简档改变条件的情况下,可以通过优先级对简档改
变条件排名。在其它实施例中,PPM 120可以被配置成使得一个或多个简档改变条件的各种
组合可以触发与那些条件中任一个将单独地触发的处理器管理简档不同的处理器管理简
档。
在步骤210处,PPM 120应用所选择的CPU管理简档。所选择的CPU管理简档可以限
定对设备的一个或多个处理器的控制。附加地或者可替换地,在一些实现中,CPU管理简档
可以限定或者调节PPM 120或者计算设备系统的其它部分如何使用或解释经采样的性能量
度或其它系统信息。在一些实施例中,改变CPU管理简档可以通过访问例如操作系统的高级
配置和电力接口(ACPI)或者通过由设备的特定操作系统或处理器制造商提供的任何其它
处理器控制措施来达成。
在示例实施例中,假设设备在90/80的处理器管理简档之下操作并且系统具有单
个存储的简档改变条件,该简档改变条件指定,如果处理器性能量度MmPageFaultCount大
于20,则处理器管理简档应当改变成60/30。在这样的样本实施例中,在被表示为图2中的
206的步骤处,PPM 120或者设备的操作系统的另一个模块将比较MmPageFaultCount的最近
值。如果MmPageFaultCount在步骤206的比较期间高于20,则PPM 120登记上,已经满足简档
改变条件。因为在该示例实施例中仅存在一个简档管理条件,所以不存在要解决的条件冲
突并且PPM 120移动至步骤208以确定适合的处理器管理简档。PPM 120标识出与条件
MmPageFaultCount>20相关联的处理器管理简档(60/30)。在步骤210处,PPM 120通过访问
ACPI或其它接口以指令处理器改变其性能参数,来实现所选取的处理器管理简档。在我们
的示例中,如果“60/30”处理器管理简档指示与当前实现在处理器中的那些不同的处理器
性能参数,则PPM 120访问设备的操作系统的ACPI以便调节处理器参数来遵循“60/30”处理
器管理简档。
在步骤212处,系统确定是否要求新的样本——例如,因为自处理器性能量度的最
后一个样本起已经过去了足够的时间,或者系统已经接收到要求响应和性能预期的更新或
再评定的事件。在一些实现中,可以例如通过用户经由触觉或话语输入而唤起设备、启动或
退出应用、或者完成或挂起线程,来触发性能评定。如果是进行新样本的时间时,算法执行
返回到步骤202。如果尚不要求新样本,则系统在步骤214处等待,直到用于处理器性能量度
的下一样本的适合时间或者触发事件为止。在没有另一个触发事件的情况下样本之间的时
间可以例如在数十毫秒的范围中。在一些实施例中,针对设备的(多个)特定硬件配置及其
物理和计算能力紧密地调谐样本时间。在一些实施例中,样本时序可以由系统调节成例如
在高处理器活动或频繁线程切换的时间期间更加频繁地采样,或者例如在设备基本上处于
“空闲”状态中时较不频繁地采样。如果不是进行新样本的时间,则系统在步骤214处等待。
在一些示例实施例中,样本时间典型地可以在数十毫秒的范围中。
图3是根据一些实施例的所监控的处理器性能量度的示例表格。处理器性能量度
的类别或类型302提供在左列中以方便人类理解。在一些实施例中,这样的类别根本不存
在,或者没有由操作系统功能所使用。特定的处理器性能量度304出现在右列中。所列出的
性能量度中的任一个、全部、或者没有所列出的性能量度可以在任何特定示例系统中使用
或可用。这些示例量度不旨在是穷举性列表。在各种实施例中,可以通过操作系统的高级配
置和电力接口(ACPI)来访问这些量度。
在图3中表示并且归类为效用(utility)类型302(1)的特定示例量度为:推迟的程
序调用(procedure call)中断服务效用DpcIsrUtility 304(1)(效用可以是由处理器完成
的工作的度量;在一些实施例中,被表述为在评价间隔期间的平均利用频率x忙时,其中忙
时可以例如从处理器的计数指令循环或者非空闲时间导出);后台低效用BgLowUtility
304(2);后台正常效用BgNormalUtilty 304(3);后台临界效用BgCriticalUtility 304
(4);前台低效用FgLowUtility 304(5);前台正常效用FgNormalUtilty 304(6);以及前台
临界效用FgCriticalUtility 304(7)。
被归类为应用类型的应用302(2)的图3的示例量度为:音频应用的Audio(音频)
304(8);捕获应用的Capture(捕获)304(9);分布应用的Distribution(分布)304(10);游戏
应用的Games游戏)304(11);回放应用的Playback(回放)304(12);计算和交互式应用的
Computational/Interactive(计算/交互)304(13);以及窗口管理应用的WindowManager
(窗口管理器) 304(14)。
被归类为存储器类型302(3)的图3的示例量度为:存储器页面错误数目
MmPageFaultCount 304(15);存储器写时拷贝功能数目MmCopyOnWriteCount 304(16);页
面读取功能数目MmPageReadCount 304(17);页面读取输入和输出数目PageReadIOCount
304(18);脏页面写入数目MmDirtyPageWriteCount 304(19);脏输入/输出写入数目
MmDirtyWriteIoCount 304(20);以及所映射的页面写入功能数目
MmMappedPagesWriteCount 304(21)。
被归类为输入/输出(“I/O”)类型302(4)的图3的示例量度为:读取操作数目
IoReadOperationsCount 304(22);写入操作数目IoWriteOperationsCount 304(23);其它
I/O操作数目IoOtherOperationsCount 304(24);读取转移数目IoReadTransferCount 304
(25);写入转移数目IoWriteTransferCount 304(26);其它I/O转移数目
IoOtherTransferCount 304(27);以及I/O失效数目IoFailureCount 304(28)。
图4是根据一些实施例的用于响应于所监控的处理器性能参数和所监控的用户性
能预期来更新所存储的CPU电力管理简档的示例算法的流程图。在各种实施例中,图4的过
程可以基本上由PPM 120或者由线程调度器114、分析器模块116、预报模块118、PPM 120、延
迟管理器126、以及其它有形或抽象软件或硬件模块或设备中的任何组合来执行。
在一些实施例中,可以在步骤402处对处理器量度采样。在一些实施例中,全部或
者基本上全部的所监控的处理器性能量度与在步骤202处监控的那些相同。在一些实施例
中,在步骤402处不要求单独的采样,因为在CPU管理参数调节算法的步骤202处所采样的值
也可以用于图4的算法以更新所存储的CPU电力管理简档。在其它实施例中,可以在步骤402
处监控不同或附加的处理器量度,和/或可以在步骤402处执行处理器性能量度的单独轮
询。
在步骤404处,在一些实施例中,监控用户性能预期。延迟管理器126、PPM 120或者
其它模块的任何组合可以监控用户性能预期或者服务级协定。例如,在一些实施例中,用户
性能预期可以随特定应用、当日时间、活动或程序类型、或者任何数目的其它参数而变化。
附加地,在一些实施例中,延迟管理器126可以应用用户行为分析来检测与设备性能有关的
用户挫败或满意。作为示例,延迟管理器126在一些实施例中可以将用户的特定类型可听表
述或者重复或复制的控制输入解释为指示用户挫败或所感知的低性能。
在一些实施例中,性能预期层级评级可以与特定线程、任务类型、设备功能或者应
用相关联。该关联在一些实施例中可以由用户明确地做出,或者在各种实施例中由系统模
块计算或添进。在一些实施例中,延迟管理器126可以例如基于启发式数据或者以上讨论的
预限定规则来计算关于用户的未来延迟容忍度的预测。
在步骤406处,在各种实施例中,PPM 120确定CPU管理简档是否要求更新。例如,在
一些实施例中,所检测的性能中的不足可以触发改变一个或多个所保存的处理器管理简档
的需要。这样的所检测的性能中的不足可以例如是,在如由用户预期层级限定的指定时间
量中执行特定任务的失效。在其它实施例中,达到由延迟管理器126检测的用户挫败阈值可
以触发改变一个或多个所保存的处理器管理简档的需要。在各种实施例中,相比于用户预
期的持久性超过性能也可以触发改变的所存储的处理器管理简档,特别地降低性能以节省
电力。
在各种实现中,用于更新CPU管理简档的其它条件可以与特定线程或应用的各种
执行阶段相关联,包括例如,在仅针对应用的执行时间的部分而存在高处理要求的情况下。
例如,移动设备上的web浏览器应用可能被动地执行搜集和更新设备上的数据,甚至是在设
备的屏幕处于空闲模式中时。当设备的用户“唤起”电话以查看web浏览器数据显示时,该事
件可以触发性能简档中的改变,即便是设备上的执行应用尚未改变。主动地显示和刷新屏
幕所要求的额外电力和处理性能必然要求附加的性能。附加地或者可替换地,关于特定线
程或线程类型的特定阶段的性能要求的启发式数据可以用于修订现有CPU管理简档或者创
建新的简档。
在步骤408处,如果CPU管理简档要求更新,则各种实施例的系统改变所保存的简
档参数以计及不及性能(under-performance)或超过性能(over-performance)。使用之前
讨论的示例规则(如果MmPageFaultCount>20,则将处理器管理简档改变成60/30),如果在
应用该规则时,PPM 120在步骤406处检测到设备性能低于用户预期,则PPM 120可以更新与
MmPageFaultCount>20相关联的处理器管理简档以便在较低的阈值下提高和降低处理器
性能二者。例如,PPM 120可能替代地将相关联的60/30简档改变成50/20。在一些实施例中,
此处没有特别地提及的其它ACPI控制或者p状态可以与条件相关联或者响应于用户预期而
改变。
在一些实施例中,在步骤410处,如果必要的话,PPM 120基于其对比如本文中描述
的性能而与用户预期进行的比较来更新或添加简档切换参数。例如,PPM 120可能向系统添
加一个规则,该规则在某些情况之下——例如,如果视频回放线程正在设备上运行——使
示例规则(如果MmPageFaultCount>20,则将处理器管理简档改变成60/30)无效。
在步骤412处,在一些实施例中,系统确定是否要求新的样本——例如,因为自处
理器性能量度的最后样本起已经过去足够的时间,或者系统已经接收到要求性能预期的更
新或再评定的事件。在一些实施例中,步骤412和414可以与如上文描述的步骤212和214相
同。在其它实施例中,出于更新所存储的CPU管理简档的目的,可以限定单独(更长或更短)
的样本时间。如果不是进行新样本的时间,则系统在步骤214处等待。在一些示例实施例中,
样本时间可以典型地在数十毫秒的范围中。
图5是并入与单个计算设备相关联的多个虚拟机器的说明性系统的框图。在各种
实施例中,本文描述的技术和系统可以跨一个或多个虚拟机器实现,例如在云计算或分布
式计算系统中实现。在一些实施例中,在计算设备102(包括PPM 120以及如参照图1描述的
其它模块和设备)的存储器内,虚拟机器管理器(“VMM”)502(还称为管理程序)可以实现一
个或多个虚拟机器504。
虚拟机器504可以被配置成利用计算设备504的硬件作为独立实体进行操作。虚拟
机器504用作自包含式操作环境,自包含式操作环境表现得就像其是单独的计算机。在这一
方面中,虚拟机器504包括虚拟处理器506和虚拟存储器508,其使得VM 504能够用作与计算
设备102不同的单独计算机。
VMM 502可以安装在服务器设备上以控制和监控VM 504的执行。在各种实施例中,
VMM 502可以承担以其它方式在本文中描述为由PPM 120执行的一些或全部功能。在一个实
现中,VMM 502直接地在计算设备102的物理硬件上执行,从而响应于VM 504的需要来管理
和分配物理硬件。在一个实现中,管理程序502可以附加地虚拟化耦合到计算设备102的一
个或多个物理设备。
在各种实施例中,虚拟机器504还包括处理器监控器501以用于监控或采样与虚拟
机器504相关的处理器性能量度并且将所采样的量度向回报告给计算设备102。经采样的处
理器性能量度可以例如是图3的任何或全部量度、那些量度的任何子集、或者特定于虚拟处
理器的性能量度。在各种实施例中,虚拟机器1到n的处理器性能量度可以被聚集(例如,通
过PPM 120或者管理程序502内的单独处理器监控器)以用于调节与虚拟机器相关联的硬件
处理器。在各种实施例中,聚集可以采取各种格式中的任何一个或若干——例如,任何特定
性能量度的平均或中值可以用于调节硬件处理器。其它聚集方法是可能的,并且聚集方法
可以随特定量度、虚拟处理器的类型、硬件处理器的类型、用户性能预期或其它变量而变
化。
在其它实施例中,仅针对特定虚拟机器,可以基于例如该虚拟机器的工作负载或
要求、其测量的性能、以及特定于该虚拟机器的用户预期,来做出根据本文中描述的方法的
调节。
图6是根据一些实施例的用于响应于从与硬件CPU相关联的一个或多个虚拟机器
采样的数据来调节硬件CPU管理参数的示例算法的流程图。在各种实施例中,图6的过程可
以基本上由PPM 120或者由线程调度器114、分析器模块116、预报模块118、PPM 120、延迟管
理器126、VMM 502、虚拟机器504、处理器监控器510、虚拟处理器506、以及其它有形或抽象
软件或硬件模块或设备的任何组合来执行。
在步骤602处,在一些实施例中,可以对处理器量度采样。在一些实施例中,所有或
者基本上所有所监控的处理器性能量度与在步骤202处采样的那些相同。在一些实施例中,
在步骤602处不要求单独的采样,因为在CPU管理参数调节算法的步骤202处采样的值也可
以用于图6的算法以便响应于从一个或多个虚拟机器采样的数据而调节硬件CPU管理参数。
在其它实施例中,可以在步骤602处监控不同或附加处理器量度,和/或可以在步骤602处执
行处理器性能量度的单独轮询。例如,可以监控与虚拟处理器有关的附加处理器性能量度。
在各种实施例中,在步骤604处,可以聚集各种虚拟处理器的数据。在各种实施例
中,可以聚集虚拟机器1到n的处理器性能量度以用于调节与虚拟机器相关联的硬件处理
器。如在本文中其它地方描述的,聚集可以包括平均化、寻找中值或模式、消除无关数据点、
或者其它采样和统计分析。
在一些实施例的步骤606处,生成与虚拟机器相关联的硬件处理器的近期要求的
预测。该预测可以例如由PPM 120或者预报模块118基于以下各项而生成:当前或已知的未
来内核线程及其相关联的特性;考虑到例如以下各项的用户设备使用习惯:当日时间和一
周中的某天、地理位置或之前用户行为(包括之前同时地或者在时间上彼此紧密接近地使
用的应用和活动);或者当前样本处理器性能量度的直接观察,包括对之前在这样的量度中
观察的样式的考虑。
在一些实施例中,在步骤608处,PPM 120对照所保存的用于改变处理器管理简档
的条件来比较经采样的聚集的处理器性能量度。简档改变条件可以由系统设计者限定或者
使用所观察的系统数据生成。在一些实施例中,简档改变条件可以使用所观察的启发式数
据来调节。在一些实现中,所观察的数据或者启发式数据可以包括,用于推知设备或应用操
作中的改变的系统范围事件的聚集,例如用户触模设备屏幕、浏览web、或者请求音频或视
频媒体的回放。
在步骤610处,在一些实施例中,在已经确定已经满足用于简档改变的条件的情况
下,PPM 120使用所存储的简档改变条件和经采样的处理器性能量度来选择适合的管理简
档。在一些实施例中设置多于一个简档改变条件的情况下,可以通过优先级对简档改变条
件排名。在其它实施例中,PPM 120可以被配置成使得一个或多个简档改变条件的各种组合
可以触发与那些条件中的任一个将单独地触发的处理器管理简档不同的处理器管理简档。
在步骤612处,PPM 120将所选择的CPU管理简档供应给设备的一个或多个处理器。
在一些实施例中,改变CPU管理简档可以通过访问例如操作系统的高级配置和电力接口
(ACPI)或者通过由设备的特定操作系统或处理器制造者提供的任何其它处理器控制措施
来达成。
示例条款
A、一种方法,包括:监控计算设备的处理器的一个或多个处理器性能量度;预测处理器
的近期处理器性能要求,所述预测至少部分地基于一个或多个处理器性能量度;从至少两
个存储的CPU电力管理简档的集合选择CPU电力管理简档,所述选择至少部分地基于所预测
的近期处理器性能要求和用户性能预期;以及将所选择的CPU电力管理简档应用于处理器。
B、一种系统,包括:处理器;与处理器相关联的至少一个虚拟机器;处理器电力管
理模块,其被配置成由处理器操作以:监控处理器的一个或多个处理器性能量度,监控至少
一个虚拟机器的一个或多个处理器性能量度,聚集所监控的处理器和至少一个虚拟机器的
处理器性能量度,预测处理器的近期处理器性能要求,以及调节处理器的至少一个CPU电力
管理特性,所述预测至少部分地基于一个或多个处理器性能量度,所述调节至少部分地基
于所预测的近期处理器性能要求。
C、具有记录在其上的计算机可执行指令的一个或多个计算机可读介质,所述计算
机可执行指令被配置成使计算系统执行包括以下各项的操作:监控计算设备的处理器的一
个或多个处理器性能量度;预测处理器的近期处理器性能要求,所述预测至少部分地基于
一个或多个处理器性能量度;以及调节处理器的至少一个CPU电力管理特性,所述调节至少
部分地基于所预测的近期处理器性能要求。
D、如段落A所述的方法,还包括,响应于启发式线程执行数据来调节所存储的CPU
电力管理简档中的一个或多个。
E、如段落B或C所述的方法,还包括,响应于启发式线程执行数据来调节所存储的
CPU电力管理特性中的一个或多个。
F、如段落D或E所述的方法,所述启发式线程执行数据包括以下中的一个或多个:
设备中断数目的改变、存储器页面错误的改变、线程执行阶段的改变、或者与高处理要求相
关联的事件的检测。
G、如段落F所述的方法,其中CPU电力管理简档最初至少部分地基于启发式线程执
行数据而生成。
H、如段落A所述的方法,选择CPU电力管理简档还部分地基于所检测的设备性能中
的不足。
I、如段落B所述的方法,调节至少一个CPU电力管理特性还部分地基于所检测的计
算设备性能中的不足。
J、如段落C所述的方法,调节至少一个CPU电力管理特性还部分地基于所检测的计
算设备性能中的不足。
K、如段落A、B或C所述的方法,一个或多个处理器性能量度还包括,与计算设备相
关联的至少一个虚拟机器的一个或多个处理器性能量度。
L、如段落A、B或C所述的方法,其中处理器是与虚拟机器相关联的虚拟处理器。
M、如段落A所述的方法,所监控的处理器性能量度包括以下中的一个或多个:线程
优先级、线程执行时间、设备中断数目、存储器页面错误数目、或者输入/输出事件数目。
N、如段落B或C所述的方法,其中调节至少一个CPU电力管理特性部分地基于用户
性能预期。
O、如段落A或N所述的方法,用户性能预期至少部分地基于所选择的性能预期层
级。
P、如段落O所述的方法,其中响应于以下中的至少一个而选择性能预期层级:设备
类型、设备模式、线程优先级、用户指定的线程优先级或者线程执行状态。
Q、如段落A或N所述的方法,用户性能预期至少部分地基于用户行为分析。
R、如段落A或N所述的方法,用户性能预期至少部分地基于对设备的一个或多个用
户的未来延迟容忍度的预测。
S、如段落A或N所述的方法,监控一个或多个处理器性能量度包括以规则的样本间
隔对处理器性能量度采样。
T、如段落B或K所述的系统,还包括用于控制至少一个虚拟机器的虚拟机器管理
器。
U、如段落B所述的系统,处理器电力管理模块还被配置成,通过应用来自至少两个
CPU电力管理简档的集合的CPU电力管理简档来调节至少一个CPU电力管理特性。
V、如段落U所述的系统,处理器电力管理模块还被配置成响应于所观察到的线程
执行数据来调节至少两个CPU电力管理简档。
W、如段落V所述的系统,处理器电力管理模块还被配置成至少部分地基于所观察
到的线程执行数据来生成至少两个CPU电力管理简档的集合。
X、如段落C所述的计算机可读介质,计算机可执行指令还被配置成基于所观察到
的用户行为来更新用户性能预期。
结论
尽管已经以特定于结构特征和/或方法动作的语言描述了技术,但是要理解到,随附权
利要求未必限于所描述的特征或动作。相反,作为这样的技术的示例实现而描述特征和动
作。
除其它之外,诸如“可以”、“可能”、“也许”或者“能够”之类的条件语言在上下文内
理解成表示某些实施例包括而其它实施例不包括某些特征、元件和/或步骤,除非以其它方
式特别地陈述。因而,这样的条件语言一般不旨在暗示着,某些特征、元件和/或步骤以任何
方式被要求用于一个或多个实施例或者一个或多个实施例必然地包括用于在具有或没有
用户输入或提示的情况下决定是否包括或在任何特定实施例中要执行某些特征、元件和/
或步骤的逻辑。
诸如短语“X、Y或Z中的至少一个”之类的连接性语言要理解为表示物品、项目等可
以是X、Y或Z或其组合,除非以其它方式特别地陈述。
在本文描述和/或附图中描绘的流程图中的任何例程描述、元件或框应当理解为
潜在地表示包括用于实现例程中的特定逻辑功能或元件的一个或多个可执行指令的代码
的部分、片段或模块。在本文描述的实施例的范围内包括可替换实现,其中取决于所牵涉的
功能性,可以以与所示出或所讨论的次序不同地(包括基本上同步地或者以相反次序)执行
或者删除元件或功能,如将由本领域技术人员理解的那样。
应当强调的是,可以对以上描述的实施例做出许多变形和修改,其元件要理解为
在其它可接受的示例之中。在本文中,所有这样的修改和变形都旨在被包括于该公开内容
的范围内并且受以下权利要求的保护。