Chapter 9:功耗 Power

工艺缩放对功耗的影响,以及动态与静态功耗的来源和优化手段。

🛠️表示还在修缮

‼️🌟表示比较重要 怀疑只有这些会考,其他有印象就行

一、🛠️Scaling(只整理了一部分,等整章弄完了再来补充,感觉是科普,不知道能考啥)

Technology Scaling Models(工艺/技术缩放模型)

Full Scaling(Constant Electrical Field)完全缩放(恒定电场缩放)

  • 理想模型——尺寸和电压按照相同的缩放因子 S 一起缩小。
  • 这样做的好处是电场强度基本不变。因为电场大致可以理解为E=VLE= \frac{V}{L},器件可靠性比较好,功耗也会降低。但是它是比较理想化的模型,因为实际中电压不能无限降低,否则晶体管开关速度、噪声容限都会受到影响。

Fixed Voltage Scaling 固定电压缩放

  • 直到最近都曾是最常见的模型——只有器件尺寸缩小,电压保持不变。这样可以让芯片速度提高,因为尺寸变小、电容减小,晶体管开关更快。但是问题是:尺寸变小了,电压不变,电场会变大。
  • 这容易带来:功耗密度升高; 器件发热严重; 可靠性下降; 氧化层击穿、热载流子效应等问题加重。 所以这种模型在早期较常见,但随着工艺越来越小,已经越来越不适合。

General Scaling 通用缩放 / 一般缩放

  • 尺寸会缩小,电压也会降低,但二者不是按照完全相同的比例缩放,是现代芯片设计通常采用的折中方式。

Tox Scaling Challenge: Gate Leakage氧化层厚度缩放的挑战:栅极漏电

  • 随着工艺尺寸不断缩小,晶体管的沟道长度变短,为了保证栅极还能有效控制沟道,栅氧化层厚度 ToxT_{ox}也必须变薄。
  • ToxT_{ox} 变得非常薄时,电子可以通过 量子隧穿效应 穿过原本应该绝缘的氧化层,从栅极流向沟道或衬底,形成 栅极漏电流 IGI_G

img

  • 这会带来:
    1. 静态功耗增加 即使晶体管不工作,也会有漏电流流过,芯片待机功耗变大。
    2. 发热严重 漏电流越大,功耗越大,芯片温度也更难控制。
    3. 可靠性下降 长期漏电和高电场会影响栅氧化层寿命,增加器件失效风险。
    4. 继续缩放变得困难 单纯靠继续减薄 SiO2SiO_2 已经不可行。
  • 改善这个问题的工艺和材料创新:High-k 介质 + 金属栅技术.这样,在电学效果上,让栅极看起来像拥有很薄的氧化层;但在物理厚度上,实际绝缘层可以做得更厚。

Three Key Enablers for Continued Scaling支撑工艺继续缩放的三个关键技术

img

Strained silicon introduced in 90nm 应变硅技术在 90 nm 节点引入

  • 普通硅材料中,电子和空穴的运动速度有限。通过让硅晶格产生适当拉伸或压缩,可以改善载流子迁移率,让电子或空穴运动得更快。结果是:IdriveI_{drive}增大,也就是晶体管的驱动电流变大,开关速度提高。
  • 这样做的好处是即使不继续大幅减薄栅氧化层,也能提升晶体管性能,从而缓解了栅氧化层继续缩薄带来的漏电问题。

High-K metal gate introduced in 45nm High-K 金属栅技术在 45 nm 节点引入

  • 前面讲过,电学上等效为很薄的氧化层,但物理上可以做得更厚。这样既能保持栅极对沟道的控制能力,又能显著降低隧穿漏电流

Tri-gate introduced in 22nm 三栅极 / Tri-gate 晶体管在 22 nm 节点引入finFET

  • 传统 MOSFET 是平面结构,栅极主要从上方控制沟道。随着沟道越来越短,栅极对沟道的控制变弱,会出现短沟道效应,例如关不住、电流泄漏增大等问题。
  • Tri-gate 把沟道做成立体鳍片形状,栅极从上方和两侧包围沟道,相当于从多个方向控制电流。这样可以增强栅极控制能力;降低短沟道效应;减小漏电;支持晶体管继续缩小。

