Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
Memorie a semiconduttore
Lucidi del Corso di Circuiti Integrati
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: classificazione
Le memorie si dividono in 3 grandi categorie:
RWM (read/write memory): memorie leggibili e
scrivibili). Sono comunemente chiamate RAM (che
significa però Random Access Memory, memorie ad
accesso casuale). Perdono l’informazione quando
non sono alimentate. Es.: SRAM, DRAM
ROM (read-only memory): memorie a sola lettura.
Sono scritte una volta per tutte e possono essere
solo lette. Mantengono l’informazione anche se non
alimentate
NVRWM (Nonvolatile, read/write memory): memorie
di lettura e scrittura non volatili (mantengono il dato
anche se si spegne l’alimentazione)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Dimensioni di memorie
La dimensione globale di una memoria viene
generalmente misurata in byte (Giga, Mega,
Kilo) ossia in termini di gruppi di 8 bit
(1byte=8bit).
Al loro interno le memorie sono organizzate in
word (parole) ossia gruppi di M bit (con M
tipicamente 32 nei sistemi attuali)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Una memoria di N parole da M bit è organizzata, concettualmente in questo modo
Word N-1
….
…
Word 1
Word 0
Elemento di
memoria
(singolo bit)
Decoder
…
M bit
A[0]
A[1]
A[K-1]
S[0]
S[N-1]
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Una memoria di N word necessita di K=log2N
bit di indirizzo per la selezione della parola
desiderata
I bit di indirizzo devono essere decodificati da un
decoder per generare il segnale di selezione
che attiva una fra le N word
Gli M bit della word selezionata devono poi
andare sul bus di uscita (in un’operazione di
lettura), oppure dal bus provengono gli M bit da
scrivere sulla word selezionata
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Se il numero N di word diventa molto grande rispetto al numero M di bit questa architettura non è evidentemente più ragionevole perché comporterebbe un’organizzazione dello spazio irrazionale (un blocco stretto ed altissimo) e soprattutto porterebbe a delle capacità parassite enormi (le piste verticali che attraversano tutte le word per portare in uscita o in ingresso i bit)
La soluzione preferibile è quella quadrata: si dividono i bit di indirizzo in 2 gruppi e si usa il primo per selezionare una riga ed il secondo gruppo per selezionare le colonne
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Sense Amplifiers
… R
ow
Decoder
Column Decoder
A[L]
A[K-1]
A[L-1]
A[0] …
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
L’architettura preferita per memoria di grandi dimensioni
è quella ad array
Dei K bit di indirizzo i primi L (i meno significativi)
selezionano le colonne e gli ultimi K-L (più significativi)
selezionano le righe
Il decoder di riga seleziona una delle possibili 2K-L righe
in base ai K-L bit più significativi dell’indirizzo
La riga selezionata contiene 2L word ed il decoder di
colonna si incarica di selezionare e portare in uscita una
fra queste word in base agli L bit meno significativi
dell’indirizzo
Prima di portare in uscita il dato questo viene amplificato
dai sense-amplifier posti al termine di ogni colonna
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Per memorie ancora più grandi (più di 256 KB)
anche dopo la suddivisione le capacità parassite
delle piste molto lunghe che collegano un
elemento di memoria nella prima riga al sense
amplifier di colonna sarebbero eccessive
Le memorie vengono ancora suddivisi in P
blocchi (log2P bit di indirizzo) ciascuno dei quali
è organizzato come un array righe/colonne
come il precedente
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: architettura
Bus
Indirizzo di
colonna
Indirizzo di
blocco
Indirizzo
di riga
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Componenti di una memoria
Ognuno dei 3 tipi di memorie considerate (RAM,
ROM, NVRWM) ha un’architettura come quella
vista composta da
Il core: l’array di elementi di memoria,
l’implementazione del core cambia a seconda del
tipo di memoria considerata
La periferia: i circuiti di interfaccia (decoder, sense-
amplifier, driver dei bus)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
ROM: elemento di memoria
L’elemento di memoria di una cella ROM può
essere implementato in vari modi (fusibile,
diodo). In tecnologia CMOS l’elemento di
memoria è costuito dalla presenza o assenza di
un transistor
Per questo motivo le ROM non possono essere
scritte: le parole memorizzate sono definite una
volta per tutta in fase di realizzazione fisica del
dispositivo (layout) inserendo o non inserendo
un MOS in una cella.
24 Ottobre 2012 CI - Memorie Massimo Barbaro
ROM: elemento di memoria
WL[0]
WL[1]
WL[2]
WL[3]
BL[0] BL[1] BL[2] BL[3]
Riga 1
Pull-up
24 Ottobre 2012 CI - Memorie Massimo Barbaro
ROM: elemento di memoria
Quando si seleziona la riga i-esima si porta alto
il valore di WL[i] e si mette 0 su WL[j] con ji
A questo punto i vari bit della i-esima riga
vengono portati in uscita tramite la NOR
pseudo-NMOS costituita dal PMOS di pull-up
(sempre acceso) e dagli NMOS che possono
essere presenti o meno nella singola cella di
memoria del bit k-esimo. Se in posizione k della
riga i c’è un MOS questo cortocircuita BL[i] a 0,
se il MOS non c’è il pull-up porta BL[i] a 1
24 Ottobre 2012 CI - Memorie Massimo Barbaro
ROM: elemento di memoria
Nel caso della ROM di esempio del lucido 13 le
parola memorizzate sono:
W[0] = 1011
W[1] = 0110
W[2] = 1010
W[3] = 1111
Nel caso reale, per semplicità, non si modificano
le maschere delle diffusioni (mettendo o meno il
transistor) ma le metallizzazioni. Si realizzano
cioè tutti i MOS ma si collegano (col metal) solo
quelli in corrispondenza di bit di memoria pari a
0 e gli altri rimangono flottanti
24 Ottobre 2012 CI - Memorie Massimo Barbaro
NVRW: elemento di memoria
L’organizzazione di una memoria non volatile di
lettura e scrittura (comunemente detta E2PROM,
ossia Electrically Erasable/Programmable Read
Only Memory) è molto simile a quella di una
ROM
La differenza consiste nella possibilità di
realizzare la connessione del MOS, o
cancellarla, agendo solo su segnali elettrici
applicati alla cella stessa e NON in fase di
realizzazione fisica
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Floating gate transistor
Il transistor di una ROM normale viene sostituito
da un transistor a gate flottante, ossia un
transistor particolare con doppio gate la cui
tensione di soglia può essere variata applicando
opportuni segnali elettrici al MOS
In questo modo si può programmare un 1 nella
ROM alzando notevolmente la tensione di soglia
del MOS, quindi in pratica eliminandolo. Si può
programmare uno 0 abbassando la tensione di
soglia del MOS e rendendola confrontabile con
quella di un MOS normale
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Floating gate transistor
n+ n+
Source Drain
Gate di controllo
Gate flottante
Il MOS a gate flottante ha 2 gate: uno di controllo ed uno
flottante, immerso nell’ossido e senza contatti elettrici
con l’esterno
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Floating gate transistor
Applicando delle elevate tensioni drain-source (oltre i 10V), gli elettroni che vengono enormemente accelerati possono attraversare l’ossido e rimanere intrappolati nel gate flottante
A questo punto le cariche negative degli elettroni tendono ad attrarre lacune sotto il gate, quindi diventa più difficile creare il canale (la tensione soglia aumenta)
Per riportare la tensione di soglia a livelli normali bisogna eliminare gli elettroni intrappolati nel gate flottante per effetto tunnel (applicando tensioni molto alte al source, per avere una tensione gate-source negativa)
In questo modo se il gate flottante è carico la tensione di soglia è alta ed il mos non può essere acceso (memorizzato 1), se invece il gate è scarico il mos si può accendere (memorizzato 0)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Programmazione e cancellazione
n+ n+
Source Drain
Gate di controllo
Gate flottante
-
- Programmazione
Cancellazione
24 Ottobre 2012 CI - Memorie Massimo Barbaro
RAM statiche e dinamiche
L’elemento di memoria di una memoria RAM (o
RWM) cambia a seconda del tipo di
implementazione
SRAM: static RAM, la memorizzazione avviene
in modo statico, con un elemento bistabile con
opportuno circuito di scrittura (mantiene il dato
indefinitamente finché alimentata)
DRAM: dynamic RAM, la memorizzazione è
dinamica per mezzo di cariche intrappolate su
una capacità (richiede refresh perché soggetta
al leakage della carica)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
SRAM: elemento di memoria
BL
Q’
Q
BL’
WL
24 Ottobre 2012 CI - Memorie Massimo Barbaro
SRAM: elemento di memoria
L’elemento di memoria è un bistabile (due
inverter connessi ad anello)
Quando si vuole leggere il bit memorizzato si
porta WL a 1 avendo così su BL il dato Q e su
BL’ il dato Q’
Quando si vuole scrivere un valore D bisogna
mettere BL=D e BL’=D’ e poi portare alto WL
per forzare lo stato del bistabile
I dimensionamenti dei transistor sono critici per
garantire il corretto funzionamento delle fasi di
lettura e scrittura
24 Ottobre 2012 CI - Memorie Massimo Barbaro
DRAM: elemento di memoria
E’ possibile avere implementazioni di memoria
molto più compatte utilizzando un approccio
dinamico
Il dato è memorizzato su capacità quindi tende
ad essere distrutto dalle correnti di leakage. E’
necessario un refresh
Le due principali versioni dell’elemento di
memoria sono a 3 transistor (cella 3T) e ad 1
transistor (cella 1T)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
DRAM: cella 3T
B2 B1
WL
X
24 Ottobre 2012 CI - Memorie Massimo Barbaro
DRAM: elemento di memoria
L’elemento di memoria è una capacità
Per leggere il dato si porta WL a 1 ed il dato compare in
uscita su BL2 (negato)
Per scrivere il dato D si porta BL1=D e poi si alza WL, in
tal modo D viene memorizzato sul nodo X (tramite la
capacità)
In realtà, per rendere l’operazione di lettura e scrittura
più veloci non si richiede una completa escursione delle
tensioni fra 0 e VDD ma si misurano solo della V
Per leggere correttamente, ovviamente, sulla linea BL2
deve esserci un opportuno pull-up (uno solo per tutte le
celle che si affacciano sulla stessa colonna)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
DRAM: cella 1T
BL
WL
X
L’elemento di memoria è
una sola capacità col
transistor di accesso.
La linea di lettura e
scrittura coincidono.
La lettura è distruttiva (se
accedo al nodo X
distruggo la carica
immagazzinata per
redistribuzione di carica e
la devo poi ripristinare)
24 Ottobre 2012 CI - Memorie Massimo Barbaro
Memorie: circuiti di periferia
Tutte le memorie viste richiedono un certo
numero di decoder per selezionare la parola di
memoria desiderata
Il progetto dei decoder è critico perché il numero
di segnali è molto elevato
Soprattutto le DRAM con cella 1T ma anche le
altre RAM (per problemi di velocità di risposta)
richiedono la presenza di un amplificatore
(sense-amplifier) che riporti le variazioni di
potenziale misurate sulle bitline a valori digitali
(VDD e 0)