3. 功耗基础概念:电压、电流、功率、能量、平均功耗与峰值功耗、动态与静态功耗
TinyML 设备通常以电池供电或依赖能量采集,功耗直接决定了产品的续航时间、散热设计乃至部署可行性。在开始 profiling 之前,必须建立一套精确的功耗语言体系。本章从电路物理量出发,厘清电压、电流、功率与能量的关系,区分平均功耗与峰值功耗的工程意义,并深入剖析 CMOS 数字电路动态功耗与静态功耗的构成机理。只有理解了功耗从何而来、如何度量,才能正确解读后续 profiling 工具输出的数据,避免将“瞬时电流尖峰”误判为“平均功耗过高”等常见错误。
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 倍,否则会漏掉窄脉冲尖峰。最后,通过软件对功率曲线积分得到能量值。
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 常见误区与总结复盘
在功耗基础概念的理解上,工程师常犯以下错误:
误区三:混淆“功率”与“能量”的单位。mW 是功率单位,mWh 是能量单位。电池容量标注为 mAh 时,必须乘以电压才能换算为能量。例如,3.7V 的 1000mAh 电池与 1.2V 的 1000mAh 电池,能量相差 3 倍以上。
误区四:认为静态功耗只在睡眠时存在。实际上,即使 CPU 全速运行,静态功耗也始终存在。在 28nm 以下工艺中,静态功耗可能占总功耗的 30% 以上。TinyML 设备若使用先进工艺,必须考虑漏电优化技术(如电源门控、反向偏置)。