技术微缩 (Technology Scaling)
让产品变得更便宜:
希望以同样的价格在单块芯片上出售更多的功能(晶体管)
以更低的成本制造相同的产品,以更低的价格出售相同的部件
晶体管的价格必须降低
让芯片更快、更小、功耗更低
微缩是半导体产业的关键创新驱动力
技术迭代周期跨度为 2-3 年
将尺寸缩小 30%:
减少栅极延迟 30%(将工作频率提高 43%)
晶体管密度翻倍
每次状态转换消耗的能量减少 65%(在频率增加 43% 的情况下,节省 50% 的功耗)
裸片尺寸 (Die size) 过去每一代都会增加 14%
如果没有Scaling,现代芯片的面积将会非常大
Dennard 在 1974 年提出的经典微缩定律
Full Scaling (Constant Electrical Field)
理想模型 —— 尺寸和电压按相同的因子 S 共同微缩
Fixed Voltage Scaling
直到最近最常见的模型 —— 仅尺寸微缩,电压保持不变
General Scaling
最符合当今实际情况的模型 —— 电压和尺寸按不同的因子进行微缩
随着晶体管变小,功耗密度保持不变
功耗与芯片面积成正比
电路速度变快
栅氧化层缩放的要求,使得在 130nm 节点之后,栅极漏电流大到已经不切实际
幸运的是,材料与工艺创新及时出现,缓解了这一问题
应变硅 Strained Silicon 在 90nm 引入
应变硅提高了驱动电流,从而放宽了栅氧化层继续缩放的要求
高 K 金属栅 High-K gate 在 45nm 引入
高 k + 金属栅晶体管突破了栅氧化层缩放的瓶颈
三栅 Tri-gate 在 22nm 引入
由于沟道有两个以上侧面受到栅极控制,沟道长度还能继续缩小到更小尺寸
在关断区,Tri-Gate 的漏电流更小,开启后,Tri-Gate 仍然能达到和 Planar 接近的较大驱动电流
随着工作电压降低,门延迟都会变大,但 22nm Tri-Gate 的延时曲线整体低于 32nm Planar
Tip
为什么随着工作电压降低,门延时会增大
在目前的缩放中,静态功耗(Stand-by power)占主导,Design 和 Process 相互依赖。
工艺缩放会改善面积、延迟和功耗
经典缩放大约在 2006 年(130nm) 左右终结
原因:栅氧厚度
此后,推动继续缩放的主要动力来自材料创新
功率密度目前已经接近一些极端高热流场景的水平,比如:
热板(Hot Plate)核反应堆(Nuclear Reactor)火箭喷嘴(Rocket Nozzle)
封装成本
电源供电网络设计
芯片和系统散热成本
抗噪声能力与系统可靠性
电池续航(在便携式系统中)
环境问题
功率以瓦特为单位,会决定电池续航时间(以小时计)
功率由连接到芯片
瞬时功率:
能量:
平均功率:
功率 Power 是曲线的高度。更低功率的设计,可能只是运行得更慢
能量 Energy 是曲线下的面积,两种方案可能消耗相同的能量
低功率设计不一定就是低能耗设计。
功耗耗散来源
总功耗:
动态功耗:
静态功耗:
漏电功耗来自名义上应处于关闭状态的器件
亚阈值漏电
结漏电
栅漏电
有比逻辑电路中,导通晶体管“对抗”时也会消耗功耗
竞争电流 Contention Current(如 pseudo-nMOS)
作为 IC 设计者,降低功耗应采取自顶向下的方法,而不是自底向上
影响最大的层面是:应用层和体系结构层
当门输出上升时
电容中存储的能量为:
但从电源取出的能量为:
来自
一个 CMOS 反相器驱动负载电容
开关功耗与活动因子
Note
物理意义是“在时间
而对一个 CMOS 门来说,每发生一次 0→1 的充电事件,电源要给负载电容
如果在时间
于是就有:
假设系统时钟频率为
其中
如果该信号是时钟,
如果该信号每个时钟周期只翻转一次,
所以,开关功耗为:
开关功耗
其中:
电容
电源电压
活动因子
时钟频率
当晶体管切换时,nMOS 网络和 pMOS 网络可能会在瞬间同时导通
这会导致一小段“短路”电流脉冲
如果输入和输出的上升/下降时间相当,它通常 小于动态功耗的 10%
一般情况下我们会忽略这一部分
其中
当
记住这个结论:
负载电容
短路电流峰值
pMOS / nMOS 的饱和电流
输入与输出边沿斜率的相对关系,而这个关系会受
如何最小化短路功耗
保持输入与输出的上升/下降时间尽量相同
如果
那么短路功耗会被消除,因为两个器件不会在同一时刻同时导通
估算在 1 GHz 下的动态功耗。忽略连线电容和短路电流。
在忽略短路电流的情况下,动态功耗仅由开关功耗决定
两类器件:
logic transistor:活动因子
memory transistor:活动因子
所以要分开算,再相加:
三种主要漏电来源:
栅极漏电
漏极结漏电
亚阈值电流(低能耗电路设计中的主导因素)
它对
在较老工艺中通常可以忽略
在一些 65 nm 及以下工艺 中,它会接近亚阈值漏电
对于 pMOS,栅漏电通常比 nMOS 小一个数量级
在工艺上可通过保持
高 k 栅介质 有帮助
一些工艺会提供多种
例如:给 3.3 V I/O 晶体管使用更厚的氧化层
在电路上可通过限制
亚阈值漏电分量当 MOSFET 工作在亚阈值区时(即
对于
其中
结漏电
来自反向 p-n 结的隧穿漏电,发生在扩散区与衬底或阱之间
带间隧穿(BTBT, Band-to-Band Tunneling)可能相当显著
特别是在高
当
温度越大,阈值电压越小,漏电流越大。
功耗对设计至关重要
功耗包括:开关功耗、短路功耗和漏电功耗
影响开关功耗的因素
影响短路功耗的因素
漏电及其组成部分
| 能量类型 | 固定吞吐率/延迟:设计阶段 | 固定吞吐率/延迟:非活跃模块 | 可变吞吐率/延迟:运行阶段 |
|---|---|---|---|
| 动态能量 | 逻辑设计;降低 | 时钟门控 | DFS、DVS(动态频率、电压缩放) |
| 泄漏能量 | 多 | 睡眠晶体管;多 | 可变 |
活动因子估计
设
则
当
但数据通常并不是完全随机的
例如:表示银行账户余额的 64 位数据,其高位通常为 0
数据经过 AND 和 OR 门传播后,活动因子通常会更低
与具体设计有关,但通常
复杂门的活动因子估计
对于 NOR 门,设输入
输出为 1 的概率:
输出从 0 跳到 1 的活动因子:
开关活动强烈依赖于输入统计特性
学会计算不同门的活动因子
信号之间的相关性会影响开关活动
降低开关活动:逻辑重构
逻辑重构:通过改变逻辑网络的拓扑结构来减少翻转次数
链式结构(Chain structure)
树式结构(Tree structure)
同样的四输入与门
对于随机输入,链式实现的总体开关活动比树式实现更低
降低开关活动:输入排序
输入排序:
在计算中间节点的翻转概率(开关活动因子)
将翻转率高(为 1 的概率高)的信号尽量晚一些引入,通常更有利
降低
将器件尺寸优化与降低电源电压结合起来,是降低逻辑网络能耗的非常有效的方法
器件尺寸会影响动态能耗
对于总体有效扇出 F 较大的网络,收益最大
左图:降低
级努力
面向最小能量的晶体管尺寸设计
目标:最小化整个电路的能量
设计参数:
约束条件:
其中
延时
延迟比写成两部分:
电压下降带来的影响(电压下降,门变慢。)
尺寸
单次翻转能量
归一化之后
多电源电压
降低
但会增大门延迟(降低性能)
在设计时确定关键路径,并对这些路径上的晶体管使用较高的
多电源电压的考虑事项
需要多少种
许多芯片本来就已经有两路电源(一路给核心,一路给 I/O)
当组合使用多个电源时,只要低电源电压模块去驱动高电源电压门(step-up),就需要电平转换器(level converter)
如果由
对于电压 step-down 的情况,不需要电平转换器
中间的图就是电平转换器:把低电压域
让每个模块在满足性能要求的前提下,以尽可能低的电压和频率运行
例如,一个片上系统 SoC:
存储器使用较高供电电压,以保证存储单元稳定性
处理器使用中等电压
低速运行的 I/O 外设使用较低电压
电压域
为不同模块提供独立电源
当信号从低
动态电压缩放
根据负载动态调整
硬件控制电路 DVS Controller 实时监控核心逻辑 Core Logic 的工作负载和温度
当判断当前负载较低时,控制器输出信号 Freq Control,调低系统时钟频率,同时通知外部的电压调节器 Switching Voltage Regulator 降低核心逻辑的供电电压
Working slow :不采用 busy + idle 模式,而是降低频率和电压,让任务刚好填满可用时间,从而降低功耗。动态功耗与电压的平方成正比
Working fast :当遇到高强度的任务时,系统判定负载很重,必须立刻提高频率和电压,以最快速度处理任务。
动态电压缩放(DVS)
通过降低供电电压来拉长执行时间
功耗按平方关系节省
只以刚好满足截止时间的速度工作
DVS 算法可以用硬件或软件实现
上图 传统模式:全速(高频高压)处理任务。橙色方块很高(功耗大)但很窄(执行时间短)
下图 DVS模式:降压降频模式,把任务横向拉长,降低功耗
| 能量类型 | 固定吞吐率/延迟:设计阶段 | 固定、可变吞吐率/延迟:非活跃模块 | 可变吞吐率/延迟:运行阶段 |
|---|---|---|---|
| 动态能量 | 逻辑设计;降低 ( | 时钟门控 | DFS、DVS(动态频率、电压缩放) |
| 泄漏能量 | 多 ( | 睡眠晶体管;多 ( | 可变 ( |
时钟门控
降低活动率
节省时钟活动功耗(
消除该模块中的所有翻转活动
需要判断该模块是否会被使用
上图是一个经典的无毛刺门控时钟 (Glitch-free Clock Gater) 的硬件实现方式
不能直接把 Enable Logic 连到与门,而是先连到中间的 Enable Latch(受反向时钟控制),如果 Enable 信号在时钟为高电平时发生跳变,与门输出会产生极其危险的极窄脉冲(毛刺),导致后级寄存器状态错乱。加上 Latch 后,强制 Enable 信号只能在时钟为低电平时才传递给与门,从而避开毛刺风险。
泄漏控制
泄漏与延迟之间存在权衡
目标是在 Sleep 模式下降低泄漏,在 active 模式下降低延迟
为了降低泄漏:
增大
只在关键电路中使用低
增大
Sleep 时进行输入向量控制
降低
体偏置
多阈值电压
与 multiple
对关键路径上的门分配低
关键路径通常具有负裕量或零裕量
对非关键路径上的门分配高
非关键路径通常具有正裕量
multiple
由于标准单元库的原因,门级实现较常见
粒度越细,泄漏控制越好,但控制成本也越高
泄漏示例
重新估算一个 10 亿晶体管芯片的功耗
估计静态功耗
亚阈值泄漏:
普通
高
所有存储器和 95% 的逻辑门使用高
栅泄漏:
结漏 : 可忽略
已知
“假设一半 turn-off,一半没有”。晶体管只有在关闭 (Off) 的状态下才会产生亚阈值漏电。在宏观统计上,可以合理假设在任意时刻,平均有一半的晶体管处于开启状态,另一半处于关闭状态。
栅漏电不区分
堆叠效应
串联关闭的晶体管泄漏更小
DIBL 效应 Drain Induced Barrier Lowering:由于
通过 2-stack 的泄漏约降低 10 倍
通过 3-stack 的泄漏会进一步降低
注意:随着
电源门控
当模块空闲时关闭其电源,以节省泄漏功耗
使用虚拟
对输出进行门控,防止无效逻辑电平传到下一级模块
这是降低泄漏最常见的方法之一
类似于用时钟门控降低动态功耗
典型的电源门控电路工作原理
一排并联的 PMOS 管(Sleep Transistors)控制着主电源(
正常工作时(Sleep=0),希望
输出隔离电路:当 电源被切断,
在工作模式下,睡眠晶体管导通,核心电路通过虚拟
在待机模式下,睡眠晶体管关闭,核心电路与真实电源/地断开,虚拟
电源级门控的优点与缺点
实现简单,可以在 IP 级完成,而不需要触及底层细节
有利于工艺迁移
电源门控结合 DVFS 是移动设备中最常见的节能技术
睡眠晶体管上的电压降会降低正常工作时的性能
因此需要把睡眠晶体管尺寸做得足够宽,以减小影响
宽睡眠晶体管的开关本身会产生动态功耗
只有当电路睡眠时间足够长时才值得使用
动态体偏置:工作时使用正向体偏置降低
有效,但会给物理设计带来挑战
需要三阱工艺
关键总结
多种降低功耗的技术
是 VLSI 设计中长期存在的重要问题
理解设计阶段与运行阶段之间的区别
理解影响动态功耗的因素及相关技术
理解影响泄漏功耗的因素及相关技术
低功耗设计策略
按不同设计层次分类:在 VLSI 设计过程中,不同层次都有可用于优化功耗的策略
| 设计层次 | 策略 |
|---|---|
| 操作系统层 | 分区,断电 |
| 软件层 | 规律性,局部性,并发性 |
| 体系结构层 | 流水线,冗余,数据编码 |
| 电路/逻辑层 | 逻辑风格,晶体管尺寸设计,能量恢复 |
| 工艺层 | 阈值降低,多阈值器件 |