vuoi
o PayPal
tutte le volte che vuoi
ROM
contenuto informativo. Queste vengono chiamate (Read-Only-Memory) e su queste è
possibile eseguire solo la lettura.
Read-Write Memory: posso fare due tipi di operazioni; in questo caso il dispendio di energia per
scrivere e leggere è lo stesso, rappresenta una memoria di lavoro.
Attraverso le tecnologie dei semiconduttori si è iniziato a lavorare a memorie intermedie ovvero
Non-Volatile Memory: su cui posso svolgere sia operazioni di scritture che lettura ma le due
operazioni non sono equivalenti. L’operazione di lettura è molto più veloce di quella di scrittura;
questo perché se spengo il sistema il dato rimane. Questi tipi di memorie non hanno vita in nita,
perché ogni volta che vado a cambiare l’informazione questa diventa sempre meno stabile.
RAM (Random Acces Memory): questa sigla corrisponde ad una particolare architettura ovvero a
un particolare schema dove i bit sono organizzati in un chip, e ha anche a che fare con le
metodologie che uso per andare a leggere o scrivere questi bit. Esiste un tipo di architettura detta
RAM che è comune a tutte e tre le memorie, quando è stata inventata la sigla RAM è stata
assegnata alle memorie a sola scrittura-lettura in contrapposizione ad alcune memorie ad
accesso non casuale.
Il problema delle memoria a non acceso casuale è che la velocità per il dato numero 1 è diverso
dalla velocità per il dato centomila.
Ad accesso casuale signi ca che non è importante dove lo metto ma me lo devo ricordare dove lo
metto, però il tempo di accesso è lo stesso ovunque metta il dato.
Su tutte queste memorie le due gure di merito più portanti sono : il costo del bit e la velocità di
recupero (o di lettura o di scrittura) del dato e consumo di potenza.
Memory Timing: Definitions Esiste un ciclo di lettura e scrittura che
risentono di dinamiche, quindi quando inizio il
ciclo di lettura avrò un tempo morto e il dato
non sarà leggibile no a un certo tempo che è
Read acces/ Write
prestabilito dalla memoria (
acces). Nelle memorie read-write i due tempi
sono uguali, mentre nelle memorie non volatili il
Write acces è molto più lungo del Read acces. 1
*(A neg = A’) E.Merelli
fi fi fi fi fi fi fi
Memory Architecture: Decoders
Come memorizzo la memoria?
Questa è già una struttura di memorizzazione della memoria ad accesso casuale, qui la memoria
parole,
è organizzata in queste sono intimi di bit che vengono trattati insieme (storicamente ogni
parola era di 8 bit ); ognuna di queste parole è costituita da 8 celle, ogni singola cella è un circuito
che memorizza uno 0 o un 1. Questa struttura è comune a tutte le memorie ad accesso casuale.
Come faccio a leggere la parola?
Devo indirizzare una sola di queste parole, ovvero tirare su un segnale e abilitare le celle di una
sola parola.
decoder
I sono circuiti che permettono di far esplodere una con gurazione binaria in un segnale
uno su n.Se ho 8 parole, l’indirizzo che serve per selezionare la parole deve essere compreso da 0
a 7. Se ho n parole che è p.e. 8, ho bisogno di 3 ingressi (bit) e il decoder fa esplodere questi 3
a pass-transistor).
ingressi in 8 segnali diversi (logiche
Man mano che si ingrandivano le dimensioni della memoria questa si organizzava in piu
dimensioni, ovvero costruendo una matrice; per utilizzare questo tipo di memoria devo avere due
decoder uno per le colonne e uno per le righe.
L’indirizzo è fatto da L bit, K nelle colonne L-K nelle righe, cosi facendo riesco a memorizzare un
numero molto più grande di parole.
Hierarchical Memory Architecture Una matrice tridimensionale la posso
immaginare come una sovrapposizione
delle matrici precedenti divise per
blocchi, in cui gli ultimi 3 bit li utilizzo
per andare a scegliere il blocco giusto;
quando sono all’interno del blocco uso
la rimanente parte dell’indirizzo per
andare sulla riga giusta e sulla colonna
giusta.
All’interno le singolo blocco, dove
avvengono i transitori, mantengo delle
distanza più limitate e attraverso
l’indirizzo di blocco tengo tutti gli altri in
standby per limitare la potenza
dissipata che è riferita solo al blocco che accendo. 2
*(A neg = A’) E.Merelli fi
Read-Only Memories (ROM)
Read-Only Memory Cells Diode ROM
Sulla sinistra abbiamo la primissima
implementazione della cella che
trovo sempre all’incrocio tra la WL e
la BL. La cosa più banale da fare è
quella di collegare la BL e la WL
con un diodo se voglio memorizzare
un 1, e tenere scollegate le due L se
voglio mettere uno 0. Perché?
Se considero la BL come collegata
a un carico e a terra, se la BL è
collegata alla WL con un diodo e
seleziono la WL (porto alta la
tensione in quella WL) il diodo si
trascina dietro in tensione la BL;
non ci deve essere con itto. Se le
lascio scollegate, anche se alzo la
tensione alla WL la BL non è collegata quindi rimane a 0. Un’evoluzione sarebbe mettere un diodo
in tutte le intersezioni e metterci in serie un componente resistivo che con una certa corrente si
brucia (un fusibile) ho la possibilità di trasformare questa memoria in una programmabile una sola
volta. Il difetto principale è che tutti gli 1 consumano un’enorme quantità di corrente.
MOS ROM 1 (memoria a OR)
La tecnologia MOS sostituisce un transistor che ha nel G la WL nel D VDD e il S alla BL, in questo
modo non c’è più potenza che gira nella WL; anche qui c’è consumo di potenza perché quando la
WL si alza, la BL è alta perché il transistor è acceso e passa una corrente tra VDD e la BL, quindi
c’è una VGS superiore alla soglia che tiene acceso il transistore. In questo caso ho il S che segue
il G (source comune). Posso non mettere il transistor e memorizzare uno 0. La BL deve avere
connessioni a un carico e a massa.
MOS ROM 2 (memoria a NOR)
Avere un transistor MOS all’incrocio mi permette di avere due con gurazioni, una complementare
all’altra. L’1 viene ottenuto quando non metto la connessione e lo 0 viceversa, quindi in questo
caso il MOS è collegate con il S a massa e con il D alla BL. In questo caso la BL deve essere
collegata a VDD e al carico, cosi che se seleziono una parole in cui non ho il transistor la BL
rimane alta e quindi seleziono un 1, mentre nel cado opposto il transistor porta via corrente dalla
BL per arrivare a 0.
Questa struttura rappresenta un invertitore e se considero più invertitori in parallelo ottengo un
NOR.
MOS OR ROM In questo caso ho una memoria 4x4, ovvero 4 parole
ognuna con 4 bit. È una OR, quindi le BL vanno a massa
attraverso dei carichi ovvero dei transistor, mettiamo dei
PD attivi perché se non voglio leggere la memoria metto la
Vbias a zero e non consumo potenza; se invece accendo
Vbias consumo potenza per tutti quei bit dove c’è 1 sulla
parola selezionata.
Se p.e seleziono la parola 1 signi ca che la linea BL0 è
alta perché il transistor 1 si accende che tiene su la BL0.
Quindi in questo caso se ho un transistor signi ca che ho
3
*(A neg = A’) E.Merelli
fl fi fi fi
un 1, altrimenti uno 0.
È indispensabile che le linee di parole abbiano vicino una linea di VDD, l’unico trucco che posso
usare è quella di farla funzionare per due WL; sono delle strutture che non possono essere tanto
piccole perché una liane di VDDD deve poter portare corrente, quindi il problema è di spazi. Ma
d’altro canto tende ad essere performante perché vede dei transitori semplici di commutazione.
MOS NOR ROM Le BL sono collegate a VDD attraverso dei carichi
pseudo n-mos. Seleziono la parola con una
tensione alta, nelle locazioni dove ho il transistore la
tensione sulla BL scende quasi a 0, se invece non
esiste questa connessione la BL rimane a VDD
perché è connessa a VDD attraverso il load.
MOS NOR ROM Layout λ corrisponde a Lmin.
Il rosso rappresenta i gate (WL), il primo rosso
in alto rappresenta la prima WL e la linea blu
indica il transistor. La riga verde rappresenta la
massa. I punti neri rappresentano dei contatti
con altri parti del circuito.
MOS NAND ROM Struttura rivoluzionaria è quella a NAND, si chiama
così perché nel singolo BL le parole sono impilate
come un NAND logico. C’è una sola linea di
alimentazione e una sola di massa, anche la singola
cella è più piccola, ma sopratutto butto via tutte le
linee di VDD e di massa che avevo prima. La parola
che selezione è l’unica tra tutte che tengo a bassa
tensione.Se una parola è tenuta a VDD avrà 1 bit ma
non ha nessuna in lza sulle BL perché o non c’è la
connessione, ma se anche c’è poiché il transistor è
acceso lo trasforma in un lo; quindi il fatto di tenere
una parola alta non fa altro che trasformare tutti gli
incroci dove ho il transistor in dei li.
Se la parola 0 la metto a massa non fa nessuno e etto
dove non c’è il transistore (ho 0 in uscita) ma dove c’è lo spegne e costringe la BL ad attaccarsi a
4
*(A neg = A’) E.Merelli
fi fi fi ff
VDD e quindi ho l’1, tutte le altre parole non hanno in uenza perché sono tutte alte e trasformano
tutti gli incroci in cortocircuiti.
È meno performante perché p.e se devo trasformare un bit da 0 a 1, devo fare un transitorio di
carica su una linea molto lunga con più transistori.
Non-Volatile Memories
The Floating-gate Transistor (FAMOS)
È diverso dal transistore tradizionale perché in
aggiunta a l’elettrodo di gate si realizza tra il G e
il S un’ulteriore elettrodo, elettricamente è una
mattonella di materiale che si comporta con un
metallo, ma non lo posso connettere con nulla; si
accende quando applico sul G (quello
accessibile : control gate GC) una tensione
rispetto al S maggiore della tensione di soglia,
questa tensione di soglia sara tipica di questa
struttura e sta più alta
rispetto a quella che avrei
senza il oating gate
perché ho uno spessore
di ossido maggiore. Se
non faccio nulla la tensione a cui si piazza il oating gate si può muovere,
quindi quando tiro su il GC si alza anche il FG di un rapporto che dipende
dallo spessore degli ossidi. Quando inserisco quel pezzo di martello è
neutro, se ci metto della carica e applico la stessa tensione di prima al BC
non ho la stessa situazione sul canale a seconda che la mattonella nel
mezzo abbia una carica positiva o negativa.
Poter cambiare la con gurazione di carica nel gate mi cambi