问题:模型很小,电池却不耐用
传感器采集一个读数,小型AI模型对其进行解释,然后设备等待下一次测量。如果计算只持续几毫秒,电池为什么仍可能很快耗尽?一种可能原因是,系统在大部分时间里都处于消耗能量的等待状态。让设备休眠似乎是自然的解决方案。但如果停顿很短,这个选择反而可能得不偿失。
核心问题是:停顿要持续多久,休眠期间节省的能量才能抵消进入和退出该状态的成本?我们将为一个假想设备建立能量账本,区分功率、能量、空闲间隔和响应延迟。最后得到可计算的阈值,并明确在电路板上应该测量什么。全部数值参数均为教学假设,不是商业微控制器、EL-AI产品或真实电池的测量结果。
功率与能量:水龙头和水箱的类比及其边界
功率表示消耗能量的快慢,单位是瓦,即焦耳每秒。能量表示一个时间段内消耗的总量,单位是焦耳。水龙头开得更大类似于功率更高,流出的水量类似于消耗的能量。这个类比只用于区分速率和总量;真实电池存在理想水箱无法描述的电气和化学行为。对于本文账本,功率恒定时使用 E = P × t 即可。
以100毫瓦运行20毫秒,消耗2毫焦:0.100 W × 0.020 s = 0.002 J。仅有“100 mW”无法说明一次决策的成本,因为缺少持续时间;仅有“每次决策2 mJ”也无法说明平均功率,因为还不知道每秒决策多少次。因此,比较两个模型时,还必须说明执行频率、完成的任务以及测量系统的边界。
相同工作,两种等待方式
定义周期 T 为一次决策开始到下一次决策开始的时间。活动阶段持续 tA = 20 ms,功率 PA = 100 mW,剩余时间为 G = T − tA。比较两种完成完全相同工作的策略:第一种让处理器保持空闲但随时可用,功率 PI = 30 mW;第二种先切换状态,以 PS = 0.1 mW休眠,并在下一周期前恢复就绪。“空闲”和“休眠”表示不同状态,不能当成同义词。
进入和退出休眠合计耗时 tX = 4 ms、耗能 EX = 0.3 mJ。EX表示这四毫秒内的总能量,而不是叠加在同一时段已计入能耗之上的额外开销。这样定义可以避免重复计数。假设休眠保留了恢复所需的状态,且活动工作不变;若需要重新加载模型或重建缓冲区,相关成本必须计入。只有 G 至少等于 tX,时间上才容得下这次状态转换。
逐项解释能量账本
第一个定量问题是:完整周期消耗多少能量?两种策略都有 PA × tA,即完成有效工作的能量。始终就绪的策略再加上 PI × G;休眠策略则加上 EX 和 PS × (G − tX),因为暂停间隔中已有一部分被状态转换占用。所有时间必须使用一致单位:代码采用秒、瓦和焦耳,只在显示结果时换算。
每秒一次决策时,T = 1 s,G = 0.98 s。保持就绪每周期消耗2 + 29.4 = 31.4 mJ;休眠则消耗2 + 0.3 + 0.0976 = 2.3976 mJ。休眠项采用0.976 s,而不是0.98 s。本例中,如果处理器始终就绪,等待的能耗远大于计算。因此,只优化神经网络会让该策略中最大的能耗部分基本不变。
短暂停顿带来的反直觉结果
现在每25 ms重复完全相同的工作,暂停间隔只有5 ms。休眠在时间上可行,因为状态转换需要4 ms,但真正休眠只剩1 ms。保持就绪每周期消耗2.15 mJ,休眠却消耗2.3001 mJ。休眠功率依旧很低,总能量反而更高。原因是为过短的停顿支付了进入和恢复成本,这正是单看功率参数无法发现的隐含代价。
| T (ms) | G (ms) | 空闲能量 (mJ) | 休眠能量 (mJ) |
|---|---|---|---|
| 25 | 5 | 2.15 | 2.3001 |
| 30 | 10 | 2.3 | 2.3006 |
| 100 | 80 | 4.4 | 2.3076 |
| 1000 | 980 | 31.4 | 2.3976 |
推导阈值:停顿需要多久?
现在无需逐一尝试所有时长就能作答。将两种能量相减,由于活动工作完全相同,其能量项抵消。当转换成本小于等待期间的节省量时,休眠才划算。在 PI 大于 PS 的条件下整理公式,得到阈值 G*。其中较小的 PS × tX 项,是因为 EX 已覆盖整个转换时段而作出的修正。不能在不说明 EX 定义变化的情况下把它删掉。
本例中,暂停间隔必须超过约10.02 ms,同时容纳状态转换。活动计算持续20 ms,因此完整周期必须超过约30.02 ms。暂停阈值与周期阈值不是同一个量。周期为30 ms时,结果刚好仍不利于休眠,每周期只差0.0006 mJ。不能把这些教学计算的小数位当成真实测量的保证精度;接近收支平衡点时,测量误差和波动就可能改变选择。

