功耗危机:为什么早期建模如此重要?

各位同学好。今天我们来聊聊一个绕不开的话题——功耗。

说实话,我入行那会儿,功耗还不是头等大事。那时候大家拼的是频率,谁的主频高谁就牛。但现在?完全反过来了。功耗已经成了SoC设计的第一约束。你性能再强,功耗压不住,那就是一块废硅。

摩尔定律放缓:免费午餐结束了

先说说摩尔定律。这玩意儿大家应该都听过——每18个月晶体管数量翻一番。过去几十年,我们一直吃这波红利。工艺从180nm一路走到现在的3nm,每代都能白嫖性能和功耗的改善。

但你看现在呢?

  • 7nm之后,每代工艺的功耗改善幅度从40%降到了15%左右
  • 漏电流占比越来越高,静态功耗成了大麻烦
  • 电压 scaling 基本到头了,0.6V以下很难再降

我在一个7nm的项目里就吃过这个亏。项目初期按老经验估算功耗,结果后端一跑,静态功耗比预期高了30%。改设计?来不及了。最后只能降频,性能目标没达成。嗯,从那以后我再也不敢轻视早期功耗建模了。

核心观点:摩尔定律的红利期已经过去。你不能指望工艺帮你解决功耗问题。早期就要把功耗模型建起来,否则后期只能被动挨打。

暗硅效应:你花钱买了用不了的晶体管

再来说说暗硅效应。这个词听着挺玄乎,其实说白了就是——芯片上大部分晶体管不能同时工作。

为什么会这样?

因为功耗墙。你想想看,一个芯片的散热能力是有限的。如果所有模块同时跑,功耗瞬间就爆了。所以只能让一部分模块工作,另一部分歇着。那些歇着的晶体管,就是"暗硅"。

我做过一个移动SoC的项目,里面集成了CPU、GPU、NPU、DSP、ISP……一大堆东西。理论上峰值性能很漂亮,但实际跑起来,GPU和NPU不能同时全速运行。为什么?功耗包不住。你想想看,用户刷抖音的时候,CPU和GPU都在忙,但NPU基本闲着。这就是暗硅。

场景 活跃模块 暗硅模块 功耗占比
视频播放 VPU、Display GPU、NPU ~40%
游戏 CPU、GPU NPU、ISP ~80%
AI推理 CPU、NPU GPU、VPU ~60%

这张表说明什么?不同场景下,暗硅的比例差异很大。如果你不做早期功耗建模,你怎么知道哪个场景会撞功耗墙?

我的建议:早期就要做场景分析。把典型用例的功耗跑一遍,找到功耗热点。别等到流片回来才发现——"哎呀,这个场景功耗爆了"。

功耗已成为第一约束

以前做芯片,流程是这样的:先定性能目标 → 做架构设计 → 跑RTL → 综合 → 布局布线 → 最后看功耗。功耗就是个"检查项",过了就行,不过就调一调。

现在呢?完全反过来了。

我最近参与的一个AI芯片项目,第一版架构评审,老板上来就问:"功耗预算多少?" 性能?那是后面的事。功耗预算定不下来,架构方案就别想往下走。

为什么?因为功耗决定了你的封装成本、散热方案、电池续航、甚至产品形态。一个50W的芯片和一个5W的芯片,完全是两个世界的东西。

注意:不要在RTL阶段才开始考虑功耗。那时候能做的优化非常有限——门级优化、时钟门控、电源门控……这些都是"微调"。真正的功耗优化,要在架构阶段做。比如:

  • 选择低功耗的架构方案
  • 做电压频率折中
  • 规划电源域和时钟域
  • 评估不同场景下的功耗分布

早期建模的价值

说了这么多问题,那早期建模到底能解决什么?

我个人习惯把早期建模的价值归纳为三点:

  1. 提前发现功耗问题——别等到后端才看到功耗超标
  2. 指导架构决策——哪个方案功耗最优?建模跑一跑就知道
  3. 降低迭代成本——架构改一次的成本,比RTL改一次低两个数量级

我记得有个项目,架构阶段我们做了三个方案:A方案用高性能CPU+小GPU,B方案用中性能CPU+中GPU,C方案用小CPU+大GPU。光看性能,A方案最好。但早期功耗模型一跑,A方案在典型场景下功耗超了20%。最后选了B方案,性能差一点,但功耗刚好卡在预算内。

你说早期建模重不重要?

嗯,这就是为什么我们要花一整章来讲这个话题。后面我们会深入具体的建模方法和工具,但今天先把"为什么"讲清楚。

一句话总结:摩尔定律放缓 + 暗硅效应 = 功耗成为第一约束。早期建模不是可选项,是必选项。

功耗危机:早期建模的核心逻辑 摩尔定律放缓 暗硅效应 功耗成为第一约束 早期功耗建模 提前发现问题 指导架构决策 降低迭代成本 早期建模不是可选项,是必选项

专注资料整理