Vai al contenuto
Emmy

Reti sequenziali e memorie

Elettronica · Elettronica digitale Articolo

Percorso: Fondamenti di elettronica · 15 di 20

Prima di questo, potrebbe interessarti: Porte logiche CMOS

Indice

Ricordare

Le porte logiche viste finora formano reti combinatorie: finiti i transitori, l’uscita dipende solo dagli ingressi di quel momento. Una rete così non sa contare, perché per contare bisogna ricordare a che numero si era arrivati. Una rete sequenziale ha anche elementi di memoria: una parte combinatoria riceve gli ingressi e lo stato memorizzato, e produce le uscite e lo stato nuovo, che torna in memoria. Con abbastanza memoria una rete così esegue qualunque algoritmo, ed è lo schema di ogni calcolatore.

Una rete sequenziale Un blocco al centro, la rete combinatoria, con gli ingressi che arrivano da sinistra e le uscite che escono a destra. Dal blocco esce verso il basso lo stato nuovo, che entra in un secondo blocco, la memoria; dalla memoria lo stato passato torna al blocco combinatorio. Una freccia indicata come clock entra nella memoria. rete combinatoria memoria ingressi uscite stato nuovo stato passato clock

Una rete sequenziale: la rete combinatoria calcola le uscite e lo stato nuovo dagli ingressi e dallo stato passato, conservato in un elemento di memoria. Nelle reti sincrone la memoria si aggiorna solo quando lo dice il clock.

In elettronica digitale ricordare un bit è facile, e i transistori che l’umanità fabbrica ogni anno sono in grandissima parte celle di memoria. Questo articolo parte dal circuito più semplice che ricorda, il bistabile, arriva ai latch e alle reti comandate da un clock, e finisce con le due memorie più diffuse nei calcolatori, la SRAM e la DRAM.

Il bistabile

Due invertitori in anello, l’uscita di ciascuno all’ingresso dell’altro, si sostengono a vicenda: se VxV_x è basso, VyV_y è alto, e VyV_y alto tiene basso VxV_x. Lo stesso vale con i valori scambiati. Il circuito ha due stati e ci resta finché è alimentato: è un bistabile. Nel piano (Vx,Vy)(V_x, V_y) gli stati possibili sono le intersezioni della caratteristica del primo invertitore, Vy=f(Vx)V_y = f(V_x), con quella del secondo, Vx=f(Vy)V_x = f(V_y), e sono tre: i due stati estremi e un punto alla soglia di commutazione, dove Vx=Vy=VMV_x = V_y = V_M.

Il terzo punto non si osserva mai. Per capire perché serve la dinamica: ciascuna uscita ha una capacità, e insegue il valore imposto dalla caratteristica con un ritardo. In un modello semplice, con la stessa costante di tempo τ\tau per i due invertitori,

τdVxdt=f(Vy)Vx,τdVydt=f(Vx)Vy.\tau\frac{dV_x}{dt} = f(V_y) - V_x , \qquad \tau\frac{dV_y}{dt} = f(V_x) - V_y .

Proposizione (stabilità del bistabile)

Nel modello, un punto di equilibrio (Ve,f(Ve))(V_e, f(V_e)) con Ve=f(f(Ve))V_e = f(f(V_e)) è stabile se f(Ve)f(f(Ve))<1|f'(V_e)\,f'(f(V_e))| < 1 e instabile se il prodotto supera 1. In particolare il punto alla soglia, dove la pendenza g=f(VM)g = f'(V_M) ha modulo maggiore di 1, è instabile: uno scarto δ\delta con VxVM=δV_x - V_M = \delta e VyVM=δV_y - V_M = -\delta cresce come e(g1)t/τe^{(|g| - 1)t/\tau}. I due stati estremi, dove la pendenza è quasi nulla, sono stabili.

Dimostrazione.

Si linearizza attorno all’equilibrio, con Vx=Ve+uV_x = V_e + u, Vy=f(Ve)+wV_y = f(V_e) + w e le pendenze a=f(Ve)a = f'(V_e), b=f(f(Ve))b = f'(f(V_e)):

τdudt=bwu,τdwdt=auw.\tau\frac{du}{dt} = b\,w - u , \qquad \tau\frac{dw}{dt} = a\,u - w .

