一种处理器工作频率的控制方法及装置制造方法

文档序号:6508766阅读:194来源:国知局
一种处理器工作频率的控制方法及装置制造方法
【专利摘要】本发明公开了一种处理器工作频率的控制方法及装置,该方法包括:当应用程序在前台运行时,统计处理器在各工作频率上的运行时长;当本次在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。该装置包括:时长统计模块和频率控制模块。本发明通过统计学习每个应用程序在前台运行时需要的处理器性能,然后当这个应用程序在前台运行时就把处理器动态调频范围限制在合适的范围,这样既保证了应用程序的性能,又能最大限度地节能。
【专利说明】一种处理器工作频率的控制方法及装置

【技术领域】
[0001]本发明涉及处理器功耗控制【技术领域】,尤其涉及一种处理器工作频率的控制方法及装置。

【背景技术】
[0002]功耗问题已经成为各种电子设备,尤其是移动设备发展的一个重要限制因素,随着移动设备的处理器即CPU向高频率和多核的方向发展,CPU功耗成为了移动设备主要的电源消耗者。因此,CPU功耗控制对延长移动设备的使用时间有重要意义。
[0003]CPU功耗控制的基本思路是根据系统负荷对CPU工作频率进行动态调频,经典的动态调频算法是定时统计CPU的占用率,根据CPU占用率的情况提升或者降低CPU工作频率。对于手机等设备来说,其系统负荷具有突发性的特点,定时调频会对突发任务(如用户的触控操作)响应不及时,影响对用户触控操作体验。对这类系统,在定时调频基础上增加一个立即升频操作,即当用户有触控操作时,立即把CPU工作频率升高到一个默认高频,然后再按定时动态调频算法进行频率升降。不管具体的动态调频算法如何变化,均需要设定一个频率调整范围,即最大可能达到的频率和最小可能达到的频率。同样的动态调频算法,由于频率范围的设置不同,所能起到的节能效果也是不同的。但是,现有的动态调频算法,在频率范围设置上都是一个固定值,这个值取大了则影响节能效果,取小了会影响应用程序性能。
[0004]因此,目前急需一种既不影响应用程序的性能,又能降低CPU功耗的方法。


【发明内容】

[0005]本发明要解决的技术问题是,提供一种处理器工作频率的控制方法及装置,以实现根据应用程序的使用情况灵活调整处理器工作频率。
[0006]本发明采用的技术方案是,所述处理器工作频率的控制方法,包括:
[0007]在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
[0008]进一步的,以往所述应用程序对应的处理器在各工作频率上的运行时长的获取过程,包括:
[0009]统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长;
[0010]对本次启动应用程序之前所述处理器在各工作频率上的运行时长做统计平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
[0011]进一步的,所述统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长,具体包括:
[0012]当应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-TO。
[0013]进一步的,作为一种可选的技术方案,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,具体包括:
[0014]以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较。
[0015]进一步的,作为一种优选的技术方案,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,具体包括:
[0016]以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若出现下面两个情况之一,则停止继续比较:
[0017]第一个情况:若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率;
[0018]第二个情况:若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值。
[0019]进一步的,作为一种可选的技术方案,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,具体包括:
[0020]将处理器的当前最高工作频率上的运行时长与设定的相应阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
[0021]进一步的,将所述应用程序需要的最高处理器工作频率作为本次应用程序运行时处理器所能达到的工作频率上限,具体包括:
[0022]将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
[0023]本发明还提供一种处理器工作频率的控制装置,包括:
[0024]频率控制模块,用于在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
[0025]进一步的,所述装置还包括:
[0026]时长统计模块,用于统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长,对本次启动应用程序之前所述处理器在各工作频率上的运行时长做统计平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
[0027]进一步的,所述时长统计模块,具体用于:
[0028]当应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-T0。
[0029]进一步的,作为一种可选的技术方案,所述频率控制模块,具体用于:
[0030]以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较。
[0031]进一步的,作为一种优选的技术方案,所述频率控制模块,具体用于:
[0032]以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若出现下面两个情况之一,则停止继续比较:
[0033]第一个情况:若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率;
[0034]第二个情况:若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值。进一步的,作为一种可选的技术方案,所述频率控制模块,具体用于:
[0035]将处理器的当前最高工作频率上的运行时长与设定的相应阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
[0036]进一步的,所述频率控制模块,具体用于:
[0037]将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
[0038]采用上述技术方案,本发明至少具有下列优点:
[0039]本发明所述处理器工作频率的控制方法及装置,统计学习每个应用程序在前台运行时需要的处理器性能,然后当这个应用程序在前台运行时就把处理器动态调频范围限制在合适的范围,这样既保证了应用程序的性能,又能最大限度地节能。

【专利附图】

【附图说明】
[0040]图1为本发明第一实施例的处理器工作频率的控制方法流程图;
[0041]图2为本发明第二实施例的处理器工作频率的控制装置组成示意图;
[0042]图3为本发明应用实例一的基于应用程序运行统计对CPU工作频率进行控制的方法流程图。

