第二讲:功耗基础理论——动态功耗与静态功耗、CMOS功耗公式、电压与频率的平方关系

各位同学,咱们今天聊点实在的。功耗这东西,说白了就是芯片的“命门”。你设计得再花哨,功耗一超标,全都白搭。我当年刚入行时,带我的老工程师跟我说过一句话,我一直记到现在:“功耗不是算出来的,是设计出来的。”今天这堂课,咱们就把功耗的底裤扒干净。

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

动态功耗,就是芯片在“动”的时候消耗的能量。什么叫“动”?就是信号从0翻到1,或者从1翻到0。你想想看,一个门电路啥也不干,就待在那儿,它是不怎么耗电的。但只要它开始翻转,电流就哗哗地流。

动态功耗主要由两部分组成:

  • 开关功耗:给负载电容充放电消耗的能量。这是大头。
  • 短路功耗:PMOS和NMOS同时导通时,电源到地直接短路产生的电流。这个占比小,但频率高了也不容忽视。

我在项目中遇到过一件事。有个同事设计的模块,动态功耗怎么压都压不下去。后来一查,发现是某个总线上挂的负载太多,电容太大,每次翻转都像在推一座山。嗯,这就是典型的开关功耗失控。

核心公式:

动态功耗 Pdynamic = α × CL × VDD² × f

其中:

  • α:翻转活动因子(0到1之间,表示平均每个时钟周期翻转的概率)
  • CL:负载电容
  • VDD:供电电压
  • f:工作频率

注意看这个公式,VDD是平方关系。这意味着什么?电压降一点点,功耗就能省一大截。我建议你在做功耗优化时,第一个盯的就是电压。

2.2 静态功耗:芯片待机时也在烧钱

静态功耗,也叫漏电功耗。芯片啥也不干,就通着电,它也在耗电。为什么?因为晶体管不是完美的开关,关断时总会有那么一点点电流漏过去。

静态功耗的来源主要有三个:

  1. 亚阈值漏电:晶体管在关断状态下,源漏之间仍有微弱电流。工艺越先进,这个越严重。
  2. 栅极漏电:栅氧化层太薄,电子直接隧穿过去。28nm以下工艺尤其明显。
  3. 栅极感应漏电:漏极电压通过沟道感应到源极,产生漏电流。

静态功耗的公式很简单:

Pstatic = Ileak × VDD

Ileak 是总漏电流,包括亚阈值漏电、栅极漏电等。

我曾经踩过一个坑。有个低功耗项目,动态功耗优化得漂漂亮亮,结果一测总功耗,还是超标。查了半天,发现是某个模块在休眠模式下没关电源,静态功耗占了总功耗的40%。从那以后,我每次做功耗评估,都会先问一句:“待机时漏电算清楚了吗?”

注意:先进工艺下(7nm、5nm),静态功耗占比越来越高。有些场景下,静态功耗甚至能超过动态功耗。别只盯着动态功耗看,漏电才是隐藏的“电老虎”。

2.3 CMOS功耗公式:一张图看懂全局

把动态和静态加起来,就是CMOS电路的总功耗:

Ptotal = α × CL × VDD² × f + Ileak × VDD

这个公式,我建议你刻在脑子里。它告诉你三件事:

  • 想降动态功耗,降电压最有效(平方关系)
  • 想降静态功耗,降漏电流最直接(工艺、温度、电压都影响)
  • 频率和功耗是线性关系,但频率高了往往需要更高电压,所以实际影响更大

咱们用表格对比一下动态和静态功耗的特点:

特性 动态功耗 静态功耗
产生原因 信号翻转、充放电 晶体管漏电
与频率关系 线性正比 基本无关
与电压关系 平方正比 线性正比
与温度关系 弱相关 强相关(温度越高漏电越大)
主要优化手段 降电压、降频率、降活动因子 电源门控、多阈值工艺、衬底偏置

2.4 电压与频率的平方关系:为什么降电压这么香?

咱们再深挖一下电压和频率的关系。你可能会问:“为什么公式里电压是平方,频率只是一次方?”

原因很简单。动态功耗的本质是给电容充放电。电容上存储的能量是 ½CV²,每次翻转充放电一次,消耗的能量就是 CV²。再乘以翻转频率 αf,就得到了 αCV²f。

所以,电压降一半,功耗理论上能降到原来的四分之一。当然,实际中不会这么理想,因为电压降了,频率也得跟着降,否则电路跑不动。但即便如此,降电压依然是性价比最高的功耗优化手段。

实战技巧:

我在做DVFS(动态电压频率调整)时,习惯先找出每个电压点下能跑的最高频率。然后画一条“电压-频率”曲线。这条曲线越陡,说明电压对频率的敏感度越高,降电压的收益就越大。

举个例子:1.0V时能跑1GHz,0.9V时能跑800MHz。电压降了10%,频率降了20%,但功耗降了(0.9²/1.0²) × (0.8/1.0) ≈ 0.65,也就是省了35%的功耗。这笔账,划算。

不过,降电压也有底线。电压太低,电路会出错。我记得有一次,为了省电把电压压得太低,结果芯片在高温下频繁报错。排查了整整两天,才发现是电压裕量不够。嗯,从那以后,我每次降电压都会留出至少10%的裕量。

2.5 小结:功耗优化的三个抓手

讲到这里,咱们把今天的核心内容捋一捋。功耗优化,说白了就是跟三个参数较劲:

  1. 电压 VDD:平方关系,降电压收益最大,但要小心裕量
  2. 频率 f:线性关系,降频率简单直接,但会影响性能
  3. 活动因子 α:跟设计相关,门控时钟、数据门控都是好办法

至于静态功耗,记住一句话:工艺越先进,漏电越要命。别等到流片回来才发现待机功耗超标,那时候哭都来不及。

下一讲,咱们聊聊多核异构架构下的功耗建模。到时候我会分享一个实际项目中的功耗分解案例,保证让你大开眼界。