提高处理速度且降低电力消耗的CPU控制方法及装置技术领域
本发明涉及CPU控制方法及装置,尤其涉及一种在嵌入式系统中提
高应用程序处理速度且降低电力消耗的CPU控制方法及装置。
背景技术
保持应用程序性能的情况下降低电力消耗是智能手机、平板电脑等
移动系统方面的重要研究课题之一。
随着现在应用程序越来越复杂并要求更高的处理速度,因此用于满
足这些需求的CPU、GPU、RAM等硬件的性能也越来越高,而这些需求
则会造成电力消耗上升、电池寿命缩短。
为解决电力消耗问题,多数采用安卓(Android)系统的智能设备都适
用动态电压及频率调节(DynamicVoltageandFrequencyScaling,以下称
为‘DVFS’)技术。
DVFS是通过减小CPU频率与电压降低电力消耗的技术,由于CPU
的电力消耗与CPU频率成比例,因此DVFS可以通过减小CPU频率降低
CPU的电力消耗。
但减小CPU频率意味着降低处理速度,这会造成交互式应用程序
(interactiveapplication)的反应时间减慢。
通常,‘反应时间’表示用户的输入与系统反应之间的时间,智能
设备中运行的多数应用程序为交互式应用程序,从而采用用户界面(User
Interfaces;UIs)。
作为参考,交互式应用程序例如有游戏(games)、网页浏览(web
browsing)、图像编辑器(imageeditors)等。
交互式应用程序中反应时间是最关键要素之一,虽然可能各用户之
间略有差异,但以往研究结果表明当反应时间超过150ms时一般用户就
会感到不便。
因此,满足这种反应时间的临界值(threshold)尤为重要。
并且,智能设备提供多任务(multi-tasking)功能,因此交互式应用程
序与多个后台应用程序同时运行。
在这种环境下,交互式应用程序与后台应用程序共享有限的CPU资
源,因此更难满足对交互式应用程序的反应时间临界值。
另外,CPU调度器的功能是向运行任务分配CPU资源,因此调度器
对任务性能产生很大影响。
作为CPU调度器的例子,自Linux内核2.6.23(Linuxkernel2.6.23)
版本后作为基本调度器使用的完全公平调度(CompletelyFairScheduler,
以下简称‘CFS’)的设计目标是为运行任务保障公平性,向采用安卓系
统的智能设备中运行的所有应用程序赋予相同的处理加权值。
因此使用CFS的情况下,交互式应用程序与后台应用程序同时运行
时交互式应用程序的反应时间缓慢。
因此,目前的基于CPU负载(load)的DVFS技术在后台应用程序的
CPU负载高时非有效提高CPU频率,从而会造成消耗电力的浪费,并
且,如果交互式应用程序运行时如果无法迅速提高CPU频率,则必然会
造成反应时间缓慢。
发明内容
技术问题
为解决上述技术问题,本发明提供一种通过调整CPU频率与交互式
应用程序的处理加权值,满足对交互式应用程序(interactiveapplication)的
反应时间的临界值(threshold)的同时降低电力消耗的提高应用程序处理速
度且降低电力消耗的CPU控制方法及装置。
技术方案
为达成上述目的,根据本发明一个实施例的CPU控制装置控制CPU
的方法,其特征在于,包括:(a)测定用户终端对运行的应用程序的反应
时间的步骤;(b)所述反应时间超过预先设定的临界值时,通过阶段性变
更CPU频率算出第一预测反应时间的步骤;(c)所述第一预测反应时间超
过所述预先设定的临界值时,通过阶段性变更所述应用程序的处理加权
值算出第二预测反应时间的步骤;以及,(d)所述第二预测反应时间超过
所述预先设定的临界值时,重复执行所述(c)步骤的步骤。
为达成上述目的,根据本发明一个实施例的控制CPU的CPU控制装
置,其特征在于,包括:反应时间测定部,其测定用户终端对运行的应
用程序的反应时间;反应时间预测部,其在所述反应时间超过预先设定
的临界值时,通过阶段性变更CPU频率算出第一预测反应时间,所述第
一预测反应时间超过所述预先设定的临界值时,通过阶段性变更所述应
用程序的处理加权值算出第二预测反应时间;以及,控制部,其在所述
第二预测反应时间超过所述预先设定的临界值时,使所述反应时间预测
部再算出所述第二预测反应时间。
技术效果
根据本发明一个实施例,通过采用同时调整CPU频率与交互式应用
程序的优先顺序的技术,以CPU负载(load)为基准调整CPU频率,因此相
比于目前造成电力消耗浪费与缓慢反应时间的方式,在电力消耗与反应
时间方面能够带来卓越性能。
并且,目前的方式无法在降低电力消耗的同时提高反应时间,而本
发明同时调整CPU频率与交互式应用程序的处理加权值,因此能够在降
低电力消耗的同时提高反应时间。
本发明的效果不限于以上效果,因此应该理解为包括能够从本发明
的具体说明或技术方案记载的发明构成推导出的所有效果。
附图说明
图1为显示根据本发明一个实施例的提高应用程序处理速度且降低电
力消耗的CPU控制装置的构成的示意图;
图2为显示根据本发明一个实施例的提高应用程序处理速度且降低电
力消耗的CPU控制过程的流程图;
图3至图6为显示通过根据本发明实施例的提高应用程序处理速度且
降低电力消耗的CPU控制改进智能设备的电力消耗的实际实验结果的坐
标图。
附图标记说明
100:CPU控制装置110:反应时间测定部
120:反应时间预测部130:控制部
具体实施方式
以下参照附图对本发明进行说明。但本发明可通过多种不同形态实
现,不限于以下说明的实施例。
并且,为明确说明本发明而省略与说明无关的部分,在整篇说明书
中对类似部分添加类似的附图标记。
说明书全文提到某一部分与其他部分“连接”时,不仅包括“直接连接”
的情况,还包括其中间具有其他构件的“间接连接”情况。
并且,提到某一部分“包括”某构成要素时,在没有特殊相反记载的
情况下不排除其他构成要素,表示还可以包括其他构成要素。
以下参照附图具体说明本发明的实施例。
图1为显示根据本发明一个实施例的提高应用程序处理速度且降低电
力消耗的CPU控制装置的构成的示意图。
根据本发明一个实施例的提高应用程序处理速度且降低电力消耗的
CPU控制装置100可以利用用户终端的反应时间预测模型实时推定智能设
备的反应时间,并算出能够满足反应时间临界值且能够最小化电力消耗
的最佳CPU频率及交互式应用程序的处理加权值并适用到智能设备。
为此,CPU控制装置100可包括反应时间测定部110,反应时间预测
部120及控制部130。
各构成要素中,反应时间测定部110可以测定交互式应用程序(以下
称为‘应用程序’)的服务时间与智能设备的反应时间。
此时,反应时间测定部110可利用如下[数学式1]测定应用程序的服
务时间。
[数学式1]
T S ( f ) = α f + β ]]>
其中,α表示受CPU频率影响的应用程序任务的处理量,β表示不受
CPU频率影响的应用程序任务的处理量,f表示当前工作的CPU频率。
作为参考,虽然处理速度大多数取决于CPU频率,但部分任务不受
CPU频率影响,而是具有绝对必须的时间,因此TS(f)是以此设计的模
型。
并且,反应时间测定部110可以测定当CPU频率为fCPU以及目标应用
程序的处理加权值为n*时的反应时间TR(fCPU,n*)。
其中,‘目标应用程序’可以表示智能设备中运行的多个应用程序
中当前显示于用户的应用程序,‘处理加权值’可以表示任务的优先顺
序,例如Linux内核3.4.0(Linuxkernel3.4.0)版本中使用的优先值(nice
value)。
作为参考,反应时间测定部110可以利用上述[数学式1]测定应用程
序的服务时间,也可以另外利用其他方法进行测定。
例如,可以通过Linux内核3.4.0版本中按具有不同处理识别符
(processidentifier;PID)的应用程序提供的/proc/{PID}/stat的第14及第15
个值即utime与stime进行测定。
其中utimet与stimet分别是应用程序从开始运行至t期间在用户模式
(usermode)与内核模式(kernelmode)接受CPU处理的时间值。
用utimet与stimet表示优先值为n*的应用程序在t1至t2期间接受CPU
处理的服务时间TS(n*)可以如下所示:
其中
HZ是常数,以Linux内核3.4.0版本为基准的情况下该值为100。
另外,反应时间预测部120可以利用反应时间最大变化量预测模型预
测当前CPU频率fCPU变为fx时或目标应用程序的处理加权值从当前的w*变
为w*y时反应时间的最大变化量。
其中,反应时间最大变化量预测模型可以用如下[数学式2]表示:
[数学式2]
Δ R = T S ( f x ) w * y + Σ ∀ i ∈ S w i w * y - T S ( f C P U ) w * + Σ ∀ i ∈ S w i w * ]]>
fCPU表示当前工作的CPU频率,fx表示变化后的CPU频率。
wi表示应用程序i的处理加权值,w*表示目标应用程序的处理加权
值,w*y表示变化后的目标应用程序的处理加权值。
并且,S表示正在由CPU处理的任务的集合,其中不包括目标应用
程序。
作为参考,‘处理加权值’是与任务的‘优先顺序’1:1对应的值。
关于任务的优先顺序的例子有Linux内核3.4.0版本中使用的优先值
(nicevalue),优先值是-20至19之间的整数,该值越小则具有越高的优
先顺序。
假设i优先值为ni的应用程序的处理加权值为则可以用
w n i = 1.25 - n i w 0 ]]>表示。
其中w0表示优先值为0的应用程序的处理加权值,以Linux内核
3.4.0版本为基准时将优先值换算成处理加权值时w0的值为1024。
并且,表示目标应用程序的处理加权值,可以用表
示,将上述变量代入上述[数学式2]则可如下表示:
Δ R = T S ( f x ) w n * y + Σ ∀ i ∈ S w n i w n * y - T S ( f C P U ) w n * + Σ ∀ i ∈ S w n i w n * ]]>
上述根据本发明一个实施例的反应时间最大变化量预测模型根据智
能设备中各应用程序的处理加权值确定能够接受CPU处理的时间,可以
适用到使执行队列(executionqueue)中的作业轮流接受处理的调度器。
并且,在利用这种调度器的情况是基于CPU频率或应用程序的处理
加权值发生变化时能够影响反应时间的差异值的要素中最主要的是被其
他应用程序的任务先占。
TS(fx)与TS(fCPU)表示通过[数学式1]生成的应用程序的服务时间,由
于反应时间变化量按照与应用程序的服务时间成比例的方式增大,因此
反映于模型中。
并且,反应时间预测部120可以利用目标应用程序的反应时间预测模
型算出对应于变化后的CPU频率或目标应用程序的优先值的预测反应时
间。
其中,目标应用程序的反应时间预测模型可以用如下[数学式3]表
示:
[数学式3]
TR(fx,n*y)=TR(fCPU,n*)+ΔR
其中,TR(fx,n*y)表示所述预测反应时间,TR(fCPU,n*)表示当前工作
的智能设备中通过反应时间测定部110测定的反应时间,ΔR是通过上述
[数学式2]获得的结果。
并且,fx与n*y分别表示变更后的CPU频率与目标应用程序的优先
值,fCPU与n*分别表示当前工作的CPU频率与目标应用程序的优先值。
控制部130在每个预定周期运行反应时间测定部110,当通过反应时
间预测部120算出智能设备的预测反应时间时,首先找出能够满足反应时
间的临界值的同时能够最小化电力消耗的最佳CPU频率,然后调整应用
程序的处理加权值并适用到智能设备。
以下参照图2对此进行进一步详细说明。
图2为显示根据本发明一个实施例的提高应用程序处理速度且降低电
力消耗的CPU控制过程的流程图。
在步骤S201中,反应时间测定部110测定智能设备的反应时间,控
制部130判断测定的反应时间是否超过反应时间的临界值LR。
判断结果为超过临界值时为了立即消除用户不便,在步骤S202中,
控制部130将当前工作的CPU频率fCPU变更为CPU能够达到的最高频率
fmax,CFS基本分配的值即0分配目标应用程序的优先值n*以设定初始
值。
因此,变更后的CPU频率fx将是fmax,目标应用程序的变更后的优
先值为0。
步骤S202后在步骤S203中,控制部130确认fCPU是否为最低的CPU
频率f1。
若fCPU为f1,则由于无法再进一步降低CPU频率,因此控制部130
在运行智能设备时不变更CPU频率与目标应用程序的优先值。
作为参考,CPU频率设定在f1至fmax范围,f1为最低的频率。并
且,在步骤S202为立即消除用户不便而已经将fCPU变更成fmax,因此控
制部130执行步骤S204的过程。
步骤S203后在步骤S204中,控制部130使fx降低一级变成fx-1,在
步骤S205中运行反应时间预测部120算出适用降低一级后的CPU频率的
智能设备的预测反应时间。
步骤S205后在步骤S206中,控制部130确认步骤S205算出的预测
反应时间是否超过反应时间临界值LR。
即,为了立即消除用户不便,当前处于fCPU按fmax工作的状态,因此
根据比fmax低一级的频率算出预测反应时间并与反应时间临界值LR进行比
较。
若步骤S206的结果为步骤S205算出的预测反应时间小于反应时间临
界值LR,则为了设定更低的CPU频率,控制部130重复执行步骤S203至
步骤S206的过程,通过每次降低一级CPU频率查找最佳频率值直至智能
设备的预测反应时间超过反应时间的临界值LR。其原因在于CPU频率越
低,越能够降低电力消耗。
若步骤S206的结果为步骤S205算出的预测反应时间超过反应时间临
界值LR,则在步骤S207中,控制部130确认目标应用程序的优先值n*y是
不是最低值n1。
步骤S207的结果为n*y是n1的情况下,由于无法再进一步降低目标应
用程序的优先值,因此控制部130不变更目标应用程序的优先值,使智能
设备按通过上述过程找到的最佳CPU频率工作。
若步骤S207的结果为n*y不是最低的优先值,则在步骤S208中,控
制部130使目标应用程序的优先值n*y降低一级变成n*y-1,在步骤S209
中,通过反应时间预测部120算出适用降低一级的目标应用程序的优先值
的智能设备的预测反应时间。
步骤S209后在步骤S210中,控制部130确认步骤S209算出的预测
反应时间是否超过反应时间临界值LR。
若步骤S210的结果为步骤S209算出的预测反应时间超过反应时间临
界值LR,则控制部130重复执行步骤S207至步骤S210的过程,查找最佳
优先值直至步骤S209算出的预测反应时间小于反应时间临界值LR。
其原因在于优先值越低,表示每次能够处理的任务量越多(为任务处
理而分配的时间上升),因此在相同的CPU频率条件下,优先值越小时响
应时间会越好。
若步骤S210的结果为步骤S209算出的预测反应时间小于反应时间临
界值LR,则控制部130为进一步降低fCPU而执行步骤S203。
图3至图6为显示通过根据本发明实施例的提高应用程序处理速度且
降低电力消耗的CPU控制改进智能设备的电力消耗的实际实验结果的坐
标图。
为分析本发明公开的调整CPU频率及应用程序的处理加权值的算法
的性能,与智能设备中最基本使用的按需调节器(OndemandGovernor)
的性能进行了比较。
为分析性能而采用的智能设备为三星电子公司的GalaxyS4LTE-A智
能手机,本实验设定LR为150ms。
图3与图4显示上述[数学式2]在三星电子公司的GalaxyS4LTE-A智
能手机中成立与否与实测值的比较结果。
此时,运行产生多种CPU负载的CPU压力应用程序作为后台应用程
序,可以发现实测值与[数学式2]的结果近似或落入通过实测值得到的
95%可信区间。
图5是关于智能设备电力消耗实验结果。
通过与按需调节器(OndemandGovernor)进行比较可知,无论后台
应用程序所占CPU负载为多少,电力消耗方面总有得利。
图6为关于应用程序的反应时间的实验结果。
可以得知按需调节器(OndemandGovernor)在没有后台应用程序或
所占CPU负载为10%时不超过LR值,而所占CPU负载超过20%与30%时
超过LR值。
可以得知无论后台应用程序CPU负载为多少,RSC都不超过LR。
经过与按需调节器(OndemandGovernor)进行比较,无后台应用程
序或所占CPU负载为10%时性能反而下降,而实际上这是用户察觉不到
的差异,通过专门增大用户无法察觉到的程度的反应时间,反而能够在
电力消耗方面得利。
以上说明了本发明的实施例,本发明所属技术领域的普通技术人员
应理解在不改变本发明的技术思想或必要技术特征的前提下变形得到其
他具体形态。
因此,应理解以上记载的实施例用于全面举例,而并非用于限定。
例如,以单一方式说明的各构成要素可分散实施,同样,以分散方
式说明的构成要素也可以以结合形态实施。
本发明的范围以本发明的技术方案为准,根据技术方案的含义、范
围及等同概念导出的所有变更或变形形态均包含于本发明的范围。