Reti sequenziali e memorie
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: 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 è basso, è alto, e alto tiene basso . Lo stesso vale con i valori scambiati. Il circuito ha due stati e ci resta finché è alimentato: è un bistabile. Nel piano gli stati possibili sono le intersezioni della caratteristica del primo invertitore, , con quella del secondo, , e sono tre: i due stati estremi e un punto alla soglia di commutazione, dove .
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 per i due invertitori,
Proposizione (stabilità del bistabile)
Nel modello, un punto di equilibrio con è stabile se e instabile se il prodotto supera 1. In particolare il punto alla soglia, dove la pendenza ha modulo maggiore di 1, è instabile: uno scarto con e cresce come . I due stati estremi, dove la pendenza è quasi nulla, sono stabili.
Si linearizza attorno all’equilibrio, con , e le pendenze , :
Gli autovalori della matrice del sistema, moltiplicati per , sono le soluzioni di , cioè . Con e dello stesso segno, come per due invertitori, e gli autovalori sono reali: se sono entrambi negativi e le perturbazioni si smorzano; se uno è positivo e una perturbazione cresce in modo esponenziale. Alla soglia , , e l’autovettore dell’autovalore positivo è , perché con la prima equazione dà per . Negli stati estremi gli invertitori sono in un tratto piatto della caratteristica, , e gli autovalori valgono circa .
Fine della dimostrazione.
Per l’invertitore CMOS di riferimento, con una piccola modulazione della lunghezza di canale, la pendenza alla soglia è circa : uno scarto di un millivolt raggiunge metà dell’alimentazione in . 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.
A sinistra due invertitori in anello. A destra le loro caratteristiche nel piano , 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: e . Una NOR con un ingresso a 0 è un invertitore dell’altro ingresso; con un ingresso a 1 dà 0 comunque. Quindi:
- con le due NOR sono invertitori in anello, e il latch conserva lo stato;
- con e la seconda NOR dà e la prima : il latch viene impostato a 1, e ci resta quando torna a 0;
- con e il latch viene azzerato, ;
- con le due uscite sono entrambe 0, e non sono più l’una la negazione dell’altra. Se poi e 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 verso massa, uno comandato da sul nodo e uno comandato da sul nodo . Per impostare il latch il transistore di deve tirare giù contro il transistore dell’invertitore che lo tiene alto.
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 che forzano a massa uno dei due nodi.
Proposizione (dimensionamento del latch compatto)
Nel latch compatto con invertitori simmetrici di soglia , e con uguali per tutti i transistori, l’impostazione funziona se il transistore comandato da ha un maggiore di quello del transistore contro cui lavora.
Prima dell’impostazione e . Quando va a , e finché resta basso, sul nodo il transistore ha e il transistore di ha : la tensione del nodo scende finché le due correnti non sono uguali. Il latch commuta se quel punto sta sotto la soglia dell’invertitore che legge : da lì in poi sale, il transistore si spegne e l’anello completa la commutazione. A i due transistori hanno la stessa tensione di comando e la stessa tensione ai capi, , quindi le loro correnti stanno nel rapporto dei loro . Se il transistore di ha il 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 sono uguali l’equilibrio è proprio a , al limite della commutazione.
Fine della dimostrazione.
Con i transistori di riferimento e V, un transistore di con doppio porta il nodo a 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 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 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 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 di un latch, il latch memorizza un 1 che nessuna tabella di verità prevede.
Un glitch che diventa un errore. Il segnale 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 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 in serie a quelli di e di , con il gate sul clock; la serie, per la proposizione sui transistori in serie, ha un più piccolo, e i due transistori vanno fatti più larghi perché la serie vinca ancora sul transistore . 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 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 di accesso, che collegano i due nodi a due linee verticali, le bit line e . Una linea orizzontale, la word line , 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.
A sinistra la cella SRAM: un bistabile e due transistori di accesso verso le bit line e , comandati dalla word line . A destra la cella DRAM: un transistore di accesso e un condensatore .
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 : il transistore carica il condensatore, ma, come ogni pass-transistor a canale , si ferma a . Per questo nelle DRAM la word line si porta di solito sopra , 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 fF e una corrente di perdita di fA, la tensione cala di 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 , 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 e , alle tensioni e rispetto a massa, collegati da un transistore o da un resistore, arrivano alla tensione comune
e nel collegamento si dissipa l’energia , qualunque sia l’elemento che li collega.
La carica che esce dall’armatura superiore di un condensatore arriva all’altro: non ci sono altri percorsi, e la carica totale si conserva. La corrente si annulla quando le tensioni sono uguali, e da si ottiene . L’energia iniziale è , quella finale . Sviluppando la differenza con l’espressione di ,
perché il numeratore della differenza tra le due frazioni, con denominatore comune , è . Quell’energia si è trasformata in calore nell’elemento di collegamento.
Fine della dimostrazione.
Con fF, fF, V e una soglia di V, un 1 memorizzato senza word line sovralimentata vale V. La bit line sale da a V, appena mV; con uno 0 scende a V, 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 : portato alla soglia e lasciato libero, cade dalla parte dello scarto, e in un tempo che per la proposizione sulla stabilità dura pochi riporta la bit line a o a . Dopo la lettura il condensatore della cella è vicino a : 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. Quando il transistore di accesso si accende, a , 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 e costante di tempo . Quanto tempo serve perché uno scarto iniziale di mV, e poi di V, arrivi a V, nel modello linearizzato?
Soluzione. Lo scarto cresce come , e arriva a V dopo . Con mV, ; con V, .
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, mA/V² e V, a che tensione scende il nodo con il transistore di uguale al transistore , e con uno di doppio?
Soluzione. Con uguali, per la simmetria delle due correnti, il nodo si ferma a V: esattamente alla soglia dell’invertitore che lo legge, e la commutazione non è garantita. Con il nodo scende sotto la soglia; ipotizzando i due transistori in zona ohmica, l’uguaglianza delle correnti
ha la soluzione V. Entrambi i transistori hanno una tensione ai capi minore di V, e l’ipotesi è verificata.
Commento. A V l’invertitore che legge il nodo porta in alto, il transistore 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 sale invece di scendere?
Soluzione. Quando scende, la NOR vede due zeri dal momento in cui è 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 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 fF, bit line precaricata a V e word line sovralimentata, un 1 è memorizzato a V. Qual è la capacità massima della bit line perché la lettura sposti la bit line di almeno mV?
Soluzione. Dalla condivisione di carica lo spostamento è
La condizione V dà , cioè 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 GiB di SRAM e quanti per GiB di DRAM?
Soluzione. GiB sono bit. Con sei transistori per bit la SRAM ne richiede ; la DRAM , 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