Vai al contenuto
Emmy

Tempi di commutazione e potenza

Elettronica · Elettronica digitale Articolo

Percorso: Fondamenti di elettronica · 13 di 20

Prima di questo, potrebbe interessarti: L'invertitore logico , Il condensatore

Indice

Quanto è veloce una porta

L’invertitore CMOS ha una caratteristica quasi ideale e non consuma nulla finché l’ingresso resta fermo. Ma un circuito digitale serve a calcolare, e calcolare vuol dire cambiare le uscite. Questo articolo studia quanto tempo impiega una porta a commutare e quanta energia spende per farlo: le due grandezze che, insieme, decidono quanto può essere veloce un processore.

Si applica all’ingresso un gradino ideale, da 00 a VDDV_{DD} in un tempo nullo, e si guarda l’uscita. Il tempo di propagazione è il ritardo tra il fronte dell’ingresso e l’istante in cui l’uscita attraversa la soglia di commutazione VMV_M, cioè cambia livello logico per la porta che la legge: tpHLt_{pHL} quando l’uscita scende, tpLHt_{pLH} quando sale. Il tempo di discesa tft_f e quello di salita trt_r misurano invece quanto dura la transizione della tensione, tra il 90% e il 10% dell’escursione. Quando si parla del tempo di propagazione di una porta senza altre precisazioni si intende la media dei due, o il più lungo.

Tempi di propagazione e di transizione Due grafici in funzione del tempo, da 0 a 400 picosecondi. In alto la tensione di ingresso, un gradino che sale da zero a V D D a 40 picosecondi e torna a zero a 240. In basso la tensione di uscita dell'invertitore: parte da V D D, dopo il fronte dell'ingresso scende prima in linea retta e poi curvando, e raggiunge metà dell'alimentazione dopo circa 31 picosecondi, il tempo di propagazione t p H L; dopo il secondo fronte risale con la stessa forma capovolta, e il tempo per arrivare a metà è t p L H. Due linee tratteggiate al 90 e al 10 per cento dell'escursione delimitano i tempi di discesa t f e di salita t r, circa 74 picosecondi. Vin Vout 90% 50% 10% tpHL tpLH tf tr t

I tempi di una porta. In alto l’ingresso, due gradini ideali; in basso l’uscita di un invertitore CMOS con il suo carico. I tempi di propagazione si misurano al 50%, dove sta la soglia di commutazione di un invertitore simmetrico; i tempi di discesa e di salita tra il 90% e il 10%.

Il carico di una porta

Un invertitore da solo commuterebbe in un tempo brevissimo: a rallentarlo è quello che gli sta attaccato. L’uscita di una porta va agli ingressi di altre porte, e un ingresso CMOS è un gate: un condensatore. Il suo valore dipende dal regime del transistore, e non supera quello dell’ossido, CoxWLC_{ox}WL. Per una stima si prende quel valore e si considerano i condensatori dei gate collegati tra l’uscita e un nodo a tensione costante, massa per il transistore nn e VDDV_{DD} per il pp. Per la dinamica il nodo di arrivo non conta, purché la sua tensione sia costante, perché la corrente in un condensatore è CdV/dtC\,dV/dt: tutti i condensatori si possono riportare a massa e sommare.

Anche il collegamento ha una capacità. Nei circuiti integrati è una pista metallica separata dal silicio da uno strato di ossido, e forma con il substrato un condensatore. Una pista lunga 100 μ100\ \mum e larga 1 μ1\ \mum, su 1 μ1\ \mum di ossido, vale come condensatore piano 3,53{,}5 fF; i campi ai bordi e le piste vicine aggiungono altrettanto o più. Nei circuiti stampati le piste sono di centimetri e le capacità di picofarad. Su una scheda conta anche il tempo di volo: nella vetronite la luce va a circa 1,5×1081{,}5\times10^8 m/s, e 15 cm di pista costano un nanosecondo. Dentro un chip i collegamenti sono così corti che il tempo di volo si trascura quasi sempre.

