微控制器/片上系统 (MCU/SoC) 系统的能耗比较——一个基准就足够了,还是我们需要一个参数基准?
一个产品的选择、市场定位和成功的一个重要因素是整个系统的能耗。测量这一点的传统方法是以微安 (µA) 或每兆赫兹微瓦 (µW/MHz) 为单位来表示效率,但这已经不够了。储能系统既不存储 µA 也不存储 µW,而是存储焦耳,焦耳仅表示能量。因此,比较 MCU/SoC 设备的能源使用情况已成为用户的首要关注点。
一个基准是否足以选择 MCU、MCU 系列或整个 MCU 制造商?公开可用的技术文档是否足够?为您的应用选择合适的供应商有多容易?
第 1 部分:超低功耗基准:ULPBench-Core Profile
第 2 部分:ULPBench-Core 配置文件、EEMBC 文档和 MCU 数据表
第 3 部分:工作温度对能耗的影响
第 4 部分:MCU 数据表:操作模式、控制位、寄存器、电流和模式传输参数
以前的文章着眼于供应商数据表的内容。数据表在其最新版本中可在网络上获得,但遗憾的是在其先前版本中没有。在设计开始时未存储初始修订会在计算能耗方面产生误导性结果。供应商在数据表中的营销声明有时很难用详细数据进行验证。如果我们想根据能效来选择最好的MCU,我们有几种选择:
来自 ULPBench von EEMBC 等基准测试的结果
发表 MCU 应用测量的文章
MCU供应商提供的各类文件
技术贸易杂志、大会或论坛上的公开文章。
EEMBC 的 ULPBench 结果
ULPBench 提供有关能源消耗的基本陈述。RUN-Mode 和 RTC-Mode 在一秒内以 50 ppm 的精度执行。被测设备不需要满足供应商的典型数据。
超出此基本定义的每个应用程序都可以提供将对 EEMark 排名产生负面影响的消费数据。以下是三个例子:
电源模式之间的切换损耗和切换所需的代码
外设,特别是具有高数据吞吐量的数字功能和模拟功能,例如 ADC/DAC/放大器等。
限制模式之间的切换和序列的约束;可以使用从实际模式到目标模式的中间模式。
所有三个提到的条件都对 EEMBC 的第一个基准测试的结果没有影响。
MCU 供应商为其产品提供了许多不同的文档。我们仅限于功能描述、电气特性数据和面向应用的文档。软件示例和开发工具将不在这里介绍。
在图 1 中,总结了所有提及操作模式和更改以确保安全操作的页面。
【图1 | 海量数据呈现给用户,实现节能运行。仅考虑整个产品组合中的一个 MCU 系列。]
通常,发布的功率模式不到十几种;为任何应用功能获得最佳电源模式应该很容易。公布的数据与少数功率模式所暗示的相反。在任何电源模式和模式更改过程中,都必须确保安全和节能的操作:
工作电压和频率通常覆盖不同的区域
指令和电源模式控制位
几个 ON/OFF 字和位;内部电源的电源门控、允许的顺序和必要的时序。
时钟生成、路由和 ON/OFF 切换。
排除所有决定以下配置、功能和操作模式的页面:
中断和“异常”处理
内存条件,如等待状态、内存中的数据保留(SRAM 保留)等。
内存保护/MMU 配置等
调试模式期间的操作/电源模式
外围功能,例如启用/禁用、电源/性能配置和更改条件
保存和重新配置功能
大多数系统架构使用最小的公分母来表示操作条件。这意味着,例如,诸如中断请求之类的任务的确认和执行将在相对高性能的电源模式下执行。这使用最近选择的工作电压和频率。更合适的操作模式需要执行额外的软件,这增加了对能量和执行时间的另一项要求,损失了能量和性能。
图 1 还表明需要对现有文献进行深入学习。时钟和电源门控的实现需要对众多振荡器和工作电压及其控制、指令和电气特性进行全面规划。此外,动态运行模式转换条件很重要,并非所有能级都可以直接从实际运行模式中获得。
【图2 | 通过 TI SLAA657A。该图表明从一种模式(LDO/DC-DC 和 LF128KHz)更改为另一种模式需要零个、一个或两个中间步骤。其他条件,例如延迟,没有提到,但在系统规划中是必不可少的。在上图中,仅显示了活动模式转换。不包括操作/低功耗模式之间的转换。
电气特性代表静态条件;它们仅代表已确定的条件。数据表中没有提到瞬态和启动损耗。最好的情况是,您会在应用说明中找到建议。
对于 STM32L476 (EEMark=153),您可以根据数据表计算出在 1700 uA@2 us/3 V 时的唤醒能量约为 0.1 uJ。ULPBench-CP 软件和硬件测量的能量消耗为 6.66 uJ。在一秒钟内,您可以忽略唤醒能量。但如果工作负载分布在 100 个周期内,“唤醒”能量 (10,2uJ) 明显大于“工作负载”能量 6.56 uJ。换句话说,当您增加循环次数时,切换操作模式的能量会成为一个重要因素。此外,节能模式和运行模式之间的频繁变化可能会导致不同的“最佳”低功耗模式,具体取决于实际唤醒周期。SiLabs 示例显示了这一点。
【图3 | 通过 SiLabs,2013-11-25 - AN0027_Rev1.03;从 EM2 与 EM4 定期唤醒的功耗。该报告表明,能量模式 4 提供最低的电流消耗,没有完全保持,因此要求设备在唤醒时经历一个复位周期。这个复位周期比从 EM2 或 EM3 唤醒需要更长的时间。]
对于所有可用的组合,所有不同能量模式之间的转换是不可能的。请参阅 NXP/Qualcomm 的 Kinetis-MCU 中的一个示例。
【图4 | 通过 NXP,AN4503:Kinetis MCU 的电源管理,第 2 版,04/2015。并非每种模式都可以从其他模式到达。]
正如您在图 4 中看到的,HSRUN 模式只能从 RUN 模式进入,通过软件而不是通过硬件模式修改。此外,每个“低功耗”模式只能留给 RUN 模式。由于文档中没有提到任何例外,您可以假设每个事件或中断都需要在 RUN 模式或“极低功耗 RUN”模式下执行,或者需要必须通过软件选择的不同模式。这意味着您总是返回到“耗电”的 RUN/VLPR 模式。
这些模式之间的转换具有从纳秒到微秒的时间/时钟条件。将这些转换时间与 ULPBench 上的执行时间进行比较是很有趣的。ULPBench 上的执行时间范围为 0.4 到 2 毫秒。必要的时钟周期在 10000 到 23000 的范围内。这清楚地证实了需要一种更智能的方法来重新配置 MCU 并使更改操作模式成为无缝且快速的解决方案。
我们今天在哪里?
我们介绍了一种比较 MCU/SoC 能耗的方法。EEMBC 组织已从第一步开始:基准 ULPBench。对于能源敏感型产品,需要进行更多调查来验证和选择 MCU/SoC 系列。
用户可以通过智能和密集的软件代码影响待机和活动运行模式下的能源需求,而不是通过半导体工艺选择或芯片设计。与温度相关的能耗的根源与用户无关。最佳情况下,用户可以与 MCU 供应商一起使用先进的方法来优化动态能耗,以管理全面的操作模式。图 1 显示了该行业向客户提供了多少文件和冗长的描述来解释最佳的能源消耗。始终选择最佳电源模式并使系统始终处于安全运行条件下是一项挑战。例如, 图 2 和图 4 中的信息显示了改变操作模式的限制。未来的策略是缩短模式之间的切换周期,避免它们,或者使它们更容易。
Quo Vadis,我们要去哪里?
操作模式更改次数的增加是一项挑战。我们已经看到了大量信息,并且必须了解它们的组合才能实现低能耗系统。实现最佳解决方案是一项重大的努力。更智能的操作模式管理是一种解决方案。这些解决方案存在,但需要进行调整。管理操作模式的清晰和简单的结构将使硬件和软件设计人员的生活更加轻松。维护、产品增强和向后兼容性是综合操作模式的更多论据。
在这样的安全运行和安全模式环境下,安全运行和安全模式对真正的最低能量模式提出了另一个巨大的挑战和更强烈的需求。主要讨论了基本的硬件和软件解决方案——能源需求不是这些讨论的重点。物联网环境在许多方面都需要安全、可靠和能源优化的嵌入式系统的结合。
作者:Horst Diewald,Uwe Mengelkamp
审核编辑:郭婷
评论
查看更多