如今许多集成电路系统都是电池供电的,对于功率耗散限制很严格。其他高性能电路,例如计算机服务器机房产品,有着严格的热耗散功率限制。所以,减小IC中的功率耗散变成了IC设计中最重要的挑战性的设计。
本节,我们介绍数字CMOS电路中热耗散的来源以及减小热耗散方法。
让我们考虑一个CMOS反相器,无论是当 vIv_IvI 为高电平或者是低电平,其都不会产生功率耗散。而对于其他反相器,则会产生大约 VDD2/RV_{DD}^2 / RVDD2/R 并且数值可能很大。我们称不发生在开关过程中产生的功率耗散为 静态功率耗散 。
然而,我们知道,在CMOS反相器存在许多寄生电容,当反相器从一个状态切换到另一个状态的时候,此时需要对电容进行充放电,因此会存在充放电电流,这会导致功率耗散。我们称发生在开关过程中的功率耗散为 动态功率耗散 。
考虑当输入 vIv_IvI 为高电平的时候,此时PUN闭合,而PDN打开,其电路等效为:
此时需要给电容充电,直到电容电压为 VDDV_{DD}VDD 。记 iD(t)i_D(t)iD(t) 为 VDDV_{DD}VDD 提供的充电电流,则瞬间功率为:
pDD(t)=VDDiD(t)p_{DD}(t) = V_{DD}i_D(t) pDD(t)=VDDiD(t)
假设充电周期为 TcT_cTc ,我们可以积分求得在充电过程中的总能量:
EDD=∫0TcVDDiD(t)dt=VDD∫0TciD(t)dt=VDDQE_{DD} = \int_{0}^{T_c} V_{DD} i_D(t) dt = V_{DD}\int_{0}^{T_c} i_D(t) dt = V_{DD}Q EDD=∫0TcVDDiD(t)dt=VDD∫0TciD(t)dt=VDDQ
这里 QQQ 指的是充电过程中总的充电电荷,我们假设0时刻的时候电容电荷量为零,这可以由电容公式导出:
Q=CVDDQ = CV_{DD} Q=CVDD
因此:
EDD=CVDD2E_{DD} = CV_{DD}^2 EDD=CVDD2
我们知道,在充电结束后,有一部分能量转换为电场能量储存在电容器中,平行电场能量为:
Es=12CVDD2E_s = \frac{1}{2}CV_{DD}^2 Es=21CVDD2
则耗散功率为:
Ed=EDD−Es=12CVDD2E_d = E_{DD} - E_s = \frac{1}{2}CV_{DD}^2 Ed=EDD−Es=21CVDD2
这些能量由电路中的电阻消耗,变成热量耗散。
同样的,当 vIv_IvI 输入为低电平的时候,同样在放电过程中存在耗散能量:
Ed=12CVDD2E_d = \frac{1}{2}CV_{DD}^2 Ed=21CVDD2
CMOS反相器中一个周期包括充放电两个过程,因此一个周期内的能量耗散为:
Ed/cycle=CVDD2E_d / cycle = CV_{DD}^2 Ed/cycle=CVDD2
若反相器的频率为 fff 赫兹,那么动态功率耗散定义为:
Pdyn=fCVDD2P_{dyn} = fCV_{DD}^2 Pdyn=fCVDD2
这个式子表示减小 CCC 可以减小功率耗散。但是实际上电容 CCC 绝大部分由晶体管本身决定很难大幅度降低。或者我们可以降低 VDDV_{DD}VDD 来减小功率耗散,这也是半导体工艺发展的一个重要的驱动力,例如 0.5um 的工艺需要使用5V的电压,而 0.13um 的工艺只需要1.2V。
最后,因为 PdynP_{dyn}Pdyn 正比于 fff ,另一种方法可以通过降频的方式来减小功率耗散,但是这并不是以很好的主意,特别是在如今高速数字系统的发展。例如,在一个具有 27.5 亿个晶体管频率为 5GHz 的数字IC的热功率能达到超过 100W 。
除此之外,还存在一种动态电流会产生热功率消耗,当反相器状态改变的时候,会存在一段时间,两个MOS均会导通电流,如图:
我们发现当输入为 vI=VM=VDD2v_I = V_M = \frac{V_{DD}}{2}vI=VM=2VDD 的时候,此时这种电流达到峰值,同时两个MOS都处于饱和区,峰值电流为:
Ip=12μnCox(W/L)n(VDD2−Vtn)2I_p = \frac{1}{2} \mu_n C_{ox} (W/L)_n (\frac{V_{DD}}{2} - V_{tn})^2 Ip=21μnCox(W/L)n(2VDD−Vtn)2
因为数字系统的上升和下降频率的速度都非常快,所以这种功率耗散要远小于电容耗散的功率,因此这种功率耗散通常忽略不计。
我们最终希望的是高速低功耗系统,但是不幸的是,这两个因素直接存在冲突。若设计师想通过降低 VDDV_{DD}VDD 来减小功耗,这同样会降低反相器的电流驱动能力,进而导致 tPt_PtP 的增加。 功率-延迟积 是评价这两种因素的指标:
PDP≡PDtPPDP \equiv P_D t_P PDP≡PDtP
这里 PDP_DPD 是反相器的耗散功率, PDPPDPPDP 具有能量量纲。说明 PDPPDPPDP 越小,则该数字系统越好。
对于CMOS反相器来说,静态耗散功率为零,功率只有 PdynP_{dyn}Pdyn ,因此:
PDP=fCVDD2tPPDP = fCV_{DD}^2 t_P PDP=fCVDD2tP
若 tPt_PtP 达到理论最大最大值 tP=12ft_P = \frac{1}{2f}tP=2f1 则:
PDP=12CVDD2PDP = \frac{1}{2} CV_{DD}^2 PDP=21CVDD2
注意到 12CVDD2\frac{1}{2} CV_{DD}^221CVDD2 是给电容充电和放电过程中的能量消耗,因此PDP存在一个合理的物理解释:PDP是反相器输出的过渡阶段的能量消耗。
但是PDP并不是一个评判系统性能的一个总体性指标,因为如果设计师想降低 PDPPDPPDP 可以降低 VDDV_{DD}VDD 来实现,但是 tPt_PtP 同时会增加,但是PDP没有包含 tPt_PtP 的信息。所以我们定义 能量-延迟积EDP 为:
EDP≡Energy per transition×tP=12CVDD2tPEDP \equiv \text{Energy per transition} \times t_P = \frac{1}{2} CV_{DD}^2t_P EDP≡Energy per transition×tP=21CVDD2tP