用于对设备中的功耗进行管理的装置和方法

文档序号:7737554阅读:85来源:国知局
专利名称:用于对设备中的功耗进行管理的装置和方法
技术领域
本发明涉及一种诸如例如计算设备之类的装置,并且涉及一种对这样的装置中的功耗进行管理的方法。
背景技术
长期以来功耗已经成为计算设备的设计者、制造商以及用户的关注点,并且随着诸如移动电话之类的便携式计算设备已经变得更加普及,这个问题已经扮演了日益重要的角色,因为设计者和制造商致力于满足对这样的设备的电池寿命的用户期望。

发明内容
在附随的权利要求中阐明了本发明的各种方面。根据本发明的第一方面,提供了一种装置,包括事件监测器,用于对发生在所述装置内的事件进行观测;以及,预测组件,其中所述预测组件配置为促使与所述装置的功耗相关联的工作参数改变,如果由所述事件监测器所观测到的事件序列对应于与所述工作参数的改变相关联的预定义序列的话。根据本发明的第二方面,提供了一种装置,包括至少一个处理器;以及包括计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码配置为,通过所述至少一个处理器,促使所述装置执行至少以下操作对所述装置中的功耗进行管理,这是至少通过以下方式来进行的对发生在所述装置内的事件进行观测,以及改变所述装置中与所述装置的功耗相关联的工作参数,如果所观测到的事件序列对应于与所述工作参数的改变相关联的预定义事件序列的话。根据本发明的第三个方面,提供了一种方法,包括对装置中的功耗进行管理,包括对发生在所述装置内的事件进行观测,以及改变所述装置中与所述装置的功耗相关联的工作参数,如果所观测到的事件序列对应于与所述工作参数的改变相关联的预定义事件序列的话。


