一个产品的选择、市场定位和成功的一个重要因素是整个系统的能耗。然而,以微安 (uA) 或每兆赫兹 (uW/MHz) 微瓦 (uW/MHz) 表示效率的传统方法已经不够用了。储能系统既不存储 uA 也不存储 uW,而是存储焦耳。
因此,比较微控制器(MCU)和片上系统(SoC)设备的能耗成为用户关注的焦点。但是,一个基准是否足以为即将推出的产品设计选择 MCU、MCU 系列或 MCU 制造商?公共数据表是否足够?
这个由四部分组成的系列旨在使用 EEMBC 基准测试这些问题。
第 1 部分:超低功耗基准:ULPBench-Core Profile
第 2 部分:ULPBench-Core 配置文件、EEMBC 文档和 MCU 数据表
第 3 部分:工作温度对能耗的影响
第 4 部分:MCU 数据表:操作模式、控制位、寄存器、电流和模式传输参数
过去 20 年处理器市场的结论是 ,运行模式 [1] 和睡眠模式 [2] 中的低电流以及更短的运行周期可以节省能源。这通常是适用的,但是这对客户有什么好处呢?产品真的可以根据这些一般性结论进行比较吗?
基准测试使用统一的定义和标准以及标准化的执行代码对不同的 MCU/SoC 和生产线进行比较。他们的目标是提供透明度和可重复性,这由预定的测试向量、测试过程以及测试软件和硬件实现。所有基准数据都应公开。
一个好的基准测试依赖于可以在一系列 8 位、16 位和 32 位 MCU 和 SoC 上执行的单个软件包。为了公平比较,无论处理器架构如何,代码都必须相同,尽管基准测试软件的选择会对能耗产生深远影响(图 1)。
图 1. 基准测试的电流消耗读数可能远高于数据表参数。
在本文中,我们假设基准测试结果、数据表和其他文档能够正确估计低功耗系统生命周期内的能耗。
澄清条款
在数字领域,电流消耗可以细分为两个基本类别。
动态电流消耗用于执行功能。
用于系统处于空闲或睡眠模式时的 静态电流消耗,其中不执行任何功能。
目前几乎所有的低功耗 MCU 都配备了模拟外设。这些可以是集成振荡器、电压监控器和上电电路,或比较器、放大器、模数和数模转换器 (ADC/DAC) 等。
这些外设在睡眠和工作模式下都具有相对较高的静态电流需求。就本文而言,术语“静态”(能量或电流)将包括与频率无关的消耗数据和电流损耗(例如,来自泄漏的)。传统上,术语“静态”消耗适用于数字域在运行期间的能源消耗,不包括其他形式的能源和电流消耗,例如泄漏电流。
EEMBC ULPBench-CoreProfile 基准测试 [3]
嵌入式微处理器基准联盟 (EEMBC) 的 ULPBench-CoreProfile (ULPBench-CP) 基准测试提供了一个良好的初步方法和框架,用于可靠地测量能效,独立于处理器数据表。ULPBench-CP 旨在验证具有扩展能源需求或可用能源有限的产品(例如电池供电的物联网设备)的能源效率。它还针对能量收集系统,这些系统的大部分运行寿命都处于空闲睡眠模式。在这里,待机电流很重要,因为 MCU/SoC 系统可以定期或异步唤醒。
大多数 MCU 和 SoC 都能够运行 ULPBench 基准测试(甚至是下一代处理器)。这允许供应商向用户提供比较数据,并且原则上允许设计人员在相同条件下在多个处理解决方案上验证他们自己的工作负载。
作为基础,ULPBench-CP 基准测试假定锂纽扣电池的负载和四年的平均运行时间。ULPBench-CP 软件“工作负载”的执行始于处理器的操作模式,随后是实时模式的第二阶段。“工作负载”是可移植的,可在 8 位、16 位和 32 位 MCU/SoC 上运行。该软件处理能源消耗信息,对其进行说明,并提供基本的基准数据。
ULPBench 运行规则
ULPBench 的一项要求是跨组件的硬件和软件可移植性,这是基准测试正确执行所需的。EEMBC 提供了在 ULPBench-CP 基准测试中集成这些组件的示例代码,而 ADC、运算放大器等其他功能可以不供电。但是,I/O 标志必须可用。
目标处理器板必须由 EEMBC 的 EnergyMonitor 硬件供电才能获得有效结果。测试环境的温度必须高于 21 °C (70 °F),并且在基准运行期间电源设置为 3 V。
测试周期(例如,由唤醒定时器生成)为一秒。精度为 50 ppm 的 32 KHz 晶体振荡器用作ULPBench-CP 的时序参考。 如果不使用晶体振荡器,设计人员必须说明如何校准使用的任何定时器。这是 EEMBC 认证实验室能够重现结果的要求。
需要注意的是,更改测试周期可能会对结果产生严重影响,并且不会根据 ULPBench-CP 的透明度要求而被接受。
最终的 bin 图像和源代码必须上传到 EEMBC Web 界面,以便可以验证基准测试结果。
EnergyMonitor 硬件 – 为什么只有 3 V 电源?
ULPBench-CP 规定基准测试第一阶段的电源电压必须设置为 3 V。这是由于 MCU 和 SoC 在较低电源电压下消耗的能量较少,因此选择了最小的公分母电源电压用于基准比较。由于 ULPBench 的一个重要目标是电池供电的应用,这有助于整合使用锂离子电池运行的设备的数据:
有些起始电压为 3.3 V,工作电压低至 2.7 V
一些从 3.0 V 开始,在放电阶段沿着这个平台运行
两节碱性电池的标称电压为 3 V
EEMBC 基准测试团队正在研究增加 ULPBench-CP 测试的另一个阶段以允许不同的电压,尽管对于应该是什么没有共同的看法。已发布表明 MCU/SoC 产品系列的最低电源电压差异很大(参见 [4])。
基准开发中考虑的另一个阶段是测试至少一个模拟模块。大量 MCU/SoC 具有无法在 2.2 V 下运行(或受限)的模拟模块。将电源电压降低到一定水平以下似乎很有吸引力,但也会让用户感到困惑:“哪个基准值适合我? ”
为什么环境温度定义为 21 °C?
在这里,有两个方面需要考虑。
首先,即使在不运行代码的情况下,今天和不久的将来的半导体工艺也会遭受大量能量损失(也称为“漏电流”)。这些电流通常取决于温度,并且在给定温度下会迅速增加。如果在运行基准测试时温度过高(即使偏离 21 °C (70 °F) 目标几度,也可能对基准测试结果产生重大影响。这使得准确比较和重现性变得更加困难。
图 2 说明了基准执行期间温度稳定性的挑战。电流/能耗从 0 °C 到 50 °C 稳步上升,但在80 °C 到 85 ° C之间增加了相同的量 。换句话说,一十分之一的温度变化具有同样的能量效应。
图 2.虽然睡眠模式下的能耗在 20 °C时相对较小,但在 85 °C 时要高得多(高出 14 倍)
在高温下进行精确基准测量的另一个挑战是让所有经过测试的 MCU 和 SoC 达到相同的稳定预定温度。MCU/SoC 是否运行在标准化的 PCB 上,并且在恒温箱中具有相同的部件,这很难验证。
应用程序的温度应产生温度曲线/循环信息,并且能耗将相应变化。稍后会更多……
EnergyMonitor 硬件——为什么不是传统的测量设备?
EEMBC 的 EnergyMonitor 测试板具有宽电流测量范围和低动态内部阻抗。使用感测电阻器的传统电流测量系统几乎无法获得可用的结果。
能量监视器通过电容器向负载提供能量并测量充电周期。这导致了一个近乎理想的能源,以及一个可以容忍电流峰值的测量系统。该器件还可以测量短代码执行情况下的能耗,例如中断事件处理 (图 3、4)。
图 3.该图在 Y 轴上显示了以微焦耳 (µJ) 为单位的累积测量能量。X 轴以秒为单位显示时间。基准的描述显示每秒两个基准代码周期。
图 4.该图还显示了随时间变化的能量。仅显示了一个能量包。
另一个优势是大量使用客户定义的能量模式,支持现代处理器中的电源门控。EnergyMonitor 充分涵盖了内部设备容量充电和放电过程,这使得该工具可以在节能产品开发的早期使用。
然而,更重要的是,EnergyMonitor 的成本比传统设备低得多(参见 [3])。EnergyMonitor 还旨在支持未来的 ULPBench 阶段,周期不到一秒。
结论
当前的 ULPBench-CP 基准测试为估算功耗提供了基准,使“小电流下的短运行时间”等声明和 µA/MHz 等数据表参数成为过去不可靠的指标。用户现在可以请求基准测试,例如 ULPBench-CP,或使用该工具自行测量数据。
本系列的第二部分将根据产品文档和数据表检查基准数据,以验证其准确性。
能否从 MCU 描述和数据表中准确确定能耗,以实现最长的系统运行时间?
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !