一种智能移动终端功耗管理方法

文档序号:7769530阅读:217来源:国知局
一种智能移动终端功耗管理方法
【专利摘要】本发明提供一种智能移动终端功耗管理方法,包括:11)终端运行一个应用时,获得该应用的饱和频率;12)基于ONDEMAND算法对CPU的频率进行动态调节,其中,对于各个应用,分别将步骤11)所得到的饱和频率作为ONDEMAND算法中的最高频率。其中应用的饱和频率基于应用运行时终端的活动特征的预测模型预测得到。本发明能够防止分配过多的计算资源却无法相应地提高用户体验,从而达到节能优化的效果;本发明能够达到根据用户体验精确降低功耗的效果。
【专利说明】一种智能移动终端功耗管理方法
【技术领域】
[0001]本发明涉及数据处理技术和终端节能【技术领域】,具体地说,本发明涉及一种智能移动终端功耗管理方法。
【背景技术】
[0002]近年,功能多样的智能手机越来越受到市场欢迎,但与此同时,智能手机待机时间过短的问题也越来越突出,给用户造成诸多不便。目前,电池技术的发展速度已难以跟上用户对于更长的待机时间的渴求,因此通过更加优化的智能手机功耗管理策略来延长待机时间成为越来越重要的研究方向之一。
[0003]CPU是智能手机的核心部件,它为花样繁多的手机应用提供计算支持,比如游戏、浏览器、工具软件等等,这些应用所耗费的电量已经超过了传统的通信所耗费的电量。为了满足这些应用的需求,CPU性能不断提升,其功耗也与日俱增,有效降低CPU功耗对降低智能手机整体功耗有着重要意义。
[0004]目前,CPU功耗管理的两个常用的算法是Linux PERFORMANCE算法和LinuxP0WERSAVING算法。Linux PERFORMANCE算法旨在性能优先,它会一直把CPU频率设在最高水平,而Linux P0WERSAVING算法则是节能优先,它一直把频率设在最低水平。这两种算法都没有考虑动态地调节频率,导致要么浪费了资源,要么损害了用户体验。
[0005]Linux ONDEMAND算法是根据实时的CPU利用率来调节频率的一种CPU功耗管理算法。在典型的Linux ONDEMAND算法中,当CPU利用率超过一个上限,频率会设定在最高频率;当利用率低于一个下限,频率将会设定在能够保持较上限低10%的利用率的频率。相对于Linux PERFORMANCE算法,Linux ONDEMAND算法能够有效降低CPU的功耗。然而这种功耗管理算法并未直接考虑用户体验,而越来越多的实践表明,很多情况下Linux ONDEMAND算法容易分配过多的计算资源却无法相应地提高用户体验,因此,在Linux ONDEMAND算法的基础上,还存在进一步降低功耗的空间。
[0006]综上所述,当前迫切需要一种能够在保证用户体验的前提下,精确降低智能移动终端功耗的解决方案。

【发明内容】

