Salta al contenuto
Note per Studenti Memorie a semiconduttore - struttura a matrice, decoder e ROM

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

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 0…VDD0\ldots V_{DD} (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 2N2^N con NN bit di indirizzo) e poi la colonna. Esempio: una memoria con 3232 righe e 88 colonne da 88 bit ha 32⋅8=25632\cdot8=256 parole da 88 bit (256256 byte =2=2 kbit) e indirizzo a 5+3=85+3=8 bit. Una matrice 1024 WL×256 BL1024\ \mathrm{WL}\times256\ \mathrm{BL} ha 218=262 1442^{18}=262\,144 celle (indirizzo a 10+8=1810+8=18 bit).

Decoder di riga. Per NN bit di indirizzo AN−1…A0A_{N-1}\ldots A_0 ci sono 2N2^N WL; WLi=1WL_i=1 solo se l'indirizzo vale ii: WL0=A0‾ A1‾⋯AN−1‾WL_0=\overline{A_0}\,\overline{A_1}\cdots\overline{A_{N-1}} (AND di tutte le variabili o negate: una NOR di A0…AN−1A_0\ldots A_{N-1}). Con 55 ingressi servono 3232 WL, con 1414 ingressi 16 38416\,384 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 WL0=(A0‾ A1‾)⋅(A2‾ A3‾ A4‾)WL_0=(\overline{A_0}\,\overline{A_1})\cdot(\overline{A_2}\,\overline{A_3}\,\overline{A_4})) e se ne combinano le uscite con porte a due ingressi, riducendo fan-in e ritardo.

Decoder di colonna. Si seleziona una tra 2K2^K BL con KK bit di indirizzo:

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 128 MB128\ \mathrm{MB} organizzato in 2142^{14} WL, 2112^{11} BL e 222^2 blocchi): è l'unico modo per mantenere accettabili il ritardo della WL (che cresce col quadrato della lunghezza: R∝LR\propto L e C∝LC\propto L) 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 (BLjBL_j) 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.

Esempio. Tre WL e quattro BL con transistor in (WL0;BL3,BL1,BL0)(WL_0;BL_3,BL_1,BL_0), (WL1;BL3,BL2)(WL_1;BL_3,BL_2) e (WL2;BL2,BL1)(WL_2;BL_2,BL_1) memorizzano WL0=0100WL_0=0100, WL1=0011WL_1=0011, WL2=1001WL_2=1001 (si legge BL3BL2BL1BL0BL_3BL_2BL_1BL_0; 00 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 VOLV_{OL} e potenza. Come in una porta pseudo-nMOS, l'uscita bassa vale VOL>0V_{OL}>0 (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 è VDDV_{DD} per la corrente di ciascuna BL a 00 (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 VDDV_{DD}: 11); se la cella è programmata con un transistor "sempre acceso" (o è un semplice cortocircuito) la catena conduce e la BL va a 00. Quindi la logica è inversa a quella della NOR.

  • Non servono contatti verso massa o VDDV_{DD} per ogni cella: la cella è drasticamente più piccola.
  • Prestazioni peggiori: la catena di NN n-MOS ha resistenza ≈N Rn\approx N\,R_n 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

Errori comuni

  • Invertire il significato dei bit: nella NOR il transistor presente codifica 00.
  • 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 (NN indirizzi →2N\to2^N WL), BL (colonna), decoder/mux di colonna, sense amplifier. 32×832\times8 colonne da 88 bit: 256256 B, 88 bit di indirizzo; 1024×2561024\times256: 2182^{18} celle.
  • Decoder: riga: WLiWL_i = AND degli indirizzi (multistadio/predecodifica per ridurre fan-in); colonna: pass-transistor + decoder (un pass-transistor) oppure albero 2M(2K−1)2M(2^K-1) transistor (112112 per M=8M=8, K=3K=3; compatto ma lento). Struttura gerarchica a blocchi.
  • ROM NOR: p-MOS di carico per BL; transistor presente ⇒\Rightarrow BL a VOLV_{OL} (bit 00), assente ⇒\Rightarrow VDDV_{DD} (bit 11); programmazione con maschera attiva o contatti; VOLV_{OL} pseudo-nMOS e potenza statica (VDD⋅IV_{DD}\cdot I 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 RRDR_{RD}, rr del poly, gate); BL NOR: CdC_d dei transistor e RR del carico/transistor; NAND: resistenza della serie.
  • Errori: significato dei bit; NAND più veloce; WL alte nella NAND; corrente statica; WL senza RR.

Esercizi su questo argomento

Teoria collegata