基于LabVIEW的嵌入式软件能耗测量方法
2013-08-21郭真林宋元凤
郭真林,桑 楠,江 维,宋元凤
(电子科技大学计算机科学与工程学院,成都 611731)
1 概述
随着绿色计算概念的提出,原本处于受限环境的嵌入式系统面临更加严峻的挑战。尤其对于电池供电的嵌入式设备,如手机、传感器、可穿戴计算设备等,系统电能消耗已经成为影响产品成败的关键因素之一。随着服务需求的多样化,嵌入式软件的复杂度也在急剧攀升,其能耗与性能因素阻碍了嵌入式系统领域的发展。精确地测量嵌入式软件能耗是优化嵌入式软件的重要一步。
国外对于嵌入式软件能耗的研究比较成熟。在能耗数据的测量方面,较多采用先进的自动化仪器进行测量[1-2]。嵌入式处理能耗测量标准EnergyBench,由嵌入式微处理器测试基准协会EEMBC推出,但它没有公开其详细测量方法。国内虽然针对嵌入软件的能耗研究很多,但关注焦点在于能耗模型的建立或者是能耗仿真器上面[3-4]。文献[5]从指令周期层次进行建模取得了较好的结果,但绝对误差只能控制在10%以内。上述方法难以满足对精确能耗数据的需求,因此,严重影响了嵌入式软件能耗相关研究的正确性与准确性。
LabVIEW是一种由NI公司推出的可视化软件编程环境。通过可视化 VI编程生成的程序与各种相关硬件配合,可实现信号生成、数据处理、数据采集以及工程控制等各类任务。虽然基于LabVIEW的各种测量系统已经存在很多,但针对嵌入软件能耗测量的方法却没有得到关注。因此,本文提出一种能耗测量方案,并详细设计与实现了基于LabVIEW的数据采集程序。
2 测量方案
图 1给出了一种典型的嵌入式软件能耗测量方案。假设目标设备是TQ2440嵌入式开发板,配备了三星S3C2440 ARM CPU,并具有64 MB的SDRAM。为了测量电流,核心板上串联了一个很小的定值电阻(6.8 Ω),通过测量其电压的方式来测量设备电流。本文采用低端电流测量法,以排除高端共模电压的影响,从而避免对设备产生损坏[6]。测量仪器使用 PXI 1042Q测控平台,并配置NI 6221数据采集卡以实现多通道的同步数据采集。核心板电压信号和定值电阻的电压信号连线到接线盒SCB-68中,该接线盒连接到数据采集卡上。
本文利用LabVIEW编写专门的数据采集软件,实现对电流电压通道以及一个用于标记状态的数字通道进行同步数据采集。被测量的目标程序被封装成测量单元,并通过GPIO端口向此数字通道发送状态。该状态用于区别采集到的电流电压数据样本是否为目标程序执行时采到的样本。
图1 能耗测量方案
3 数据处理
3.1 功率样本点
数据采集仪器周期性对输入通道进行采样,设采样频率 f,则采样周期为 1/T f= 。根据采样定理,采样频率至少不低于2倍奈奎斯特频率,即截止频率2倍或以上才能保证信号被正确地还原。假设目标电压和电流信号同时被采集到,电压、电流样本集分别表示为:
则功率样本集为:
3.2 功耗近似计算
如果功率样本点是按照采样定理获得的,那么可以通过这些样本点恢复连续的原始信号。假定功率样本为时间的函数,()s st= ,则可得到理论上的无误差功能耗,即功率函数与时间的积分为:
由于恢复原始信号函数过于复杂,且计算量太大,因此直接对离散数据进行一种近似计算是一种非常有效的方法。以固定周期进行采样,可将功率样本点看作是以周期T为等间距宽度围成的矩形的高,如图2所示。能耗通过下式计算得出:
图2 离散矩形近似逼近连续功率
通过这种方式处理数据会造成一定的误差,误差的大小为对应矩形区的三角边与功率曲线围成的面积。如果采集的样本量非常多时,可能对最终的数值产生很大影响。由于直接计算这块面积难度很大,需得到原函数,因此通过计算三角形的面积来近似它,则变为求梯形的面积和,能耗计算由式(2)变形为:
很明显地,采样频率越高,越能反映原始的电流与电压信号。采样频率的设定一方面取决于测量需求,另一方面取决于数据采集卡的采样频率。
4 采集程序的设计与实现
为支持对程序中多个目标的数据采集,要区分采到的样本所属的对象,需要增设一个对数字通道的采集。这只需占用一个端口线,例如采用 NI 6221的port0/line0[7-10]。嵌入式系统通常具有丰富的 I/O接口,如 GPIO,因此,可选择合适接口连接到采集卡的数字通道上。在目标程序执行时,可向该端口写入1,执行时完毕时写入0,即可知道样本所属对象的变化。如果进行多目标的测量,则在发送一个低电平时,插入一定的延时。这样,可确保随后的高电平被采集到。这是因为采样频率低于这2个操作的时间会造成测量目标丢失。这种方式的好处是:一旦采集开始后,无需停止,即是一种非浸入干扰的测量方法。电流信号、电压信号和上述的数字脉冲信号,三者是以相同的频率被同步采集的。
图3说明了对功率样本的主要数据处理流程。按式(3)进行一次计算需要相邻2个样本,所以,用一个浮点数VI(Last Sample)来存储上一个样本。计算完成后,同时对比数字脉冲是否零,以确定将能耗值写入文件,否则继续迭代,直至处理完样本。
图4说明了电流、电压和数字脉冲信号通道的配置方法,这主要体现在对AI Current、AI Voltage和Digital Input 3种VI的配置。当采样频率很高时,需要的缓冲就越大,因此,增加 DAQmx服务包中的Configure Input Buffer[7]VI到程序中,以方便按需要设置缓冲区的大小。为了使三者进行同步数据采集,将模拟输入(Anology Input)与数字输入(Digital Input)2种通道配置了相同的采样频率(VI Sample Clock)。这里采用的是触发数据采集方式,因此,配置了Start Digital Edge VI接收触发信号。整数指示器VI Elements指示测量目标的个数,根据脉冲的变化次数来计算,整数 VI Samples和浮点数 VI Power Consuming分别是当前测量目标的样本数和能耗值计数器。
采集到的样本是分批处理的,从模拟通道中读出的电流与电压样本,直接相乘便得到功率样本。然后对功率样本集进行迭代处理,以求得功耗。同时进入for循环的还有脉冲信号的样本,目的是判别功率样本的有效性。
图3 功率样本数据处理流程
图4 同步数据采集VI配置流程
图5指示了for循环中的CASE结构为真的情况,即脉冲信号指示高电平1状态。这时按照式(3)计算功耗值。乘1000是为了将功耗的单位转换为mJ。图6说明了CASE结构为假的情况,这时功率样本直接被丢弃不作任何处理。
如果测量目标的样本数不为零,则将其功耗值写入文件,同时将样本数计数器、功耗值计数器清零。
图5 数据读取与处理模块
图6 能耗数据的文件存储模块
5 实验与结果分析
为验证测量数据的正确性,使用HIOKI 3334-01交直流单相功率计,针对图1中的目标设备进行能耗数据的对比测量。
LabVIEW测量的采样频率配置为10000 Hz,一次样本读取100个。功率计的接线方法,将电压端输入端子连接到负载侧。所测得的数据如表1所示。
表1 能耗数据的对比测量结果
通过对比可以看出,2种方法测得的数据非常相近,最大差值也不超过 0.0002,从而验证了本文方法的有效性与准确性。
6 结束语
针对当前研究忽略嵌入式软件能耗测量的现状,本文分析基于 LabVIEW 的嵌入式软件能耗测量方案。基于离散电压、电流数据的近似处理方法,设计一种精确能耗计算方法,实现数据采集程序,通过加密软件的测试验证其有效性。通过仪器对嵌入式软件进行能耗测量以及数据处理方法,为进行嵌入式软件能耗评估提供一种有效手段。
[1]Tiwari V.Power Analysis of Embedded Software∶ A First Step Towards Software Power Minimization[J].IEEE Transactions on VLSI Systems, 1994, 2(4)∶ 437-445.
[2]Acquaviva A, Benini L, Ricco B.Energy Characterization of Embedded Real-time Operating Systems[J].SIGARCH Computer Architecture News, 2001, 29(5)∶ 13-18.
[3]钟伟军, 刘明业.支持嵌入式操作系统的 ARM 能耗模拟器设计[J].计算机应用研究, 2006, 23(4)∶ 219-221.
[4]赵 霞, 郭 耀, 雷志勇, 等.基于模拟器的嵌入式操作系统能耗估算与分析[J].电子学报, 2008, 36(2)∶209-211.
[5]廖海艳, 郭 兵, 沈 艳, 等.针对 ARM 指令集的层次分类能耗测量方法[J].计算机工程, 2011, 37(10)∶228-230.
[6]National Instruments Corporation.Make Accurate Power Measurements with NI Tools[EB/OL].(2010-08-19).http∶//zone.ni.com/devzone/cda/tut/p/id/7077.
[7]National Instruments Corporation.LabVIEW Help[EB/OL].(2006-08-07).http∶//zone.ni.com/reference/en-XX/help/371361H-01/lvhelp/labview_help/.
[8]宋 超, 刘 明, 龚海刚, 等.基于分布式实时信息的车载网络路由协议[J].软件学报, 2011, 22(3)∶ 166-480.
[9]王建军, 李勇帆, 刘 琳, 等.ARP协议动态交互仿真系统的设计[J]通信技术, 2011, 44(2)∶ 41-45.
[10]李 鑫, 李 凡, 刘启和.利用基数约束规则编程消解ECA 策略冲突[J].计算机应用研究, 2009, 26(7)∶366-368.