[0007]本发明的目的是提供一种能够在保证用户体验不降低的前提下,精确降低智能移动终端功耗的解决方案。
[0008]为实现上述发明目的,本发明提供了一种预测应用饱和频率的模型训练方法,包括下列步骤:
[0009]I)建立预测模型,该模型将应用运行时终端的活动特征所组成的终端运行特征向量作为输入,将候选频率盖作为输出;其中,所述应用运行时终端的活动特征包括=CPU的忙碌时间占运行时间的比例或百分比;CPU在各个频点上的运行时间的比例或百分比;以及CPU持续忙碌时间长度的均值和方差;[0010]2)基于样本集训练所述预测模型,该样本集中采集了应用运行时终端的活动特征,以及相应的用户体验及CPU频率。
[0011]其中,所述应用运行时终端的活动特征还包括:触屏所引起系统中断次数的均值和方差;触屏时间长度的均值;触屏之间间隔时间的均值和方差;以及重力在终端自身坐标系中y轴方向上分力的均值和方差。
[0012]其中,所述预测模型为神经网络模型。
[0013]其中,所述步骤2)中,当大量用户的平均用户体验值与最大用户体验值的比值超过预定阈值时,视作已达到饱和频率。
[0014]本发明还提供了一种预测应用饱和频率的方法,包括下列步骤:
[0015]启动应用,采集该应用运行过程中移动终端的终端运行特征向量,将所采集到的终端运行特征向量输入用权利要求1?4中任意一项所述的方法所训练的预测模型,该预测模型所输出的频点即为该应用所对应的饱和频率。
[0016]本发明还提供了一种智能移动终端功耗管理方法,包括下列步骤:
[0017]11)利用前述预测应用饱和频率的方法获得应用的饱和频率;
[0018]12)基于ONDEMAND算法对CPU的频率进行动态调节,其中步骤11)所得到的饱和频率作为ONDEMAND算法中的最高频率。
[0019]其中,所述步骤11)中,预测应用饱和频率的模型在服务器端完成训练,然后,服务器将所述模型的参数传送给移动终端,在移动终端建立历史表记录每个应用的饱和频率,每个应用第一次运行时,通过采集到的终端活动特征向量预测得到相应的饱和频率并记录到所述历史表中,以后每次启动该应用,查看历史表得到相应的饱和频率。
[0020]其中,所述步骤11)中,对于所述预测模型未见过的新类型应用,移动终端接受用户手动设置的频率及用户体验值,并将二者以及相应的终端运行特征向量传送到服务器,所述服务器将其加入用于模型训练的所述样本集。
[0021]与现有技术相比,本发明具有下列技术效果:
[0022]1、本发明能够防止分配过多的计算资源却无法相应地提高用户体验,从而达到节能优化的效果。
[0023]2、本发明能够达到根据用户体验精确降低功耗的效果。
【专利附图】

【附图说明】
[0024]图1示出了不同CPU频率下六个不同应用的用户体验的分布情况;
[0025]图2示出了本发明一个实施例的流程图;
[0026]图3示出了各应用在传统ONDEMAND算法和基于本发明一个实施例的ONDEMAND算法下CPU在各频率上运行时间的对比;
[0027]图4示出了实验中不同应用运行时CPU利用率随时间变化的曲线;其中X坐标表示从小到大顺序排列的时间百分片;
[0028]图5示出了实验中不同应用运行时触屏所引起的系统中断数随时间变化的曲线;
[0029]图6示出了实验中27个应用在运行时的运动特征散点图;
[0030]图7示出了手机坐标系统的示意图;
[0031]图8示出了本发明中使用不同特征向量的实施例预测饱和频率的精度;[0032]图9示出了不同算法下的不同应运行时的CPU功耗对比;
[0033]图10示出了不同算法下的不同应运行时的整机功耗对比。
【具体实施方式】
[0034]为了便于理解,首先介绍本发明的发明人针对CPU频率与用户体验之间的关系所做的研究。发明人做了一个涉及20个用户和6个应用(包括:Talking Tom, SnowPro, Storm, Fruit Ninja,UC Browser和QQ)的调研,用以挖掘用户、应用的特点。调研中,在用户使用应用时,随机的调整CPU的频率,并询问用户的体验。用户体验分为三级:好,中,差。这样便得到用户体验在各个CPU频点上的用户体验分布。图1示出了不同CPU频率下六个不同应用的用户体验的分布情况。参考图1,其中每一个条形表示该用户体验水平所对应的用户数量。对于某些应用,例如Talking Tom, Snow Pro, Storm,随着CPU频率的提高,评“好”的用户数量增多,评“差”的用户数量减少。但是,也存在另一些应用,比如Fruit Ninja和UC Browser,当CPU频率从600提高到800时,用户体验并没有显著提升。而对于QQ,当CPU频率从300提高到600时,用户体验也没有显著提升。可以看出,CPU频率与用户体验并不总是正相关,一些应用存在一个饱和频率,CPU频率高于饱和频率时,用户体验几乎没有提升。通过甄别不同应用的饱和频率,将饱和频率设置为该应用的频率盖,使CUP频率的动态调节范围不超出该频率盖,能够防止分配过多的计算资源却无法相应地提高用户体验的现象出现,从而达到节能优化的效果。进一步地,为了准确地确定频率盖,在下面的实施例中提出了一种基于神经网络模型的预测频率盖的方案,它通过应用在移动终端中运行时的一系列活动特征,来预测每个用户对于每个应用的频率盖,从而达到根据用户体验精确降低功耗的效果。
[0035]下面结合实施例对本发明做进一步的描述。
[0036]根据本发明的一个实施例,提供了一种预测应用的饱和频率的方法。
[0037]应用的饱和频率与用户体验相关,通过实验可以收集一定数目的样本,样本中记录用户体验随CPU频 点变化的关系,以及相应的应用在移动终端中运行时的一系列活动特征,为方便描述,下文中将这所述的一系列活动特征所组成的向量称为终端运行特征向量。基于所收集的样本,训练神经网络模型,该神经网络模型中,将终端运行特征向量中的每个活动特征作为神经网络模型输入层的一个神经元,将候选的频率盖分别作为神经网络模型输出层的一个神经元。利用上述经过训练的神经网络模型,即可预测各个应用的饱和频率并设置相应的频率盖。
[0038]本步骤中,将用户体验UX量化定义为:
[0039]£/Λ.= W

