三种省电模式对比:clock gating、power gating、DVFS 到底什么时候用
更新时间:2026-09-15。本文是「集成电路大类 · 低功耗设计与验证」入门层系统篇第 21 篇。学到这里你已经分别见过时钟门控、电源门控、DVFS。它们名字都带「门/调」,初学者极易混用。这一篇把三者并排放在一张桌子上,从「省哪笔电、状态留不留、醒得多快、适合空闲多久」四个角度一次分清,并给出选型决策。它们不是三选一,而是按空闲尺度层层叠加。系统地图见低功耗导读。
本文要回答的问题
- 时钟门控和电源门控只差一个词,省的电有何不同?
- 为什么短暂发呆用门控时钟、长睡才值得断电?
- DVFS 既不停钟也不断电,它到底省了什么、不省什么?
- 三种手段的唤醒延迟和附加成本各是什么量级?
- 真实系统怎么把它们组合起来用?
一、一句话先抓住本质区别
- 时钟门控(clock gating,CG):时钟不来,触发器不翻转——省动态功耗,但晶体管仍通电,漏电照漏、状态全在。
- 电源门控(power gating,PG):电源断掉——动态和漏电一起省到近零,但状态没了(除非保持)、接口要隔离、醒得慢。
- 动态调压调频(DVFS):既不停钟也不断电,而是把电压、频率一起降到「刚好够用」——省的是随
V²f变化的动态功耗,不省漏电,且模块始终在运算。
关键分水岭是两个问题:①这段时间还需不需要继续计算?②空闲有多长? 还要继续算但算得少→DVFS;不算了但很快要用→时钟门控;很久都不用→电源门控。
二、四个维度并排对比
| 维度 | 时钟门控 CG | 电源门控 PG | DVFS |
|---|---|---|---|
| 动作 | 切断时钟使能,停时钟沿 | 电源开关切断供电轨 | 降低 V 和 f(换 OPP 档) |
| 省动态功耗 | 是(时钟树+翻转归零) | 是(域内全停) | 是(随 V²f 降) |
| 省漏电 | 否,仍通电 | 是,近零 | 否,仍通电 |
| 内部状态 | 完整保留 | 丢失,需保持寄存器 | 完整保留 |
| 对外信号 | 自然保持 | 浮空,需隔离单元 | 不变 |
| 唤醒延迟 | 约 1 个时钟周期(近乎 0) | 几十 µs~ms(上电/稳定/恢复+涌流) | 几~几十 µs(调压器+PLL/锁相+稳定) |
| 额外硬件 | ICG 单元,很小 | 开关、保持、隔离、电平转换 | 可调稳压器、PLL、档位表、控制器 |
| 适合空闲时长 | 逐周期~µs 级短空闲 | ms~s 级以上长睡 | 不是「空闲」,是负载变轻时 |
| 谁来控制 | RTL 使能/综合自动插 | 电源管理逻辑+UPF | OS/firmware governor |
三、为什么唤醒代价决定了「空闲多久才值得」
每种省电模式都有一笔「进入+退出」的固定开销(能耗和时间)。只有省下来的电超过切换成本,才划算——这和能量 vs 功率里 race-to-idle 的算账是同一逻辑。

