中电网移动|移动中电网|高清图滚动区

从EEMBC看低功耗MCU的评分基准

本文编译自EEWORLDONLINE

有多种方法和基准可用于量化嵌入式微控制器 (MCU) 的能耗,以及蓝牙低功耗和 Wi-Fi 等常见外设功能的相关能耗基准。随着时间的推移,MCU 设计发生了变化,以支持对更高能效的需求。此外,还有服务器(SPECpower——运行Java的Web服务器的基准)、数据中心(Power Usage Effectiveness、PUE、国际标准ISO/IEC 30134-2:2016)以及其他领域的能耗基准测试。不过这些已经超出了本文的范围。

低功率设备的功耗常常用毫瓦 (mW) 来衡量,但超低能耗通常以微焦耳 (µJ) 来衡量。功耗与电源最相关,例如只能提供几毫瓦(或者毫安),在电池应用中,汲取更高的峰值电流会永久性地降低电池的容量,再加上电压的不确定性,因此我们常见的低功耗MCU通常以毫安形式表示。

能耗决定了从电池中消耗了多少能量来执行给定的任务。能耗是在执行操作所需的时间内功耗的积分。由于涉及两个参数,功耗和正在执行的特定操作,大多数能耗基准指定要完成的一个或一系列任务,然后根据完成定义的任务所需的能量 µJ 提供度量单位。

在比较物联网 (IoT) 无线传感器节点等设备的能耗时,需要考虑其他因素,这些设备会花费大量时间处于待机状态。对于这些设备,消耗的总功率等于动作模式功率加上待机(睡眠)模式功率再加上唤醒功率(图 1)。

image.png
图 1:总功耗 = 睡眠期间消耗的功率 + 唤醒期间浪费的功率 + 活动操作期间消耗的功率。 (图片:ADI)

因此,消耗能量的不仅仅是处理;唤醒会浪费大量能量,因为 MCU 在其所有数字和模拟子系统完全唤醒并运行之前无法进行任何处理。

例如,一些系统唤醒使用片上 ADC 对传感器输入进行采样。在这些情况下,有必要为较慢稳定的模拟电路和较快稳定的数字电路留出充裕时间。各种模拟元件的唤醒特性往往有很大的影响;电压基准或稳压器需要使用外部去耦电容器,因此可能需要几毫秒才能稳定下来。在某些应用中,MCU 在唤醒期间浪费的能量可以与动作模式时一样多。

物联网和 ULP

超低功耗 (ULP) 描述了 MCU 设计用于在单个主电池上运行长达 10 年或在pJ单位能量搜集环境中运行。ULP MCU 特别适用于无线物联网节点、可穿戴设备和类似的低功耗设备。如上所示,总功耗是一项复杂的测量,可能很难确定给定应用的“最佳”MCU。例如,能量收集供电系统可能受益于最低的有功电流要求。但是,对于大部分时间处于睡眠/待机模式的系统,静态电流可能是关键参数。此外,集成稳压器等非计算元件也会影响 MCU 能效(图 2)。集成的低压差 (LDO) 稳压器有助于显着降低功耗。例如,与提供约1.8Vdc 的电量耗尽的电池相比,不带 LDO 稳压器的电池供电 MCU,在3Vdc电池状态下工作,可能会多消耗50% 的功率。添加一个集成的 LDO 会产生平坦的电流消耗曲线并显著降低整体功耗。

image.png
图 2:非计算资源(例如包含集成电压调节)会影响 MCU 的整体能耗。 (图片:Silicon Labs)

ULP 基准测试

image.png
EEMBC发展历程

EDN 于 1997 年成立,EDN 嵌入式微处理器基准联盟 (EEMBC) 的使命是开发统一的 MCU 性能基准测试。当 EEMBC 在 2012 年独立于 EDN 时,缩写名称 EEMBC 被保留下来。今天,EEMBC ULPMark 工作组为 MCU 功率和能量分析开发配置文件和基准。目前有两种深度睡眠配置文件和一种用于工作负载的配置文件:

ULPMark-CoreProfile 基准测试,也称为 ULPMark-CP,通过关注 MCU 内核功耗来衡量深度睡眠的功耗,特别是CPU深度睡眠及唤醒时的功耗。核心配置文件以一秒的占空比运行,将一组常见的工作负载(定义如下)与长时间不活动的部分相结合,以测试微控制器低功耗模式(图 3)。

ULPMark-Peripheral Profile 则是围绕外设进行评估,常见外设通过在十个固定配置之一(称为插槽)中激活四个外围设备中的一个或多个,从而测试对深度睡眠的影响。外围设备包括:

实时时钟 (RTC)
1 Hz 和 1 kHz 的模数转换 (ADC)
32 kHz 和 1 MHz 下的脉宽调制 (PWM)
串行外设接口 (SPI)