Λ? - N1- Λι
[0040]其中,W1, W2,W3表示用户体验的评分,分别为1,2,3,代表“差,中,好,,的评价。N1, N2, N3表示给相应评分的人数。容易看出,在这种定义下,用户体验UX的最大值为3。本实施例中,将UX在2.7以上(B卩UX最大值90%以上)的情况认为是已经达到最高的用户体验,此时视作无法再显著提升用户体验的情形。更一般化地,可以先设定一个阈值(例如90%),当大量用户的平均用户体验值与最大用户体验值的比值超过该阈值时,即可视作无法再显著提升用户体验的情形,即视作已达到饱和频率。[0041 ] 现有技术仅通过CPU利用率来调整CPU频率,本实施例与现有技术不同,它所利用的应用在移动终端中运行时的活动特征包括一系列与CPU相关的特征。这些与CPU相关的特征包括:
[0042]a、CPU的忙碌时间占运行时间的比例(Rbt),
[0043]b、CPU在各个候选频点(即候选频率盖的频点)上的运行时间的百分比(Pf),
[0044]C、持续忙碌时间长度的均值和方差(μ (Lcb), δ (Lcb))。
[0045]具体地,Rbt是CPU利用率在100%的运行时间与总运行时间的比值。Rbt越大说明该应用对计算量的需求就越大。比如,图4示出了实验中不同应用运行时CPU利用率随时间变化的曲线;其中X坐标表示从小到大顺序排列的时间百分片。在图4中,Storm的Rbt高达65%,而且其相应的频率盖为800MHz。相反,QQ和UC的Rbt值只有30%,最终它们的频率盖是较低的600MHz。
[0046]但是,只使用Rbt是不够的,因为Rbt并没有考虑到CPU频率。比如说,不同的应用可能有相近的Rbt,但是运行在不同的CPU频率。这样,在较高频率的那个应用肯定更消耗计算资源。本实施例引入Pf这个特征。图3示出了各应用在传统ONDEMAND算法和基于本发明一个实施例的ONDEMAND算法下CPU在各频率上运行时间的对比,如图3所示,ONDEMAND算法(图中的w/o cap)中应用拥有各自的Pf值。
[0047]连续忙碌时间(CBsession)是指CPU利用率连续保持100%的时间。通常,一个持续时间较长的Cbsession是由较大的负载造成的,带来比较高的μ (Lcb)。相反,较小的负载只能引起较短的Cbsession和较低的μ (Lcb)。一个拥有较高μ (Lcb)的应用应该运行在较高的CPU频率上,这样才能保证它的实时反应。本实施例进一步使用δ (Lcb)来对不同的应用进行分类。图4示出了实验中6个应用在运行时的CPU连续忙碌时间长度的均值和方差。如图4所示,暴风影音具有较高的δ (Lcb),这表示它需要较高的频率盖,也就是800MHz。相比之下,水果忍者具有较低的μ (Lcb)和δ (Lcb),说明它只需要较低的频率盖。
[0048]上述CPU相关的特征在大多数的情况下可以很好刻画应用对CPU性能的需求,具有较高的预测精度。然而对于某些特殊应用,例如游戏类和视频类的应用,CPU相关的特征对于只能分别得到70%和50%的预测精度,如图8所示。鉴于此,在一个优选实施例中,还可以增加另外两类特征,即触屏特征和运动特征,来对应用进行分类。
[0049]不同类型的应用通常有自己独特的触屏特征,这将在触屏引起的系统中断信息中有所体现。图5示出了实验中不同应用运行时触屏所引起的系统中断数随时间变化的曲线。可以看到UC Browser相比于Gofishing和Dragon有更频繁的触屏,而Storm几乎没有触屏。另外,不同应用的触屏的时间也不尽相同。比如,比如某些应用需要更多地拖动页面,而拖动页面,其触屏时间一般比点触一个页面小控件要长。另外,不同的应用两次触屏之间的时间间隔变化也很大。考虑到这些情况,该优选实施例中采用了三个方面的触屏特征,包括:触屏所引起系统中断次数(Nint)的均值和方差(μ (Nint), δ (Nint)),采样频率为5Hz,触屏时间长度的均值(μ (Ltouch)),触屏之间间隔时间(Linterval)的均值和方差(μ (Linterval), δ (Linterval))。
[0050]下面再介绍手机运动方面的特征。这些运动方面的特征是从手机内置的重力感应器的信息获取到的。图6示出了实验中27个应用在运行时的运动特征散点图。其中,X轴表示重力在手机竖直方向上分量的均值,用μ (y)表示。y轴则为相应的标准差,即δ (y).为清楚起见,应用被标注为游戏类、浏览器类、和视频类。图中,平面分割成了四个区域(Domain),Domainl包含了需要横握手机,并且频繁摇晃手机的应用,比如竞速类的游戏。Domain2主要是一些需要横握手机,但是几乎没有摇晃的应用。一些竖握手机,不需要摇晃的应用,比如浏览器,一般分布在Domain3。另外,实验中没有应用出现在Domain4里。
[0051]图8显示了使用不同集合的特征所带来的预测精度。仅仅使用CPU特征可以使浏览器类的应用有较好的预测精度,但是对于游戏类和视频类的应用仅能是预测精度达到70%和50%。当使用上述所有特征时,可以把相应预的测精度提高到91%和85%。使用结果证实了前述分析。
[0052]基于前述分析,对于本发明的一个实施例,提供了一种训练饱和频率预测模型的方法,包括步骤101?103:
[0053]步骤101:建立一个三层神经网络模型,其输入层有12个神经元,隐藏层有18个神经元,输出层有4个神经元。
[0054]其中,三层神经网络模型的输出层是一个4元素的向量,每个元素分别代表300MHz、600MHz、800MHz以及HIGHER。HIGHER的意思是,应用对计算性能的需求太高了,以至于800MHz都满足不了它的需求。
[0055]三层神经网络模型的输入层的12个神经元就是前面介绍的12个特征,这12个特征构成终端运行特征向量。12个特征分别是:
[0056]UCPU的忙碌时间占运行时间的比例或百分比(忙碌是指,CPU的利用率在100%);
[0057]2、CPU在各个频点上的运行时间的比例或百分比,本实施例中,将CPU在300MHz上运行时间的比例或百分比,以及CPU在600MHz上运行时间的比例或百分比分别作为两个特征值,300MHz、600MHz是最终输出的候选频率盖中数值较小的两个;
[0058]3、持续忙碌时间长度的均值和方差(持续忙碌时间是指,CPU的利用率持续保持100%),其中均值和方差各自作为一个特征值;
[0059]4、触屏所引起系统中断次数的均值和方差,其中均值和方差各自作为一个特征值;
[0060]5、触屏时间长度的均值,即从手指按下到松开的时间;
[0061]6、触屏之间间隔时间的均值和方差,其中均值和方差各自作为一个特征值;
[0062]7、重力在手机自身坐标系中y轴方向(指手机的纵向方向,图7示出了手机坐标系统的示意图)上分力的均值和方差,其中均值和方差各自作为一个特征值。
[0063]上述12个特征中,I至3为CPU相关特征,4至5为触屏特征,7为终端的物理运动特征。4至7可统称为非CPU相关特征。参考前文中对各类特征的分析,可以看出,选择全部12个特征作为预测模型的输入层仅是一个优选方案,在别的实施例中,也可以选择12个特征中的一部分作为预测模型的输入层,例如可以仅使用CPU相关特征而不使用触屏特征和终端的物理运动特征,这种预测模型可以较为准确地预测非视频类和非游戏类的大多数应用(例如浏览器类的应用)的饱和频率。
[0064]步骤102:采集样本数据作为训练集,用该训练集训练步骤101所建立的三层神经网络模型。在不同的应用运行过程中,采集前文中所述的12个移动终端的活动特征,从而构成终端运行特征向量。本实施例中,采集了 20个用户和27个应用的数据作为训练集。
[0065]步骤103:用户启动一个应用后,采集该应用运行过程中移动终端的终端运行特征向量,将所采集到的终端运行特征向量输入经步骤102训练的三层神经网络模型,在输出层得到300MHz、600MHz、800MHz、HIGHER中的一个,所得到的频点即为该应用所对应的饱和频率(当输出结果为HIGHER时,可认为饱和频率过高,此时可视为频率盖为空,即不另外
设置频率盖)。
[0066]发明人实施了一个4重交叉验证过程来验证本实施例的模型。
[0067]实验采用摩托罗拉ME525手机。其应用处理器采用T10MAP3610,集成了 ARMCortex A8内核,它有300MHz、600MHz、800MHz三个可以调节的频点。同时采用PowerVRSGX530集成显示芯片。几乎可以胜任所有现行主流的3D游戏。拥有512M RAM,并且配备了 3.7寸1600万像素TFT屏幕。采用android2.2操作系统,在高性能模式下可以很好的满足用户的体验。
[0068]发明人开发了一个后台服务来采集系统活动信息(即终端活动特征向量),它的采样频率为为5Hz。实验中采集了 20个用户使用27个应用时的系统活动信息,以及用户体验反馈。所测试的27个应用是Google Play上都是非常流行的,其中包括愤怒小鸟、QQ、UC浏览器等等。每一个测试过程时长3分钟,总的采集时间达到了 20个小时。进行特征提取之后,就得到540个训练样例,并用相应的饱和频率(通过用户体验反馈获得)给每个训练样例贴上标签。
[0069]把训练集随机地分为4组,然后任意选取3个合并为训练集,另外一个作为验证集。这样,得到的平均的训练集预测精度为92%,验证集合的为80%。发明人还使用了 5个既没有在训练集中出现,也没有在验证集出现的新应用作为测试集,来测试已训练好的模型。实验显示,该模型可以得到82%的预测精度。
[0070]基于上述预测各应用饱和频率的方案,可以进一步地对移动终端做功耗管理,从而精确地降低移动终端的功耗。
[0071]根据本发明的另一个实施例,提供了一种移动终端功耗管理方法,包括下列步骤:
[0072]步骤1:终端运行一个应用时,获得该应用的饱和频率。预测饱和频率的方法参见前文的实施例,此处不再赘述。
[0073]本实施例中,整个系统的架构可采用服务器-客户端的形式。预测饱和频率的模型在高性能的服务器端完成训练。然后,服务器将预测模型的参数传送给客户端,也就是智能移动终端。在客户端,建立了一个历史表来记录每个应用的频率盖(即饱和频率)。每个应用第一次运行时,通过采集到的终端活动特征向量预测得到相应的频率盖并记录到所述历史表中。这样,以后每次启动该应用,只需要查看历史表即可得到相应的频率盖。如果在历史表中没有找到,系统将启动预测过程,并且将这个新的应用-频率盖记录加到历史表中。
[0074]另外,考虑到有预测模型未见过新类型的应用出现时,预测模型需要自适应地改进自身。所以,本实施例提供了用户界面,使得用户可以手动地设置的频率盖。同时,终端的后台程序将这个频率盖的值和系统运行时的信息(即终端运行特征向量)传送到服务器。这些数据将成为机器学习的新的训练样本,从而不断校正预测模型。
[0075]步骤2:基于ONDEMAND算法对CPU的频率进行动态调节,其中,对于各个应用,分别将步骤I所得到的饱和频率作为ONDEMAND算法中的最高频率。
[0076]本实施例的功耗管理方法是建立在ONDEMAND算法之上的,原始的LinuxONDEMAND算法是:当CPU利用率(cpu_ut i I)大于一个上限(UP_THRESHOLD )时,将CPU的频率设置在“最高频率”(highest_frequency);当CPU利用率小于一个下限(D0WN_THRESHOLD )时,将频率设定在能维持CPU利用率至少(UP_THRESHOLD 一 10%)的水平。ONDEMAND算法的相关代码如下:
[0077]

