程茹洁,陆 建,蒋厚明,胡 牧
(1.东南大学 信息科学与工程学院,江苏 南京 210096;2.国网电力科学研究院,江苏 南京 211000)
智能移动终端的能耗模型研究
程茹洁1,陆 建1,蒋厚明2,胡 牧2
(1.东南大学 信息科学与工程学院,江苏 南京 210096;2.国网电力科学研究院,江苏 南京 211000)
为分析智能手机的实时能耗,定位手机的高能耗组件,帮助用户了解手机的能耗去向,并针对性地采取节能措施,从华为手机Y518-T00入手,开发了一款基于安卓系统的应用。针对重要硬件组件(CPU、屏幕、Wi-Fi接口、音频、GPS),通过场景测试收集的数据进行拟合分析,构建了每个硬件组件对应的能耗模型,进一步得到了整机的能耗模型。针对CPU,提出了一种反馈调节的模式来控制其占用率,有效地测量出CPU在不同占用率和频率下的能耗特点,消除了CPU的运行给其他组件能耗分析带来的影响。最后,用常见的两款手机应用进行了测试。结果表明,该能耗模型的相对误差均低于7%,具有较好的精度,可用于了解手机能耗在硬件组件的分布情况。
智能移动终端;安卓系统;场景测试;功耗模型;CPU;反馈调节
随着个人应用和移动网络的发展,智能手机越来越普及,截止2015年,全球智能机用户已达到21亿[1]。但与此同时,智能手机电池续航时间短的问题也直接影响了用户体验。之所以出现这样的现象,是因为智能手机的功能增多,屏幕增大,硬件性能提升,导致能耗增加。即使现有智能手机的电池容量相比传统手机增加近两倍,但相对于智能手机的能耗需要,其容量增长率是远远不够的。因此分析手机能耗就非常有意义。通过构建手机能耗模型,可以找出手机的主要耗能部件,计算应用程序的功耗,分析出功耗过大的原因,有助于给出可能的解决方案。
手机能耗在物理学中指的是能量消耗,单位能耗是反映能源消费水平和节能降耗状况的主要指标。功耗是指单位时间的能量消耗,即功率的损耗,指设备、器件等输入功率和输出功率的差额。在计算机范畴内,处理器、内存、硬盘等器件都是以CMOS数字集成电路为基础的,它们的能耗通常是指该器件在运行时间内所消耗的电能。
所以手机在[0,t]时间段内的能耗E可以表示为各个手机硬件能耗的积分。
(1)
其中,j表示硬件组成部分;Pj表示硬件j的功耗。对手机能耗的分析本质上也是对功耗的分析。
手机能耗模型的研究主要分硬件[2-4]和软件[5-6]两方面。
硬件方面主要是借助外部的设备对手机整机或者部件进行功耗测试,进一步发现其中的规律特点。硬件方面,张立等[7]分别采用Wi-Fi和GPRS两种接入网络策略,研究手机系统功耗的变化,通过在两台Android真机上进行实验,发现Wi-Fi模式比GPRS更省电。该研究表明,研究手机移动网络模块的功耗对整机模块功耗具有十分重要的意义。
软件方面,文献[8]主要探讨了系统开发阶段的低能耗软件优化与评估技术,将优化技术分为指令级优化、算法级优化与软件体系结构优化三类,深入讨论了低能耗软件优化的关键支撑技术:软件能耗估算。文献[9]则是通过调用软件系统层的wakelock以及中断信息构建了所有基本硬件子系统,即CPU、显示屏、图形处理、GPS、音频、麦克风、Wi-Fi的能耗计算系统。由于充分考虑到各个子系统的执行状态,得到的系数在一定时间内可以保持恒定。文献[8]从软件体系结构层面出发,假设体系结构级软件特征量与嵌入式软件能耗之间存在非线性函数关系,并以此假设为基础,提出了一种利用BP神经网络在体系结构级估算软件能耗的模型。
文中针对智能手机的重要硬件,设计了一系列的场景测试,实现了各个组件在不同状态下的功耗测试,并在此基础上构建了相应的功耗模型,具体包括:
(1)设计一套基于Android平台的应用,实现场景测试功能,可快捷地控制硬件的相关设置、状态,从而进一步进行能耗测试分析。针对CPU,提出了一种反馈控制的调节模式,在CPU占用率稳定在2%的波动范围内,有效测量CPU在不同占用率下的功耗变化。
(2)通过场景测试的数据分析,构建了每个硬件组件对应的功耗模型,实验结果表明,基于安卓系统的功耗模型的相对误差均低于7%,具有较好的精度。
由于Android系统具有开源性,并且Android手机占据了巨大的市场份额,因此选择华为Y518-T00作为测试对象。
使用Monsoon公司的power monitor功耗测试仪来测量手机功耗,该设备能够为手机持续提供3.7 V的电压,并且以5 kHz的频率实时测量并显示整机功耗,功耗测量数据可以以CSV文件形式进行保存。测量过程中,对每一次测试用例进行多次测量求均值得到测试结果。
为了得到不同硬件组件的功耗,并进一步分析其能耗特点,需要设计特定的测试场景,控制该组件运行,尽可能减少其他组件以及其他无关应用对它的影响。比如在测试网络接口的能耗时,关闭手机所有其他的应用以及可以关闭的其他一切硬件组件(屏幕、GPS、蓝牙等)。对于无法关闭的硬件组件CPU,首先获取CPU的功耗特点,并在之后测试结果中减去CPU功耗。为此,针对Android平台设计了一款简单易用的应用,测试者只需点击相应按钮,便可执行相应的测试用例,测试架构如下:针对CPU,主要研究工作模式、占用率和频率对功耗的影响;针对LCD显示屏,主要研究亮度的影响;Wi-Fi接口的主要研究变量是数据传输速度和尾部能耗;GPS的功耗主要研究变量时接口状态;而对于音频,研究音量对该模块功耗的影响。
3.1.1 CPU模式介绍
在分析智能手机的硬件功耗时,首先要分析的是手机CPU的功耗。目前市场上已经有一些应用能够对CPU进行调整和模式改变,进而达到改变CPU性能或者省电的作用。以软件SetCPU为例,CPU常见的工作模式有八种:Ondemand(超频模式)、Interactive(交互模式)、Conservative(保守模式)、Smartass(聪明模式)、Performance(高性能模式)、Powersave(省电模式)、Userspace(用户自定义模式)、Hotplug(热插拔模式)。
为了研究不同工作模式下对功耗的影响,在Wi-Fi条件下下载并播放视频1分钟,通过SetCPU控制CPU工作模式,并比较其功耗差异,在Userspace模式下,平均功耗为1 144 mW;在Powersave模式下,功耗为1 048 mW;Hotplug模式下的功耗为1 146 mW;Performance模式的平均功耗为1 161 mW。
通过测试发现,在CPU较高负载运作下,改变工作模式对手机的耗电量有一定的影响。其中Performance模式功耗最高,因为CPU持续保持在最高频率工作;Powersave模式的功耗最低,因为CPU保持在最低频率工作。这两种模式之间的平均功耗相差113 mW。
虽然通过改变工作模式可以达到省电效果,但却并不能定量地了解CPU的功耗特性。文献[10]分析了CPU利用率和频率对CPU功耗的影响,并将功耗与利用率的关系通过线性模型来模拟:
Pcpu=βfreqi*u+βidle
(2)
其中,Pcpu为CPU功耗;βfreqi为第i(i=1,2,…,n)个CPU的频率;u(0%≤u≤100%)为CPU占用率;βidle为CPU空闲功耗。
但该模型并未指出采用线性模型的原因,也没有具体用图表或公式展现具体的关系。所以文中将详细阐述如何控制CPU占用率以及频率,并通过实际测试结果来分析其对功耗的影响。
3.1.2 CPU占用率控制
CPU占用率指CPU执行非系统空闲进程的时间与CPU总的执行时间的比值[11]。因此只需要控制CPU的非系统空闲进程的时间比例,便可以控制其利用率。在proc/stat文件中有详细的CPU使用情况,可以得到CPU总的执行时间TotalTime以及空闲时间IdleTime。用下标2表示最新一次获取的信息,下标1表示上一次的信息,可以求得CPU的占用率u的表达式:
u=100%*
(3)
如图1所示,控制CPU的占用率分为三个步骤:
图1 CPU占用率控制流程
(1)初始化。让CPU单线程执行空循环任务109次,五次测量求得平均值为2 140 ms,从而可以得到单核执行空循环106需要2.14 ms。
(2)粗调整。设计开发程序新建单一线程让CPU执行任务(空循环106次,sleep(2)),由于CPU单核的执行时间和空闲时间都约为2 ms,处于同一量级,在考虑到系统其他应用的噪声影响以及该测试机为四核CPU的基础上,使CPU的占用率粗调整在12.5%以上。
(3)动态控制。借助之前所提及的办法每秒监控CPU占用率,当占用率高于指定值时,减少循环次数,从而减少CPU执行时间来降低占用率;反之则增大循环次数,增加线程数量,提高占用率。
3.1.3 CPU频率控制
通过软件SetCPU可以将CPU的频率控制在不同的频率点,以Y518-T00为例,将其频率控制为598 MHz,747 MHz,1 040 MHz,1 196 MHz,1 400 MHz。
3.1.4 结果分析
在测试过程中,只执行控制CPU占用率和频率的程序。虽然CPU占用率为零的理想状态是无法达到的,但实验表明,通过文中的占用率控制算法可以将占用率控制在0.8%左右。所得测试结果如图2所示。
(1)在零负载的状态下,不同频率下手机功耗没有明显差异。
(2)在占用率一定的情况下,随着频率增大,CPU的功耗也随着增大;同样,在相同频率下,随着占用率增大,CPU功耗也随之增大。
(3)随着负载逐步增大,频率导致的功耗差异越来越大,在100%的负载下,1 400 MHz的功耗大约是598 MHz的两倍。
图2 CPU功耗测试结果
在同一个频率点下,CPU功耗与占用率有着较强的线性关系,可用如下公式来模拟CPU功耗Pcpu与频率f、占用率u的关系:
(4)
在手机使用过程中,屏幕是最常用的硬件组件之一。手机屏幕主要分为LCD和OLED两种,对于OLED的功耗,文献[9]的研究表明功耗与“像素点强度”有关,红黄蓝像素对功耗有不同的影响;对于LCD屏幕,也从屏幕背景颜色和屏幕亮度两方面进行研究。
首先研究屏幕背景颜色与功耗的关系,固定屏幕亮度,测量红色背景(rgb:255,0,0)、绿色背景(rgb:0,255,0)以及蓝色背景(rgb:0,0,255)的功耗,由于手机运行过程中CPU始终在工作,通过访问proc/stat文件,获知CPU的占用率很小,结合3.1的测试结果,可以获得显示屏的功耗为:
Pdisp=Ptotal-Pcpu
(5)
其中,Ptotal为本次实验的总功耗;Pcpu为本次实验的CPU功耗。
受系统应用噪声影响,手机的功耗也是动态变化的,但是变化的范围很小。取20 s内手机在某亮度的功耗平均值作为该亮度对应的功耗,进行了四次实验,结果发现,虽然屏幕的颜色发生改变,但是屏幕功耗都在270~285 mW范围内随机波动。可以得出结论,LCD屏幕背景颜色与屏幕功耗无关。
然后进一步研究亮度对功耗的影响,在测试过程中,关闭手机其他应用及组件,在亮度为0%、20%、40%、60%、80%、100%时测量手机功耗。亮度-功耗关系如图3所示。
图3 屏幕亮度与功耗关系曲线
由图3可以看出,随着亮度增大,LCD功耗也在增大。在屏幕亮度为0%的情况下,其实屏幕的背光模块也是在耗电的,所以依然会消耗电量,大约是201 mW。
屏幕功耗Pdisp与亮度br(100%)的关系用如下的线性模型来表示:
Pdisp=br*451+200
(6)
Wi-Fi在不同传输速度下的功耗并不是固定值,文献[12]将Wi-Fi模型用PSM模型来表示。该模型分为四种状态,每种状态下的Wi-Fi功耗用固定值表示,这种建模并不能精确表示Wi-Fi的实时功耗。为此,文中将主要研究Wi-Fi功耗与传输速度的关系。
首先控制Wi-Fi的传输速度。通过实验发现,在数据量较小的情况下,数据传输时间短,往往传输速度还没有达到稳定值就已经结束了,不便于进行控制。因此需要在一段比较长的时间内进行数据传输,保证速度的稳定性。
借助Wi-Fi对速度进行控制,它能够在带宽足够的情况下,精确地限制Wi-Fi的速度。由于用户的Wi-Fi传输速度一般在100 KB/s到1 MB/s,因此在相同的场景下,关闭手机其他可以关闭的硬件组件以及应用,在Wi-Fi网络下,将传输速度控制在100 K/s,200 K/s,400 K/s,400 K/s,500 K/s和600 K/s,测得这段时间的功耗曲线,可以得到Wi-Fi接口功耗为:
Pwifi=Ptotal-Pcpu
(7)
其中,Ptotal为手机功耗;Pcpu为根据频率和占用率计算得到的CPU功耗。
计算得到上传数据和下载数据的平均功耗,结果如图4所示。
可以看出,在同样的传输速度下,上传的功耗略高于下载功耗40 mW,但是没有显著差异。功耗与传输速度呈分段线性关系。通过拟合,得到上传功耗Pupload与上传速度Tx的关系为:
(8)
下载功耗Pdownload与下载速度Rx的关系为:
(9)
图4 传输速度-功耗关系曲线
GPS定位是智能手机常用的一个功能,它主要分为三个状态:关闭、开启、定位。关闭状态即是不开启GPS功能;开启状态是开启了GPS功能,但不执行其他任务,GPS在开启时的大部分时间处于这个状态;定位状态是GPS和卫星通信更新自己位置的过程,这个过程通常比较短暂,根据网络信号、上次定位等情况不同,一般持续几秒到十几秒左右。测试过程将手机的其他硬件和进程都关闭,只测试GPS的功耗,持续1分钟。得到GPS的功耗模型如下:
(10)
在手机使用过程中,音频是不可或缺的一部分。测试程序可以将音量准确地设为不同的百分比,关闭所有其他进程和功能,屏幕亮度为0,只保留测试程序,然后选取两段不同音质的音频,用0%,20%,40%,60%,80%,100%的音量播放,取每次播放中内容相同的5秒钟,并且重复5次。由于手机功耗始终在动态变化,文中将所有5秒内的功耗取平均值后,得到音量和功耗的关系。发现无论音量和功耗的关系,还是音质和功耗的关系,都没有呈现明显的规律。这主要是因为音乐节奏、音调、频率等都有很大的变化,并不容易对比。
为了更好地分析频率对功耗的影响,针对单频率的音频文件,测试了在手机音量一直保持在40%的情况下,不同频率的音频的功耗情况。测试结果中,当频率为1 kHz时,功耗为133 mW;2 kHz时,功耗为132 mW;3 kHz时,功耗为136 mW;4 kHz时,功耗为135 mW;5 kHz时,功耗为133 mW。可以看出,在音量相同的情况下,功耗均在132~136 mW之间波动,频率不会对功耗造成显著影响。
在此基础上,以10%的音量变化为梯度,测量出单频率音频在音量从0%~100%的变化过程中的平均功耗,采用线性[13]和指数两种函数进行拟合,结果如图5所示。其中,采用线性拟合之后的相关系数为0.81,采用指数拟合后的相关系数为0.92,因此可以采用非线性拟合的结果来表示音频的功耗Paudio与音量volume(100%)的关系:
Paudio=115.89e1.639 2*volume
(11)
图5 单频率音频功耗的线性和非线性拟合
为了评估模型的准确性,测试了常用的两款手机应用:百度云和爱奇艺。对于手机功耗测试,由于功耗具有时变性,因此对一段时间内的能耗估算测量更具有说服力。通过power monitor记录功耗,并把一段时间内的功耗值积分得到最终的实际能耗。对于估算功耗,首先确定相关的耗能硬件,带入对应的模型计算每个硬件的功耗,乘以时间得到能耗值,并将每个能耗线性相加作为手机的能耗。通过对比实际测量中的能耗和模型计算出的能耗来评估模型的准确性。
(12)
其中,Preal为实际能耗;Pest为估算能耗;e为相对误差。
百度云作为一款用于文件传输的云服务产品,实验中只运行百度云的下载任务,下载速度限定在100 K/s、200 K/s、300 K/s。此时的手机能耗主要来自于CPU、屏幕、Wi-Fi接口。实验进行五轮,每轮1分钟,以一分钟内的平均能耗作为实际能耗,获得CPU的占用率和频率、屏幕亮度并带入模型计算,得到估算能耗,对比结果如表1所示。
表1 百度云测试结果
结果表明,相对误差没有超过5.86%,估测值比实际值略低,主要原因是因为算法主要考虑了CPU、屏幕和Wi-Fi接口的功耗,忽略了其他硬件组件的影响。
爱奇艺是一款视频类应用,主要用于在线观看视频,主要用的是网络接口、CPU、屏幕和音频。该实验主要测试在线观看某一视频的能耗,测量时长分别为一分钟、两分钟、三分钟。实验过程将屏幕亮度置为0%,音量设为40%,动态监测CPU的占用率和频率以及Wi-Fi接口的网速,代入对应模型中计算,得到的实际能耗和估算能耗对比结果如表2所示。虽然测试能耗略低于实际能耗,但是相对误差的平均值为6.21%。
表2 爱奇艺测试结果
综上,文中的功耗模型可以用于计算一段时间内的手机功耗,在不需要测量仪器介入的情况下能提供比较准确的结果。
针对智能手机的重要硬件,设计了一系列的场景测试,用于测试不同的硬件组件在多个状态下的功耗,并在此基础上构建出每一个硬件组件的功耗模型。通过该模型可以得到各个硬件在常见状态下的功耗水平,为降低手机能耗提供可用的数学模型。
[1] 吴吉义,李文娟,黄剑平,等.移动互联网研究综述[J].中国科学:信息科学,2015,45(1):45-69.
[2] PERRUCCIG P,FITZEK F H,WIDMER J.Survey on energy consumption entities on the smartphone platform[C]//Vehicular technology conference.Budapest:IEEE,2011:1-6.
[3] 王双星.基于Android系统的能耗计算研究[D].西安:西北大学,2014.
[4] PATHAKA,HU Y C,ZHANG M,et al.Fine-grained power modeling for smartphones using system call tracing[C]//Proceedings of the sixth conference on computer systems.New York:ACM,2011:153-168.
[5] GUPTA A,MOHAPATRA P.Energy consumption and conservation in Wi-Fi based phones:a measurement-based study[C]//IEEE communications society conference on sensor sensor.San Diego:IEEE,2007:121-131.
[6] 张加省.面向智能手机应用程序节能优化研究[D].杭州:浙江大学,2014.
[7] 张 立,韩银和,袁小龙.一种基于Android系统网络模块功耗的评估和分析[J].计算机科学,2012,39(6):289-292.
[8] 刘啸滨,郭 兵,沈 艳,等.嵌入式软件体系结构级能耗建模方法[J].软件学报,2012,23(2):230-239.
[9] MURMURIA R,MEDSGER J,STAVROU A,et al.Mobile application and device power usage measurements[C]//Sixth international conference on software security and reliability. Berkeley:IEEE,2012:147-156.
[10] JUNG W,KANG C,YOON C,et al.DevScope:a nonintrusive and online power analysis tool for smartphone hardware components[C]//Proceedings of the eighth IEEE/ACM/IFIP international conference on hardware/software codesign and system synthesis.Tampere,Finland:ACM,2012:353-362.
[11] 蔡卫平,黄小虎.嵌入式系统中计算CPU占用率的简易方法[J].中国科技信息,2006(7):161-162.
[12] MITTAL R,KANSAL A,CHANDRA R.Empowering developers to estimate app energy consumption[C]//Proceedings of the 18th annual international conference on mobile computing and networking.Istanbul,Turkey:ACM,2012:317-328.
[13] 张世强,吕杰能,蒋 峥,等.关于相关系数的探讨[J].数学的实践与认识,2009(19):102-107.
ResearchonEnergyConsumptionModelonSmartphones
CHENG Ru-jie1,LU Jian1,JIANG Hou-ming2,HU Mu2
(1.School of Information Science and Engineering,Southeast University,Nanjing 210096,China;2.State Grid Electric Power Research Institute,Nanjing 211000,China)
To analyze the real-time energy consumption for mobile phone,find the mobile phone components with high energy consumption,and help users understand where the energy goes so as to adopt relevant energy-saving measures,an application based on Android is developed from Huawei Y518-T00.For the important hardware components such as CPU,display,Wi-Fi interface,audio and GPS,the data collected by scenario test is analyzed,and the energy consumption models are established for each component respectively to further construct the energy consumption model of mobile phone.A feedback-regulation method is presented to control the utilization of CPU,based on which the power characteristics of CPU under different utilizations and frequency are measured and the impact of CPU running on energy analysis of other components is eliminated.At last,the two popular apps are tested.Experiment shows that the relative error of the proposed model is less than 7%,with better accuracy,and it helps users understand the energy distribution of hardware components on phones.
mobile phone;Android System;scenario test;power consumption model;feedback regulation
TP31
A
1673-629X(2017)12-0128-05
10.3969/j.issn.1673-629X.2017.12.028
2016-11-24
2017-03-28 < class="emphasis_bold">网络出版时间
时间:2017-09-27
国家自然科学基金资助项目(61401086);国家电网公司科技项目(SGTYHT/14-JS-188)
程茹洁(1992-),女,硕士研究生,研究方向为信号处理、数据分析;陆 建,通讯作者,博士,讲师,研究方向为信号处理、数据分析。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170927.0957.012.html