Gli autovalori della matrice del sistema, moltiplicati per τ\tau, sono le soluzioni di (λ+1)2=ab(\lambda + 1)^2 = ab, cioè λ=1±ab\lambda = -1 \pm \sqrt{ab}. Con aa e bb dello stesso segno, come per due invertitori, ab>0ab > 0 e gli autovalori sono reali: se ab<1ab < 1 sono entrambi negativi e le perturbazioni si smorzano; se ab>1ab > 1 uno è positivo e una perturbazione cresce in modo esponenziale. Alla soglia a=b=ga = b = g, ab=g\sqrt{ab} = |g|, e l’autovettore dell’autovalore positivo (g1)/τ(|g| - 1)/\tau è u=wu = -w, perché con g<0g < 0 la prima equazione dà τdu/dt=gwu=(g1)u\tau\,du/dt = g\,w - u = (|g| - 1)u per w=uw = -u. Negli stati estremi gli invertitori sono in un tratto piatto della caratteristica, ab0ab \approx 0, e gli autovalori valgono circa 1/τ-1/\tau.

Fine della dimostrazione.

Per l’invertitore CMOS di riferimento, con una piccola modulazione della lunghezza di canale, la pendenza alla soglia è circa 33-33: uno scarto di un millivolt raggiunge metà dell’alimentazione in τln(1650)/320,23τ\tau\ln(1650)/32 \approx 0{,}23\,\tau. Il rumore dei transistori basta a far cadere il circuito da una parte o dall’altra. Alcuni processori sfruttano proprio questo per generare bit casuali: forzano un bistabile alla soglia, lo lasciano andare e leggono da che parte cade.

Il bistabile: due invertitori in anello A sinistra due invertitori collegati ad anello: l'uscita del primo, V y, è l'ingresso del secondo, e l'uscita del secondo, V x, è l'ingresso del primo. A destra un grafico con V x in ascissa e V y in ordinata, da 0 a 3,3 volt: la caratteristica del primo invertitore, V y in funzione di V x, e quella del secondo, disegnata con gli assi scambiati. Le due curve si incontrano in tre punti: in alto a sinistra, con V x a zero e V y a 3,3 volt; in basso a destra, con V x a 3,3 volt e V y a zero; e al centro, alla soglia. Nell'animazione due punti partono appena sopra e appena sotto il punto centrale e si allontanano, uno verso l'angolo in basso a destra e l'altro verso l'angolo in alto a sinistra. Vy Vx Vx Vy instabile stabile stabile

A sinistra due invertitori in anello. A destra le loro caratteristiche nel piano (Vx,Vy)(V_x, V_y), la seconda con gli assi scambiati: si incontrano nei due stati stabili agli estremi e nel punto instabile alla soglia. Due stati che partono a 30 mV dalla soglia, da parti opposte, finiscono nei due stati stabili opposti.

Il tempo di decisione cresce come il logaritmo dell’inverso dello scarto iniziale, senza limite: uno stato che parte esattamente alla soglia ci resta per un tempo imprevedibile. È la metastabilità, e riguarda ogni elemento di memoria che deve catturare un segnale che cambia nel momento sbagliato.

Il latch set-reset

Un bistabile ricorda, ma non si può scrivere. Il latch set-reset sostituisce gli invertitori con due porte NOR: Q=R+QQ = \overline{R + \overline{Q}} e Q=S+Q\overline{Q} = \overline{S + Q}. Una NOR con un ingresso a 0 è un invertitore dell’altro ingresso; con un ingresso a 1 dà 0 comunque. Quindi:

  • con S=R=0S = R = 0 le due NOR sono invertitori in anello, e il latch conserva lo stato;
  • con S=1S = 1 e R=0R = 0 la seconda NOR dà Q=0\overline{Q} = 0 e la prima Q=1Q = 1: il latch viene impostato a 1, e ci resta quando SS torna a 0;
  • con S=0S = 0 e R=1R = 1 il latch viene azzerato, Q=0Q = 0;
  • con S=R=1S = R = 1 le due uscite sono entrambe 0, e non sono più l’una la negazione dell’altra. Se poi SS e RR tornano a 0 insieme, le due NOR tendono a portarsi a 1 nello stesso momento: lo stato finale dipende da quale porta è più veloce, o il circuito resta metastabile. Questa combinazione non si usa.