Il carico capacitivo di una porta logica A sinistra due invertitori in cascata collegati da un filo. Dal filo scende un condensatore verso massa, la capacità del filo; all'ingresso del secondo invertitore un condensatore sale verso V D D, la capacità del gate del transistore p, e uno scende verso massa, la capacità del gate del transistore n. A destra il circuito equivalente: il primo invertitore disegnato con i suoi due transistori, con l'uscita collegata a un solo condensatore C L verso massa. Cfilo CGn CGp VDD porta carico VDD CL Vin

A sinistra un invertitore che pilota un secondo invertitore: il filo ha una capacità verso massa, e i gate del carico sono condensatori verso massa e verso VDDV_{DD}. A destra il circuito equivalente per il calcolo dei tempi, con un solo condensatore CLC_L.

L’esempio di questo articolo è l’invertitore CMOS simmetrico dell’articolo precedente, con VDD=3,3V_{DD} = 3{,}3 V, k=0,86k = 0{,}86 mA/V² e VTH=0,34V_{TH} = 0{,}34 V: transistore nn largo 10 μ10\ \mum, transistore pp largo 27,8 μ27{,}8\ \mum, lunghezza 1 μ1\ \mum, Cox=345C_{ox} = 345 nF/cm². Pilota un invertitore uguale attraverso la pista di 100 μ100\ \mum. Il carico è

CL=Cox(Wn+Wp)L+Cfilo=130,4 fF+3,5 fF=134 fF.C_L = C_{ox}\left(W_n + W_p\right)L + C_{filo} = 130{,}4\ \text{fF} + 3{,}5\ \text{fF} = 134\ \text{fF} .

Si trascurano le capacità delle giunzioni di drain dell’invertitore stesso, che in un circuito reale aggiungono una parte non piccola.

La scarica dell’uscita

Prima del fronte l’ingresso è a zero da molto tempo: il transistore nn è spento, il pp acceso, e l’uscita è a VDDV_{DD}. Al fronte il pp si spegne e il nn si accende con VGS=VDDV_{GS} = V_{DD}. La tensione del condensatore non può saltare, e nell’istante dopo il fronte l’uscita è ancora a VDDV_{DD}: il condensatore si scarica attraverso il transistore nn, con CLdVout/dt=IDC_L\,dV_{out}/dt = -I_D.

