本文将从两个部分进行解释,第一部分是CMOS第二部分详细阐述了晶体管的基本知识。
CMOS Transistors
最早的电子计算机使用继电器或电子管实现二值系统,而现代计算机使用晶体管实现二值系统。晶体管可根据控制端电压或电流的变化实现开启或关闭功能,从而表达二进制。晶体管主要分为双极性晶体管(Bipolar Junction Transistor)晶体管与金属氧化物半导体效应(Metal Oxide Semiconductor Field Effect Transistor, MOSFET or MOS),目前绝大多数CPU都采用MOS晶体管实现,其中又以CMOS(Complementary Metal Oxide Semiconductor)晶体管电路设计最为常见。
Semiconductor
MOS硅是晶体管的基本材料。在元素周期表中IV民族元素,他的原子最外层有四个电子,可以与相邻的四个硅原子的最外层电子配对成为共价键。纯硅中所有原子最外层都有8个电子,相对稳定
但如果在纯硅中掺入少量5价原子(如磷)As),这些原子将占据原硅原子的位置。由于这些原子的最外层有五个电子,除了与原硅原子形成共价键外,还有一个游离电子。在电场的作用下,游离电子将逆电场方向流动,形成负电流,称为n-type材料。
如果在纯硅中掺入少量3价原子(如硼)B),这些原子占据原硅原子的位置后,其最外层缺乏电子和相邻硅原子形成共价键,形成空穴(hole),在电场的作用下,周围的电子会来填补空穴,从而留下新的空穴,相当于空穴也沿着电场的方向流动,形成正电流。这种材料被称为P-type材料。
Diodes
p-type类型的硅和n-type硅连接形成二极管(Diodes),p-type区域称为阳极,n-type该区域称为阴极。当阳极电压大于阴极电压时,电流从阳极流向阴极。相反,阳极电压小于阴极电压,电流无法通过。
nMOS and pMOS Transistors
MOS晶体管是由多层叠放在一起的导电和绝缘材料制成的。每个晶体管的底部称为衬底。。晶体管上部连接三个信号端口,分别称为源极(Source)、漏极(Drain)和栅极(Gate)。栅极和漏极称为有源区,该区域采用与衬底。衬底为低浓度P型,有源区为高浓度N型MOS晶体管叫做nMOS晶体管;衬底为低浓度N型,有源区为高浓度P型MOS晶体管叫做pMOS晶体管。
无论是nMOS管还是pMOS管道、栅极和衬底之间有一层绝缘体,称为栅氧层,其成分通常是二氧化硅(silicon dioxide,SiO2)。最早期的MOS晶体管栅极其由金属制成,这也是metal-oxide-semiconductor名字的由来,现在大多数栅极都是掺杂多晶硅的(Polysilicon)制成。虽然混合多晶硅的电阻比金属大,但它比半导体硅小得多,可以用作电极。与普通金属相比,多晶硅更耐高温,而不是在MOS晶体管在生产过程中融化。
我们以nMOS以晶体管为例,介绍晶体管如何工作
通常nMOS晶体管的衬底接地。如果只在源极和漏极之间增加电压,两极之间就不会有电流,因为源极和漏极相当于一对正反相对PN如果在栅极上增加电压,因为栅氧层是绝缘的,在P衬底中会形成电场。栅极上的正电压将P衬底中的电子吸引到栅氧层,形成一个非常薄的沟电子层,相当于在源极和泄漏极之间建立导电桥。此时,如果在源极泄漏极之间增加电压,则两极之间的电流可以流过。
pMOS相反,衬底连接正电压,当网极不加电时,晶体管导通,网极加电时,晶体管断开。
随着工艺的发展,MOS晶体管中的栅氧层厚度越来越薄,从早期工艺5开始,开启所需的门限电压不断降低V,后来的2.5V、1.8V,现在都是1V左右或更低。
不幸的是,MOS晶体管不是理想的开关,nMOS晶体管适用于0而不是1,pMOS晶体管适合传输1而不适合传输0。因此需要同时使用两种类型的晶体管,令他们传输自己的擅长的,这种处理过程称为Complementary MOS or CMOS。
Common CMOS Gate
以下是如何使用两个简单的例子cMOS晶体管在电路中构建基本单元-门。
-
CMOS NOT Gate
A为1,上面的pMOS晶体管断开,下面的nMOS晶体管导通,Y = 0
A为0,上面的pMOS晶体管导通,下面的pMOS晶体管断开,Y = 1
-
CMOS NAND Gate
通过并联的pMOS晶体管与串联nMOS晶体管的形成和非门,需要注意的是,当输入即扇系数过多时,串联nMOS会导致延迟过大,所以通常风扇系数最多为4或5。
Power and Energy Consumption
功耗通常分为两部分:
P = P s t a t i c P d y n a m i c P = P_{static} P_{dynamic} P=Pstatic Pdynamic
-
Dynamic Power
电信号在0和1之间变换时电容的充放电。
P d y n a m i c = α ∗ C L ∗ V D D 2 ∗ f + I s c ∗ V D D P_{dynamic} = α * C_L * V^2_{DD} * f + I_{sc} * V_{DD} Pdynamic=α∗CL∗VDD2∗f+Isc∗VDD C L C_L CL为电路中的电容大小, f f f为时钟频率, α α α为晶体管翻转的概率, I S C I_{SC} ISC 为短路电流, V D D V_{DD} VDD 为供电电压(Supply voltage)。短路电流发生的原因为电信号在0和1之间变化时,NMOS和PMOS晶体管同时导通,此时从 V D D V_{DD} VDD到 G N D GND GND之间出现短路,通常短路电流功耗占功耗的一小部分,我们不做考虑。
-
Static Power
电信号不发生变化时的功耗(电流泄露)
P s t a t i c = V D D ∗ I D P_{static} = V_{DD} * I_{D} Pstatic=VDD∗ID I D I_{D} ID被称为泄露电流(从 V D D V_{DD} VDD到GND)
Static Power
重新回顾一下晶体管导通时的情况,当Gate端电压达到一定值时,substrate上形成一个channel,此时电子可以流通,此时晶体管处于导通状态。我们将source和drain导通所需要的电压,我们记为 V T H V_{TH} VTH,Gate端电压记为 V G S V_{GS} VGS。
当 V G S < V T H V_{GS} < V_{TH} VGS<VTH时,理想状态下,source端和drain端无电流流动,但实际上,两端之间仍存在电流流通,我们称该电流为subthreshold current,记为 I D I_{D} ID,泄露电流随着gate端电压增长指数级增长。 I D ≈ I D0 e V GS − V TH n V T I_{\text{D}}\approx I_{\text{D0}}e^{\frac {V_{\text{GS}}-V_{\text{TH}}}{nV_{\text{T}}}} ID≈ID0enVTVGS−VTH I D 0 I_{D0} ID0为当 V G S = V T H V_{GS} = V_{TH} VGS=VTH时的电流, V T = k T / q V_{T} = kT/q VT=kT/q为热电压(thermal voltage),我们需要关心的是泄露电流随着门限电压的降低指数级增长,因此门限电压不能无限制的降低,这也限制了供电电压的降低。
上图刻画了 I D I_{D} ID和 V G S V_{GS} VGS的关系(两边同时取log),通常一个好的电路,其Slope越大越好。
补充一个概念:thermal runaway,由于泄露电流会导致温度提升,造成热电压的升高,此时泄露电流继续增大,形成恶性循环,这种循环成为thermal runaway。因此经常说温度是集成电路的第一杀手[^3]。
Dynamic Power
不考虑短路功耗,则动态功耗由下式表示: P d y n a m i c = α ∗ C L ∗ V D D 2 ∗ f P_{dynamic} = α * C_L * V^2_{DD} * f Pdynamic=α∗CL∗VDD2∗f 动态功耗通常在功耗中占比很高,是我们研究的重中之重。我们先来简要说一下频率和供电电压的关系,这对我们后续理解大有帮助。
频率 f f f可以视为电路中关键路径延迟的倒数,即 f = 1 / D e l a y f = 1 / Delay f=1/Delay
而延迟通常由路径中电容的充放电决定,延迟和供电电压关系可以由下式给出[^5] D e l a y = C L ∗ V D D / I = ( C L ∗ V D D ) / ( u C o x ( W / L ) ( V D D − V T H ) 2 ) Delay = C_L * V_{DD} / I = (C_L * V_{DD}) / (uC_{ox}(W / L)(V_{DD} - V_{TH})^2) Delay=CL∗VDD/I=(CL∗VDD)/(uCox(W/L)(VDD−VTH)2) 可以看出延迟和供电电压成反比
最终,我们将式子简化为 f ∝ ( V D D − V T H ) 2 / V D D f \propto (V_{DD} - V_{TH})^2 / V_{DD} f∝(VDD−VTH)2/VDD 因此频率可以看作电压的线性函数,最大频率随着供电电压的增加线性增加,所以动态功耗近似正比于供电电压的三次方( P d y n a m i c ∝ V 3 P_{dynamic} \propto V^3 Pdynamic∝V3),因此在动态功耗为主的CPU中,通过动态降低电压实现功耗降低带来了很大的受益,但需要注意的是,降低 V D D V_{DD} VDD也通常也意味着 f f f的降低