- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
EnergyBench – 评估嵌入式处理器功耗的工具
作者:Markus Levy, EEMBC president
各类内置嵌入式处理器的电子产品的功耗目前已经成为系统设计领域的前沿问题。手持式电子产品需要在实现低功耗的同时,最大限度地发挥产品的性能和特色。随着电价的不断提高,高性能系统的设计者不得不面对的挑战是降低能耗,以满足空间限制、散热和能源之星计划所提出的具体要求。但目前尚缺乏一种标准的方法来量化嵌入式器件的实际功耗。
许多处理器厂家在产品参数表中标明了产品功耗,但这些数据却很难相互进行比较。厂家也提供处理器的标准功率,但却很少标示出在测量功率时负载状况。
为解决上述问题,嵌入式微处理器测试基准协会(EEMBC)发明了一种软件工具,显示在运行特定应用负载时处理器的实际功耗。该软件名为EnergyBench,设计者可以利用它和协会其他性能标准共同确定各种处理器在执行一系列以应用为核心的标准化任务时的功耗。利用与全套性能测试直接相关的功耗测量标准,设计者可以比较不同厂家产品的性能/功耗状况,并从中挑选出特定应用条件和功耗预算下最切合需要的处理器产品。
EnergyBench最重要的启示之一是根本不存在所谓的“典型功耗”,因为嵌入式微处理器测试基准协会在数字娱乐、联网和自动控制等基准套件的目标应用领域驱动内核时所需的平均功耗数据差异极大。EnergyBench并未试图就某种特定器件达成放之四海而皆准的虚幻的“典型功耗”,而是关注在特定的性能水平上,某一种算法或者应用程序所需的典型功耗。
EnergyBench的测试方法
嵌入式微处理器测试基准协会采用美国国家仪器有限公司数据采集(DAQ)卡和LabVIEW软件平台进行EnergyBench功耗测量。该数据采集卡支持多测量通道,可以在多功率轨上同时进行功耗测量(所有测量均需获取电压和电流数据),并同时进行触发通道采样。EnergyBench利用数据采集卡对电压进行采样,并为实现性能基准和功耗测试同步提供一条触发通道。这样可以保证在基准代码的同步部分测量功耗,从而避免计入基准初始化或记录保存阶段的功耗状况。
EnergyBench采样模块接受配置文件,该文件可以通过为触发探测和电压电流通道指定电压水平来定义触发机制。
若企业希望公开其EnergyBench测量得分,则须先获得嵌入式微处理器测试基准协会技术中心的认证资格。协会明确规定了一整套认证必须满足的测量条件,从而确保得出一致、可靠并可以重复的测量结果。为得出统计学意义上的准确结果,采样频率必须是2倍以上尼奎斯特频率或者是一些随机数。EnergyBench采样模块接受采样频率输入,且该采样模块必须以不同的采样频率数次调用。在基准测试中以非伪频率多次采样所得到的采样点可以避免与基准执行频率发生共振现象。此法执行便利,且能确保得到统计学意义上的准确结果。
由于可以轻易重复测量过程并加大采样频率,EnergyBench能耗基准可以尽可能多地搜集样本,直至能确定统计意义上精确的平均能耗为止。为获得认证资格,并协助器件和工具设计者更好地完成设计,EnergyBench测试过程一般会重复多次,并计算最终结果的标准误差。任何误差都可以轻易被发现,因为每项基准测试的每次运行均可得出一个基准每次迭代功耗的平均值。
当然,以针对特定器件的任何测试为基础进行归纳的前提是该目标器件能代表厂家的生产水平,嵌入式微处理器测试基准协会一直定有严格的规则,防止厂家选择最好的产品送交认证检测。出于同样原因,过程变化是所有半导体厂家必须经常面对的一个问题,而EnergyBench众多目标中的一个是帮助厂商更深入地理解特定部件和过程变化的结果与能耗之间的关系。
EnergyBench规定器件运行的环境温度为70°F +/- 5°F,并须至少进行30分钟预热。设定这样的基准条件非常重要,可以确保测试得出一致的结果。此外,事实表明能耗可随器件温度的升高而显著增加。由于我们量化评估的是基准测试情况下的一般功耗状况,因此可以对室内温度进行人为的控制。这样做还可以避免配备昂贵的器件来对处理器温度进行控制。
EnergyBench与性能基准的融合
要理解EnergyBench为何如此高效,就必须理解嵌入式微处理器基准协会的相关规则。协会规则遵循ANSI C标准,并由基准控制程序负责运行管理。调用所有系统时均需通过控制程序内置的一个抽象层,而不可直接调用。控制程序还负责初始化系统、准备必要的基准数据和设定基准运行的迭代数值。将协会基准移植到新的器件或操作系统上时,只需改变抽象层,即可运行所有嵌入式微处理器基准协会标准。为兼容EnergyBench基准,测试控制程序调用抽象层内置的特别触发机制,对功耗基准的定时部分进行显示。触发开关的问题是从软件发出触发信号到测量设备实际收到信号当中存在着一定的时滞。某些系统在触发时
通过操作系统驱动器将信号发送至通用异步收发传输器(UART)。为解决触发时滞问题,控制程序内置的抽象层允许在发出触发信号后及功耗基准开始执行前设置一定的延迟。考虑到结束基准测试的时滞,分析模块允许在特定的迭代数中进行限制分析。
EnergyBench的采样、分析和数据搜集方式
EnergyBench采用由LabVIEW软件平台创建的采样模块获取功耗信息,对定义触发方式和预期电压范围的配置文件进行读取。该采样模块连接到数据采集卡,在运行基准测试的同时采集电压及电流信息。所采信息在收到开始信号后即行写入磁盘,收到结束信号后停止。为减少可能发生的用户错误,该程序提供统一的用户界面,如图1所示。而数据采集卡(DAQ)也提供了经济实用的HW平台,以采集必要的数据。
图1 EnergyBench采样模块通过友好的图形用户界面(GUI)或配置文件进行设置。所有相关参数如电压、电阻和采样频率均可进行设置。通过采集信号的可选图形对电流、电压和触发通道进行显示。
美国国家仪器有限公司与DAQMx驱动兼容的数据采集卡均可使用。数据采集卡缺省要求,同时EnergyBench规则也规定须测量微处理器所有功率轨的功耗状况。EnergyBench含有可执行程序,可以同时测量一条、两条或三条功率轨的功耗状况。对于有不止一条功率轨(即堆芯功率和输入/输出功率)的微处理器来讲,可以采用两种方法计算出基准程序每次迭代的功耗。第一种方法,EnergyBench使用数据采集卡同时测量三条功率轨的功耗状况,也就是说所有通道都以相同的速率进行采样,因此可能需要降低数据采集卡的采样速率,以匹配主机的采样能力。此外,由于确保测量结果可以重复,因此可以分别对功率轨进行测量,这种情况下各功率轨的平均功耗之和即等于累计总能耗量。
对捕获数据进行分析是EnergyBench的最后一步。用于数据分析的微软程序名叫功耗分析模块。分析过程中需要计算以下数值:
1. 各功率轨的最低、最高、平均功率及标准误差状况。
2. 总功率的几何平均数
3. 基准程序每次迭代功耗的最低、最高、平均功率及标准误差大小。
基准程序经多次迭代获取测量样本后,分析模块即开始分析,寻找其中的关键细节。嵌入式微处理器测试基准协会功耗分析模块分析捕获的样本,确定基准程序每次迭代的平均功耗,找到最低和最高功耗样本。计算功耗须先计算基准程序每次迭代功耗样本的几何平均值,并乘以迭代时间得出最后的结果。某些情况下,可能会出现基准程序迭代过速,以致于功耗样本的出现赶不上基准程序迭代的速度。在这种情况下,必须先分析至少100个样本,再计算该段时间内所有迭代的平均能耗。
功耗分析模块的能耗/迭代表以图表形式显示结果。用户也可利用协会设置在基准程序运行时查看最低和最高功耗,了解所获样本的变化状况。
EnergyBench测试的最终结果是负载迭代的平均功耗。经嵌入式微处理器测试基准协会认证的Energymark™分数是供制造厂商选择的一种衡量标准,厂家可以与认证的性能得分一道向客户提供,以显示处理器功耗效率的大小。
可靠性验证须测试下列数值:
1. 特定采样频率区间内的变化(置信区间须达到95%)
2. 频率间报告能耗的变化
3. 反复调用基准程序时报告能耗的变化
如果特定采样频率区间内变化过大,用户可以加大频率和/或基准程序迭代数,直至采集到足够的样本,以使平均值的置信区间达到规定的95%。
如果两采样频率之间变化过大,可以改变采样频率。
如果各次调用结果相差过大,可能由于线路噪音过大,需要采取减噪措施。另外一种可能是在基准程序运行时处理器在大部分时间内还在执行除基准程序以外的其他任务,在这种情况下则需要更好地实现基准程序与其他任务的分离。本过程原理如图2所示。
图2 本过程在特定基准及该基准的特定负载与典型能耗之间建立了联系
可编程数据采集卡能轻易地确定采样频率等参数,同时将获取数据永久保留。图3是此方法幕后运行的代码样本。此代码以LabVIEW软件编写,可以持续将获取的样本写入文件,直至从触发通道收到配置信号。代码还配备了显示所有捕获信号选项,实际上是驱动图1图形用户界面的部分代码。电压、电阻和采样频率等所有相关参数均可进行配置。具体地讲,图1显示的是当该循环收到触发信号、并准备退出时的图形用户界面状态。
图3 采样循环的数据采集卡代码
EnergyBench背后的选择为加深对测试方法的理解,嵌入式微处理器基准协会也考虑过许多替代选项,包括:
• 规定能耗测量的结温度。
• 采用高频范围并对环境严格控制。
• 指定探测和校验技术。
但由于目的不是定性部件,而是要确定一种推导典型能耗的标准方法,因此找到一种采用现有经济实用硬件的方法更为重要。EnergyBench通过统计分析和规则进行验证,无需昂贵设备和工厂化流程。验证过程只需控制室温而无需测量结温和外壳温度, 而控制室温在任何实验室或大学均可做到。验证过程只需用到简单的数据采集卡而非昂贵的分析软件,在规定结果误差的情况下以不同频率多次运行能够确保验证结果可靠且可以重复。
另外一个问题是验证过程需要从5MHZ微控制器推导出目前市场上速度最快的处理器状况。同样需要关注的还有确保能在不同测试地点重复验证过程以独立认证结果。
采样结果
上表所示的是对外公开的认证信息。以上两个硬件平台上两套基准程序的采样信息显示,若运行不同的平台和基准程序,即便平均功耗的浮动幅度也可以高达8%(相对于这些基准程序)而完成某项特定任务时测定的功耗效率在平均功耗相似(即便AMD和IBM平台的平均功率均为2.3W上下,但AMD平台的RGB 到YIQ为2.8e-2,而IBM平台则为1.6e-2)的情况下也可以出现很大变化。
同样有趣的是研究在不同性能点运行软件平台及开启或关闭不同功能时处理器的能耗情况。图4显示的在开启或关闭缓存和浮点硬件的情况下,在NXP 3180的不同性能点运行特定基准程序(基本浮点控制)的能耗结果。该表明确显示开启浮点硬件并以208MHz频率运行比以13MHz频率运行能效更高。
图4 不同配置下NXP 3180的能耗结果
结论
EnergyBench利用嵌入式微处理器测试基准协会开发的标准方法,提供了可与价格合理的现有硬件配套使用的测量典型能耗的若干工具。EnergyBench是该领域首个行业标准,虽然标准性能评估公司(SPEC)等其他机构也在制定政策解决上述问题。可以登陆嵌入式微处理器测试基准协会网站(www.eembc.org),免费查询经过认证的EnergyBench测试结果。