A livello di transistori un latch a NOR richiede otto transistori. Una versione più compatta ne usa sei: un bistabile di due invertitori, con due transistori nn verso massa, uno comandato da SS sul nodo Q\overline{Q} e uno comandato da RR sul nodo QQ. Per impostare il latch il transistore di SS deve tirare giù Q\overline{Q} contro il transistore pp dell’invertitore che lo tiene alto.

Il latch set-reset A sinistra due porte NOR con i collegamenti incrociati: la prima riceve R e l'uscita della seconda e produce Q; la seconda riceve S e l'uscita della prima e produce Q negato. A destra una versione a transistori: due invertitori in anello, con i nodi Q negato a sinistra e Q a destra, e sotto ciascun nodo un transistore n verso massa, comandato da S per il nodo Q negato e da R per il nodo Q. R S Q Q Q Q S R con porte NOR a transistori

Il latch set-reset. A sinistra con due porte NOR in anello; a destra la versione compatta, con due invertitori in anello e due transistori nn che forzano a massa uno dei due nodi.

Proposizione (dimensionamento del latch compatto)

Nel latch compatto con invertitori simmetrici di soglia VDD/2V_{DD}/2, e con VTH|V_{TH}| uguali per tutti i transistori, l’impostazione funziona se il transistore comandato da SS ha un kk maggiore di quello del transistore pp contro cui lavora.

Dimostrazione.

Prima dell’impostazione Q=0Q = 0 e Q=VDD\overline{Q} = V_{DD}. Quando SS va a VDDV_{DD}, e finché QQ resta basso, sul nodo Q\overline{Q} il transistore pp ha VSG=VDDV_{SG} = V_{DD} e il transistore di SS ha VGS=VDDV_{GS} = V_{DD}: la tensione del nodo scende finché le due correnti non sono uguali. Il latch commuta se quel punto sta sotto la soglia VDD/2V_{DD}/2 dell’invertitore che legge Q\overline{Q}: da lì in poi QQ sale, il transistore pp si spegne e l’anello completa la commutazione. A V=VDD/2V = V_{DD}/2 i due transistori hanno la stessa tensione di comando e la stessa tensione ai capi, VDD/2V_{DD}/2, quindi le loro correnti stanno nel rapporto dei loro kk. Se il transistore di SS ha il kk più grande, a metà alimentazione la sua corrente vince e il nodo scende ancora, finché le correnti, che variano in modo monotono con la tensione del nodo, non si uguagliano più in basso. Se i due kk sono uguali l’equilibrio è proprio a VDD/2V_{DD}/2, al limite della commutazione.

Fine della dimostrazione.

Con i transistori di riferimento e VDD=3,3V_{DD} = 3{,}3 V, un transistore di SS con kk doppio porta il nodo a 0,840{,}84 V, ben sotto la soglia. Durante la gara scorre però una corrente diretta tra alimentazione e massa: il latch compatto commuta più lentamente di quello a NOR, e con S=R=1S = R = 1 consuma di continuo.

Reti asincrone e sincrone

Un latch reagisce subito ai suoi ingressi, e questo è un problema quando gli ingressi vengono da reti combinatorie. Le porte hanno ritardi diversi, e durante i transitori le loro uscite possono assumere per un attimo valori sbagliati, i glitch. Una rete combinatoria li dimentica alla fine del transitorio; un latch li ricorda.

L’esempio più semplice è una NOR che riceve AA e la sua negazione: in regime la sua uscita è sempre 0, perché uno dei due ingressi è sempre 1. Ma se l’invertitore ritarda di 3 ns e la NOR di 1 ns, quando AA scende a 15 ns la negazione risale solo a 18 ns, e per tre nanosecondi la NOR vede due zeri: la sua uscita va a 1 da 16 a 19 ns. Se quell’uscita comanda l’ingresso SS di un latch, il latch memorizza un 1 che nessuna tabella di verità prevede.