img

Changes in Scaling工艺缩放方式的变化

对比维度传统工艺缩放现在的工艺缩放
成本变化缩放降低成本缩放仍然可以降低成本
性能提升来源缩放直接推动性能提升材料、器件结构和工艺创新推动性能提升
主要限制因素主要受性能限制主要受功耗限制
主导功耗类型动态功耗占主导待机功耗 / 漏电功耗占主导
设计与工艺关系设计和工艺相对独立设计和工艺高度相关、需要协同优化
核心特点晶体管变小通常就能带来更快、更便宜的芯片单纯缩小尺寸已经不够,需要材料、结构和设计共同优化
典型问题如何继续提高速度如何控制漏电、功耗、发热和工艺复杂度

img

颜色 / 符号含义趋势
橙色三角形晶体管数量,单位是 thousands持续快速上升
蓝色圆点单线程性能早期快速提升,后期增速变慢
绿色方块时钟频率,MHz2000 年前快速上升,之后趋于平缓
红色倒三角典型功耗,Watts逐渐上升,但不能无限增加
黑色菱形逻辑核心数2000 年后明显增加

2000 年后的 transition:转向多核黑色菱形表示 Number of Logical Cores,逻辑核心数。可以看到,在 2000 年前后,核心数基本很少,接近 1;但之后开始明显增加。

这是因为频率提高受限后,厂商开始把更多晶体管用于增加多个核心,让多个核心并行工作。

这一部分的总结

img

中文人话:早期工艺缩放能够同时带来面积减小、速度提升和功耗降低,因此晶体管越做越小,芯片自然变得更快、更便宜。但在 130 nm 左右以后,传统缩放遇到了栅氧化层过薄和漏电流增大的问题,单纯缩小尺寸不再足够。因此,后续工艺发展越来越依赖材料和器件结构创新,例如 High-K 金属栅、应变硅和 FinFET。

二、Power and energy

Why Power matters

img

  • 从 1971 年到 2000 年左右,Intel 处理器从 4004、8008、8086、286、386、486 发展到 Pentium、P6 的过程中,功耗整体呈持续上升趋势,而且纵轴采用对数刻度,说明功耗增长幅度很大:早期处理器功耗不到 1W,而后期逐渐上升到十几瓦甚至更高。它强调的是,随着晶体管数量增加和工作频率提升,处理器性能虽然不断增强,但功耗和发热也迅速变成关键限制因素,因此芯片设计不能只追求速度提升,还必须重视功耗控制、散热能力和可靠性问题。

img

  • 处理器功耗密度随工艺和性能提升而快速上升,当单位面积发热接近电热板甚至更高水平时,芯片已经不能单纯依靠提高频率来提升性能,必须重点考虑低功耗设计、散热和能效优化。

img

  • 功耗影响的:封装成本、电源轨设计、芯片和系统散热成本、抗噪声能力和系统可靠性、便携设备中的电池寿命、环境问题。

Power and Energy

img

平均功率的计算⬆️

img

功率表示单位时间消耗能量的快慢,能量表示完成一段时间或一个任务总共消耗了多少;低功率设计如果运行时间变长,最终消耗的能量不一定更少。

🌟数字集成电路中的功耗来源(感觉和考试相关性大一点)

铺垫:各个器件的功率计算

img

img

Ratioed circuits,比率逻辑电路输出电平不仅由逻辑决定,还依赖于上拉网络和下拉网络的驱动强弱比例。比如psnudo-nMOS电路。

img

开关电流

铺垫:电容功耗

img

开关波形图

img

img

img

🌟🌟开关功耗‼️可能有计算

img

img

可能会考计算,例子:

img

短路电流

概念:

当晶体管发生切换时,nMOS 网络和 pMOS 网络可能会在瞬间同时导通。

  • 这会导致一个短暂的短路电流脉冲。
  • 如果输入和输出的上升/下降时间相当,那么这部分功耗通常小于动态功耗的 10%。
  • 我们通常会忽略这一部分功耗。

img

发生过程:

img

影响因素

img

减小短路电流的方法:

img