【具体实施方式】
[0043]为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
[0044]本发明第一实施例,一种处理器工作频率的控制方法,如图1所示,包括以下具体步骤:
[0045]步骤S101,统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长。
[0046]具体的,应用程序在前台运行时,处理器在各工作频率上的运行时间值均是以时间片累计的方式更新的。当该应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当该应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-TO,本领域技术人员应当理解,TO和TI均为包括多个工作频率上运行时间值的向量,而deItaT为各工作频率上的运行时间值对应相减得到的一个新的向量。本发明只统计应用程序在前台运行时的处理器使用情况,因为通常应用程序在后台运行时,不需与用户进行触控交互,对处理器工作频率的突发需求较少,基本不能反映出应用程序与用户交互时的性能,所以为了满足用户即时的使用体验,本发明只关注在前台与用户有触控交互时的应用程序。
[0047]处理器的工作频率的个数以及各工作频率的数值与具体处理器的型号有关,因此本发明对此不作限定。
[0048]步骤S102,当本次在前台启动应用程序时,对本次启动应用程序之前所述处理器在各工作频率上的运行时长做统计平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
[0049]具体的,以往所述应用程序对应的处理器在各工作频率上的运行时长的获取过程,包括:
[0050]基于步骤S102统计的该应用程序每次在前台运行时处理器在各工作频率上的运行时长,对本次启动应用程序之前设定次数的所述处理器在各工作频率上的运行时长做统计平均,比如:针对每一个工作频率,对各次的运行时长取平均值或者做加权平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。本实施例中,之所以只对本次启动应用程序之前设定次数的所述处理器在各工作频率上的运行时长做统计平均,而不是对本次启动应用程序之前所有的所述处理器在各工作频率上的运行时长做统计平均,一方面是出于节省系统存储空间的考虑,此时需要对超过设定次数的统计数据进行老化,另一方面是由于对近期应用程序运行时CPU的使用情况进行统计,更贴近于用户目前对该应用程序的使用需求。
[0051]步骤S103,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
[0052]优选的,在步骤S103中,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,具体包括:
[0053]按照工作频率从高到低的顺序,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较;优选的,若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值,停止继续比较,以避免限频过低导致系统响应变慢。
[0054]可选的,在步骤S103中,也可以采用如下简便的方式来确定出所述应用程序需要的最高处理器工作频率,具体过程包括:
[0055]将处理器的当前最高工作频率上的运行时长与设定的阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
[0056]在步骤S103中,将所述应用程序需要的最高处理器工作频率作为本次应用程序运行时处理器所能达到的工作频率上限,具体包括:
[0057]将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
[0058]本发明第二实施例,一种处理器工作频率的控制装置,如图2所示,包括:
[0059]I)时长统计模块100,用于统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长,对本次启动应用程序之前设定次数的所述处理器在各工作频率上的运行时长做统计平均,比如:针对每一个工作频率,对各次的运行时长取平均值或者做加权平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
[0060]具体的,时长统计模块100,用于:
[0061]当应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-T0。
[0062]2)频率控制模块200,用于当本次在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
[0063]优选的,频率控制模块200采用如下方式来确定出所述应用程序需要的最高处理器工作频率:
[0064]按照工作频率从高到低的顺序,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较;优选的,若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值,停止继续比较,以避免限频过低导致系统响应变慢。
[0065]或者,频率控制模块200也可以采用如下简便的方式来确定出所述应用程序需要的最高处理器工作频率:
[0066]将处理器的当前最高工作频率上的运行时长与设定的阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
[0067]接下来,频率控制模块200将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
[0068]基于上述实施例,介绍两个本发明技术方案的应用实例。
[0069]应用实例一
[0070]本应用实例提供一种基于应用程序运行统计对CPU工作频率进行控制的方法,不失一般性,以任意的一个应用程序A为例子来说明,如图3所示,该方法循环执行,每个循环周期即为应用程序A从在前台启动到退出前台的时间段,每个循环周期内的步骤如下:
[0071]步骤al,当应用程序A切换到前台的同时,获取CPU在各个工作频率上的运行时间值TO ;
[0072]步骤a2,判断应用程序A的运行统计数据的统计次数是否达到了设定的数值,如果是,则认为统计数据能够反映出应用程序A与用户正常交互时的CPU性能,转步骤a6 ;否则认为不能反映出应用程序A与用户正常交互时的CPU性能,此时转步骤a3 ;
[0073]步骤a3,当应用程序A被切换到后台的同时,获取CPU在各个运行频率上的运行时间值Tl ;
[0074]步骤a4,用Tl减去TO获得的值为deltaT,这个值就是应用程序A在本次运行时间段内对CPU的使用情况;
[0075]步骤a5,将步骤a4获得的deltaT值记录在应用程序A的数据结构中,转步骤a8 ;
[0076]步骤a6,对应用程序A的运行统计数据进行统计平均处理,再根据统计平均处理的结果确定出应用程序A可以使用的最高CPU工作频率f ;
[0077]步骤a7,把步骤a6中确定出的f设置到操作系统内核,从而操作系统内核在自动变频时,限制最高变频值不能超过f,转步骤a3 ;
[0078]步骤a8,流程结束。
[0079]应用实例二
[0080]本应用实例介绍一个在Android手机上实现的频率控制过程。在Android系统中,ActivityManagerService模块负责应用程序界面Activity的切换。在Android系统中的具体实施流程如下:
[0081]步骤bl, ActivityManagerService模块切换应用程序显示界面Activity时,根据ActivityRecord信息获得该显示界面所属的应用程序;
[0082]步骤b2,如果应用程序跟切换前的Activity所属的应用程序不一样,说明发生了前台应用程序的切换,转步骤b3,否则流程结束;
[0083]步骤b3,根据应用程序名称,找到系统内部对应的Uid.Pkg对象(即应用实例一中所说的数据结构),该Uid.Pkg对象内部记录了对应应用程序的CPU运行统计数据,计算前台上一个应用所花费的CPU时间,并把这个数据值保存在前台上一个应用所对应的Uid.Pkg对象;
[0084]步骤b4,判断记录的CPU运行统计数据是否达到3次,如果是,说明统计数据有效,转步骤b5,否则,转步骤b6 ;
[0085]步骤b5,根据已记录的3次本应用程序的CPU运行统计数据,计算本应用可以使用的CPU最高工作频率,并把这个频率值写到文件〃/sys/devices/system/cpu/cpuO/cpufreq/scaling_max_freq〃中,这样,操作系统内核就能自动限制最高运行频率不超过这个频率值;
[0086]步骤b6,流程结束。
[0087]通过【具体实施方式】的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
【权利要求】
1.一种处理器工作频率的控制方法,其特征在于,包括: 在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
2.根据权利要求1所述的处理器工作频率的控制方法,其特征在于,以往所述应用程序对应的处理器在各工作频率上的运行时长的获取过程,包括: 统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长; 对本次启动应用程序之前所述处理器在各工作频率上的运行时长做统计平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
3.根据权利要求2所述的处理器工作频率的控制方法,其特征在于,所述统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长,具体包括: 当应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-TO。
4.根据权利要求1所述的处理器工作频率的控制方法,其特征在于,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,具体包括: 以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较; 或者, 以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若出现下面两个情况之一,则停止继续比较: 第一个情况:若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率; 第二个情况:若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值; 或者, 将处理器的当前最高工作频率上的运行时长与设定的相应阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
5.根据权利要求1?4中任一项所述的处理器工作频率的控制方法,其特征在于,将所述应用程序需要的最高处理器工作频率作为本次应用程序运行时处理器所能达到的工作频率上限,具体包括: 将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
6.一种处理器工作频率的控制装置,其特征在于,包括: 频率控制模块,用于在前台启动应用程序时,基于以往所述应用程序对应的处理器在各工作频率上的运行时长,选择出所述应用程序需要的最高处理器工作频率,并将其作为本次应用程序运行时处理器所能达到的工作频率上限。
7.根据权利要求6所述的处理器工作频率的控制装置,其特征在于,所述装置还包括: 时长统计模块,用于统计该应用程序每次在前台运行的时间段内处理器在各工作频率上的运行时长,对本次启动应用程序之前所述处理器在各工作频率上的运行时长做统计平均,将统计平均的结果作为以往所述应用程序对应的处理器在各工作频率上的运行时长。
8.根据权利要求7所述的处理器工作频率的控制装置,其特征在于,所述时长统计模块,具体用于: 当应用程序在前台启动的同时,记录下处理器在各工作频率上的运行时间值T0,当应用程序退出前台的同时,记录下处理器在各工作频率上的运行时间值Tl,则该应用程序本次运行时处理器在各工作频率上的运行时长为deltaT=Tl-TO。
9.根据权利要求6所述的处理器工作频率的控制装置,其特征在于,所述频率控制模块,具体用于: 以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,停止继续比较; 或者, 以工作频率从高到低,依次将各工作频率上的运行时长与设定的相应阈值进行比较,若出现下面两个情况之一,则停止继续比较: 第一个情况:若一旦某工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率; 第二个情况:若比较过的工作频率上的运行时长总和达到设定的总时长阈值,则取比较过的工作频率中的最小者作为所述应用程序需要的最高工作频率值; 或者, 所述频率控制模块,具体用于: 将处理器的当前最高工作频率上的运行时长与设定的相应阈值进行比较,若该工作频率上运行时长大于等于设定的相应阈值,则选择该工作频率作为所述应用程序需要的最高处理器工作频率,否则选择处理器的次高工作频率作为所述应用程序需要的最高处理器工作频率。
10.根据权利要求6?9中任一项所述的处理器工作频率的控制装置,其特征在于,所述频率控制模块,具体用于: 将所述应用程序需要的最高处理器工作频率设置到操作系统内核,由操作系统内核在所述应用程序运行时,限制自动变频的最高频率不能超过所述应用程序需要的最高处理器工作频率。
【文档编号】G06F9/50GK104424031SQ201310373208
【公开日】2015年3月18日 申请日期:2013年8月23日 优先权日:2013年8月23日
【发明者】古幼鹏, 钟声, 胡炜, 徐立锋 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1