Memorie a semiconduttore - struttura a matrice, decoder e ROM
In questa pagina 5
Una memoria è un circuito che conserva molti bit (i registri di Latch, registri e parametri temporaliUn circuito sequenziale ha uno stato memorizzato in due modi: retroazione positiva (due inverter in anello, bistabile, i latch statici) o immagazzinamento di carica (circuiti dinamici). Un latch è sensibile al livello del clock (trasparente quando il clock è attivo, memorizza quando non lo è), un registro (flip-flop) è sensibile al fronte e si realizza con due latch sulle fasi opposte (master-slave). Il latch SR a porte NOR/NAND non ammette la combinazione S = R = 1 perché passando da lì alla memoria lo stato finale è imprevedibile. Parametri temporali del registro: ritardo clock-uscita t_c-q, tempo di setup t_su (dato stabile prima del fronte), tempo di hold t_hold (dato stabile dopo il fronte). Periodo minimo: T_min = t_c-q + t_p,logic(max) + t_su; vincolo di hold: t_cd,reg + t_cd,logic > t_hold. La pipeline spezza la logica con registri per aumentare la frequenza (a spese della latenza).Latch, registri e parametri temporali → ne conservano pochi). Le memorie a semiconduttore sono la parte più grande di quasi ogni circuito integrato digitale e della struttura di un microprocessore (Blocchi logici di un microprocessore - ALU, bus e logica tri-stateUn microprocessore semplice è formato da un'unità di controllo (decodifica le istruzioni e abilita gli altri blocchi), una ALU (operazioni aritmetiche e logiche), la memoria e i registri, collegati da bus (linee condivise unidirezionali o bidirezionali). La ALU combina un sommatore con un'unità logica e un multiplexer di selezione dell'operazione: la sottrazione è A + B̄ + 1 (XOR su B e riporto in ingresso a 1), le flag (zero, riporto, segno, overflow) descrivono il risultato. Un bus è una linea pilotata da più sorgenti: per evitare conflitti ogni uscita collegata è tri-state (il segnale enable la mette in alta impedenza) oppure open-drain (solo PDN: ciascuna può imporre 0, serve un pull-up per l'1).Blocchi logici di un microprocessore - ALU, bus e logica tri-state →).
Classificazione
- Memorie a lettura e scrittura (RWM), volatili (il contenuto si perde senza alimentazione): SRAM (statica) e DRAM (dinamica) (SRAM e DRAMSRAM e DRAM sono memorie volatili ad accesso casuale. La cella SRAM a 6 transistor è un latch di due inverter (M1-M4) con due n-MOS di accesso (M5, M6) pilotati dalla word line: uscita differenziale, veloce, grande. Lettura: BL e BL̄ precaricate, l'n-MOS driver abbassa leggermente il lato che memorizza 0 (il transistor driver deve essere più forte di quello di accesso, così il nodo non supera la soglia degli inverter); scrittura: una BL forzata a 0 porta il nodo sotto la soglia logica degli inverter in retroazione positiva, che poi si ribaltano. La DRAM a 1 transistor ha un n-MOS di accesso e una capacità di storage C_S: scrittura caricando C_S dalla BL (si perde V_T: bootstrap della WL), lettura per ridistribuzione di carica con la BL precaricata, ΔV = C_S/(C_BL + C_S)(V_X − V_PRE) ≈ 100-250 mV, distruttiva: servono sense amplifier per ogni BL e refresh periodico. Celle DRAM a 3 transistor: lettura non distruttiva.SRAM e DRAM →).
- Memorie a sola lettura (ROM), non volatili: ROM programmate a livello di maschera, ROM programmabili (PROM), EPROM, EEPROM, Flash (Memorie non volatili - gate flottante, EPROM, EEPROM e FlashLe memorie non volatili conservano il dato senza alimentazione. La PROM a fusibili (o antifusibili) si programma una volta interrompendo (o creando) un collegamento. Le memorie riprogrammabili usano il transistor a gate flottante: un gate di polisilicio isolato tra il canale e il gate di controllo; la carica (elettroni) intrappolata sul gate flottante aumenta la soglia vista dal gate di controllo, così il transistor programmato resta spento a tutte le tensioni di lettura (V_T,prog > V_DD). EPROM: programmazione per iniezione di portatori caldi, cancellazione collettiva con raggi UV. EEPROM (transistor FLOTOX, effetto tunnel Fowler-Nordheim attraverso un ossido sottile): cancellazione elettrica della singola cella, ma due transistor per cella (area quasi doppia). Flash: variante dell'EEPROM con una sola cella-transistor e cancellazione a blocchi o settori, struttura NOR o NAND.Memorie non volatili - gate flottante, EPROM, EEPROM e Flash →).
- Per l'accesso: casuale (ogni cella raggiungibile in tempo uguale: SRAM, DRAM, ROM) oppure non casuale (FIFO, LIFO, registri a scorrimento, memorie associative CAM).
Struttura a matrice
Un bit per cella: se le celle fossero allineate su un'unica linea servirebbe un decoder enorme. Si dispongono quindi in una matrice di righe e colonne:
- ogni riga è abilitata da una word line (WL) pilotata dal decoder di riga;
- ogni colonna ha una bit line (BL) su cui la cella scrive o legge il dato;
- il sense amplifier amplifica l'escursione logica fino a (la BL ha escursioni piccole);
- il decoder di colonna (con multiplexer) sceglie quale colonna (o gruppo di colonne di una parola) connettere al bus dati.
L'indirizzamento ha due passi: si seleziona la riga (una WL tra con bit di indirizzo) e poi la colonna. Esempio: una memoria con righe e colonne da bit ha parole da bit ( byte kbit) e indirizzo a bit. Una matrice ha celle (indirizzo a bit).
Decoder di riga. Per bit di indirizzo ci sono WL; solo se l'indirizzo vale : (AND di tutte le variabili o negate: una NOR di ). Con ingressi servono WL, con ingressi WL (porte con tanti ingressi sarebbero lentissime: Porte logiche CMOS - ritardo di Elmore, fan-in e consumoIl ritardo di una porta dipende dalla configurazione degli ingressi: si calcola il caso peggiore (un solo cammino conduttivo, il più resistivo) e il caso migliore. Per una rete RC con transistor in serie si usa il ritardo di Elmore: t = 0,69 Σ_k C_k · R_k, con R_k la resistenza totale tra il nodo k e il generatore (massa o V_DD) lungo il cammino e C_k la capacità del nodo. Per NAND2 con R_n = R_p: t_pLH (caso peggiore) = 0,69 R_p C, t_pHL = 0,69·2R_n C, quindi t_pHL = 2 t_pLH; per NOR2 è l'opposto. Una NOR a N ingressi (tutti i transistor uguali, nodi interni trascurati): t_pLH = 0,69 R_p C N(N+1), t_pHL = 0,69 R_n C (N+1): il ritardo cresce col quadrato del fan-in, perciò si evitano fan-in maggiori di 4. Rimedi: dimensionamento progressivo (transistor più grandi dal lato opposto all'uscita), riordino degli ingressi (il più tardivo vicino all'uscita), cascata di porte con meno ingressi, buffer. La potenza dinamica dipende dalla probabilità di commutazione.Porte logiche CMOS - ritardo di Elmore, fan-in e consumo →). Si usa un decoder multistadio (predecodifica): si decodificano gruppi di indirizzi (per esempio ) e se ne combinano le uscite con porte a due ingressi, riducendo fan-in e ritardo.
Decoder di colonna. Si seleziona una tra BL con bit di indirizzo:
- multiplexer a pass-transistor + decoder: un pass-transistor per BL pilotato da un decoder a ingressi; tanti transistor di decoder ( per ciascuna delle NOR), ma il dato attraversa un solo pass-transistor;
- decoder ad albero: gli indirizzi pilotano direttamente i pass-transistor di un albero binario; non serve un decoder, il numero di transistor è per parole da bit (, : transistor), ma il dato attraversa pass-transistor in serie (): più compatto e più lento (e ritardo quadratico nella serie: Logica a pass-transistor e gate di trasmissioneNella logica a pass-transistor gli ingressi pilotano sia i gate sia i terminali di source/drain di una rete di interruttori (N transistor per N ingressi, nessun consumo statico, alcune funzioni, come AND, MUX e XOR, richiedono pochi transistor). Gli n-MOS trasmettono bene gli 0 ma male gli 1 (V_DD − V_Tn, con effetto body: circa 1,8 V da 2,5 V), i p-MOS al contrario (V_Tp in modulo per lo 0): il livello degradato non è rigenerato e può far condurre un inverter successivo (consumo statico). Il gate di trasmissione (n-MOS e p-MOS in parallelo, con G e nG complementari) trasmette bene entrambi i livelli, con resistenza R_n‖R_p quasi costante, ma costa due transistor e raddoppia le capacità. Una catena di n pass-transistor ha ritardo ∝ n² (Elmore, 0,69 R C n(n+1)/2): si inseriscono buffer ogni m = 1,7√(t_buf/(R_eq C)) stadi.Logica a pass-transistor e gate di trasmissione →).
Struttura gerarchica. Le memorie grandi si dividono in blocchi (con le proprie WL e BL più corte) per ridurre le capacità e i ritardi (per esempio un modulo da organizzato in WL, BL e blocchi): è l'unico modo per mantenere accettabili il ritardo della WL (che cresce col quadrato della lunghezza: e ) e della BL.
ROM
Una ROM (read-only memory) conserva un contenuto fissato in fabbricazione (o programmato una sola volta). Una cella può essere un diodo o un MOS: la presenza del dispositivo codifica uno dei due bit.
ROM a MOS con struttura NOR
Per ogni bit line () c'è un dispositivo di pull-up (un p-MOS con gate a massa: è la logica pseudo-nMOS, Logica pseudo-nMOS e logiche a caricoNella logica pseudo-nMOS (a rapporto, ratioed) la PUN della CMOS complementare è sostituita da un solo p-MOS con gate a massa, sempre acceso, che fa da carico per la PDN a n-MOS. Così servono N+1 transistor invece di 2N e la capacità di ingresso è minore, ma l'uscita bassa non è 0: V_OL si ricava uguagliando la corrente dell'n-MOS (zona lineare) a quella del p-MOS (saturazione), ed esiste potenza statica quando l'uscita è bassa (P = V_DD·I). V_OH = V_DD. Per V_OL piccola serve Z_n ≫ Z_p; il ritardo di salita è lento (carica solo il p-MOS debole: t_pLH = 0,69 R_p C_L), quello di discesa è più veloce (t_pHL ≈ 0,69 R_n C_L). Lo stesso schema (carichi p-MOS a massa) si ritrova nelle ROM a NOR.Logica pseudo-nMOS e logiche a carico →), e le celle sono n-MOS con gate sulla WL e drain sulla BL, source a massa.
- Se la riga selezionata () ha un n-MOS sulla colonna , il transistor conduce e porta la BL a (quasi ): bit .
- Se in quella cella manca il transistor (o il contatto), nessun cammino a massa: la BL rimane a tirata dal carico: bit . Le WL non selezionate sono a . Si programma con la maschera della regione attiva (si disegna o no il transistor) oppure con la maschera dei contatti (il transistor c'è sempre ma il drain può non essere collegato): la seconda lascia la cella più grande ( contro dei layout tipici) ma permette di programmare all'ultimo passo del processo. È una funzione combinatoria: una ROM con indirizzi e bit di uscita realizza funzioni di variabili (Dispositivi logici programmabili - PROM, PLA, PAL e CPLDUn componente logico programmabile (PLD) è un circuito integrato a catalogo la cui funzione logica viene fissata da una programmazione che altera la struttura del circuito (non va confusa con la programmazione software di un microprocessore). I meccanismi sono fusibili, antifusibili (una volta), EPROM/EEPROM/Flash (reversibili e non volatili) e celle SRAM (reversibili ma volatili). Le architetture semplici (SPLD) sono due piani AND-OR: PROM (AND fisso, cioè un decoder di tutti i mintermini, OR programmabile), PLA (entrambi programmabili, dimensione indipendente dal numero di ingressi, più lenta) e PAL (AND programmabile, OR fisso, più veloce). I CPLD sono matrici di blocchi SPLD con interconnessioni programmabili, le FPGA hanno molti blocchi logici piccoli (LUT + registro) in una griglia di interconnessioni complessa, configurata da SRAM.Dispositivi logici programmabili - PROM, PLA, PAL e CPLD →).
Esempio. Tre WL e quattro BL con transistor in , e memorizzano , , (si legge ; dove c'è il transistor). Il caso è quello del tema Esercizio 8 · memoria ROM a NOR, contenuto, ritardo di word line, carichi e potenza (tema d'esame settembre 2026).
Livello e potenza. Come in una porta pseudo-nMOS, l'uscita bassa vale (n-MOS lineare contro p-MOS in saturazione) e per tutto il tempo in cui almeno una BL è bassa scorre corrente di regime: la potenza statica è per la corrente di ciascuna BL a (una sola WL attiva alla volta).
ROM a MOS con struttura NAND
In ogni colonna gli n-MOS sono in serie (una catena per bit line). Tutte le WL sono alte tranne quella selezionata (bassa): il transistor della riga selezionata, se c'è, si spegne e interrompe la catena (la BL resta a : ); se la cella è programmata con un transistor "sempre acceso" (o è un semplice cortocircuito) la catena conduce e la BL va a . Quindi la logica è inversa a quella della NOR.
- Non servono contatti verso massa o per ogni cella: la cella è drasticamente più piccola.
- Prestazioni peggiori: la catena di n-MOS ha resistenza e la scarica della BL è lenta (ritardo dominato dalla resistenza della serie). Confrontando una ROM a NOR con una a NAND: la struttura a NAND è più compatta ma meno veloce; la NOR è più veloce ma meno compatta.
Modello dinamico di una cella di ROM
- Word line: una pista di polisilicio (resistenza non trascurabile) che fa da gate di tutti i transistor della riga: modello RC distribuito con capacità di pista (area e bordo) più capacità di gate. Il ritardo si calcola con Elmore, partendo dalla resistenza di uscita del row decoder : con celle, , resistenza di un tratto di cella (Processo di fabbricazione CMOS, layout e parassitiUn circuito integrato CMOS si realizza su un wafer di silicio con una sequenza di passi fotolitografici: ogni maschera ottica riporta la geometria planare di uno strato (layer) e permette di sviluppare in modo selettivo il fotoresist, che protegge le zone non da attaccare o da drogare. Ordine: regioni attive e trincee di isolamento (STI), impianto delle well, deposizione e sagomatura del polisilicio (gate), impianto di source/drain (n+ e p+, il polisilicio si droga insieme), contatti e via, piste metalliche. Il progettista descrive il circuito con il layout (una maschera per layer) nel rispetto delle regole di layout (spessore, spaziatura, sovrapposizione), verificate dal DRC. Gli elementi parassiti sono resistenze (R = R_□·L/W), capacità (area più bordo, C = C_A·A + C_b·P) e transistor bipolari; le interconnessioni lunghe hanno ritardo ≈ 0,38 R C (rete distribuita). Il package deve avere basse parassite, robustezza, smaltimento del calore e costo basso.Processo di fabbricazione CMOS, layout e parassiti →).
- Bit line (NOR): pista di metallo (resistenza spesso trascurabile) con la capacità di drain (e gate-drain) di tutti i transistor della colonna: . Il ritardo è con = resistenza del transistor attivo () o del carico (, lento).
- Bit line (NAND): domina la resistenza della serie; le capacità sono di drain/source dei transistor in serie.
Errori comuni
- Invertire il significato dei bit: nella NOR il transistor presente codifica .
- Credere che la ROM a NAND sia più veloce: è più piccola ma più lenta.
- Dimenticare che le WL di una ROM NAND non selezionate sono alte.
- Dimenticare la corrente statica della ROM a NOR (carico sempre acceso).
- Usare il ritardo della WL con la capacità senza la resistenza del polisilicio (la WL è una linea RC).
Versione ripasso
- Classi: RWM volatili (SRAM, DRAM); ROM non volatili (maschera, PROM, EPROM, EEPROM, Flash); accesso casuale/non casuale (FIFO, CAM).
- Matrice: WL (riga) dal decoder di riga ( indirizzi WL), BL (colonna), decoder/mux di colonna, sense amplifier. colonne da bit: B, bit di indirizzo; : celle.
- Decoder: riga: = AND degli indirizzi (multistadio/predecodifica per ridurre fan-in); colonna: pass-transistor + decoder (un pass-transistor) oppure albero transistor ( per , ; compatto ma lento). Struttura gerarchica a blocchi.
- ROM NOR: p-MOS di carico per BL; transistor presente BL a (bit ), assente (bit ); programmazione con maschera attiva o contatti; pseudo-nMOS e potenza statica ( per ogni BL bassa).
- ROM NAND: serie di n-MOS, WL non selezionate alte; cella piccola (senza contatti) ma più lenta (resistenza della serie): NAND più compatta e lenta, NOR più veloce.
- Dinamica: WL RC distribuita (Elmore con , del poly, gate); BL NOR: dei transistor e del carico/transistor; NAND: resistenza della serie.
- Errori: significato dei bit; NAND più veloce; WL alte nella NAND; corrente statica; WL senza .
Esercizi su questo argomento
- Esercizio 3 · memoria DRAM a un transistor 1024 per 256, capacità, ritardo di linea e lettura (tema d'esame giugno 2025)
- Esercizio 8 · memoria ROM a NOR, contenuto, ritardo di word line, carichi e potenza (tema d'esame settembre 2026)
- Esercizio 16 · quesiti rapidi sulle memorie (temi d'esame 2024-2026)
Teoria collegata
- Blocchi logici di un microprocessore - ALU, bus e logica tri-state
- Dispositivi logici programmabili - PROM, PLA, PAL e CPLD
- Logica a pass-transistor e gate di trasmissione
- Logica pseudo-nMOS e logiche a carico
- Memorie non volatili - gate flottante, EPROM, EEPROM e Flash
- Processo di fabbricazione CMOS, layout e parassiti
- Rappresentazione dei numeri e dell'informazione
- SRAM e DRAM