为了更加完整地理解本发明的示例实施方式,结合随附的附图做出了对以下描述的参照,在其中图1为示出了根据本发明的第二示例实施方式的移动电话的挑选的元件的示意性图示;图2是图示了在第二示例实施方式中的负载监测器的操作的方块流程图;图3是示出了在第二示例实施方式中的学习组件的操作的方块流程图;图4是示出了在第二示例实施方式中的预测组件的操作的方块流程图;以及图5是图示了具有存储在其上的代码模块以实现第二实施方式的组件的计算机可读媒介的方块图。
具体实施例方式为了降低计算设备中的功耗,已经开发了若干种系统,在这些系统中计算设备的处理器的工作频率根据对处理器的需求而变化。较低工作频率向处理器要求较低电源电压,因此,在对处理器的需求下降时,可以通过降低该设备的工作频率来降低该设备的功
^^ ο这样的系统通常采取以下两种途径中的一种。在第一种途径中,由计算设备所使用的应用注册它们的性能要求,使得该设备可以确定整体性能要求并且可以相应地调整处理器的工作频率。在这个途径中,应用被设计为或者适应为遵守该设备所使用的特定的性能要求报告系统,这增加了应用的复杂度。另外,不同的设备可以具有不同的性能要求报告系统,这意味着必须生产相同应用的不同版本以与不同设备相兼容。第二种途径是对设备的处理器上的负载进行监测,以及响应于该处理器中的需求的改变而将处理器的工作频率调整到它的最低可能的值,而不过载该处理器。在这个途径中,对处理器的工作频率的调整滞后于处理器上引起该调整的负载的改变。因此,当处理器上的负载增加时,处理器一直过载直到实现了处理器的工作频率的增加为止,这导致性能的暂时损耗。如果处理器上的负载减小,则处理器将会一直运行在比必需频率高的频率上, 直到实现了处理器的工作频率的改变为止,这导致能量的暂时浪费。本发明的第一示例实施方式采取了与以上途径不同的途径,并且具体而言,本发明的第一示例实施方式着眼于对计算设备中的事件序列进行监测,以及如果所监测的事件序列对应于预定事件序列(从一组这样的预定序列中取出来),则改变该计算设备的工作参数,该预定事件序列具有与其分别相关联的工作参数改变。因此,例如可以发生的特定的事件序列可以具有与其相关联的、以处理器速度的增加的形式存在的工作参数改变。在这个示例中,当监测到特定事件序列时,实现以处理器速度的增加的形式存在的工作参数的改变。以这种方式,在这个示例中计算设备的所要求的期望工作参数可以被预测,并且可以基于所监测到的事件序列来将工作参数向其进行调整。在第一示例实施方式中,提供一种计算设备,包括用于对发生在计算设备内的事件进行观测的事件监测器。在这个示例中还提供了在计算设备内的预测组件,预测组件配置为如果由事件监测器观测到的事件序列对应于预定义序列,则促使与计算设备的功耗相关联的工作参数改变。具体地,在这个示例中,预定义序列与所发生的工作参数的改变相关联。在这个第一示例实施方式中,本发明的预测组件能够基于由事件监测器观测到的事件来预测该计算设备的工作参数何时将需要改变以满足改变功率需求。例如,与设备的功耗相关联的工作参数然后可以及时地改变以确保由于改变而导致的性能损失被最小化, 同时还最小化了不必要的功耗。在这个第一示例实施方式中,计算设备可以进一步包括学习组件,学习组件配置为学习与工作参数的改变相关联的预定义事件序列。例如,学习组件可以与事件监测器相关联并且学习组件可以配置为如果由事件监测器观测到的事件序列对应于由学习组件先前记录的序列,则做出与工作参数相关的预测。在这个第一示例实施方式中,计算设备可以进一步包括处理器负载监测器,并且学习组件例如可以配置为在由学习组件记录的事件序列已经发生之后通过对处理器负载监测器进行检查来验证其预测。例如,所记录的事件序列可以与得分(score)相关联,如果该预测正确,则该得分发生改变。在这个第一示例实施方式中,预测组件可以配置为如果得分达到预定阈值,则将所记录的事件序列存储为预定义序列。因此,例如随着时间的过去,学习组件能够学习哪些事件序列很可能引起与设备的功耗相关联的工作参数的改变,并且预测组件能够存储这些事件序列以及相关联的工作参数的改变以为将来使用,以通过响应于事件序列而优先地 (pre-emptively)改变工作参数来降低功耗。在这个第一示例实施方式中,学习组件可以配置为如果所观测到的事件序列并不对应于由学习组件先前记录的序列,则对由事件监测器观测到的事件序列进行记录。例如, 可以学习可能导致工作参数发生改变的新的事件序列。在这个第一示例实施方式中,工作参数可以包括计算设备的处理器的工作频率。 即,举例而言,例如当经由所监测到的事件序列在设备上的负载被预测为将会较大时,工作频率可以被改变以变得更高,或者例如当经由所监测到的事件序列在设备上的负载被预测为将会较小时,可以被改变以变得更低。在第一示例实施方式中的一个示例中,计算设备可以是对称多处理器设备并且工作参数可以包括启用的处理器的数目。替代地,在第一示例实施方式中的另一个示例中,计算设备可以是异构多处理器设备并且工作参数可以包括启用的处理器的类型。在第一示例实施方式中的一个示例中,计算设备是移动电话。在第一示例实施方式中的另一个示例中,计算设备可以是任何其他计算设备,例如台式计算机、膝上式计算机、个人数字助理(PDA)、MP3播放器、便携式视频播放器、数字照相机等。现在将参照图1到图5描述本发明的第二示例实施方式。参照图1,在10处通常地示出了便携式计算设备,在这个示例中是移动电话。为清楚和简明起见,在图1中仅示出了与本示例实施方式直接相关的移动电话10的那些元件, 但是将会理解,移动电话10包括另外的元件和组件。另外,应将理解,在图1中示出的移动电话10仅是在其中可以实施本发明的示例的计算设备的一个示例,并且本发明的示例同样地也可应用到其他计算设备,例如台式计算机、膝上式计算机、个人数字助理(PDA)等。在这个示例中,移动电话10包括用于对在设备上运行的应用软件(例如媒体播放器、web浏览器、电子记事本、游戏等)以及移动电话10的操作系统进行处理的一个或者多个处理器12。在这个示例中,并且进一步参照图2到图4,提供了处理器负载监测器14以监测处理器12上的负载(B. 2. 2)。处理器负载监测器14在这个示例中将处理器12上的负载报告给控制器16(B. 2. 4),该控制器在这个示例中配置为对影响移动电话10的功耗的移动电话10的工作参数(B. 2. 6)进行控制。例如,控制器16可以控制在单处理器设备中的处理器12的工作频率,或者在另一个示例中,控制在对称多处理器设备中启用的处理器12 的数目,或者在又一个示例中,控制在异构多处理器设备中启用的处理器的类型。在第二示例实施方式中,控制器16还将移动电话10的工作参数报告给学习组件 18,例如处理器12的工作频率或者已经启用的处理器的数目或者类型,如在图3的B. 3. 2 处所示。在这个示例中,学习组件18连接到对在移动电话10中发生的事件进行监测的事件监测器20。在这个示例中,在将会导致对移动电话10的处理器12的需求发生改变的操作或者动作之前通常有一个或者多个事件,并且事件监测器20配置为将这样的事件的记录保持在适当的缓冲器中(B. 3. 4),该缓冲器必须足够大以容纳大量的此类事件的记录。例如,当使用移动电话10的媒体播放器应用来播放诸如MP3文件之类的媒体文件时,媒体播放器应用运行并且媒体文件的句柄(handle)被开启。这些事件例如可以通过对程序加载器(即负责将应用或者驱动加载到移动电话10中的存储器并且将它们准备好运行的软件组件)、文件服务器(即负责对存储在文件系统中的文件进行存取的软件组件)以及移动电话10的调度器进行监测而检测到。通常,在播放媒体文件之前,在一个示例中以下事件序列将会发生在移动电话10 中-媒体文件的句柄由文件服务器开启;-文件类型由移动电话10的多媒体子系统识别;-媒体播放器应用由程序加载器或者文件服务器加载;-媒体播放器线程由移动电话10的调度器进行调度;-声音驱动由程序加载器或者文件服务器进行加载;-适当的编解码器(例如MP3编解码器)由程序加载器或者文件服务器进行加载;-编解码器由调度器进行调度;-多媒体子系统将音频数据发送到声音驱动器。作为另一个示例,在开始视频呼叫之前,通过加载适当的驱动和调度适当的线程, 启动移动电话10的照相机并且开始移动电话10的通话堆栈。这些事件可以例如通过对程序加载器、调度器以及通话堆栈进行监测而检测到。相似地,如果在移动电话10上启动 JavaW^戏,则通常在此之前存在分配给移动电话10的Java虚拟机(JVM)的存储器数量的很大增加,这可以通过监测移动电话10的内核或者用户分配器而检测到。在第二示例实施方式中,事件监测器20配置为对文件服务器、程序加载器、调度器、内核或者用户分配器、通话堆栈以及移动电话10的其他子系统或者软件组件,以及发生在移动电话10中的用户事件进行监测,以及配置为将发生在这些子系统或者软件组件中的事件记录在缓冲器中(B. 3. 4)。在第二示例实施方式中,学习组件18配置为确定由事件监测器20记录的特定事件序列是否有可能导致处理器12上的负载的改变。在这个示例中,每次控制器16改变处理器12的工作频率或者移动电话10的另外工作参数(例如响应于处理器12上需求的改变而启用的处理器的类型或数量)的时候,学习组件18对事件监测器20的缓冲器的内容 (B. 3. 6)进行检查并且创建工作参数的改变和在该改变之前的事件的记录(B. 3. 8)。以这种方式,在这个示例中,学习组件18建立可以引起移动电话10的一个或者多个工作参数的改变的事件序列的列表(“学习池”)。在这个示例中,也给新创建的记录分配为零的得分, 该得分例如根据由学习组件18做出的预测的准确性而改变,所述预测是移动电话10的工作参数是否将作为所记录的事件序列的结果而改变,如以下将要描述的。在第二示例实施方式中,学习组件18不断地对事件监测器20进行监测使得在任何时候对应于已经存储在学习组件18中的记录中的序列的事件序列发生,学习组件18能
8够预测该序列是否将会引起移动电话10的一个或者多个工作参数的改变。在这个示例中, 学习组件18然后通过在事件序列之后对处理器负载组件14进行检查来检验学习组件的预测是否正确。在这个示例中,如果学习组件18的预测正确,则对与特定事件序列和相关联的工作参数的改变相关联的得分进行递增,反之,如果学习组件18的预测不正确,则对与特定事件序列和相关联的工作参数的改变相关联的得分进行递减(B. 3. 10)。例如,事件序列{A,B, C}可以记录在学习组件中并且与动作“降低处理器的工作频率”相关联。如果学习组件18在事件监测器20的缓冲器中识别到这个事件序列,则对与该事件序列和相关联的工作参数的改变相关联的得分进行递减(即处理器的工作频率的降低)。然而,如果事件序列{A,B,C}随后处理器的工作频率不改变,则对该得分进行递减。在这个示例中,学习组件使用模式匹配算法来识别存储在事件监测器20的缓冲器中的事件序列。因此,例如出现在缓冲器中的序列{A,B, X,Y,C,D,Z,E}将由学习组件 18识别为序列{A,B, C}和序列{X,Y,Z}两者。在第二示例实施方式中,一旦与特定的事件序列相关联的得分达到预定阈值,则将那个事件序列以及与移动电话10的工作参数的相关联的改变添加到存储在连接到学习组件18的预测组件22中的列表中(或者“预测池”)(B. 3. 12)。在另一方面,如果例如与在学习池中的特定序列相关联的得分下降到预定负阈值数值,则那个序列将从学习池中移除。当然,将会理解,在一个示例中,在以上给出的示例中的正阈值和负阈值可以反向,使得当由学习组件18做出预测正确时,递减与特定事件序列相关联的得分,与此同时如果得分达到预定负阈值,则将移动电话10的工作参数的相关联的改变添加到预测池中。在第二示例实施方式中,预测组件22不断地对事件监测器20进行监测(B. 4. 2), 使得如果由事件监测器20记录的事件序列与预测池中的序列匹配(B. 4. 4),则预测组件22 能够对移动电话10的工作参数做出相关联的改变而无需控制器16的介入。以这样的方式, 在这个示例中,预测组件22能够识别将会使移动电话10的一个或者多个工作参数的改变变得必然并且优先地做出必要的改变的事件序列(B. 4. 6),由此降低移动电话10的功耗。在第二实施方式内,最后当预测池包含所有可能的时间序列以及它们对移动电话 10的工作参数的相关联改变时,控制器16将变得冗余,因为不需要其来实现对移动电话10 的工作参数的改变。当然,如果新的功能添加到了移动电话10中,例如如果移动电话10的操作系统进行了升级,则将需要使用控制器16以改变工作参数直到当学习组件18已经成功地学习到了所有的新的事件序列和它们对工作参数的相关联的改变并且已经将它们存储在预测池中时这样的时间为止。在第二示例实施方式中,当每个可能的事件序列以及它对移动电话的工作参数的相关联改变已经成功地记录在预测池中时,预测池的内容例如可以提取并且保存为文件, 可以使用该文件以预先加载新制造的移动电话10的预测池。以这种方式,例如没有必要使每个新的移动电话10都经历一段时间的训练,相反,新的移动电话10将能够立刻从预先加载的预测池获益以降低功耗。相关技术领域人员将会理解,在第二示例实施方式内,处理器负载监测器14、控制器16、学习组件18、事件监测器20以及预测组件22可以例如实现为单独的硬件元件,例如单独的集成电路,或者可以实现为例如诸如FPGA之类的设备的组成部分,或者可以实现为在适当地配置的处理器上运行的软件组件,或者作为这些不同实现方式的组合。在一个特定示例中,第二示例实施方式中实现为存储在计算机可读媒介上的软件模块,如图5所示。在此,在这个示例中,计算设备10具有处理器12以及计算机可读媒介 30,计算机可读媒介30存储关于已经描述的第二示例实施方式的各种组件。因此,提供了事件监测器模块32,以及负载监测器模块37和控制器模块38。另外,还提供了学习组件模块34和预测组件模块36。各种软件模块当作为进程在处理器12上运行时,操作以提供以上描述的功能以实现本示例。在本文献的上下文中,“计算机可读媒介”可以是包含、存储、通信、传播或者传输以便由或者结合指令执行系统、装置、或者设备(例如计算机)使用的任何媒介或者任何装置,在图5中描述和描绘了计算机的一个示例。计算机可读媒介可以包括可以是包含、存储、通信、传播或者传输以由或者结合指令执行系统、装置、或者设备(例如计算机)而使用的任何媒介或者任何装置的计算机可读媒介。如果必要,这里论述的不同功能可以不同的顺序和/或相互同时执行。另外,如果必要,以上描述的功能中的一个或者多个可以为可选的或者可以组合。虽然在独立权利要求中阐明了本发明的各种方面,但是本发明的其他方面包括来自所描述的实施方式的特征和/或有独立权利要求的特征的从属权利要求的特征的其他组合,并且不仅是权利要求书中明确地阐明的组合。在此还应当注意到,虽然以上描述了本发明的示例实施方式,但是这些描述不应当被视为限制性的意义。相反,可以做出若干变化和修改而不脱离如在权利要求书中界定的本发明的范围。
10
权利要求
1.一种装置,包括事件监测器,用于对发生在所述装置内的事件进行观测;以及预测组件,其中所述预测组件配置为促使与所述装置的功耗相关联的工作参数改变,如果由所述事件监测器所观测到的事件序列对应于与所述工作参数的改变相关联的预定义序列的话。
2.如权利要求1的装置,进一步包括学习组件,所述学习组件配置为学习与所述工作参数的所述改变相关联的所述预定义事件序列。
3.如权利要求2的装置,其中所述学习组件与所述事件监测器相关联并且所述学习组件配置为如果由所述事件监测器观测到的事件序列对应于由所述学习组件先前记录的序列,则做出与所述工作参数相关的预测。
4.如权利要求3的装置,进一步包括处理器负载监测器,其中所述学习组件配置为通过在由所述学习组件记录的所述事件序列已经发生之后对所述处理器负载监测器进行检查来验证所述学习组件的预测。
5.如权利要求4的装置,其中所述所记录的事件序列与得分相关联,如果所述预测正确则改变所述得分。
6.如权利要求5的装置,其中所述预测组件配置为如果所述得分达到预定阈值,则将所述所记录的事件序列存储为预定义序列。
7.如权利要求3到6中的任何一项的装置,其中所述学习组件配置为如果由所述事件监测器观测到的事件序列并不对应于由所述学习组件先前记录的序列,则对所述所观测到的事件序列进行记录。
8.如前述权利要求的任何一项的装置,进一步包括具有多个预定义事件序列以及工作参数的相关联改变的预测池,所述预测组件将所述所观测到的事件序列与所述预定义事件序列的池相比较,以及选择与所述所观测到的事件实质上匹配的预定义事件序列,所述工作参数的改变为与来自所述池的实质上匹配的预定义事件序列相关联的改变。
9.如前述权利要求中的任何一项的装置,其中所述工作参数包括所述装置的处理器的工作频率。
10.如前述权利要求中的任何一项的装置,其中所述装置是对称多处理器设备并且所述工作参数包括启用的处理器的数目。
11.如权利要求1到权利要求9中的任何一项的装置,其中所述装置是异构多处理器设备并且所述工作参数包括启用的处理器的类型。
12.一种装置,包括至少一个处理器;以及包括计算机程序代码的至少一个存储器所述至少一个存储器和所述计算机程序代码配置为,通过所述至少一个处理器,促使所述装置执行至少以下对所述装置中的功耗进行管理,至少通过对发生在所述装置内的事件进行观测;以及改变所述装置中与所述装置的功耗相关联的工作参数,如果所观测到的事件序列对应2于与所述工作参数的改变相关联的预定义事件序列的话。
13.如权利要求12的装置,所述至少一个存储器和所述计算机程序代码配置为,通过所述至少一个处理器,促使所述装置学习与所述工作参数的所述改变相关联的所述预定义事件序列。
14.如权利要求13的装置,其中学习与所述工作参数的所述改变相关联的所述预定义事件序列包括如果所观测到的事件序列对应于与由所述学习组件先前记录的序列,则做出与所述工作参数相关的预测。
15.如权利要求14的装置,其中学习与所述工作参数的所述改变相关联的所述预定义事件序列进一步包括通过在由所述学习组件记录的所述事件序列已经发生之后对所述装置的处理器上的负载进行检查来验证所述预测。
16.如权利要求15的装置,其中所述所记录的事件序列与得分相关联,如果所述预测正确则改变所述得分。
17.如权利要求16的装置,其中如果所述得分达到预定阈值,则将所述所记录的事件序列存储为预定义事件序列。
18.如权利要求14到17中的任何一项的装置,其中,如果所观测到的事件序列并不对应于由所述学习组件先前记录的序列,则所述学习组件记录所述事件序列。
19.如权利要求12到18中的任何一项的装置,所述至少一个存储器和所述计算机程序代码配置为,通过所述至少一个处理器,促使所述装置存储具有多个预定义事件序列以及工作参数的相关联的改变的预测池,将所述所观测到的事件序列与所述预定义事件序列的池相比较,以及选择与所述所观测到的事件序列实质上匹配的预定义事件序列,所述工作参数的改变为与来自所述池的实质上匹配的预定义事件序列相关联的改变。
20.如权利要求12到19中的任何一项的装置,其中所述装置是计算设备并且所述工作参数包括所述处理器的工作频率。
21.如权利要求12到20中的任何一项的装置,其中所述装置是对称多处理器设备并且所述工作参数包括启用的处理器的数目。
22.如权利要求12到20中的任何一项的装置,其中所述装置是异构多处理器设备并且所述工作参数包括启用的处理器的类型。
23.一种方法,包括对装置中的功耗进行管理,包括对发生在所述装置内的事件进行观测;以及改变所述装置中与所述装置的功耗相关联的工作参数,如果所观测到的事件序列对应于与所述工作参数的改变相关联的预定义事件序列的话。
24.如权利要求23的方法,进一步包括在所述装置的学习组件中学习与所述工作参数的所述改变相关联的所述预定义事件序列。
25.如权利要求M的方法,其中学习与所述工作参数的所述改变相关联的所述预定义事件序列包括如果所观测到的事件序列对应于由所述学习组件先前记录的序列,则做出与所述工作参数相关的预测。
26.如权利要求25的方法,学习与所述工作参数的所述改变相关联的所述预定义事件序列进一步包括通过在由所述学习组件记录的所述事件序列已经发生之后对所述装置的处理器上的负载进行检查来验证所述预测。
27.如权利要求沈的方法,其中所述所记录的事件序列与得分相关联,如果所述预测正确则改变所述得分。
28.如权利要求27的方法,其中如果所述得分达到预定阈值,则将所述所记录的事件序列存储为预定义序列。
29.如权利要求25到观中的任何一项的方法,其中如果所述所观测到的事件序列并不对应于由所述学习组件先前记录的序列,则所述学习组件记录所述事件序列。
30.如权利要求23到四中的任何一项的方法,进一步包括在预测池中存储多个预定义事件序列以及工作参数的相关联的改变,将所述所观测到的事件序列与所述预定义事件序列的池相比较,以及选择与所述所观测到的事件序列实质上匹配的预定义事件序列,所述工作参数的改变为与来自所述池的实质上匹配的预定义事件序列相关联的改变。
31.如权利要求23到30中的任何一项的方法,其中所述装置是计算设备,并且所述工作参数包括所述设备的处理器的工作频率。
32.如权利要求23到31中的任何一项的方法,其中所述装置是对称多处理器设备并且所述工作参数包括启用的处理器的数目。
33.如权利要求23到31中的任何一项的方法,其中所述装置是异构多处理器设备并且所述工作参数包括启用的处理器的类型。
34.一种计算机程序或计算机程序或套件,配置为当被计算机执行的时候,其使得计算机根据权利要求23-33中任意一项所述的方法来工作。
35.一种计算机可读介质,用于存储根据权利要求34所述的计算机程序或计算机程序套件中的至少一个。
全文摘要
一种装置(10),包括用于对发生在计算设备(10)内的事件进行监测的事件监测器(20)以及预测组件(22),其中预测组件(22)配置为促使与所述计算设备(10)的功耗相关联的工作参数改变,如果由所述事件监测器(20)所观测到的事件序列对应于与所述工作参数的改变相关联的预定义序列的话。
文档编号H04W52/02GK102224475SQ200980146541
公开日2011年10月19日 申请日期2009年11月18日 优先权日2008年11月21日
发明者A·约翰斯顿, C·加西亚-托宾 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1