Un glitch che diventa un errore In alto un circuito: il segnale A entra in un invertitore e, direttamente, in una porta NOR; l'uscita dell'invertitore entra nell'altro ingresso della NOR; l'uscita della NOR è l'ingresso S di un latch. Sotto, quattro segnali nel tempo, da 0 a 30 nanosecondi. A sale a 5 e scende a 15. A negato scende a 8 e risale a 18, in ritardo di 3 nanosecondi. S è basso, tranne un impulso da 16 a 19 nanosecondi, quando A e A negato sono stati bassi insieme. Q sale a 16 e resta alto. A 3 ns 1 ns S latch Q A A S Q 051015202530 ns glitch errore memorizzato

Un glitch che diventa un errore. Il segnale AA e la sua negazione, in ritardo di 3 ns, sono entrambi bassi tra 15 e 18 ns; la NOR produce un impulso di 3 ns sull’ingresso SS del latch, che memorizza un 1 e lo tiene anche dopo la fine del transitorio.

In un sistema grande, con milioni di percorsi di ritardi diversi, controllare tutti i transitori è impossibile. La soluzione che si usa quasi sempre è un segnale comune, il clock, un’onda quadra a frequenza fissa: gli elementi di memoria si aggiornano solo in momenti stabiliti dal clock, quando i transitori delle reti combinatorie sono finiti. Sono le reti sincrone. Aspettare il clock rallenta un poco, ma rende il progetto trattabile, e la frequenza massima del clock diventa la misura della velocità di un processore: il periodo deve superare il ritardo del percorso combinatorio più lento tra due memorie.

Il latch più semplice comandato dal clock aggiunge due porte AND agli ingressi del latch set-reset, comandate dal clock: con il clock basso le AND danno 0, e il latch conserva lo stato; con il clock alto funziona come un latch set-reset. Nella versione compatta bastano due transistori nn in serie a quelli di SS e di RR, con il gate sul clock; la serie, per la proposizione sui transistori in serie, ha un kk più piccolo, e i due transistori vanno fatti più larghi perché la serie vinca ancora sul transistore pp. Un elemento così è trasparente finché il clock è alto: se gli ingressi cambiano mentre il clock è alto, cambia anche la memoria. Mettendo in cascata due latch comandati da fasi opposte del clock si ottiene un elemento che cambia stato solo sul fronte del clock, il flip-flop. I nomi non sono usati da tutti allo stesso modo, e per un componente reale vale quello che scrive il costruttore nel suo foglio tecnico.

Le memorie a semiconduttore

Un gigabyte sono 82308,6×1098\cdot2^{30} \approx 8{,}6\times10^9 bit. Fatti con latch da sei transistori, sarebbero più di cinquanta miliardi di transistori: per questo le memorie di grande capacità usano celle ridotte all’osso. Le famiglie principali sono tre.

  • La SRAM, RAM statica, conserva i bit in bistabili, finché c’è alimentazione. RAM sta per random access memory: il tempo per leggere un bit non dipende dalla sua posizione, a differenza di un disco, dove bisogna aspettare che la testina arrivi al punto giusto.
  • La DRAM, RAM dinamica, conserva i bit come cariche su condensatori, che si perdono lentamente e vanno rinfrescate.
  • Le memorie non volatili conservano i dati per anni senza alimentazione. Le più diffuse sono le memorie flash, inventate da Fujio Masuoka alla Toshiba negli anni Ottanta, in cui il bit è una carica intrappolata in un gate isolato che sposta la soglia del transistore, come la carica nell’ossido di un condensatore MOS.

La cella SRAM ha sei transistori: due invertitori in anello e due transistori nn di accesso, che collegano i due nodi a due linee verticali, le bit line BLBL e BL\overline{BL}. Una linea orizzontale, la word line WLWL, comanda i gate di accesso di tutte le celle di una riga. Per scrivere si forzano le bit line a valori opposti e si alza la word line; per leggere si precaricano le bit line, si alza la word line e si guarda quale delle due scende. È veloce e non richiede manutenzione, ma è grande: si usa nelle memorie cache dei processori.

Una cella SRAM e una cella DRAM A sinistra la cella SRAM: due invertitori in anello tra due linee verticali, le bit line BL e BL negata; i nodi Q negato e Q dell'anello sono collegati alle bit line da due transistori n disposti in orizzontale, con i gate collegati alla word line WL, una linea orizzontale in alto. A destra la cella DRAM: un solo transistore n in orizzontale, con il gate sulla word line, un terminale sulla bit line verticale e l'altro su un condensatore C M verso massa. BL BL BL WL WL Q Q CM SRAM DRAM

