3. 功耗基础概念:电压、电流、功率、能量、平均功耗与峰值功耗、动态与静态功耗

TinyML 设备通常以电池供电或依赖能量采集,功耗直接决定了产品的续航时间、散热设计乃至部署可行性。在开始 profiling 之前,必须建立一套精确的功耗语言体系。本章从电路物理量出发,厘清电压、电流、功率与能量的关系,区分平均功耗与峰值功耗的工程意义,并深入剖析 CMOS 数字电路动态功耗与静态功耗的构成机理。只有理解了功耗从何而来、如何度量,才能正确解读后续 profiling 工具输出的数据,避免将“瞬时电流尖峰”误判为“平均功耗过高”等常见错误。

基础电学量 功耗度量维度 CMOS功耗构成 电压 V 电流 I 功率 P = V·I 能量 E = P·t 单位:V, A, W, J 1 W = 1 J/s 1 mAh = 3.6 C 测量工具 万用表:稳态测量 示波器+电流探头:瞬态 专用功耗分析仪:能量积分 平均功耗 P_avg E_total / T_total 峰值功耗 P_peak max(P(t)) 瞬态最大值 能量 E = ∫P(t)dt 决定电池寿命 电池容量 → 能量 (mAh × V) 电源设计 → 峰值功率 散热设计 → 平均功率 ⚠ 两者不可互相替代 动态功耗 P_dyn α·C·V²·f 静态功耗 P_st I_leak · V 动态来源:信号翻转、短路电流 静态来源:亚阈值漏电、栅极漏电 TinyML 关注点 推理时:动态功耗主导 待机时:静态功耗主导 优化目标:降低 α 与 V 定义 构成

3.1 核心原理:从欧姆定律到能量守恒

功耗分析的起点是四个基本电学量:电压(V)、电流(I)、功率(P)和能量(E)。在 TinyML 设备中,电压通常由电池或稳压器提供(如 3.3V、1.8V 或 0.9V 核心电压),电流则是 SoC 在不同工作状态下从电源吸取的电荷流。功率定义为电压与电流的乘积,即 P = V × I,单位是瓦特(W)。能量则是功率对时间的积分,E = ∫P(t)dt,单位是焦耳(J)或瓦秒(Ws)。在电池领域,常用毫安时(mAh)表示电荷容量,乘以标称电压即得到能量容量(mWh)。

理解功耗必须区分“功率”与“能量”的工程语义。功率描述的是某一瞬间的“速率”,而能量描述的是“总量”。例如,一颗 MCU 在推理时可能消耗 50mW,持续 200ms,则单次推理能量为 10mJ。如果电池容量为 1000mAh @ 3.7V,即 3700mWh = 13.32kJ,那么理论上可执行约 133 万次推理。这个计算揭示了 TinyML 功耗优化的核心目标:降低单次推理的能量消耗,而非单纯追求瞬时功率最小化。

在数字电路中,功耗分为动态功耗与静态功耗两大类。动态功耗(P_dyn)由 CMOS 门电路在逻辑翻转时对负载电容充放电产生,表达式为 P_dyn = α·C·V²·f,其中 α 是翻转活动因子(0~1),C 是节点等效电容,V 是电源电压,f 是时钟频率。静态功耗(P_st)则源于晶体管在截止状态下的漏电流,包括亚阈值漏电、栅极漏电和结漏电,表达式为 P_st = I_leak × V。在先进工艺节点(如 28nm 以下),静态功耗占比显著上升;而在 TinyML 常用的 40nm~180nm 工艺中,动态功耗通常占主导,但待机时静态功耗不可忽视。

3.2 判断方法:如何测量与计算功耗指标

进行功耗 profiling 前,需要明确测量目标与对应方法。以下是四种典型场景的测量策略:

测量目标 所需仪器 测量方式 关键输出
平均功耗(长时间运行) 万用表(高精度模式)或功耗分析仪 串联采样电阻,记录 10s~1min 的电流均值 平均电流 I_avg,P_avg = V × I_avg
峰值功耗(瞬态尖峰) 示波器 + 电流探头(带宽 ≥ 100MHz) 触发模式捕获单次推理的电流波形 峰值电流 I_peak,P_peak = V × I_peak
能量(单次任务) 专用功耗分析仪(如 Joulescope、Otii) 同步采集电压与电流,软件积分 单次推理能量 E_task(mJ)
动态/静态功耗分离 可调电源 + 电流表 降低时钟频率至 0(或停时钟),测静态电流;恢复频率测总电流 I_static,I_dynamic = I_total - I_static