- CG 几乎没有门槛:一个使能信号、下一拍就能继续,所以哪怕只空闲两三个周期也该门控——这就是综合器会自动插 ICG 的原因(时钟门控直觉)。
- PG 门槛最高:断电要先隔离、保持,上电要等电源稳定、对保持电容和域内去耦充电(产生涌流 in-rush current,还要控制开关阵列分批闭合以免砸塌电源)、再恢复状态。只有空闲足够长、省下的漏电累积超过这套开销才值。因此 PG 用于深睡,不用于频繁的零星停顿。
- DVFS 在中间:切档要调稳压器输出、等 PLL 锁定到新频率,约数到数十微秒;它不针对「空闲」,而针对「吞吐需求下降但还要持续算」的时间段。
四、可验算的一笔账:空闲多久才值得断电
设某域:运行 30mW(动态主导),只做时钟门控时漏电 0.5mW;做电源门控后域漏电≈0,但每次断电+上电的额外能耗(隔离/保持/涌流充电/恢复)折算 E_wake = 30 µJ,唤醒时间 100µs。
- 时钟门控在空闲 t 内能耗:
0.5mW × t; - 电源门控在空闲 t 内能耗:
≈ 30µJ(一次性切换开销,域内电近零)。
令两者相等求临界空闲时长:0.5e-3 × t = 30e-6,得 t = 0.06s = 60ms。
解读:预期空闲短于约 60ms,省的漏电还抵不上一次断电/唤醒的开销,时钟门控更划算;长于约 60ms(且这段时间确实不用它),电源门控开始净赚,空闲越久赚得越多。真实临界值随漏电大小、保持范围、稳压器效率而变,但「长睡才断电、短停只停钟」的结论普遍成立。这也是 MCU/手机要分多级睡眠而不是见空闲就全断电的原因(见待机与睡眠模式)。
五、DVFS 为什么不能代替前两者
DVFS 让模块继续在低压低频跑,因此:
- 它不产生唤醒/重启问题,状态全在、数据不断流,适合「视频从 60 帧降到 30 帧」这类负载连续但变轻的场景;
- 但电压不能无限降(有 Vmin,见电压与频率),降到最低档后若还有空闲,动态功耗仍在、漏电也一直在;
- 所以真正没活干时,DVFS 之后还要叠加 CG(把剩余空闲周期的时钟停掉),长时间彻底没活再叠加 PG。三者是接力,不是替代。
六、三者叠加:真实系统的一条典型轨迹
实际系统不是三选一,而是在时间轴上接力加深、再逐级醒来。以手机/MCU 处理一个短促事件为例:
平时无任务 → 大部分域电源门控,仅常开岛 + RTC(漏电近零)
RTC/引脚唤醒 → 闭开关、上电稳定、恢复保持状态(涌流/恢复开销一次性)
要持续处理轻负载 → 升到最低 OPP(低压低频,DVFS)
负载变重 → 逐档升频升压(DVFS),大核按需上电
任务内零星气泡 → 时钟门控填空(逐周期停钟)
任务结束 → 降档 → 停钟 → 保持/隔离 → 断电,回深睡这条轨迹对应了后续《SoC 电源架构》篇和待机分级的运行形态。省电的本质是:让每块硅在每个时刻都处在满足当前/即将到来的性能需求的最浅(最省)状态。
七、选型决策:三问定手段
- 还要不要继续算? 要,但吞吐需求下降 → DVFS;完全不要 → 进入下面的空闲判断。
- 空闲多久、多久要能响应? 逐周期~微秒、要求即时响应 → 时钟门控;毫秒/秒以上且容忍上电延迟 → 电源门控;介于其间 → 降频/深睡过渡。
- 状态要不要留? 要立刻接着跑 → CG(天然保留)或 PG + 保持寄存器;可重新初始化 → 直接 PG 冷关,最省面积漏电。
再用第 4 节的临界时长账确认断电的切换能耗是否被省下来的漏电摊薄——空闲比临界短就别断。
八、常见误用
- 用 CG 想救待机漏电:钟停了管还通电,深睡漏电纹丝不动,这是时钟门控救不了待机的经典误区。
- 对频繁短停顿做 PG:还没省够漏电就被反复上电的涌流和恢复开销吃光,甚至因频繁开关影响响应。
- 把 DVFS 当睡眠:模块还在低压低频跑、漏电照常,真空闲时要再叠加 CG/PG。
- 忽略转换开销硬件:PG 的保持/隔离/电平转换、DVFS 的可调稳压器和 PLL 都要在架构期规划(见低功耗流程),临时加不上。
九、漏电压倒一切:先进节点为什么长睡几乎只能靠断电
三选一的天平随工艺节点在悄悄倾斜,背后是漏电与工艺。老工艺漏电可忽略,系统只要时钟门控停掉动态电就够省,电源门控可有可无;先进节点漏电在睡眠态占主导,光停钟省不下待机电流,于是:
- 浅睡(CG)的实际收益变小:钟虽停,整颗通电的域仍按漏电功率持续耗电,空闲越长漏得越多;
- 临界空闲时长变短:漏电越大,「断电省下的漏电」越快摊平电源门控的唤醒能耗,使得更短的空闲就值得断电(第 4 节 60ms 的例子若漏电从 0.5mW 涨到 5mW,临界点降到约 6ms);
- DVFS 的睡眠价值下降:再低的频率只要通电就漏,纯待机更倾向直接关域而非低压挂着。
这解释了为什么现代手机 SoC、可穿戴芯片把电源域切得越来越细、常开岛越做越小、并大量使用高阈值厚氧器件:它们本质上都在和漏电抢「睡着时仍通电的晶体管数量」。反过来,对动态主导、漏电小的场景(高性能计算短期 burst、成熟工艺 FPGA),时钟门控和 DVFS 往往就是主力,电源门控因复杂度收益不高而少用。没有普适最优,只有结合「动态/漏电构成 × 空闲时长分布 × 响应要求」的选择——这也是为什么低功耗设计必须先量化场景占空比,而不能照搬某颗芯片的做法(场景量化见电池预算与待机分级)。
十、一个工程补充:切换不只有能耗,还有「滞后与迟滞」策略
实际电源管理器(PMIC/PMC 固件)不会瞬时在三态间跳,而普遍带迟滞/停留时间(hysteresis、dwell time):升频要快(性能敏感),降频/断电要「观察一会儿」确认负载真的持续低了才动作,避免在负载抖动边界反复横跳(thrashing)——因为每次 DVFS 切档或电源门控都有固定延迟与能耗,频繁切换既拖累性能又可能比不切更费。CPU 的 governor 用升档阈值低、降档阈值高的非对称设计,MCU 则用最短驻留时间过滤抖动,这和 C-state 的 residency 门槛是同一种工程智慧。最终系统调到的,往往不是理论最优点,而是「在负载预测不确定下足够鲁棒」的策略。
这一篇在知识体系里的位置
- 三个手段的单点直觉 → 时钟门控、电源门控、DVFS;
- 断电配套单元 → 保持与隔离、电平转换;
- 三招如何组合成分级睡眠 → 下一篇《待机与睡眠模式》;
- 省能量还是省功率的算账 → 能量与功率;
- 更大的系统视角 → 后续《SoC 电源架构》篇。
总结
一句话总结:clock gating、power gating、DVFS 名字相近却省不同的电、付不同的代价,选型只看两个问题——还需不需要继续算、空闲有多久且多久要能响应;时钟门控只停时钟沿,省的是时钟树与翻转的动态功耗,晶体管照常通电所以漏电照漏,但寄存器状态和接口完整保留、重新开钟约一个周期即可继续,零附加面积,适合逐周期到微秒级的瞬时空闲,也是综合器自动插 ICG 的原因;电源门控用电源开关切断整块域的供电,动态功耗与漏电一起压到近零,却必须配保持寄存器(否则醒来全 X 要冷启动)、隔离单元(否则断电域浮空使后级贯通)和跨电压的电平转换器,唤醒要经历上电、等电压稳定、给去耦电容充电的涌流和状态恢复,延迟几十微秒到毫秒级,因此只有当省下的漏电累积超过一次性切换能耗(可由漏电功率×空闲时长与唤醒能耗相等解出临界空闲时长,如 0.5mW 漏电、30µJ 唤醒能耗对应约 60ms 临界点)时才净赚,适合毫秒/秒级以上的长睡;DVFS 既不停钟也不断电、状态和数据流不断,而是按负载把电压频率一起降到刚好满足吞吐的 OPP 档,省的是随 V²f 变化的动态功耗(受 Vmin 限制)、完全不省漏电、切换要等稳压器和 PLL 约数到数十微秒,因此它针对的是「仍在持续算但变轻」而非空闲,降到最低档后剩余空闲还要叠加时钟门控、长时间彻底没活再叠加电源门控。真实系统在时间轴上把三者接力使用——深睡门控域、唤醒恢复、轻载低压低频、重载升档升压、任务内气泡用停钟填补、结束再逐级断电,让每块硅在每个时刻都处在满足性能与响应截止时间的最省状态,而不是三选一。