增加移动设备电池的持续时间的优化器方法、系统和装置的制作方法

文档序号:6596829阅读:149来源:国知局

专利名称::增加移动设备电池的持续时间的优化器方法、系统和装置的制作方法
技术领域
:本申请一般地涉及改进的数据处理装置和方法,更具体地说,涉及增加移动设备电池的持续时间的优化器机制。
背景技术
:减小数据处理系统工作中的能耗正在成为一项越来越重要的要求。由于环境影响和增大的成本,节能是一个非常重要的问题。此外,必须考虑与由高消耗和用户的过度请求造成的能量供应中断(断电)有关的风险和成本。能耗具有极大重要性的一个领域是诸如移动电话、膝上型计算机之类的便携设备的电池电力。经常发生用户操作其便携设备(如膝上型计算机)并可能需要执行特定操作,但是可能没有储备的电池电力来完成这些操作。例如,用户可能需要使用膝上型计算机来演示多个幻灯片作为对其他人员的演示的一部分,然而可能没有充足的电池电力来在整个演示时间内操作膝上型计算机。虽然可将膝上型计算机的插头插入墙上的插座以便具有恒定的电力供应,但是此类电力源通常并不可用。因此,用户(其没有足够的电池电力来在完成演示的整个时间内运行膝上型计算机,并且无法接近墙上的插座或其他恒定电源)将不能完成便携设备(如膝上型计算机)所需的演示或其他操作。在数据处理系统中公知的是,监视各个硬件设备的消耗以及应用某些纠正动作以便最优化数据处理系统的总体功耗。例如,美国专利第7,197,652号公开了一种用于多线程数据处理系统中的能量管理的机制。所述方法在性能监视单元内提供了每一设备的使用率评估器,其监视所连接的硬件设备的使用。但是,功耗还可取决于使用硬件设备的方式。例如,功耗可取决于正在系统上运行的软件应用,以及取决于应用所使用的软件和硬件资源。
发明内容在一个示意性实施例中,提供了一种在数据处理系统中的方法,所述方法用于调整所述数据处理系统的工作状态以便在所述数据处理系统使用将耗尽的电源时达到目标工作时间段,所述方法包括确定正在所述数据处理系统上执行的各个过程的预测功耗,以及确定所述将耗尽的电源能够提供的剩余电量。所述方法还包括根据所述各个过程的所预测功耗和所述将耗尽的电源能够提供的电量,标识能够暂停其执行以使所述数据处理系统能够工作所述目标时间段的过程的子集。此外,所述方法包括将所标识的过程的子集置于已暂停执行状态。在其他示意性实施例中,提供了一种包括具有计算机可读程序的计算机可用或可读介质的计算机程序产品。当所述计算机可读程序在计算设备上执行时,将导致所述计算设备执行关于所述方法示意性实施例的以上列出的操作中的各个操作及操作组合。在再一个示意性实施例中,提供了一种系统/装置。所述系统/装置可包括一个或多个处理器以及与所述一个或多个处理器耦合的存储器。所述存储器可包括指令,当所4述指令被所述一个或多个处理器执行时,将导致所述一个或多个处理器执行关于所述方法示意性实施例的以上列出的操作中的各个操作及操作组合。在本发明的实例实施例的以下详细说明中,将描述本发明的这些和其他特性和优点,或者鉴于本发明的实例实施例的以下详细说明,本发明的这些和其他特性和优点将对本领域技术人员变得显而易见。当结合附图阅读时,通过参考以下对示意性实施例的详细说明,将最佳地理解本发明及其优选使用模式以及进一步的目标和优点,其中图1是其中可实现示意性实施例的机制的数据处理系统的实例方块图;图2是根据一个示意性实施例的优化器机制的主要工作元素的实例方块图;图3是根据一个示意性实施例的预测功耗引擎的主要工作元素的实例方块图;图4是概述根据一个示意性实施例的预测功耗引擎的操作的实例流程图;以及图5是概述根据一个示意性实施例的优化器机制的操作的实例流程图。具体实施例方式示意性实施例提供了一种用于优化在数据处理系统上执行的过程以便增加数据处理系统电池的持续时间的机制。具体地说,借助示意性实施例的机制,用户根据电池电力输入指示需要数据处理系统在其间工作的目标时间段的信息。此外,用户可指定其在所指定的目标时间段内希望使用的一个或多个过程、应用等。示意性实施例的优化器机制根据所标识的用户需要的一个或多个过程、过程相关性、操作系统要求等确定在数据处理系统上执行的过程的优先级。根据分配给各个过程的优先级,优化器机制创建初始过程列表。优化器机制使用预测功耗模块来计算过程消耗的趋势以及电池持续时间的估计。从计算的趋势和估计的电池持续时间,生成运行过程列表(RPL)和冻结过程列表(FPL)。RPL包含将在所述目标时间段内执行的过程的标识符,而FPL包括将被置于冻结状态以便满足用户对电池持续时间的目标要求的过程的标识符。此外,所述优化器机制可确定最佳处理器时钟频率以达到用户对电池持续时间的目标要求,即所述目标时间段。在一个示意性实施例中,填充FPL和RPL的方式是除了用户标识的所需过程以外,将所有过程分配给FPL,然后按照优先级顺序将过程移动到RPL,直到如所述预测功耗模块所确定的,不能满足用户对电池持续时间的目标要求为止。在另一个示意性实施例中,过程可以始于RPL并被移动到FPL,直到所述预测功耗模块确定满足用户对电池持续时间的目标要求为止。所述优化器机制持续地监视系统以判定系统是即将满足还是即将不满足用户对电池电力的要求。如果在所述优化器机制正在监视系统状态时,在过程到RPL和FPL的当前分配下,将满足目标时间段或用户对电池电力的要求,则无需做出任何调整。但是,如果将不满足目标时间段或用户对电池电力的要求,则以动态方式进行对RPL和FPL的调整,以调整系统的工作,以便更可能满足用户对电池电力的要求。可在数据处理系统正在使用电池电力工作时以连续或周期性的方式完成此类监视和调整。如果在任何情况下的任何时间,不能满足用户对电池电力的要求,则可向用户输出指示无法满足用户要求的消息。5如本领域技术人员将理解的,本发明可体现为系统、方法或计算机程序产品。相应地,本发明可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了软件和硬件方面的实施例的形式,所有这些实施例在此通常被称为"电路"或"模块"。此外,本发明可以采取包含在任何有形表达介质(所述介质中包含计算机可用程序代码)中的计算机程序产品的形式。可以使用一个或多个计算机可用或计算机可读介质的任意组合。所述计算机可用或计算机可读介质例如可以是(但不限于)电、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的实例(非穷举列表)将包括以下项具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(R0M)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、诸如那些支持因特网或内联网的传输介质或磁存储设备。注意,所述计算机可用或计算机可读介质甚至可以是程序被打印在其上的纸张或其他适合的介质,因为所述程序可以通过例如光扫描所述纸张或其他介质被电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。在此文档的上下文中,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与指令执行系统、装置或设备有关的程序的介质。计算机可用介质可以包括其中包含计算机可用程序代码(在基带中或作为载波的一部分)的传播数据信号。可以使用任何适当的介质(包括但不限于无线、有线、光缆、射频(RF)等)来传输计算机可用程序代码。用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,包括面向对象的编程语言(如Java7、5111£1111£111^丄++等)和传统的过程编程语言(如"C"编程语言或类似编程语言)。所述程序代码可以完全地在用户计算机上、部分地在用户计算机上、作为单独的软件包、部分地在用户计算机上并部分地在远程计算机上或完全地在远程计算机上执行。在后者的情况中,所述远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))与所述用户计算机相连,或者可以进行与外部计算机的连接(例如,利用因特网服务提供商并通过因特网)。参考根据本发明的示意性实施例的方法、装置(系统)和计算机程序产品的流程图和/或方块图在下面描述了示意性实施例。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生一种机器,以便通过所述计算机和/或其他可编程数据处理装置的处理器执行的所述指令将创建用于实现所述流程图和/或方块图方块(多个)中指定的功能/操作的装置。这些计算机程序指令也可以被存储在能够引导计算机或其他可编程数据处理装置以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的所述指令将产生一件包括实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的指令的制品。所述计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上以导致将在所述计算机或其他可编程装置上执行一系列的操作步骤以产生计算机实现的过程,以便在所述计算机或其他可编程装置上执行的所述指令将提供用于实现在所述流程图和/或方块图方块(多个)中指定的功能/操作的步骤。附图中的流程图和方块图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能(多个)的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示出为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还将指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于硬件的专用系统或专用硬件和计算机指令的组合来实现。现在参考图l,示出了其中可实现示意性实施例的各方面的实例数据处理系统的方块图。数据处理系统ioo是实现本发明示意性实施例的过程的计算机可用代码或指令可位于其中的计算机的实例。在所示实例中,数据处理系统200采用包括北桥和存储控制器集线器(NB/MCH)102以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)104的集线器体系结构。处理单元106、主存储器108以及图形处理器110与NB/MCH102相连。图形处理器110可以通过加速图形端口(AGP)与NB/MCH102相连。在所示实例中,局域网(LAN)适配器112与SB/ICH104相连。音频适配器116、键盘和鼠标适配器120、调制解调器122、只读存储器(ROM)124、硬盘驱动器(HDD)126、CD-R0M驱动器130、通用串行总线(USB)端口及其他端口132,以及PCI/PCIe设备134通过总线138和140与SB/ICH104相连。PCI/PCIe设备可以例如包括以太网适配器、外接卡以及笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe则不使用。ROM124可以例如是闪速二进制输入/输出系统(BIOS)。HDD126和CD-ROM130通过总线140与SB/ICH104相连。HDD126和CD-ROM驱动器130可以例如使用集成驱动器电子设备(IDE)或串行高级技术附件(SATA)接口。超级I/0(SIO)设备136可以与SB/ICH104相连。操作系统在处理单元106上运行。操作系统协调和提供对图1中的数据处理系统100内的各个组件的控制。作为客户端,所述操作系统可以是诸如MicrosoftWindowsXP(Microsoft和Windows是MicrosoftCorporation在美国和/或其他国家/地区的商标)之类的商用操作系统。诸如JavaTM编程系统之类的面向对象的编程系统可以与操作系统一起运行并通过在数据处理系统100上执行的JavaTM程序或应用来提供对操作系统的调用。(Java是SunMicrosystems,Inc.在美国和/或其他国家/地区的商标)。作为服务器,数据处理系统100可以例如是运行AdvancedinteractiveExecutive(AIX)操作系统或LINUX操作系统的IBMeServerTMpSerieS⑧计算机系统(eServer、pSeries和AIX是国际商用机器公司在美国和/或其他国家/地区的商标,而LINUX是Li皿sTorvalds在美国和/或其他国家/地区的商标)。数据处理系统100可以是在处理单元106中包括多个处理器的对称多处理器(SMP)系统。备选地,可以采用单处理器系统。操作系统、面向对象的编程系统以及应用或程序的指令位于诸如HDD126之类的存储设备上,它们可以加载到主存储器108中以供处理单元106来执行。本发明的示意性实施例的过程可以由处理单元106使用计算机可用程序代码来执行,所述程序代码可以位于诸如主存储器108、R0M124之类的存储器中,也可以位于一个或多个外围设备126和130中。诸如图1中示出的总线138或总线140之类的总线系统由一条或多条总线组成。当然,所述总线系统可使用在与构造或体系结构相连的不同组件或设备之间提供数据传输的任何类型通信构造或体系结构来实现。诸如图1中的调制解调器122或网络适配器112之类的通信单元包括一个或多个用于传输和接收数据的设备。存储器可以是主存储器108、ROM124或诸如在图1的NB/MCH102中找到的高速缓存。本领域中的技术人员将理解图1中的硬件可以根据具体实现而有所不同。诸如闪存、等效的非易失性存储器或光盘驱动器之类的其他内置硬件或外围设备可以用作图1中所示的硬件的补充或代替这些所示的硬件。同样,在不偏离本发明的精神和范围的情况下,所述示意性实施例的过程还可以应用于多处理器数据处理系统,而非上述SMP系统。而且,数据处理系统100可采用包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其他通信设备、个人数字助理(PDA)等在内的多个不同的数据处理系统中任意系统的形式。在某些示意性实例中,数据处理系统ioo可以是配置有闪存来例如提供存储操作系统文件和/或用户产生的数据的非易失性存储器的便携式计算设备。基本上,数据处理系统100可以是任何已知或后期开发的没有任何体系结构限制的数据处理系统。根据一个示意性实施例,数据处理系统100是在一个工作模式中使用将耗尽的电源(如电池电力)而不是来自墙上插座的恒定电源或其他电源作为动力来工作的数据处理系统。出于示意性实施例的目的,将假设数据处理系统100是使用可通过到墙上插座或其他恒定电源的电连接充电的电池电源作为动力来工作的便携计算设备(如膝上型计算机)。示意性实施例用于在数据处理系统100未连接到恒定电源并必须仅使用存储的电池电力来工作的情况下优化数据处理系统100的工作。当用户需要仅使用将耗尽的电源(如电池电源)操作数据处理系统100并要求数据处理系统100的预定工作时间段时,示意性实施例的机制可用于动态地修改数据处理系统100的工作,以便在用户所要求的整个工作时间段内提供期望的工作(如果可能)。示意性实施例的机制将正在数据处理系统上执行的过程按照优先顺序排列并且基于这些优先级,或者允许过程执行,或者将过程置于冻结状态。可以根据用户指定的所需工作时间段的预测功耗确定来做出将多少过程置于冻结状态的判定。可以在所需工作时间段(以下称为目标时间段)内连续地或周期性地监视数据处理系统100的工作,以便动态地调整允许哪些过程执行以及冻结哪些过程,以确保数据处理系统100在目标时间段内工作。图2是根据一个示意性实施例的优化器机制的主要工作元素的实例方块图。如图2所示,优化器200包括控制器210、设备优化器220、初始过程列表数据结构存储230、冻结过程列表数据结构存储240、运行过程列表数据结构存储250、用户接口260、设备监视代理270,以及设备数据表数据库280。图2的元素210-280可以以硬件、软件或硬件和软件的任意组合实现。出于示意性实施例的目的,元素210-280被看作在数据处理系统的一个或多个处理器(例如,数据处理系统100中的处理单元106)上执行的软件指令。8控制器210控制优化器200的总体工作并协调其他元素220-280的工作。设备优化器220与数据处理系统的各种设备通信并对其进行控制,以便根据从控制器210接收的指令修改它们的工作。例如,设备优化器220,响应于接收到来自控制器210的指令,可向这些设备中的一个或多个发送控制信号以修改设备工作,例如更改设备的时钟频率、断开设备的电源、更改设备的工作模式等。可以以此方式控制的设备可以是数据处理系统的任何硬件设备,包括处理器(多个)、存储器、硬盘驱动器、网络适配器、输出适配器(图形卡、音频卡等)等。初始过程列表数据结构230存储当初次调用优化器200时正在数据处理系统上执行的过程的列表。初始过程列表数据结构230中的过程被优化器200用作将这些过程按照优先顺排列的基础,且根据数据处理系统的最优工作将所述过程后续分配到冻结列表或运行列表以便达到期望工作时间段。冻结列表数据结构240存储优化器200确定为应置于冻结状态(即,其中过程未活动地执行但是其状态保持在存储器内以用于过程的后续重新启动的状态)的过程的列表,以便达到数据处理系统的期望工作时间(即,目标工作时间)。运行过程列表数据结构250存储优化器200确定为应被允许在目标时间段内执行的过程的列表。过程可以根据需要在冻结列表数据结构240与运行过程列表数据结构250之间移动以便达到目标时间段,或在确定存在过剩电池电力时,根据优化器200的确定以动态方式在其间移动过程。用户接口260提供了优化器200通过其从用户接收指定目标时间段的输入的通信接口。此外,通过用户接口260,用户还可以指定用户需要在目标时间段内工作的一个或多个过程、应用等。此外,优化器200的控制器210可使用用户接口260向用户输出消息,后者指示在当前情况下考虑用户指定必须允许在目标时间段内执行的过程、应用等时是否可达到目标时间段或目标时间段的剩余部分。设备监视代理270监视数据处理系统的各种设备(如处理器(多个)、硬盘驱动器(多个)、网络适配器(多个)等)的功耗并执行预测功耗操作以预测这些设备将在目标时间段内消耗的电量。设备数据表数据库280提供与设备监视代理270所监视的每个设备有关的信息以帮助预测功耗操作。现在将参考一个实例实施方式详细描述这些元素210-280的操作和交互。优化器200的操作可由启动优化器操作的用户手动启动,或者响应于事件自动地启动,所述事件例如将数据处理系统与恒定电源断开连接,以便数据处理系统基于将耗尽的电源(电池电源,例如)工作。控制器210可通过请求用户指定用户需要数据处理系统使用将耗尽的电源工作目标时间段来提示用户输入。此外,控制器210可提示用户指定用户需要被允许在目标时间段内执行的一个或多个过程、应用等。此输入可由控制器210存储在关联的存储器中以供控制器210在确定如何将过程分配给冻结和运行列表数据结构中使用。控制器210编辑初始过程列表数据结构存储230中的当前运行过程列表。此初始过程列表连同用户指定的所需过程一起被控制器210用于确定按优先顺序排列后的过程的列表。控制器210根据一组预定规则和控制器210所执行的逻辑来将优先级分配给每个过程。这些规则和逻辑根据过程特性、它们的相关性以及交互指定过程的优先级顺序。例如,用户所指定的需要在目标时间段内执行的过程被给予最高优先级。所需过程依赖于其9的过程被给予下一最大优先级。操作系统所需的过程也被给予相对较高的优先级。用户指定的所需过程使用的设备所需的过程(例如,设备驱动器等)可被给予下一最高优先级,等等。例如,任一用户指定的过程都不需要的过程、用户指定的过程依赖于其的过程、或用户指定的所需过程使用的设备不需要的过程可被给予最低优先级。可以使用鉴于本说明而将对本领域技术人员显而易见的任何排定优先级方案,而不脱离示意性实施例的精神和范围。除了已排定优先级的列表,控制器210使用设备监视代理270的预测功耗确定来确定预测将由数据处理系统的设备上的每个过程消耗的电量。在2008年6月28日提交的共同受让和共同未决的美国专利申请第12/147,803号中描述了设备监视代理270可借助其执行此类预测功耗的方式的一个实例。现在将提供此实例机制的描述。但是应理解,可以与示意性实施例的机制一起使用对此实例机制的许多修改。此外,可以使用其他用于针对在数据处理系统的一个或多个设备上执行的过程执行预测功耗确定的机制而不偏离示意性实施例的精神和范围。图3是根据一个示意性实施例的预测功耗引擎的主要工作元素的实例方块图。如图3所示,监视代理315(其可以与图2的设备监视代理270相同)控制并执行通过通信网络连接的若干资源305上的监视操作。所述一组资源305包括例如硬盘、CPU、存储器、网络卡、打印机、备用设备等的资源,其功耗信息存储在数据表储存库或数据库303中,后者包含每个受监视资源上可用的所有信息。此信息通常通过设备制造商提供的设备数据表而可用。监视代理315控制一组潜在的大型资源305,后者甚至可分布在多个互连的系统上。在图3中,作为一个实例,为了简洁仅示出了两个资源CPU和存储器。监视代理315监视每个过程的资源使用。监视代理315还从存储每个活动的估计消耗的设备数据表储存库或数据库303检索信息。通过将两种措施结合在一起,可估计资源的预期消耗。根据一个示意性实施例,设备数据表储存库303包含从制造商的能耗数据表获得的值,所述值将与监视代理315收集的使用度量结合在一起以便获得最终能耗估计。但是,存在其他可能的解决方案,例如,所存储的值可以是已存储供未来重用的历史测量的结果。在一个示意性实施例中,将新的特性插入系统可用性监视产品,该产品估计系统的功耗,从可从纽约阿蒙克的国际商业机器公司(IBM)获得的IBMTivoli监视工具所收集的某些参数的测量开始。可通过此类修改的监视工具根据某些特定参数计算每个资源的使用。在一个示意性实施例中,所计算的使用度量基于其间资源处于预定状态的时间的测量。每个资源具有关联的表,其根据状态确定资源的预期功耗。根据一个示意性实施例,可能的描述资源(在此实例中,硬盘)的表具有以下信息<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>假设在执行软件应用A期间,修改的监视工具检测到硬盘HD1处于以上状态2为X秒,处于以上状态4为Y秒,以及处于以上状态5为Z秒。示意性实施例的监视代理315将所有这些信息放置在一起以估计当软件应用A使用硬盘HD1时硬盘HD1的总体功耗,例如,功率=1.6X+3.2Y+4.1Z。为软件应用A使用的每个资源进行类似的计算并且监视代理315估计软件应用A的总体功耗。每个组件具有关联的表,其具有与可在功率测量期间检查的组件状态有关的功耗的描述。图4是概述根据一个示意性实施例的如可由监视代理315或设备监视代理270提供的预测功耗引擎的操作的实例流程图。图4中列出的操作显示了用于生成软件应用的总体功耗估计的逻辑流。操作始于监视软件应用所使用的系统资源(步骤403)。可能被监视的资源的列表包括存储设备、CPU、图形卡、硬盘和更通用地,任何种类的在软件应用执行期间导致功率使用的系统资源。如上所述,系统计算使用的度量,其基于其间资源处于预定状态的时间的测量。每个资源都具有关联的表,其根据状态确定预期功耗。根据检测到的状态查询这些表以获得每个资源的功耗的预期值(步骤405)。通过将所计算的度量与在先前步骤中收集的预期值置于一起(例如,相加)来估计软件应用的总体功耗(步骤407)。判定是否由于过多功耗而需要任何纠正动作(步骤409)。如果纠正动作是必要的,则实施纠正动作(步骤411)。此后,或者如果纠正动作不是必要的,则操作返回步骤403。本领域技术人员将容易地理解,可以实施其他动作,例如,当达到预定危险阈值时可采取更显著的纠正动作;例如,如果数据处理系统的整体功能处于危险之中,则可以暂停对资源的访问。如果以不同的方式构造程序和数据、如果提供其他模块或功能,或如果信息存储在等同的存储器结构中,则类似的考虑将适用。如果所述方法包括等同的或附加的步骤,则类似的考虑将适用。备选地,例如,可以使用获得有关被监视资源的信息的不同方法,这还取决于其上安装系统的操作系统。例如,将可能的是,许可证管理工具将适于收集此类信息。应理解,根据示意性实施例,步骤409和411中所指的"纠正动作"可以实际上是将过程或应用置于冻结状态。可以根据每个过程、应用等执行此操作,以便获得过程、应用等的预测功耗的测量。可在目标时间段上外推此预测功耗以确定特定过程、应用等预计在目标时间段内消耗的电量。此电量可与其他应用、过程等的其他电量的类似计算相组合,以确定可达到目标时间段的应用、过程等的组合。应指出的是,除了确定各种资源上的过程、应用等的功耗,还可以以类似方式调查改变处理器或资源的工作或时钟频率的影响。在Hsu等人的"EffectiveDynamicVoltageScalingthroughAccuratePerformanceModeling"(高级计算实验室,拉莫斯国家实验室,技术报告LA-UR-03-7582,其在此引入作为参考)中描述了修改此类处理器或资源的时钟频率或工作频率的一种方式。可确定具有不同时钟频率的过程、应用等的组合并将其用于选择达到目标时间段的最优组合。此外,应指出的是,可确定并存储功耗的速率以供以后在确定数据处理系统上的软件过程、应用等的功耗中使用,而不是确定软件应用消耗的功率总量。可根据以上监视的数据表或根据软件过程、应用等的历史监视来确定功耗的速率。再次参考图2,根据这些确定,控制器210将过程分配给运行过程列表数据结构250和冻结过程列表数据结构240。可以以多种不同的方式做出此类分配,所有这些方式将鉴于本说明而对本领域技术人员显而易见,并且被视为在示意性实施例的精神和范围之内。例如,初始地可基于所分配的优先级以及过程或应用的特定优先级是否超过一个或多个预定阈值将过程、应用等分配给列表数据结构240或250之一。因此,例如,所有优先级等于或低于"级别4"的过程可初始被分配给冻结过程列表240。优先级高于"级别4"的过程可初始被分配给运行过程列表250。控制器210然后可使用设备监视代理270来根据过程到冻结列表数据结构240,260的分配确定数据处理系统的预测功耗。根据预测功耗和当前可从将耗尽的电源获得的电力,计算预期工作时间段并将其与目标时间段或目标时间段的剩余部分相比较。如果预期工作时间段等于或大于目标时间段,则将冻结过程列表数据结构240中的过程置于冻结状态。这将暂停这些过程(在存储其状态信息以供未来在重新启动过程时检索之后)。运行过程列表数据结构250中的过程被允许继续执行,至少直到控制器210确定数据处理系统的工作情况表明在后续的类似评估中不能满足目标时间段。如果预期工作时间段小于目标时间段,则调整过程到运行和冻结过程列表数据结构240,250的分配。此调整可例如涉及从运行过程列表数据结构250获取过程并按照优先级顺序(即,最小优先级优先)将它们添加到冻结过程列表数据结构240。当然,可以在将多个较低优先级运行过程移动到冻结过程列表或将较高优先级运行过程移动到冻结过程列表之间做出权衡。此外,判定是否可修改处理器或设备工作频率或时钟频率以达到期望的目标时间段。一旦确定满足目标时间段或目标时间段的剩余部分的调整,就可将尚未被冻结但在冻结列表上的那些过程置于冻结状态。如果在移动操作期间,控制器210达到与用户指定的所需过程对应的过程、应用等的优先级,则控制器210可确定不能达到目标时间段。相应地,控制器210可经由用户接口260向用户发送表明无法达到目标时间段的通知。此外,所述通知可指定数据处理系统可提供的工作时间量。这可以是通过将尽可能多的过程置于冻结过程列表而不将用户指定的所需过程置于冻结过程列表的最大工作时间段。可在连续或周期性的基础上重复上述过程,且根据需要进行后续评估和运行过程列表及冻结过程列表的调整,以便达到用户所指定的目标时间段。还应理解,可使用其他用于将过程分配给冻结过程列表(FPL)和运行过程列表(RPL)的机制而不偏离示意性实施例的精神和范围。例如,在一个示意性实施例中,填充FPL和RPL的方式是将所有过程分配给FPL(除了用户标识的所需过程以外),然后按照优先级顺序将过程移动到RPL,直到不能满足如预测功耗模块所确定的用户对电池持续时间的目标要求为止,而不是使用优先级阈值并根据过程是高于还是低于阈值来分配过程。在另一个示意性实施例中,过程可初始在RPL中并被移动到FPL,直到预测功耗模块确定不能满足用户对电池持续时间的目标要求为止。因此,示意性实施例的机制提供了动态机制来修改数据处理系统的工作,以便数据处理系统的工作时间保持在用户指定的目标时间段内(如果可能)。通过根据将耗尽的电源的当前电力水平暂停设备上消耗的电力多于目标时间段或目标时间段的剩余部分期间可提供的电力的过程,来调整数据处理系统的工作时间段。图5是概述根据一个示意性实施例的优化器机制的操作的实例流程图。如图5所示,操作始于由于用户输入或发生事件造成的优化器的启动操作(步骤510)。优化器提示用户输入目标时间段和必须允许在所指定的目标时间段内执行的零个或更多个过程、应用等(步骤520)。优化器生成过程、应用等的初始列表(步骤530)并且根据用户指定的所需过程/应用、过程/应用的相关性,以及作用于初始列表中的过程/应用的属性或特性的一个或多个规则将优先级分配给过程、应用等(步骤540)。优化器使用例如由监视代理270或315提供的预测功耗模块计算每个过程的功耗的趋势以及电池持续时间的估计(步骤550)。从计算的趋势信息、估计的电池持续时间,以及优先级信息,生成运行过程列表(RPL)和冻结过程列表(FPL)(步骤560)。RPL包含将在目标时间段内被执行的过程的标识符,而FPL包括将置于冻结状态以便满足用户对电池持续时间的目标要求的过程的标识符。此外,优化器机制可确定达到用户对电池持续时间的目标要求(即,目标时间段)的最优处理器时钟频率。优化器机制持续监视系统以判定系统是即将满足还是即将不满足用户对电池电力的要求(步骤570)。如果在优化器机制正在监视系统状态时,在过程到RPL和FPL的当前分配下,将满足目标时间段或用户对电池电力的要求,则无需做出任何调整(步骤580)。但是,如果将不满足目标时间段或用户对电池电力的要求,则以动态方式进行对RPL和FPL分配过程的调整,以调整系统的工作,以便更可能满足用户对电池电力的要求(步骤590)。可在数据处理系统正在使用电池电力工作时以连续或周期性的方式完成此类监视和调整。如果在任何情况下的任何时间,不能满足用户对电池电力的要求(步骤600),则可向用户输出指示无法满足用户要求的消息(步骤610)。判定是否已经过目标时间段或数据处理系统是否不再使用将耗尽的电源工作(步骤620)。例如,如果用户将数据处理系统的插头插入恒定电源(如墙上的插座等),则可确定数据处理系统不再使用将耗尽的电源工作。如果存在这些情况中的任意一种,则使用冻结过程的已存储状态信息重新启动冻结过程(步骤630)并且数据处理系统以正常方式工作。如果不存在这些情况中的任意一种,则操作返回步骤570。因此,示意性实施例提供了机制来调整数据处理系统的操作以便针对数据处理系统在将耗尽的电源下的工作达到目标时间段。示意性实施例的机制是动态的并且可适应数据处理系统的不断改变的工作情况。示意性实施例的机制考虑了数据处理系统的各个过程的功耗并将一组这些过程置于冻结状态(根据分配给这些过程的优先级),以便达到数据处理系统的工作的期望目标时间段。如上所述,应理解的是,示意性实施例可采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个实例实施例中,示意性实施例的机制以软件或程序代码实现,后者包括但不限于固件、驻留软件、微代码等。适合于存储和/或执行程序代码的数据处理系统将包括至少一个直接或通过系统总线间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。输入/输出或I/0设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间1/0控制器与系统相连。网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。1权利要求一种在数据处理系统中的方法,所述方法用于调整所述数据处理系统的工作状态以便在所述数据处理系统使用将耗尽的电源时达到目标工作时间段,所述方法包括确定正在所述数据处理系统上执行的各个过程的预测功耗;确定所述将耗尽的电源能够提供的剩余电量;根据所述各个过程的所预测功耗和所述将耗尽的电源能够提供的电量,标识能够暂停其执行以使所述数据处理系统能够工作所述目标时间段的过程的子集;以及将所标识的过程的子集置于已暂停执行状态。2.根据权利要求1的方法,还包括接收指定所述数据处理系统的所述目标工作时间段的用户输入。3.根据权利要求1的方法,其中标识能够暂停其执行的过程的子集的步骤包括将正在所述数据处理系统上执行的过程按优先顺序排列。4.根据权利要求3的方法,其中将正在所述数据处理系统上执行的过程按优先顺序排列的步骤包括根据过程的特性向正在运行的过程的列表中的过程分配优先级,并且其中所述过程的特性包括指示用户是否指定所述过程需在所述目标时间段内执行的特性。5.根据权利要求4的方法,其中所述过程的特性进一步包括以下项中的至少一项指示一过程是否具有一个或多个由用户指示为需在所述目标时间段内执行的其他过程的特性,指示操作系统是否需要一过程的特性,或指示是否需要一过程以便所述数据处理系统内的由用户指定为需在所述目标时间段内执行的另一过程所使用的设备正确工作的特性。6.根据权利要求l的方法,包括以恒定或周期性的方式在所述目标工作时间段内重复地执行所述方法。7.根据权利要求5的方法,还包括通过向所标识的处于所述已暂停执行状态的过程的子集添加一个或多个过程或从所标识的处于所述已暂停执行状态的过程的子集移除一个或多个过程来在所述目标工作时间段内动态地调整所标识的处于所述已暂停执行状态的过程的子集,以响应正在所述数据处理系统上执行的各个过程的预测功耗和所述将耗尽的电源能够提供的剩余电量发生改变。8.根据权利要求1的方法,还包括维护置于所述已暂停执行状态的过程的列表;以及从所述置于所述已暂停执行状态的过程的列表移除过程以响应以下之一所述数据处理系统被耦合到恒定电源,或正在所述数据处理系统上执行的各个过程的预测功耗发生改变,或所述将耗尽的电源能够提供的剩余电量指示对于目标时间段的剩余量存在过剩的可用电量。9.根据权利要求8的方法,还包括存储置于所述已暂停执行状态的过程中的每个过程的状态;恢复过程的状态以响应从置于所述已暂停执行状态的过程的列表移除该过程;以及执行已恢复其状态的过程。10.根据权利要求1的方法,还包括根据正在所述数据处理系统上执行的各个过程的预测功耗和所述将耗尽的电源能够提供的剩余电量来修改所述数据处理系统的一个或多个设备的工作速度。11.一种用于调整数据处理系统的工作状态以便在所述数据处理系统使用将耗尽的电源时达到目标工作时间段的系统,所述系统包括用于实现根据权利要求i-io的任一方法的装置。12.—种装置,包括处理器;以及与所述处理器耦合的存储器,其中所述存储器包括指令,当所述指令被所述处理器执行时,将导致所述处理器执行以下操作确定正在所述计算设备上执行的各个过程的预测功耗;确定将耗尽的电源能够提供的剩余电量;根据所述各个过程的所预测功耗和所述将耗尽的电源能够提供的电量,标识能够暂停其执行以使所述数据处理系统能够工作所述目标时间段的过程的子集;以及将所标识的过程的子集置于已暂停执行状态。全文摘要本发明涉及一种增加移动设备电池的持续时间的优化器方法、系统和装置。提供了一种增加移动设备电池的持续时间的优化器机制。调整数据处理系统(例如,移动设备)的工作状态以便在所述数据处理系统使用将耗尽的电源时达到目标工作时间段。确定正在所述数据处理系统上执行的各个过程的预测功耗,并且还确定所述将耗尽的电源能够提供的剩余电量。根据所述各个过程的所预测功耗和所述将耗尽的电源能够提供的电量,确定能够暂停其执行以使所述数据处理系统能够工作所述目标时间段的过程的子集。将所标识的过程的子集置于已暂停执行状态。文档编号G06F1/32GK101782803SQ20101000140公开日2010年7月21日申请日期2010年1月4日优先权日2009年1月5日发明者A·斯格罗,G·德拉科特,L·吉安法纳,S·博尔盖蒂申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1