读图时先看空闲线:它上升较快,因为每增加一毫秒,就增加30 mW对应的能耗。休眠线因固定转换成本而起点较高,随后以仅0.1 mW的休眠功率缓慢上升。在交点左侧,保持就绪更省;右侧则在这些假设下休眠更省。图并不表示完整决策能量。若给两条曲线都加上2 mJ,只会整体上移,不会改变交点。
省电还不够:必须及时醒来
能量条件并不能保证及时响应。tX是进入和退出时间之和;唤醒延迟则是事件发生后恢复运行所需的那一部分时间。对已知的周期测量,可以提前安排唤醒;对不可预测事件则做不到,退出延迟会直接进入响应时间。因此,一种模式可能节省能量,却无法满足应用输出结果的截止时间。
Zephyr文档中的驻留时间策略,会比较距离下一次计划事件的时间与最小驻留时间加退出延迟之和。这有助于把分析与嵌入式软件联系起来,但参数属于具体平台;本文的 G* 并不能自动完成电路板配置。需要确认哪些唤醒源仍有效、哪些外设丢失状态,以及应用有哪些限制。能量公式不能替代这些信息。
传感器可能改变对电池的判断
此前账本只包含所选计算子系统。假设一个未计入上述功率的独立传感器持续以5 mW工作。在一秒周期内,它为两种策略各增加5 mJ。因此休眠策略的每次决策能量由2.3976变为7.3976 mJ。两策略之间的选择不变,因为共同项会抵消;但总能量估计,以及继续优化处理器能够带来的收益,都发生明显变化。
不能未经验证就关闭传感器,并继续声称提供相同服务。传感器可能需要稳定时间、重新标定,或必须连续采样,而这些数据会在休眠期间丢失。如果模型需要识别短暂事件,降低采样频率会改变其可观测内容。这是信息可用性与能量之间的权衡,不是无代价的节省。若目标是整机电池续航,无线模块、稳压器和供电损耗也必须计入。
三个不同指标:能量、平均值和峰值
平均功率等于周期能量除以 T。一秒周期中,2.3976 mJ对应不含传感器的计算子系统平均功率2.3976 mW;25 ms周期中,2.3001 mJ却对应92.004 mW。每次决策能量相近,但后者每秒决策四十次。毫焦数接近并不意味着电池续航接近,还必须问同样的工作重复得有多频繁。
峰值功率又是另一项信息。转换能量与持续时间只能确定转换阶段的平均功率,本例为75 mW;它们不描述时间波形,也不能排除高得多的瞬时峰值。没有足够时间分辨率的电流、电压轨迹,就不能据此确定供电系统规格。同样,平均唤醒延迟也不能保证高分位延迟或每个周期都满足截止时间。
从计算到测量:真正缺少什么
要把模型转化为硬件评估,需要明确电路板及修订版、微控制器或SoC、固件、AI运行时、编译器、时钟和功耗模式。还要说明输入、批量大小以及包含哪些活动工作;采集、预处理、推理和通信不能相互替代。测量方案应对完整周期中的 V(t) × I(t) 积分,包含转换过程,并区分冷启动与稳态。温度及供电条件也要记录,因为参数可能随之变化。
这些是建议开展的验证,并非已经完成的实验。可下载材料只执行模型算术、核对平衡点并生成图表,不使用随机性,因此无需种子,并保存输入、版本和结果。简短代码展示了关键步骤:从暂停中扣除转换时间,避免重复计算同一时段的能量。JSON让读者能够逐行对照表格与计算输出。
答案:休眠必须足以收回成本
只有当可用时间既足以收回状态转换成本,又能维持所需服务时,让AI设备休眠才划算。本例的能量平衡点对应约10.02 ms的暂停:5 ms会增加消耗,980 ms则显著降低消耗。关键是测量完整周期,判断节省是否来得及实现,而不是总选择更深的休眠模式。之后才有依据讨论续航,并继续计入传感器、通信和损耗。
来源与可复现性
主要软件来源是Zephyr关于电源状态和管理策略的文档,于2026年9月27日查阅其latest地址所提供版本。能量账本和数值参数是独立教学构造,不是Zephyr基准测试。本文不声称已在电路板上实现,也不声称EL-AI已有嵌入式产品。这是对用户要求主题的深入讨论,而不是商业能力声明。
Zephyr Project — System Power Management: Power States and Policies.
P_idle, P_sleep = 0.030, 0.0001 # W
E_transition, t_transition = 0.0003, 0.004 # J, s
P_active, t_active, T = 0.100, 0.020, 1.0
G = T - t_active
assert G >= t_transition
E_idle = P_active*t_active + P_idle*G
E_sleep = P_active*t_active + E_transition + P_sleep*(G-t_transition)
G_break_even = (E_transition-P_sleep*t_transition)/(P_idle-P_sleep)
print(f"{1000*E_idle:.4f} mJ; {1000*E_sleep:.4f} mJ")
print(f"{1000*G_break_even:.6f} ms")
代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 9 月 27 日。