ULPMark-CM 基准测试则是针对经典工作负载的 CoreMark 基准测试。

image.png

图 3:ULPMark-CP 基准测试在长时间睡眠中运行,然后短暂唤醒以执行最少的处理,模拟物联网边缘节点节能。在这种情况下,唤醒功耗被包含在了睡眠时间中。(图片:EEMBC)

ULPMark-CP 基准测试的活跃部分大约占总运行时间的 3%。它需要通过使用所谓的“RAM保持”,即在深度睡眠期间保存数据。由于预计睡眠边缘节点不会在每个睡眠周期后清除其 RAM,因此保留、清除及写入RAM的动作均存在,旨在衡量睡眠模式的真实功率消耗。测试的活动部分,基准测试实现以下工作负载(可移植到 8 位、16 位和 32 位 MCU):

生成 20 个 GPIO 脉冲
执行 8 位线性插值
执行 16 位积分(滤波器)
计算 7 段 LCD 二进制转换(保存状态)
在字符串中搜索子字符串
执行一个小的冒泡排序
根据输入和先前状态排列字符串的位

为了提供更高的基准分数以衡量能耗(更好的性能),各种 ULPMark 基准使用的公式包含以 µJ 为单位测量的能量值的倒数。

ULPMark-CP 基准测试分数 = 1000 / 能耗中值(运行5次持续10秒的基准测试)
ULPMark-Peripheral Profile 基准分数 = 10000 / 能耗中值(基准的 10 个功能运行 5 次,同样持续 10 秒)
ULPMark-CM 基准分数 = 1000 *(迭代次数 / 以 µJ 为单位的总能量)

物联网特定的基准测试

除了 ULP 基准之外,EEMBC 还提供了一套用于量化物联网边缘设备能效的基准。 IoT Mark 包含由传感器、处理器和射频接口组成的边缘器件的综合能耗。IoT Mark 中包含的两个基准测试是 IoT Mark-BLE(低功耗蓝牙 (BLE) 基准测试)和 IoT Mark-Wi-Fi(仍在开发中的 Wi-Fi 基准测试)。

设计人员可以使用 IoT Mark-BLE 配置文件通过睡眠、广播和连接操作对实际的物联网边缘节点进行建模,包括 MCU、I2C 传感器和 BLE 无线电。该基准测试旨在量化连接间隔、频率和各种传感器特性与整体能耗之间的权衡。

IoT Mark-BLE 基准测试使用便携式 IoT Connect 框架,该框架支持任何射频模块和 MCU,并可与任何软件堆栈或嵌入式操作系统配合使用。它非常灵活,具有用户定义的连接间隔、广播间隔、I2C 传输数据量和速度、BLE 传输功率和其他系统特性。

电流消耗/MHz是什么?

在所有类型的处理器中,功耗通常与工作频率成正比。在给定的电源电压下,可以给出时钟频率的电流消耗/MHz,例如 3V时的电流消耗/MHz作为标准。除了降低时钟频率以降低能耗外,禁用未使用的外设也可以减少 MCU 的能耗(图 4)。使用正确的时钟速度进行比较也很重要。通常来说,使用指令时钟速度比使用系统时钟速度更有意义。系统时钟的运行速度通常是指令执行速度的两倍,从而使明显的运行效率加倍。

image.png
图 4:MCU 电流消耗随着时钟频率的增加而增加。 (图片:恩智浦)

在优化系统级效率时,时钟速度和电流消耗之间的关系很重要。在较低系统负载期间降低时钟速度可以节省能源,而不会对整体系统性能产生负面影响。动态地改变时钟速度可能很有效,但也可能具有挑战性。对于某些 MCU,还需要动态调整外设寄存器设置以适应不断变化的时钟速度。

更多节能的机会

将 MCU 中的处理器部分保持在低功耗状态通常是最有效的节能方式。例如,可以使用直接内存访问 (DMA) 控制器,而不是唤醒处理器以将数据在各种外围设备间搬运。 DMA 可以有效地在 MCU 中移动数据,不会因让处理器执行相同的处理功能而造成能量损失。

此外,一些 MCU 包括专用于从处理器卸载工作的特定功能的低功耗外设。这些外设可用于高效实现多种常见功能,比如定时和测量、简单的用户界面、安全相关监控、基本电机控制等,使处理器能够更长时间地保持低功耗状态。

总结

在许多采用嵌入式 MCU 的应用中,能耗是一个重要的考虑因素。对各种 MCU 的相对性能进行基准测试只是设计低功耗设备的一个方面。 优化无线通信的连接间隔、频率、功率和其他特性在物联网节点中同样至关重要。使用 DMA 和其他外设从相对耗能的处理器卸载活动等一般设计考虑也可以降低整体能耗。

image.png
EEMBC部分成员

猜你喜欢
中电网移动|移动中电网|频道导航区