if> UP.—.THRESHOLD then

Si'l^FiVi/ut'ue} ! highest_f 1-equency)

else if< down—threshold then

rtHluesi mi^frvq -s— frMfaeavv fhai maintains a

IKiiiAiihm ,W imst UP—THRESHOLD — 10%


Set.....FmfiiencYt n-1/ttested.....freq)

end if
[0078]本实施例中,在采取动态的限制“最高频率”的方法,也就是根据不同的应用赋予不同的“higheSt_freqUenCy”,这个“最高频率”可称为频率盖。采用这种方法可以有效的防止CPU频率过度调高。并且,实验证明,设置频率盖并不会导致各应用在低频率上的运行时间明显减少。如图3所示,比较原始ONDEMAND算法和本实施例的方法,应用在300MHz这个低频点上的时间分布并没有明显变化,也就是说,消除频率的过度调高并不会带来低频点上运行时间的显著减少,因此从整体上能够降低CPU的功耗。
[0079]为了验证本实施例的有效性,发明人研究了频率盖预测结果和用户实际选择的匹配率。对频率盖的预测精度决定了设置频率盖是否能避免用户体验下降。表1给出了预测结果和用户实际选择的匹配率。
[0080]表1
[0081]
【权利要求】
1.一种预测应用饱和频率的模型训练方法,包括下列步骤: 1)建立预测模型,该模型将应用运行时终端的活动特征所组成的终端运行特征向量作为输入,将候选频率盖作为输出;其中,所述应用运行时终端的活动特征包括=CPU的忙碌时间占运行时间的比例或百分比;CPU在各个频点上的运行时间的比例或百分比;以及CPU持续忙碌时间长度的均值和方差; 2)基于样本集训练所述预测模型,该样本集中采集了应用运行时终端的活动特征,以及相应的用户体验及CPU频率。
2.根据权利要求1所述的预测应用饱和频率的模型训练方法,其特征在于,所述应用运行时终端的活动特征还包括:触屏所引起系统中断次数的均值和方差;触屏时间长度的均值;触屏之间间隔时间的均值和方差;以及重力在终端自身坐标系中y轴方向上分力的均值和方差。
3.根据权利要求1所述的预测应用饱和频率的模型训练方法,其特征在于,所述预测模型为神经网络模型。
4.根据权利要求1所述的预测应用饱和频率的模型训练方法,其特征在于,所述步骤2)中,当大量用户的平均用户体验值与最大用户体验值的比值超过预定阈值时,视作已达到饱和频率。
5.一种预测应用饱和频率的方法,包括下列步骤: 启动应用,采集该应用运行过程中移动终端的终端运行特征向量,将所采集到的终端运行特征向量输入用权利要求1?4中任意一项所述的方法所训练的预测模型,该预测模型所输出的频点即为该应用所对应的饱和频率。
6.一种智能移动终端功耗管理方法,包括下列步骤: 11)利用权利要求5所述的方法获得应用的饱和频率; 12)基于ONDEMAND算法对CPU的频率进行动态调节,其中步骤11)所得到的饱和频率作为ONDEMAND算法中的最高频率。
7.根据权利要求6所述的智能移动终端功耗管理方法,其特征在于,所述步骤11)中,预测应用饱和频率的模型在服务器端完成训练,然后,服务器将所述模型的参数传送给移动终端,在移动终端建立历史表记录每个应用的饱和频率,每个应用第一次运行时,通过采集到的终端活动特征向量预测得到相应的饱和频率并记录到所述历史表中,以后每次启动该应用,查看历史表得到相应的饱和频率。
8.根据权利要求7所述的智能移动终端功耗管理方法,其特征在于,所述步骤11)中,对于所述预测模型未见过的新类型应用,移动终端接受用户手动设置的频率及用户体验值,并将二者以及相应的终端运行特征向量传送到服务器,所述服务器将其加入用于模型训练的所述样本集。
【文档编号】H04W52/02GK103475790SQ201310403344
【公开日】2013年12月25日 申请日期:2013年9月6日 优先权日:2013年9月6日
【发明者】李雪亮, 鄢贵海, 韩银和, 李晓维 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1