A sinistra la cella SRAM: un bistabile e due transistori di accesso verso le bit line BLBL e BL\overline{BL}, comandati dalla word line WLWL. A destra la cella DRAM: un transistore di accesso e un condensatore CMC_M.

La DRAM

La cella DRAM, inventata da Robert Dennard all’IBM nel 1966 e in commercio dal 1970, è un transistore e un condensatore: un 1 è un condensatore carico, uno 0 un condensatore scarico. Le celle stanno in una matrice, con le word line sulle righe e le bit line sulle colonne; alzando una sola word line si accede a una riga, e ogni bit line porta il bit della sua colonna.

Per scrivere uno 0 si porta la bit line a massa e si alza la word line: il condensatore si scarica attraverso il transistore. Per scrivere un 1 si porta la bit line a VDDV_{DD}: il transistore carica il condensatore, ma, come ogni pass-transistor a canale nn, si ferma a VDDVTHV_{DD} - V_{TH}. Per questo nelle DRAM la word line si porta di solito sopra VDDV_{DD}, di almeno una soglia.

Con la word line bassa la carica dovrebbe restare, ma se ne va: per le correnti sotto la soglia del transistore di accesso, per le correnti inverse delle giunzioni, per le perdite del dielettrico. Con un condensatore di 2020 fF e una corrente di perdita di 11 fA, la tensione cala di 0,30{,}3 V in sei secondi, e le perdite crescono molto con la temperatura. Ogni cella va quindi letta e riscritta periodicamente: gli standard delle memorie DDR prevedono un rinfresco ogni 64 ms.

La lettura è la parte delicata. La bit line, lunga e collegata a migliaia di celle, ha una capacità molto più grande del condensatore della cella. Si precarica a VDD/2V_{DD}/2, la si lascia isolata e si alza la word line: la carica della cella si divide tra i due condensatori.

Proposizione (condivisione di carica)

Due condensatori CMC_M e CBLC_{BL}, alle tensioni VMV_M e VBLV_{BL} rispetto a massa, collegati da un transistore o da un resistore, arrivano alla tensione comune

Vf=CMVM+CBLVBLCM+CBL,V_f = \frac{C_MV_M + C_{BL}V_{BL}}{C_M + C_{BL}} ,

e nel collegamento si dissipa l’energia 12CMCBLCM+CBL(VMVBL)2\dfrac{1}{2}\dfrac{C_MC_{BL}}{C_M + C_{BL}}\left(V_M - V_{BL}\right)^2, qualunque sia l’elemento che li collega.

Dimostrazione.

La carica che esce dall’armatura superiore di un condensatore arriva all’altro: non ci sono altri percorsi, e la carica totale CMVM+CBLVBLC_MV_M + C_{BL}V_{BL} si conserva. La corrente si annulla quando le tensioni sono uguali, e da (CM+CBL)Vf=CMVM+CBLVBL(C_M + C_{BL})V_f = C_MV_M + C_{BL}V_{BL} si ottiene VfV_f. L’energia iniziale è 12CMVM2+12CBLVBL2\frac{1}{2}C_MV_M^2 + \frac{1}{2}C_{BL}V_{BL}^2, quella finale 12(CM+CBL)Vf2\frac{1}{2}(C_M + C_{BL})V_f^2. Sviluppando la differenza con l’espressione di VfV_f,

ΔE=12[CMVM2+CBLVBL2(CMVM+CBLVBL)2CM+CBL]=12CMCBLCM+CBL(VMVBL)2,\begin{aligned} \Delta E &= \frac{1}{2}\left[C_MV_M^2 + C_{BL}V_{BL}^2 - \frac{\left(C_MV_M + C_{BL}V_{BL}\right)^2}{C_M + C_{BL}}\right] \\ &= \frac{1}{2}\,\frac{C_MC_{BL}}{C_M + C_{BL}}\left(V_M - V_{BL}\right)^2 , \end{aligned}

