3. PMU在SoC中的角色
在低功耗SoC中,PMU(Power Management Unit,电源管理单元)并不是一个“只负责开关电”的附属模块,而是贯穿芯片运行全过程的资源调度中枢。它把电压域、时钟域、复位域、功耗状态和唤醒事件统一管理起来,使CPU、GPU、外设、存储控制器等不同主体能够在性能与功耗之间取得可控平衡。理解PMU的角色,核心是理解它“管什么、和谁交互、按什么策略决策”。
一、PMU的功能定位:从供电执行者到状态调度者
从功能层次看,PMU通常承担四类职责。第一是电源域控制:通过外部PMIC或片内LDO/DCDC,对CPU核、GPU、NPU、DDR、外设等电源域进行上电、下电、调压和保持。第二是时钟与复位协同:在进入低功耗状态前关闭或切换时钟,退出时按顺序恢复时钟并释放复位。第三是功耗状态机管理:维护Run、Idle、Sleep、DeepSleep、Retention、PowerDown等状态及其迁移条件。第四是唤醒与事件处理:接收GPIO、RTC、中断控制器、外设事件等唤醒源,判断是否允许退出低功耗状态。
因此,PMU的定位可以概括为:它不直接完成计算,但决定计算资源以何种电压、频率和开关状态存在。CPU负责“做什么”,PMU负责“以多大代价做”。
二、PMU与CPU/GPU/外设的交互方式
PMU与各主体的交互,通常通过寄存器接口、中断和硬件握手信号完成。CPU侧常见交互包括:写PMU控制寄存器请求进入WFI/WFE、通过DVFS表请求调频调压、读取PMU状态寄存器确认当前功耗状态。GPU/NPU侧则更强调独立电源域和性能档位,PMU需要根据负载请求决定是否上电、是否升压、是否进入Retention。外设侧的关键是时钟门控与唤醒能力:低速外设可独立关时钟,具备唤醒能力的外设(如RTC、GPIO、USB PHY)可在低功耗状态下保持部分逻辑供电,并在事件到来时向PMU发出唤醒请求。
交互中最重要的原则是顺序与依赖。例如进入DeepSleep前,PMU必须先确认CPU已保存上下文、DDR已进入自刷新、外设已停止DMA,再切断对应电源域;退出时则按相反顺序恢复。若顺序错误,常见后果是总线挂死、DDR数据丢失或外设状态异常。
三、电源管理策略分类
PMU的策略可以从“粒度”和“触发方式”两个维度分类。按粒度可分为:时钟门控(Clock Gating)、电源门控(Power Gating)、动态电压频率调节(DVFS)、状态保持(Retention)和深度掉电(Power Down)。按触发方式可分为:软件主动请求、硬件自动触发、事件驱动唤醒。
| 策略 | 作用对象 | 典型收益 | 代价/风险 |
|---|---|---|---|
| 时钟门控 | 空闲模块、总线 | 动态功耗下降 | 恢复快,但漏电仍存在 |
| 电源门控 | CPU核、GPU、外设域 | 漏电显著降低 | 状态丢失,恢复慢 |
| DVFS | CPU/GPU/DDR | 按负载匹配功耗 | 调压时序复杂,需稳定裕量 |
| Retention | 关键寄存器、SRAM | 保留状态且低漏电 | 需保持电源,面积增加 |
| 深度掉电 | 整域或整芯片 | 待机功耗最低 | 唤醒慢,依赖RTC/GPIO |
四、典型场景与常见误区
以“智能手表SoC”为例:屏幕熄灭后,CPU进入Retention,GPU断电,DDR进入自刷新,传感器外设保留低速时钟;当加速度计检测到抬腕事件,外设向PMU发唤醒请求,PMU先恢复CPU电源和时钟,再释放复位,CPU读取事件后决定是否点亮屏幕。整个过程PMU是“总调度”,而不是被动执行单个开关。
常见误区一:把PMU当成PMIC。PMU是SoC内部的策略与状态控制单元,PMIC是外部供电器件,两者通过I2C/SPI或专用接口协作,职责不能混为一谈。
常见误区二:只关注“关得掉”,忽略“醒得来”。低功耗设计必须同时验证唤醒路径、唤醒延迟和唤醒后的状态一致性。
常见误区三:所有模块统一断电。实际应按域分级,保留RTC、唤醒逻辑和必要寄存器,否则会丢失时间基准和唤醒能力。
调试PMU交互时,建议先抓取“请求—确认—状态”三要素:谁发起请求、PMU是否给出确认、状态寄存器是否到达目标值。很多低功耗异常并非策略错误,而是握手未完成或顺序被跳过。
PMU 状态迁移示例(伪代码):
RUN -> IDLE : CPU 空闲,关闭部分时钟
IDLE -> RETENTION : 保存关键上下文,降低电压
RETENTION-> DEEPSLEEP : 关闭非唤醒域,DDR 自刷新
DEEPSLEEP-> RUN : RTC/GPIO 唤醒,按序恢复电源与时钟
总结来看,PMU在SoC中的角色可以归纳为三点:功能上是电源与状态的总控,交互上是CPU/GPU/外设的协调者,策略上是多级功耗模式的决策者。只有把功能定位、交互顺序和策略分类同时理解清楚,后续设计PMU状态机时才能做到状态完备、迁移安全、功耗可控。