短路功耗主要来自输入翻转时 PMOS 和 NMOS 的短暂同时导通。输入边沿越慢,同时导通时间越长;输出边沿过慢又会把慢边沿传给下一级。因此在多级逻辑链中,应让输入、输出 rise/fall time 大致匹配,使每一级都不承受过慢的边沿,从而降低整体短路功耗。

Leakage漏电

主要有gate leakage , drain junction leakage , sub-threshold current.

img

Gate Leakage栅极漏电
  • 定义:MOS 管在关断或工作时,栅极通过栅氧化层产生的漏电流,和栅氧化层厚度 toxt_{ox}、栅源电压 VgsV_{gs} 有非常强的关系。栅氧化层越薄,Vgs 越大,栅氧化层两端的电场越强,电子越容易被拉过氧化层栅极,漏电越大。
  • scaling:在较老的工艺中,栅极漏电可以忽略不计。在某些 65 nm 及以下工艺中,栅极漏电可能已经接近亚阈值漏电的大小。所以先进工艺面临一个矛盾:氧化层薄,有利于提高晶体管控制能力和速度;但氧化层太薄,会导致严重的栅极漏电。
  • p/n的差异:pMOS 的栅极漏电通常比 nMOS 小一个数量级(10倍)。nMOS 中主要载流子是电子,pMOS 中主要载流子是空穴。电子的有效质量通常比空穴更小,因此电子更容易发生隧穿。nMOS 的栅极漏电往往比 pMOS 更严重。
  • 工艺上的改善:在工艺层面,可以通过使用大于 10.5A˚10.5 \, \text{Å} 栅氧化层厚度来控制漏电。传统 MOS 管常用二氧化硅作为栅氧化层。但是二氧化硅的介电常数不够高,High-k 材料可以解决这一点:在保持较大栅电容的同时,让物理厚度可以做得更厚。有些工艺会提供多种不同厚度的栅氧化层。同一芯片中不同供电电压下的晶体管制作不同的厚度,例如thicker oxide for 3.3 V I/O transistors(核心逻辑电路通常工作在较低电压下,例如 1.0 V 或 1.2 V)
  • 电路上的改善:在电路设计层面,可以通过限制电源电压 VDDV_{DD} 来控制栅极漏电。不过这里也有权衡。降低 VDDV_{DD} 虽然可以减少动态功耗和部分漏电,但也会降低电路速度。为了保持速度,可能又要降低阈值电压VTV_T,这会增加亚阈值漏电。
Subthreshold Leakage Component亚阈值漏电流
  • 亚阈值:即使 VGSV_{GS} 小于阈值电压 VTV_T,虽然没有形成强反型沟道,但沟道区域并不是完全没有载流子。仍然会有少量载流子由于浓度差发生扩散,从源极流向漏极。这个电流就叫IsubI_{sub}
  • 阈值电压越低,漏电越严重: img