perché il numeratore della differenza tra le due frazioni, con denominatore comune CM+CBLC_M + C_{BL}, è CMCBL(VM2+VBL22VMVBL)C_MC_{BL}(V_M^2 + V_{BL}^2 - 2V_MV_{BL}). Quell’energia si è trasformata in calore nell’elemento di collegamento.

Fine della dimostrazione.

Con CM=20C_M = 20 fF, CBL=200C_{BL} = 200 fF, VDD=1,5V_{DD} = 1{,}5 V e una soglia di 0,40{,}4 V, un 1 memorizzato senza word line sovralimentata vale 1,11{,}1 V. La bit line sale da 0,750{,}75 a 0,7820{,}782 V, appena 3232 mV; con uno 0 scende a 0,6820{,}682 V, 6868 mV. Il segnale è piccolo e va amplificato. L’amplificatore di lettura è un bistabile, due invertitori in anello tra la bit line e una linea di riferimento a VDD/2V_{DD}/2: portato alla soglia e lasciato libero, cade dalla parte dello scarto, e in un tempo che per la proposizione sulla stabilità dura pochi τ\tau riporta la bit line a 00 o a VDDV_{DD}. Dopo la lettura il condensatore della cella è vicino a VDD/2V_{DD}/2: la lettura distrugge il dato, e l’amplificatore, che ha appena riportato la bit line al livello pieno, lo riscrive nella cella.

La lettura di una cella DRAM Due grafici in funzione del tempo, prima e dopo l'accensione del transistore di accesso. In alto la tensione del condensatore della cella: se contiene un 1 parte da 1,1 volt e scende rapidamente a 0,78 volt; se contiene uno 0 parte da zero e sale a 0,68 volt. In basso, su una scala molto più dilatata, la tensione della bit line, precaricata a 0,75 volt: con l'1 sale di 32 millivolt, a 0,78 volt, con lo 0 scende di 68 millivolt, a 0,68 volt. 00,51 0,70,750,8 VM (V), condensatore della cella VBL (V), bit line 1 memorizzato 0 memorizzato +32 mV −68 mV 012345 t/τ

La lettura di una cella DRAM. Quando il transistore di accesso si accende, a t=0t = 0, il condensatore della cella e la bit line si portano alla stessa tensione. In alto la tensione della cella, in basso quella della bit line su una scala dilatata: con un 1 memorizzato la bit line sale di 32 mV, con uno 0 scende di 68 mV. Il tempo è in unità della costante di tempo del collegamento.

La DRAM è più lenta della SRAM, ha bisogno di un amplificatore delicato e di un rinfresco continuo, e ogni lettura va seguita da una scrittura. Ha un solo vantaggio, la cella piccola, ma è decisivo: la memoria principale dei calcolatori è fatta di DRAM, e la SRAM resta dove serve la velocità.

Esercizi risolti e commentati

Esercizio 1. Un bistabile ha una pendenza alla soglia g=33g = -33 e costante di tempo τ\tau. Quanto tempo serve perché uno scarto iniziale di 11 mV, e poi di 1 μ1\ \muV, arrivi a 1,651{,}65 V, nel modello linearizzato?

Soluzione. Lo scarto cresce come δe(g1)t/τ\delta\,e^{(|g| - 1)t/\tau}, e arriva a 1,651{,}65 V dopo t=τln(1,65 V/δ)/(g1)t = \tau\ln(1{,}65\ \text{V}/\delta)/(|g| - 1). Con δ=1\delta = 1 mV, t=τln1650/32=0,23τt = \tau\ln1650/32 = 0{,}23\,\tau; con δ=1 μ\delta = 1\ \muV, t=τln(1,65×106)/32=0,45τt = \tau\ln(1{,}65\times10^6)/32 = 0{,}45\,\tau.

Commento. Mille volte meno di scarto costa solo il doppio del tempo, ma il tempo non ha limite: con uno scarto nullo il modello resta alla soglia per sempre. Nei circuiti reali il rumore toglie il pareggio esatto, ma non si può garantire un tempo massimo di decisione. Per questo un segnale che arriva da un altro dominio di clock passa per due o tre flip-flop in fila, che riducono a valori trascurabili la probabilità che uno stato metastabile arrivi alla logica.

