1. 低功耗设计概述
做芯片设计这么多年,我越来越觉得“低功耗”这三个字的分量。早年做 0.18μm 工艺时,功耗问题基本排在前三以外。现在呢?7nm、5nm 甚至 3nm 的片子,功耗往往是第一个被拎出来讨论的指标。今天这一章,咱们先聊聊低功耗设计到底为什么这么重要,功耗从哪来,以及我们手上有哪些可以打的牌。
1.1 低功耗设计的重要性
你想想看,一块手机 SoC,热设计功耗(TDP)也就 5W 到 10W 的样子。如果功耗超标,要么降频,要么过热关机——哪个用户受得了?在我参与的一个智能手表项目中,就因为漏电大了 30%,结果待机时间直接缩水一半。老板连夜把整个团队拉去开会,那次之后我才真正意识到,功耗不是“锦上添花”,而是“生死存亡”。
具体来说,低功耗设计的重要性体现在这几个方面:
- 延长电池续航——移动设备、物联网终端、可穿戴设备的核心痛点。
- 降低散热成本——功耗大了,封装、散热片、风扇都会涨价。我记得有个服务器芯片项目,散热方案的成本比芯片本身还高。
- 提升可靠性——温度每升高 10°C,芯片寿命大约减半。高温还会加速电迁移,严重时直接烧毁。
- 满足绿色标准——数据中心电费惊人,各国对能效有强制要求。不符合标准,连市场都进不去。
我个人的习惯: 在项目立项阶段,就把功耗目标和性能、面积放在一起谈。很多时候妥协一下架构,功耗就能降下来,而且不影响功能。别等后端流片了再回头补窟窿,那时候成本就太高了。
1.2 VLSI 功耗来源
功耗不是一种东西。搞清楚源头,才能对症下药。VLSI 的功耗主要分两大类:动态功耗和静态功耗。
动态功耗 是芯片在工作时产生的。它又包括两部分:
- 开关功耗——每次 0 变 1 或 1 变 0,对负载电容充放电消耗的能量。公式很简单:Pswitch = α·CL·VDD²·f。你注意看,电压是平方项——降一点电压,功耗掉得特别快。
- 短路功耗——信号翻转瞬间,PMOS 和 NMOS 同时导通,形成从电源到地的通路。功耗大小取决于翻转时间和晶体管尺寸。
静态功耗 是芯片不工作时也一直在漏的电。我来给你列一下主要的漏电机制:
- 亚阈值漏电(Isub)——阈值电压降了,晶体管关不死,电流从漏极跑到源极。
- 栅极漏电(Igate)——栅氧化层太薄了,电荷直接隧穿过去。
- PN 结漏电(Ijunction)——源/漏与衬底之间的反向偏置结漏电。
我曾经犯过一个错: 在一款 28nm 芯片中,只盯着动态功耗优化,结果漏电占了总功耗的 40% 以上。尤其在高温场景下,漏电甚至超过了动态部分。从那以后,我每次做功耗预算都会把静态功耗单独拎出来算一遍。
| 特征 | 动态功耗 | 静态功耗 |
|---|---|---|
| 产生条件 | 信号翻转时 | 始终存在(上电后) |
| 主导因素 | 电压、频率、负载电容、翻转率 | 阈值电压、温度、工艺尺寸 |
| 温度敏感性 | 中等(受迁移率影响) | 极高(漏电随温度指数增加) |
| 工艺微缩趋势 | 略有下降(面积小、电容小) | 快速上升(栅氧薄、沟道短) |
1.3 低功耗技术分类
低功耗技术说白了就是三件事:减少动态功耗、减少静态功耗、优化系统能效。我个人习惯把它们分成四个层次:
系统级技术
- 动态电压频率调节(DVFS)——任务轻的时候降频降压。我在一个视频编解码项目中用过,功耗直接降了 60%。
- 电源门控(Power Gating)——用开关把不需要的模块彻底断电。注意唤醒时间,不然影响响应。
- 时钟门控(Clock Gating)——不干活的时候把时钟停掉。这是最常见、成本最低的手段。
逻辑级技术
- 多阈值电压设计——关键路径用低阈值(快但漏电大),非关键路径用高阈值(慢但漏电小)。
- 操作数隔离——当某个运算单元的结果不会被使用时,把输入锁住,避免不必要的翻转。
- 数据编码——比如总线翻转编码,减少信号跳变次数。
物理级技术
- 多电压域——不同模块跑不同的电压。比如 SRAM 用 0.9V,核心逻辑用 0.7V。
- 衬底偏置——给衬底加反偏压来提高阈值电压,降低漏电。但这需要额外的电源轨。
- 版图优化——减小节点电容、优化走线长度,这些都能降低动态功耗。
工艺级技术
- 高 K 金属栅——解决栅极漏电问题。
- SOI / FinFET——减少漏电路径,提升电流驱动能力。
- 近阈值 / 亚阈值计算——把电压降到接近或低于阈值电压,功耗极低,但性能也低,适合 IoT 场景。
下面这张图把本章的知识结构理了一下,你可以对照着复习:
本章知识点要注意:
- 功耗 = 动态 + 静态,缺一不可。
- 电压对动态功耗有平方影响,对静态功耗有指数影响(通过阈值电压)。
- 低功耗技术要分层思考——系统层先砍大的,物理层再优化细节,别搞反了。
好了,这就是低功耗设计的基础框架。后面的章节会逐步深入,比如 Self-Refresh 这种状态下的时序怎么收敛、怎么验证。你先把这些概念吃透,后面讲具体技术时才不会掉队。