2、功耗基础:动态功耗与静态功耗的物理本质,以及它们与电压、频率、工艺的关系

好,咱们正式开始聊功耗。说实话,功耗这个话题,我做了十几年芯片设计,越做越觉得它有意思。很多人一上来就背公式,什么P=CV²f,背得滚瓜烂熟。但真要问他——这公式到底怎么来的?为什么电压是平方项?为什么漏电现在这么头疼?能讲清楚的人不多。

今天我就带你把这些底层逻辑捋一遍。搞懂了这些,后面讲时钟门控、电源门控,你才能知道它们到底在解决什么问题。

2.1 动态功耗:芯片干活时烧的电

动态功耗,说白了就是芯片在“动”的时候消耗的能量。你想想看,一个CMOS门电路,从0变1,或者从1变0,总得给电容充放电吧?这个充放电的过程,就是动态功耗的来源。

公式很简单:P_dynamic = α × C × V² × f

我来拆开给你看:

  • α(翻转因子):一个时钟周期内,这个节点平均翻转多少次。不是每个时钟都在翻,所以α一般小于1。我见过新手直接设α=1,结果功耗估出来翻了一倍——嗯,流片回来散热压不住,那是真头疼。
  • C(负载电容):包括栅电容、连线电容、扩散电容。工艺越先进,线电容占比越大。
  • V(电压):核心供电电压。注意,这里是平方项!电压降10%,功耗降19%。所以为什么大家都拼命降电压?原因就在这儿。
  • f(频率):时钟频率。频率翻倍,功耗翻倍,线性关系。

核心结论:动态功耗中,电压是最大的杠杆。降电压比降频率划算得多。但电压不能无限降——阈值电压摆在那儿,再低管子就关不死了。

我在一个28nm的项目里遇到过这么个事:为了省电,我们把核心电压从1.1V降到了0.95V,动态功耗直接降了25%。但代价是什么?时序收敛变得极其困难,关键路径的setup slack几乎为0。最后不得不降了100MHz频率才稳住。你看,这就是trade-off。

2.2 静态功耗:芯片闲着也在烧的电

静态功耗,也叫漏电功耗。芯片啥也不干,就通着电,它也在耗电。为什么?因为晶体管不是理想开关。

理想情况下,管子关断时电流为0。但实际呢?沟道里总有点漏电流跑过去。这个漏电流,就是静态功耗的来源。

公式:P_static = I_leakage × V

漏电流主要有这么几种:

漏电类型 物理本质 与工艺的关系
亚阈值漏电 (Isub) Vgs < Vth时,沟道并未完全关断,载流子扩散 Vth越低,Isub指数级增大
栅极漏电 (Igate) 栅氧化层太薄,电子隧穿通过 氧化层厚度<2nm时急剧增加
栅感应漏电 (GIDL) 漏端高电场导致耗尽区载流子产生 短沟道效应加剧
PN结漏电 源/漏与衬底反偏PN结的少子漂移 温度升高,漏电翻倍

注意:我曾经在40nm节点做过一个IoT芯片,待机功耗要求10μA以下。结果第一次流片回来,常温下测出来15μA。查了半天,发现是某个模块的电源没完全关断,亚阈值漏电叠加了。从那以后,我养成了一个习惯——每个模块的电源域隔离,必须亲自过一遍。

静态功耗有个很讨厌的特性:随温度指数增长。温度每升高10°C,漏电大约翻一倍。你想想看,芯片跑起来发热,发热导致漏电增大,漏电增大又导致更热——这就是正反馈。搞不好就热失控了。

2.3 电压、频率、工艺三者的博弈

好,现在我们把动态和静态放在一起看。你会发现,电压、频率、工艺这三个参数,其实是在互相拉扯。

2.3.1 电压 vs 频率

电压越高,管子开关越快,频率就能跑得更高。但代价是动态功耗按平方增长。反过来,降电压省电,但频率必须跟着降。

这就是DVFS(动态电压频率调节)的基本逻辑:活重的时候,升压提频;活轻的时候,降压降频。我做过一个手机芯片,视频播放时频率跑1.2GHz,电压0.9V;待机时频率降到200MHz,电压压到0.6V。功耗从500mW直接掉到30mW——效果非常明显。

2.3.2 工艺缩放的影响

工艺越先进,栅长越短,阈值电压越低。好处是开关速度快,动态功耗密度降低。但坏处呢?

  • 漏电爆炸式增长:Vth降低,亚阈值漏电指数上升。到了7nm以下,静态功耗占比可能超过40%。
  • 电压缩放空间变小:以前1.2V降到0.8V很轻松,现在0.7V降到0.6V都费劲——再低管子就关不断了。
  • 工艺偏差更严重:同一片wafer上,不同芯片的漏电可能差3倍。你按最差情况设计,功耗就超标;按典型情况设计,良率又出问题。

我的经验:在先进工艺下做低功耗设计,一定要做corner分析。我习惯至少跑5个corner:TT、FF、SS、SF、FS。特别是漏电,FF corner下可能比TT高2-3倍。如果你只按TT设计,量产时等着哭吧。

2.4 动态 vs 静态:谁才是大头?

这个问题没有标准答案,完全看场景。

场景 动态功耗占比 静态功耗占比 设计重点
高性能CPU(满载) 80-90% 10-20% 降电压、时钟门控
IoT传感器(待机) 5-10% 90-95% 电源门控、低漏电库
移动SoC(中等负载) 60-70% 30-40% DVFS + 电源门控

你看,高性能场景下,动态功耗是主角。但到了IoT这种动不动就睡99%时间的场景,静态功耗就成了老大难。我做过一个BLE芯片,发射时电流8mA,但待机时要求0.5μA。为了这0.5μA,我们花了三个月做电源域划分和retention register设计——静态功耗的优化,有时候比动态功耗更磨人。

2.5 小结:功耗设计的底层逻辑

讲到这里,你应该明白了:

  1. 动态功耗来自电容充放电,跟电压的平方成正比。降电压是第一优先级。
  2. 静态功耗来自晶体管漏电,跟阈值电压和温度强相关。先进工艺下越来越头疼。
  3. 电压、频率、工艺三者互相制约。没有免费的午餐,每个选择都有代价。

我个人习惯,拿到一个新项目,第一件事就是算功耗预算。动态多少,静态多少,哪个是瓶颈。然后针对性地选方案——动态功耗大,上时钟门控;静态功耗大,上电源门控。后面几章,我会把这些技术一个个拆开来讲。

嗯,今天就到这儿。下一章我们聊时钟门控——这玩意儿看起来简单,但用不好反而会翻车。到时候我给你讲讲我踩过的坑。