IsubeVGSVTnVTI_{sub} \propto e^{\frac{V_{GS}-V_T}{nV_T'}}
  • 怎么越来越像微电子器件了,公式里面DIBL都出来了,应该不会考这种公式,大概了解一下量级

img

Junction Leakage

img

  • 反向偏置 p-n 结产生的隧穿漏电,发生在扩散区与衬底或阱之间
  • 带间隧穿(BTBT)可能会很显著,尤其是在高 VtV_t 晶体管中,因为其他漏电较小 当 Vdb=VDDV_{db}=V_{DD} 时最严重。
漏电流的影响因素

img

img

重点总结:

img

三、Power optimization

减少动态功耗——设计阶段

表格从两个角度分类:

第一,按功耗类型分为:

  • Active Energy:电路工作时产生的动态能量,主要来自节点翻转、电容充放电。
  • Leakage:电路即使不工作也会存在的漏电功耗。

第二,按优化发生的时间和场景分为:

  • Design Time:设计阶段就决定好的优化方法。
  • Non-active Modules:模块暂时不用时采用的节能方法。
  • Run Time:运行过程中动态调整的方法。

从逻辑电路设计、缩小Vdd、改变尺寸、使用多种Vdd下手

img

减小开关功耗:

img

img

Activity Factor Estimation活动因子估计

开关功耗主要发生在输出从低电平上升到高电平的过程,我们关注会发生多少个这样的翻转过程

  • 在完全随机的情况下,节点为0和1的概率各为50%,节点发生 0 → 1 翻转的概率,等于“上一时刻为 0 的概率”乘以“下一时刻为 1 的概率”。也就是:

P01=Prob(i=0)×Prob(i=1)P_{0\rightarrow1}=Prob(i=0)\times Prob(i=1),为0.25。

  • 实际数据通常不是完全随机的。比如 64 位数据如果表示银行账户余额,高位 bit 通常是 0。因为普通账户余额不会大到需要用满 64 位,所以高位长期保持 0,很少翻转。这说明真实电路中的活动因子往往小于完全随机情况下的 0.25。
  • 数据经过 AND 门和 OR 门之后,活动因子通常会降低。因为 AND 门、OR 门的输出不一定像输入那样随机。例如 AND 门只有所有输入都为 1 时输出才为 1,所以输出更容易偏向 0;OR 门只要有一个输入为 1 输出就为 1,所以输出更容易偏向 1。输出一旦偏向某个固定值,翻转概率就会下降。
🌟复杂逻辑门的活动因子估算‼️会计算

同样的,输出为0的概率乘上输出为1的概率。

img

信号相关性对活动因子的影响

当信号间有相关性时,如A=B,最后的结果也会完全不同。

img

改变逻辑电路结构来减小开关功耗:

img

改变输入信号顺序来降低翻转频率:

img

尽量把容易频繁翻转的信号置于逻辑结构中的后几环

降低Vdd来减小开关功耗

需要在开关速度和功耗的矛盾中选取一个折中的方案。

img

  • 器件尺寸调整与降低电源电压相结合,是减少逻辑网络能量消耗的一种非常有效的方法。
  • 器件尺寸调整会影响动态能量消耗。
    • 对于整体有效扇出较大的网络,收益最大。F=CLCg,1F = \frac{C_L}{C_{g,1}}

其中,FF表示整体有效扇出,CLC_L 是负载电容,Cg,1C_{g,1}是第一级门的输入栅电容。

🛠️最小能量的晶体管尺寸设计Transistor Sizing for Minimum Energy

这一块lzm还不太会,先跳过,奉上ppt

img

img

img

Multiple VDD
  • 降低VDDV_{DD}会以平方关系降低动态能量消耗。
    • 但会增加门延迟,也就是降低性能。
  • 在设计阶段确定关键路径,并为这些关键路径上的晶体管使用较高的VDDV_{DD},以保证速度。对于其他门,则使用较低的 VDDV_{DD},尤其是那些驱动大电容的门,因为这样可以获得最大的能量收益。
  • 需要多少个 VDDV_{DD}?——两个电源电压正在变得越来越常见
    • 许多芯片已经有两个电源:一个用于核心电路,一个用于 I/O 接口。
  • 当结合使用多个电源电压时,如果低电源电压模块要驱动高电源电压的门,就需要电平转换器。 也就是从低电压到高电压的转换,称为 升压 step-up
    • 如果一个由 VDDLV_{DDL}供电的门去驱动一个由VDDHV_{DDH}供电的门,那么 PMOS 可能永远无法完全关断。
    • 对于从高电压到低电压的变化,也就是 降压 step-down,通常不需要电平转换器。

img

减少动态功耗——运行阶段

img

  • DFS:Dynamic Frequency Scaling,动态频率调节
  • DVS:Dynamic Voltage Scaling,动态电压调节

它们属于 运行时优化方法。当系统性能需求不高时,可以降低频率或降低电压,从而减少动态能量;当性能需求提高时,再提高频率或电压。

电压 / 频率动态调节
  • 让每个模块在满足性能要求的前提下,以尽可能低的电压和频率运行
    • 例如,一个片上系统(System-on-Chip, SoC):
      • 对存储器使用较高的电源电压,以保证存储单元稳定性;
      • 对处理器使用中等电压;
      • 对以较低速度运行的 I/O 外设使用较低电压。
  • 电压域
    • 为不同模块提供独立的电源;
    • 当信号从低 VDDV_{DD}电压域跨越到高 VDDV_{DD}电压域时,需要使用电平转换器。 (不知道这里为什么要放这一页PPT,感觉这个属于multi Vdd的范畴)
  • 当系统任务少、性能需求低时,就降低电压和频率,让电路慢一点工作,从而降低功耗;当系统任务多、需要快速处理时,就提高电压和频率,让电路进入高速工作状态。

img

作用机制

img

  • DVS Controller 动态电压调节控制器,负责判断系统现在应该快还是慢。
  • Switching Voltage Regulator 开关电压调节器,根据控制器的指令输出合适的VDDV_{DD}
  • Core Logic 核心逻辑电路,也就是实际工作的计算模块。

Core Logic 会向 DVS Controller 反馈:

  • Workload:当前工作负载;
  • Temperature:当前温度。

DVS Controller 根据这些信息输出:

  • Voltage Control:控制电压调节器改变 VDDV_{DD}
  • Freq Control:控制核心逻辑的工作频率。

所以这个系统可以根据运行状态自动调节功耗。

提醒

DVS总结: 调节电压可以使得功耗可以按平方关系降低

只需要工作得“刚好足够快”,满足截止时间即可。

DVS算法可以通过软件或者硬件来实现

img

减少动态功耗——Non-active Modules

img

时钟门控

降低活动因子的最佳方法,是关闭未使用模块中寄存器的时钟。

  • 节省时钟活动功耗
  • α=1\alpha = 1
  • 这里表示时钟信号每个周期都会翻转,活动因子很高。
  • 消除该模块中的所有开关活动。
  • 需要判断该模块是否会被使用。

img

减少静态功耗——Multiple Vt&Stack Effect

img

Leakage Control
  • 漏电和延迟之间存在权衡
    • 目标是在睡眠模式下降低漏电,在工作模式下降低延迟。
  • 为了降低漏电:
    • 增大 VtV_t:采用多阈值电压 VtV_t
      • 只在关键电路中使用低 VtV_t
    • 增大 VsV_s:利用堆叠效应
      • 在睡眠模式下进行输入向量控制
    • 降低VbV_b
      • 采用体偏置技术
Multiple Vt
  • 与 multipleVDDV_{DD}类似,核心思想是利用可用的时序余量。
    • 对关键路径上的门分配低 VtV_t 这些路径通常具有负 slack 或没有 slack。
    • 对非关键路径上的门分配高 VtV_t 这些路径通常具有正 slack。
  • Multiple VtV_t可以在不同粒度上实现:门级、半门级、晶体管级等。
    • 由于标准单元库的存在,门级实现比较常见。
    • 粒度越细,漏电控制效果越好,但控制和设计工作量也越大。
🌟🌟🌟‼️‼️例子(承接上面的计算题,感觉可以出成大题的两问)

重新回顾一个 10 亿晶体管芯片 的功耗估算

img

  • 估算静态功耗
    • 亚阈值漏电
      • 普通 VtV_t100 nA/μm100 \text{ nA}/\mu m
      • VtV_t10 nA/μm10 \text{ nA}/\mu m
      • VtV_t 用于所有存储器,以及 95% 的逻辑门
    • 栅极漏电5 nA/μm5 \text{ nA}/\mu m
    • 结漏电可以忽略不计img
Stack Effect堆叠效应

img

img

  • 串联关断的晶体管具有更小的漏电
    • Vx>0V_x > 0,因此 N2 具有负的 VgsV_{gs}
      • VxV_x 会减小 N2 的漏源电压,从而提高它的阈值电压 VthV_{th},并降低它的漏电。
      • DIBL 效应。
Isub=Ioff10ηVDDS(1+η+kγ1+2η+kγ)Ioff10ηVDDSI_{sub}=I_{off}10^{\frac{-\eta V_{DD}}{S}\left(\frac{1+\eta+k_\gamma}{1+2\eta+k_\gamma}\right)} \approx I_{off}10^{\frac{-\eta V_{DD}}{S}}
  • 通过 2-stack 的漏电大约降低 10 倍
  • 通过 3-stack 的漏电会进一步降低

减少静态功耗——当模块暂时不工作时

img

Power Gating

img

当模块处于空闲状态时,关闭其电源以节省漏电功耗。

  • 使用虚拟电源 VDDVV_{DDV}
  • 对输出进行门控,防止无效逻辑电平传递到下一级模块

这是降低漏电功耗最常用的方法之一。

  • 类似于使用时钟门控来降低动态功耗。

img

img

这么做的好处和坏处

pros

  • 实现简单,并且可以在 IP 级别 进行,而不需要接触底层细节。有利于技术迁移。
  • 功率门控与 DVFS 结合使用,是移动设备中最常见的节能技术之一。

but

  • 睡眠晶体管上的电压降会在正常工作时降低性能。因此需要把该晶体管尺寸设计得足够宽,以尽量减小影响。
  • 切换较宽的睡眠晶体管会消耗动态功耗。只有当电路睡眠时间足够长时,这种做法才是值得的。

减少静态功耗——运行时的调整

img

img

通过动态调节 PMOS 和 NMOS 的 body 电压,改变晶体管的阈值电压VTV_T,从而在性能和漏电之间做切换。

Active mode 工作模式 下,电路需要速度,所以采用 Forward Body Bias(正向体偏置,FBB)

  • PMOS body 和 NMOS body 分别施加约 450 mV 的正向体偏置;
  • 这样可以降低等效阈值电压 VTV_T
  • 晶体管更容易导通,速度更快,延迟更低;
  • 但漏电会增加。

Idle mode 空闲模式 下,电路不需要高速工作,所以采用 Reverse Body Bias(反向体偏置,RBB)

  • PMOS body 和 NMOS body 分别施加约 500 mV 的反向体偏置;
  • 这样可以提高等效阈值电压 VTV_T
  • 晶体管更难导通,漏电降低;
  • 但速度会变慢,不过空闲状态下速度不重要。 Triple well needed意思是这种方法通常需要三阱工艺支持,因为要分别控制不同晶体管的 body 电压,不能让所有衬底简单地接到同一个固定电位。

总结:一种有效但实现复杂的低功耗技术。

要点总结:

各种功耗降低技术

  • 这是 VLSI 设计中一个长期存在、持续重要的话题。
  • 理解 设计阶段运行阶段 的区别。
  • 理解影响动态功耗的因素,以及对应的降低功耗技术。
  • 理解影响漏电功耗的因素,以及对应的降低功耗技术。

总览:

img

低功耗设计策略贯穿 VLSI 设计的不同层次

操作系统层面:Operation System level

对应策略是:

Portioning, Power down

可以理解为:

  • 把系统任务划分到不同模块;
  • 不用的模块可以关闭电源。

这一层更偏系统管理,例如某些功能暂时不用,就让它进入低功耗状态。

软件层面:Software level

对应策略是:

Regularity, locality, concurrency

意思是:

  • Regularity:规律性,让程序访问和计算更有规律;
  • Locality:局部性,提高数据复用,减少不必要的数据搬运;
  • Concurrency:并行性,让任务更有效地执行。

软件层面的低功耗重点是:通过更合理的程序结构减少无效计算和数据访问。

体系结构层面:Architecture level

对应策略是:

Pipelining, Redundancy, data encoding

意思是:

  • Pipelining:流水线,提高处理效率;
  • Redundancy:冗余结构,用额外硬件换取更低电压或更高效率;
  • Data encoding:数据编码,减少数据传输中的翻转次数。

这一层主要是在处理器、总线、存储结构等系统架构上优化功耗。

电路 / 逻辑层面:Circuit/Logic level

对应策略是:

Logic styles, transistor sizing and energy recovery

意思是:

  • Logic styles:选择合适的逻辑风格;
  • Transistor sizing:调整晶体管尺寸;
  • Energy recovery:能量恢复技术。

这一层就是我们前面讲过比较多的内容,比如降低动态功耗、优化延迟、调整晶体管尺寸等。

工艺层面:Technology level

对应策略是:

Threshold reduction, multi threshold devices

意思是:

  • Threshold reduction:降低阈值电压;
  • Multi threshold devices:多阈值器件。

这一层和晶体管本身有关。比如关键路径使用低 VtV_tS保证速度,非关键路径使用高 $$V_t$$降低漏电。

有效的功耗管理可以通过在 VLSI 设计流程的不同层次使用不同策略来实现。因此,设计者需要采用智能化的方法来优化设计中的功耗。

Chapter 8:延迟与速度 Speed
Chapter 10:互连 Interconnect

评论区