Esercizio 2. Nel latch compatto con i transistori di riferimento, kp=0,86k_p = 0{,}86 mA/V² e VDD=3,3V_{DD} = 3{,}3 V, a che tensione scende il nodo Q\overline{Q} con il transistore di SS uguale al transistore pp, e con uno di kk doppio?

Soluzione. Con kk uguali, per la simmetria delle due correnti, il nodo si ferma a VDD/2=1,65V_{DD}/2 = 1{,}65 V: esattamente alla soglia dell’invertitore che lo legge, e la commutazione non è garantita. Con kS=2kpk_S = 2k_p il nodo scende sotto la soglia; ipotizzando i due transistori in zona ohmica, l’uguaglianza delle correnti

2kp[2,96VV22]2=2kp[2,96(3,3V)(3,3V)22]2k_p\left[2{,}96\,V - \frac{V^2}{2}\right]\cdot2 = 2k_p\left[2{,}96\left(3{,}3 - V\right) - \frac{\left(3{,}3 - V\right)^2}{2}\right]

ha la soluzione V=0,84V = 0{,}84 V. Entrambi i transistori hanno una tensione ai capi minore di 2,962{,}96 V, e l’ipotesi è verificata.

Commento. A 0,840{,}84 V l’invertitore che legge il nodo porta QQ in alto, il transistore pp si spegne e il nodo scende a zero. Una volta commutato, il latch non consuma più; durante la gara, invece, passano più di 7 mA.

Esercizio 3. Nel circuito del glitch, l’invertitore ha un ritardo di 3 ns e la NOR di 1 ns. Quanto dura l’impulso sbagliato? Che cosa cambia se AA sale invece di scendere?

Soluzione. Quando AA scende, la NOR vede due zeri dal momento in cui AA è sceso fino a quando la negazione risale, per il ritardo dell’invertitore: 3 ns. L’uscita della NOR ripete l’intervallo spostato di 1 ns. Quando AA sale, invece, la NOR vede per 3 ns due uni, e la sua uscita resta a 0: nessun glitch.

Commento. Il glitch dipende dalla direzione del fronte e dalle differenze dei ritardi, cose che un’analisi puramente logica non vede. In una rete sincrona non importa: il latch guarda l’uscita della NOR solo quando il clock lo abilita, dopo la fine dei transitori.

Esercizio 4. In una DRAM con CM=20C_M = 20 fF, bit line precaricata a 0,750{,}75 V e word line sovralimentata, un 1 è memorizzato a 1,51{,}5 V. Qual è la capacità massima della bit line perché la lettura sposti la bit line di almeno 5050 mV?

Soluzione. Dalla condivisione di carica lo spostamento è

VfVBL=CMCM+CBL(VMVBL)=CMCM+CBL0,75 V.V_f - V_{BL} = \frac{C_M}{C_M + C_{BL}}\left(V_M - V_{BL}\right) = \frac{C_M}{C_M + C_{BL}}\cdot0{,}75\ \text{V} .

La condizione VfVBL0,05V_f - V_{BL} \ge 0{,}05 V dà CM/(CM+CBL)1/15C_M/(C_M + C_{BL}) \ge 1/15, cioè CBL14CM=280C_{BL} \le 14\,C_M = 280 fF.

Commento. La capacità della bit line cresce con il numero di celle collegate. Le memorie si dividono in blocchi con bit line corte, e i progettisti cercano di tenere alta la capacità della cella in un’area sempre più piccola: i condensatori delle DRAM moderne sono cilindri alti e stretti, scavati o costruiti in verticale.

Esercizio 5. Quanti transistori servono per 11 GiB di SRAM e quanti per 11 GiB di DRAM?

Soluzione. 11 GiB sono 8230=8,59×1098\cdot2^{30} = 8{,}59\times10^9 bit. Con sei transistori per bit la SRAM ne richiede 5,2×10105{,}2\times10^{10}; la DRAM 8,6×1098{,}6\times10^9, uno per bit, più altrettanti condensatori, oltre ai circuiti di decodifica e di lettura comuni a molte celle.

Commento. A parità di tecnologia una cella DRAM occupa una frazione dell’area di una cella SRAM. È per questo che i moduli di memoria dei calcolatori sono di DRAM, mentre la SRAM, veloce ma costosa in area, occupa pochi megabyte vicino ai nuclei del processore.

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