操作流程上,首先确保设备处于稳定工作状态,排除无线通信、外设干扰。其次,在电源路径中串入低阻采样电阻(如 0.1Ω 四端电阻),使用差分探头测量其两端电压,再除以电阻值得到电流。对于能量测量,必须同步采样电压与电流,采样率至少为信号带宽的 10 倍,否则会漏掉窄脉冲尖峰。最后,通过软件对功率曲线积分得到能量值。

经验提醒:测量平均功耗时,务必包含完整的任务周期(如“唤醒→推理→睡眠”)。仅测量推理阶段的功耗会高估平均功耗,因为睡眠电流可能低至 µA 级,对总能量贡献极小。建议使用功耗分析仪的“触发窗口”功能,从任务开始到结束自动积分。

3.3 案例拆解:语音唤醒设备的功耗剖析

以一款基于 Cortex-M4F 的语音唤醒设备为例,其工作状态分为四个阶段:空闲监听(麦克风开启,DSP 待机)、语音检测(VAD 算法运行)、推理识别(神经网络推理)、无线传输(BLE 发送结果)。设备使用 3.7V 锂电池供电,目标续航 6 个月以上。

初始现象:工程师测得设备平均电流为 12mA,计算平均功耗为 44.4mW。电池容量 500mAh,理论续航约 41 小时,远低于目标。初步判断是“推理功耗过高”,但进一步分析发现推理仅占 2% 的时间。

关键数据:使用 Joulescope 采集 60 秒的电流波形,统计各阶段电流与时长:

  • 空闲监听:电流 8mA,时长 58.5s,能量占比 468mAs
  • 语音检测:电流 15mA,时长 1.0s,能量占比 15mAs
  • 推理识别:电流 45mA,时长 0.4s,能量占比 18mAs
  • 无线传输:电流 20mA,时长 0.1s,能量占比 2mAs

分析判断:虽然推理阶段瞬时功耗最高(166.5mW),但其能量占比仅 3.6%。真正的能量消耗大户是空闲监听阶段,占总能量的 93%。问题根源在于系统未进入深度睡眠模式,外设(麦克风、ADC)和内核时钟仍保持全速运行。

实际操作:优化固件,在无语音输入时进入 STOP 模式,仅保留麦克风中断唤醒。将空闲监听电流从 8mA 降至 50µA,同时将 VAD 算法从 DSP 迁移到专用低功耗硬件加速器。优化后各阶段能量变为:空闲监听 2.9mAs,语音检测 12mAs,推理 18mAs,无线传输 2mAs,总能量从 503mAs 降至 34.9mAs,平均电流降至 0.58mA,理论续航提升至 860 小时(约 36 天)。

复盘经验:功耗 profiling 必须覆盖完整任务周期,不能只关注峰值阶段。平均功耗的优化优先级应基于“能量占比”而非“瞬时功率”。此外,动态功耗与静态功耗的分离帮助团队发现:即使进入睡眠模式,LDO 稳压器的静态电流(约 20µA)仍占睡眠功耗的 40%,后续更换为 DC-DC 转换器进一步降低待机损耗。

3.4 常见误区与总结复盘

在功耗基础概念的理解上,工程师常犯以下错误:

误区一:将峰值功耗等同于平均功耗。峰值功耗决定电源芯片的选型和 PCB 布线宽度,平均功耗决定电池寿命。两者必须分别测量、分别设计。例如,一颗 MCU 在 RF 发射时可能达到 200mA 峰值电流,但平均电流仅 5mA,若按峰值选择电池容量会严重超配。
误区二:忽略电压变化对功耗的影响。动态功耗与电压的平方成正比(V²),降低 10% 电压可减少 19% 动态功耗。但电压降低会增加延迟,可能导致时序违例。TinyML 设备常采用动态电压频率调节(DVFS),在推理时提高电压保证性能,在待机时降低电压减少漏电。

误区三:混淆“功率”与“能量”的单位。mW 是功率单位,mWh 是能量单位。电池容量标注为 mAh 时,必须乘以电压才能换算为能量。例如,3.7V 的 1000mAh 电池与 1.2V 的 1000mAh 电池,能量相差 3 倍以上。

误区四:认为静态功耗只在睡眠时存在。实际上,即使 CPU 全速运行,静态功耗也始终存在。在 28nm 以下工艺中,静态功耗可能占总功耗的 30% 以上。TinyML 设备若使用先进工艺,必须考虑漏电优化技术(如电源门控、反向偏置)。