Proposizione (scarica dell'uscita nel modello quadratico)

Dopo un gradino ideale dell’ingresso da 00 a VDDV_{DD}, con Vov=VDDVTHV_{ov} = V_{DD} - V_{TH} e Isat=kVov2I_{sat} = kV_{ov}^2, l’uscita di un invertitore CMOS impiega a scendere da VDDV_{DD} a VV

t(V)=CL(VDDV)Isatper VVov,t(V) = \frac{C_L\left(V_{DD} - V\right)}{I_{sat}} \quad \text{per } V \ge V_{ov} ,t(V)=CLVTHIsat+CL2kVovln2VovVVper V<Vov.t(V) = \frac{C_LV_{TH}}{I_{sat}} + \frac{C_L}{2kV_{ov}}\ln\frac{2V_{ov} - V}{V} \quad \text{per } V < V_{ov} .

In particolare il tempo per arrivare a VDD/2V_{DD}/2 è

tpHL=CLVTHIsat+CL2kVovln3VDD4VTHVDD.t_{pHL} = \frac{C_LV_{TH}}{I_{sat}} + \frac{C_L}{2kV_{ov}}\ln\frac{3V_{DD} - 4V_{TH}}{V_{DD}} .
Dimostrazione.

Finché VGD=VDDVoutVTHV_{GD} = V_{DD} - V_{out} \le V_{TH}, cioè VoutVovV_{out} \ge V_{ov}, il transistore è saturo e porta la corrente costante IsatI_{sat}: l’uscita scende in linea retta con pendenza Isat/CL-I_{sat}/C_L, e arriva a VV dopo CL(VDDV)/IsatC_L(V_{DD} - V)/I_{sat}. In particolare arriva a VovV_{ov} dopo tlin=CLVTH/Isatt_{lin} = C_LV_{TH}/I_{sat}.

Poi il transistore è in zona ohmica, con ID=k(2VovVoutVout2)I_D = k(2V_{ov}V_{out} - V_{out}^2), e l’equazione

CLdVoutdt=kVout(2VovVout)C_L\frac{dV_{out}}{dt} = -kV_{out}\left(2V_{ov} - V_{out}\right)

si risolve separando le variabili. Con la scomposizione 1V(2VovV)=12Vov(1V+12VovV)\dfrac{1}{V(2V_{ov} - V)} = \dfrac{1}{2V_{ov}}\left(\dfrac{1}{V} + \dfrac{1}{2V_{ov} - V}\right),

ttlin=CLkVVovdVV(2VovV)=CL2kVov[lnV2VovV]VVov=CL2kVovln2VovVV.\begin{aligned} t - t_{lin} &= \frac{C_L}{k}\int_V^{V_{ov}}\frac{dV'}{V'\left(2V_{ov} - V'\right)} = \frac{C_L}{2kV_{ov}}\left[\ln\frac{V'}{2V_{ov} - V'}\right]_V^{V_{ov}} \\ &= \frac{C_L}{2kV_{ov}}\ln\frac{2V_{ov} - V}{V} . \end{aligned}

Con V=VDD/2V = V_{DD}/2 l’argomento del logaritmo è (4VovVDD)/VDD=(3VDD4VTH)/VDD(4V_{ov} - V_{DD})/V_{DD} = (3V_{DD} - 4V_{TH})/V_{DD}.

Fine della dimostrazione.

Per l’esempio Isat=7,55I_{sat} = 7{,}55 mA, il tratto rettilineo dura 6,06{,}0 ps, e tpHL=31,0t_{pHL} = 31{,}0 ps. La salita, con il transistore pp simmetrico, ha lo stesso tempo. Il tempo di discesa, dal 90% al 10%, è 7474 ps: la coda della scarica è lenta, perché il transistore in zona ohmica porta sempre meno corrente.

La formula esatta, esatta nel modello quadratico, è poco comoda per ragionare. Due stime più semplici la racchiudono.

Proposizione (stime del tempo di propagazione)

Per un invertitore CMOS con soglia di commutazione VDD/2V_{DD}/2,

12CLVDDIsattpHLln2CLVDDIsat.\frac{1}{2}\,\frac{C_LV_{DD}}{I_{sat}} \le t_{pHL} \le \ln 2\,\frac{C_LV_{DD}}{I_{sat}} .

La prima è la scarica a corrente costante IsatI_{sat}, la seconda la scarica attraverso una resistenza VDD/IsatV_{DD}/I_{sat}.

Dimostrazione.

Da CLdV/dt=ID(V)C_L\,dV/dt = -I_D(V) il tempo per scendere da VDDV_{DD} a VDD/2V_{DD}/2 è

tpHL=VDD/2VDDCLdVID(V).t_{pHL} = \int_{V_{DD}/2}^{V_{DD}}\frac{C_L\,dV}{I_D(V)} .

Una corrente più grande in ogni punto dà un tempo più breve. Il transistore non porta mai più di IsatI_{sat}, quindi tpHLCL(VDD/2)/Isatt_{pHL} \ge C_L(V_{DD}/2)/I_{sat}. D’altra parte ID(V)IsatV/VDDI_D(V) \ge I_{sat}V/V_{DD} per ogni VV tra 00 e VDDV_{DD}: in saturazione ID=IsatI_D = I_{sat} e V/VDD1V/V_{DD} \le 1; in zona ohmica, con VVovV \le V_{ov}, la disuguaglianza k(2VovV)VkVov2V/VDDk(2V_{ov} - V)V \ge kV_{ov}^2V/V_{DD} equivale a 2VovVVov2/VDD2V_{ov} - V \ge V_{ov}^2/V_{DD}, vera perché 2VovVVovVov2/VDD2V_{ov} - V \ge V_{ov} \ge V_{ov}^2/V_{DD}. Quindi

tpHLVDD/2VDDCLVDDdVIsatV=CLVDDIsatln2.t_{pHL} \le \int_{V_{DD}/2}^{V_{DD}}\frac{C_LV_{DD}\,dV}{I_{sat}V} = \frac{C_LV_{DD}}{I_{sat}}\ln 2 .

Fine della dimostrazione.

Per l’esempio le due stime danno 29,229{,}2 e 40,540{,}5 ps, attorno ai 31,031{,}0 ps del modello: l’errore della stima più semplice è al massimo del 40%, poco rispetto all’incertezza del modello stesso, che usa per il carico la capacità massima dei gate e trascura quelle delle giunzioni. La stima per eccesso ha il pregio di essere sicura: un circuito progettato con quei tempi funziona.

La scarica dell'uscita e le sue stime Grafico della tensione di uscita, da 3,3 volt a zero, in funzione del tempo, da 0 a 100 picosecondi. La curva blu, il modello quadratico, scende in linea retta per 6 picosecondi, finché il transistore è saturo, poi curva e si avvicina a zero sempre più lentamente. Una retta arancione tratteggiata, la scarica a corrente costante, scende più ripida e arriva a zero a 58 picosecondi. Una curva grigia tratteggiata, la scarica attraverso una resistenza, scende più piano della blu. Sulla linea orizzontale a metà dell'alimentazione le tre curve passano a 29, 31 e 41 picosecondi. 020406080100 0123 modello quadratico corrente costante Isat resistenza VDD/Isat VDD/2 Vout (V) t (ps)

La scarica dell’uscita dell’invertitore di esempio, con CL=134C_L = 134 fF. Il modello quadratico, in blu, scende in linea retta finché il transistore è saturo, fino al punto, e poi rallenta. La scarica a corrente costante è una stima per difetto del tempo, quella attraverso una resistenza una stima per eccesso: a metà dell’alimentazione arrivano a 29, 31 e 41 ps.

Da che cosa dipende la velocità

Con la stima per eccesso, e con CLC_L fatta solo dai gate di un invertitore uguale,

tpln2CLVDDk(VDDVTH)2=2ln2(1+WpWn)L2μnVDD(VDDVTH)2,t_p \approx \ln 2\,\frac{C_LV_{DD}}{k\left(V_{DD} - V_{TH}\right)^2} = 2\ln 2\left(1 + \frac{W_p}{W_n}\right)\frac{L^2}{\mu_n}\,\frac{V_{DD}}{\left(V_{DD} - V_{TH}\right)^2} ,

dove si è usato CL=Cox(Wn+Wp)LC_L = C_{ox}(W_n + W_p)L e k=μnCoxWn/2Lk = \mu_nC_{ox}W_n/2L. La capacità dell’ossido e la larghezza dei transistori spariscono: allargare il transistore aumenta la corrente, ma aumenta nella stessa proporzione il carico che presenta alla porta precedente. Resta la lunghezza di canale, al quadrato. Con L=1 μL = 1\ \mum l’espressione dà 39 ps; con L=0,1 μL = 0{,}1\ \mum darebbe un centesimo. Per questo le tecnologie CMOS si identificano con la lunghezza di canale minima, e per cinquant’anni l’industria l’ha ridotta: da una decina di micrometri negli anni Settanta a poche decine di nanometri. Nei transistori corti gli elettroni raggiungono la velocità di saturazione, e il guadagno è più vicino a proporzionale a LL che a L2L^2; la direzione non cambia.

La formula dice anche che un’alimentazione più alta rende le porte più veloci, perché la corrente cresce con il quadrato di VDDVTHV_{DD} - V_{TH} e la carica da spostare solo con VDDV_{DD}. Ma alzare VDDV_{DD} consuma l’ossido, e soprattutto aumenta la potenza.

La potenza statica

Un invertitore CMOS con gli ingressi a 00 o a VDDV_{DD} non ha percorsi conduttivi tra l’alimentazione e massa, e non consuma nulla, a parte le correnti sotto la soglia dei transistori spenti. Due situazioni fanno eccezione. Se l’ingresso sta a una tensione intermedia, tra VTHV_{TH} e VDDVTHV_{DD} - V_{TH}, i due transistori sono accesi insieme e la corrente scorre di continuo, fino a k(VDD/2VTH)2k(V_{DD}/2 - V_{TH})^2 alla soglia: per questo gli ingressi CMOS non si lasciano mai scollegati, dove potrebbero fermarsi a metà. E se l’uscita alimenta un carico resistivo, come un LED o la bobina di un relè, la corrente nel carico è potenza statica a tutti gli effetti.

La potenza dinamica

Ogni volta che l’uscita sale, il condensatore di carico si carica prendendo carica dall’alimentazione; ogni volta che scende, quella carica va a massa. Il bilancio energetico non dipende da come avvengono le commutazioni.

Teorema (energia di una commutazione)

Quando l’uscita di una porta CMOS sale da 00 a VDDV_{DD}, l’alimentazione fornisce l’energia CLVDD2C_LV_{DD}^2: metà si accumula nel condensatore di carico e metà si dissipa nel transistore pp, qualunque sia l’andamento della corrente. Quando l’uscita scende da VDDV_{DD} a 00, l’alimentazione non fornisce energia, e quella accumulata, CLVDD2/2C_LV_{DD}^2/2, si dissipa nel transistore nn. Un’uscita che compie ff cicli completi al secondo dissipa in media

P=fCLVDD2.P = fC_LV_{DD}^2 .
Dimostrazione.

Durante la salita la corrente i(t)i(t) che esce dall’alimentazione passa nel transistore pp e arriva tutta al condensatore di carico, perché il transistore nn è spento: i=CLdVout/dti = C_L\,dV_{out}/dt. L’energia fornita dall’alimentazione, che ha tensione costante, è

E=VDDidt=VDD0VDDCLdVout=CLVDD2.E = \int V_{DD}\,i\,dt = V_{DD}\int_0^{V_{DD}}C_L\,dV_{out} = C_LV_{DD}^2 .

L’energia nel condensatore passa da 00 a CLVDD2/2C_LV_{DD}^2/2. La differenza, CLVDD2/2C_LV_{DD}^2/2, non può che essersi dissipata nel transistore pp, l’unico altro elemento attraversato dalla corrente. Durante la discesa il transistore pp è spento e dall’alimentazione non esce corrente; il condensatore si scarica attraverso il transistore nn, e alla fine la sua energia è nulla: CLVDD2/2C_LV_{DD}^2/2 si è dissipata nel transistore nn. In un ciclo completo l’energia dissipata è CLVDD2C_LV_{DD}^2, e con ff cicli al secondo la potenza media è fCLVDD2fC_LV_{DD}^2.

Fine della dimostrazione.

La dimostrazione non usa nessun modello del transistore: vale per qualunque resistenza, lineare o no, tra un generatore di tensione costante e un condensatore. Il resistore più grande carica più lentamente, ma dissipa la stessa energia.

Il percorso della carica in una commutazione Un invertitore CMOS con un condensatore di carico tra l'uscita e massa. Nella prima metà dell'animazione l'ingresso è basso, il transistore p conduce e il transistore n è spento: sei cariche partono una dopo l'altra dall'alimentazione, scendono attraverso il transistore p, raggiungono l'uscita e si fermano sull'armatura superiore del condensatore. Nella seconda metà l'ingresso è alto, il transistore n conduce e il p è spento: le cariche lasciano il condensatore, attraversano il transistore n e finiscono a massa. In un ciclo la carica C L per V D D passa dall'alimentazione a massa. VDD CL Vin 0 V conduce spento l'alimentazione carica CL attraverso il transistore p VDD spento conduce CL si scarica a massa attraverso il transistore n

Il percorso della carica in un ciclo. Con l’ingresso basso il transistore pp conduce e porta dall’alimentazione al condensatore la carica CLVDDC_LV_{DD}; con l’ingresso alto il transistore nn conduce e la stessa carica va a massa. A ogni ciclo una carica CLVDDC_LV_{DD} scende dall’alimentazione a massa, e l’energia CLVDD2C_LV_{DD}^2 diventa calore.

Per l’invertitore di esempio CLVDD2=1,46C_LV_{DD}^2 = 1{,}46 pJ per ciclo: a 100100 MHz sono 0,150{,}15 mW. Un processore ha centinaia di milioni di nodi, ma non tutti commutano a ogni ciclo di clock: con una frazione α\alpha di nodi attivi la potenza è αNfCVDD2\alpha NfCV_{DD}^2. Con 10810^8 nodi da 22 fF, 11 V, 33 GHz e α=0,1\alpha = 0{,}1 si ottengono 6060 W: il consumo di un processore da computer.

La formula lascia poche leve. Ridurre la capacità vuol dire transistori più piccoli e collegamenti più corti, ma riducendo tutte le dimensioni di un fattore SS la capacità di una porta cala di S2S^2 e nella stessa area ne entrano S2S^2 in più: la potenza per unità di area non cambia. Ridurre VDDV_{DD} è la leva più forte, perché conta al quadrato. Nel 1974 Robert Dennard e i suoi colleghi dell’IBM mostrarono che, riducendo le dimensioni e la tensione dello stesso fattore, la densità di potenza resta costante mentre le porte diventano più veloci. Così è andata per trent’anni. Poi, intorno al 2005, la tensione ha smesso di scendere, perché le soglie non possono calare senza moltiplicare le correnti sotto la soglia, e l’ultima leva rimasta è stata la frequenza. Da allora la frequenza di clock dei processori è ferma a pochi gigahertz, perché un chip non smaltisce più di circa 100 W per centimetro quadrato, e la potenza di calcolo cresce con più processori in parallelo sullo stesso chip.

La potenza di cross-conduzione

Un fronte reale non è istantaneo. Mentre l’ingresso passa da VTHV_{TH} a VDDVTHV_{DD} - V_{TH} i due transistori sono accesi insieme, e una corrente attraversa la porta dall’alimentazione a massa senza caricare nulla. È la corrente di cross-conduzione.

Proposizione (energia di cross-conduzione)

In un invertitore CMOS simmetrico con carico trascurabile, se l’ingresso sale in modo lineare da 00 a VDDV_{DD} in un tempo tint_{in} abbastanza lungo perché l’uscita segua la caratteristica statica, l’energia dissipata per cross-conduzione durante il fronte è

Ecc=23k(VDD2VTH)3tin.E_{cc} = \frac{2}{3}\,k\left(\frac{V_{DD}}{2} - V_{TH}\right)^3t_{in} .
Dimostrazione.

Con l’uscita sulla caratteristica statica la corrente dall’alimentazione è quella dei due transistori in serie. Per VTH<Vin<VDD/2V_{TH} < V_{in} < V_{DD}/2 il transistore nn è saturo e porta k(VinVTH)2k(V_{in} - V_{TH})^2; per VDD/2<Vin<VDDVTHV_{DD}/2 < V_{in} < V_{DD} - V_{TH} è saturo il pp, e la corrente è k(VDDVinVTH)2k(V_{DD} - V_{in} - V_{TH})^2; fuori da quell’intervallo uno dei due è spento. Con Vin=VDDt/tinV_{in} = V_{DD}t/t_{in} è dt=tindVin/VDDdt = t_{in}\,dV_{in}/V_{DD}, e la carica che attraversa la porta è

Q=tinVDDI(Vin)dVin=tinVDD2VTHVDD/2k(VVTH)2dV=2ktin3VDD(VDD2VTH)3,\begin{aligned} Q &= \frac{t_{in}}{V_{DD}}\int I(V_{in})\,dV_{in} = \frac{t_{in}}{V_{DD}}\cdot2\int_{V_{TH}}^{V_{DD}/2}k\left(V - V_{TH}\right)^2dV \\ &= \frac{2k\,t_{in}}{3V_{DD}}\left(\frac{V_{DD}}{2} - V_{TH}\right)^3 , \end{aligned}

dove si è usata la simmetria delle due metà. L’energia è VDDQV_{DD}Q.

Fine della dimostrazione.

Il picco di corrente, alla soglia, è k(VDD/2VTH)2=1,48k(V_{DD}/2 - V_{TH})^2 = 1{,}48 mA per l’esempio. Un triangolo con quel picco e la stessa base, una stima che si trova spesso, dà un’energia più grande di un fattore 3/23/2. Con un carico non trascurabile l’uscita resta indietro rispetto all’ingresso, uno dei due transistori lavora con una tensione piccola ai capi, e la corrente di cross-conduzione è più bassa di quella calcolata qui.

La corrente di cross-conduzione Due grafici con la tensione di ingresso in ascissa, da 0 a 3,3 volt. In alto la caratteristica dell'invertitore CMOS, che scende da 3,3 volt a zero con il tratto verticale a 1,65 volt. In basso la corrente assorbita dall'alimentazione: zero fino a V T H, 0,34 volt, poi un arco di parabola che sale fino a 1,48 milliampere a 1,65 volt e scende simmetricamente fino a zero a 2,96 volt. L'area sotto la curva è ombreggiata. Un triangolo tratteggiato con la stessa base e lo stesso picco racchiude la curva. 0123 00,511,5 03 Vout (V) IDD (mA) Vin (V) VTH VM VDD − VTH

In alto la caratteristica dell’invertitore CMOS simmetrico; in basso la corrente che lo attraversa quando l’ingresso passa lentamente da zero a VDDV_{DD}. La corrente è nulla finché uno dei due transistori è spento e ha il picco alla soglia, dove sono saturi entrambi. L’area ombreggiata, moltiplicata per tin/VDDt_{in}/V_{DD}, è la carica di cross-conduzione; il triangolo tratteggiato la sovrastima di metà.

Con un fronte di 3030 ps, simile al tempo di propagazione della porta che lo produce, Ecc=39E_{cc} = 39 fJ, circa il 5% dell’energia CLVDD2/2C_LV_{DD}^2/2 dissipata nella stessa transizione. Con un fronte di un nanosecondo sarebbe 1,31{,}3 pJ, più della potenza dinamica. In un circuito ben progettato ogni porta pilota un carico proporzionato alle sue dimensioni, i fronti restano rapidi, e la cross-conduzione è una frazione piccola del consumo.

Esercizi risolti e commentati

Esercizio 1. L’invertitore di esempio pilota quattro invertitori uguali invece di uno, con la stessa pista. Quanto valgono il tempo di propagazione del modello quadratico e le due stime?

Soluzione. Il carico diventa CL=4130,4+3,5=525C_L = 4\cdot130{,}4 + 3{,}5 = 525 fF. Tutti i tempi sono proporzionali a CLC_L, e crescono di 525/134=3,92525/134 = 3{,}92 volte: tpHL=31,03,92=122t_{pHL} = 31{,}0\cdot3{,}92 = 122 ps, compreso tra 0,5CLVDD/Isat=1150{,}5\,C_LV_{DD}/I_{sat} = 115 ps e ln2CLVDD/Isat=159\ln 2\,C_LV_{DD}/I_{sat} = 159 ps.

Commento. Il numero di porte collegate a un’uscita, il fan-out, rallenta la porta in proporzione. Nei circuiti veloci si preferiscono catene di invertitori che crescono di un fattore tre o quattro alla volta, invece di un invertitore piccolo che ne pilota uno enorme.

Esercizio 2. Si riducono tutte le dimensioni dei transistori della metà, lasciando uguali ossido e alimentazione, e la pista resta lunga 100 μ100\ \mum. Quanto diventa il tempo di propagazione?

Soluzione. Con WW e LL dimezzati kk non cambia, perché dipende da W/LW/L, e quindi nemmeno IsatI_{sat}. La capacità dei gate si riduce a un quarto, 130,4/4=32,6130{,}4/4 = 32{,}6 fF, e il carico diventa 32,6+3,5=36,132{,}6 + 3{,}5 = 36{,}1 fF. Il tempo di propagazione scala con il carico: 31,036,1/134=8,331{,}0\cdot36{,}1/134 = 8{,}3 ps.

Commento. Senza la pista il tempo sarebbe sceso esattamente di quattro volte; la pista, che non si è accorciata, pesa ora un decimo del carico. Nei chip moderni le piste lunghe sono il collo di bottiglia della velocità, e si spezzano con stadi intermedi.

Esercizio 3. Un processore ha 10810^8 nodi con una capacità media di 22 fF, lavora a 33 GHz con alimentazione di 11 V, e a ogni ciclo commuta il 10% dei nodi. Quanta potenza dinamica dissipa? E se l’alimentazione fosse di 1,21{,}2 V?

Soluzione. P=αNfCVDD2=0,11083×109 Hz2×1015 F(1 V)2=60P = \alpha NfCV_{DD}^2 = 0{,}1\cdot10^8\cdot3\times10^9\ \text{Hz}\cdot2\times10^{-15}\ \text{F}\cdot(1\ \text{V})^2 = 60 W. Con 1,21{,}2 V la potenza cresce di 1,22=1,441{,}2^2 = 1{,}44 volte, a 8686 W.

Commento. Venti centesimi di volt in più costano il 44% di potenza. È per questo che i processori abbassano insieme tensione e frequenza quando il carico di lavoro è leggero: la potenza cala con il cubo, e l’energia per operazione con il quadrato della tensione.

Esercizio 4. Un condensatore CC si carica da 00 a VDDV_{DD} attraverso un resistore, prima direttamente da un generatore VDDV_{DD}, poi in due tappe: fino a regime da un generatore VDD/2V_{DD}/2 e poi da un generatore VDDV_{DD}. Quanta energia si dissipa nei due casi?

Soluzione. Nel primo caso, come nella dimostrazione del teorema, il generatore fornisce CVDD2CV_{DD}^2 e se ne dissipa metà, CVDD2/2CV_{DD}^2/2. Nella prima tappa del secondo caso il condensatore sale di VDD/2V_{DD}/2 con un generatore VDD/2V_{DD}/2: il generatore fornisce C(VDD/2)2C(V_{DD}/2)^2 e se ne dissipa metà, CVDD2/8CV_{DD}^2/8. Nella seconda tappa il condensatore sale da VDD/2V_{DD}/2 a VDDV_{DD} con un generatore VDDV_{DD}: il generatore fornisce VDDCVDD/2=CVDD2/2V_{DD}\cdot CV_{DD}/2 = CV_{DD}^2/2, e l’energia nel condensatore passa da CVDD2/8CV_{DD}^2/8 a CVDD2/2CV_{DD}^2/2, cioè cresce di 3CVDD2/83CV_{DD}^2/8; se ne dissipa CVDD2/8CV_{DD}^2/8. In tutto CVDD2/4CV_{DD}^2/4, la metà del primo caso.

Commento. Con NN tappe uguali l’energia dissipata è CVDD2/2NCV_{DD}^2/2N: caricando lentamente, con una tensione che sale insieme a quella del condensatore, la dissipazione tende a zero. È l’idea dei circuiti adiabatici, studiati da decenni per ridurre il consumo al prezzo della velocità e della complessità.

Esercizio 5. Un ingresso dell’invertitore di esempio resta scollegato e si ferma a VDD/2V_{DD}/2. Quanto consuma la porta? Quanto costerebbe, per ogni fronte, un ingresso che sale in 11 ns invece che in 3030 ps?

Soluzione. A VDD/2V_{DD}/2 entrambi i transistori sono saturi e la corrente è k(VDD/2VTH)2=0,861,312=1,48k(V_{DD}/2 - V_{TH})^2 = 0{,}86\cdot1{,}31^2 = 1{,}48 mA, cioè 4,94{,}9 mW di continuo, più di trenta volte la potenza dinamica della stessa porta a 100 MHz. Con un fronte di 11 ns l’energia di cross-conduzione è 230,86×1031,313109=1,3\frac{2}{3}\cdot0{,}86\times10^{-3}\cdot1{,}31^3\cdot10^{-9} = 1{,}3 pJ, contro 3939 fJ con 3030 ps.

Commento. Un ingresso lasciato a metà trasforma una porta a consumo nullo in una piccola stufa, e con migliaia di porte può scaldare un chip. Negli ingressi dei circuiti digitali che vengono dall’esterno, spesso lenti, si usano porte con una caratteristica a isteresi, i trigger di Schmitt, che commutano di scatto anche con un ingresso lento.

Hai trovato un errore o qualcosa che non funziona in questa pagina? Scrivi una segnalazione