0hpruld - cnrvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-memoria.pdf · ,o prgr sl qdwxudoh shu...
TRANSCRIPT
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 1
Università degli Studi dell’InsubriaDipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Memoria
Marco Tarini
Dipartimento di Scienze Teoriche e Applicate
Banco di Memoria
Un blocco funzionale capace di memorizzare un certo numero m di parole di un certo numero n di bit ciascuna
Capacità totale (in bit!): m x n
Spesso espressa in byte: dividere per 8, ovviamente
Indirizzamento: serviranno k bit per esprimere un indirizzo, con
2k = m
cioè k = log2 n
Le due operazioni eseguibili sul banco sono:
lettura, ovvero si prelevano i m bit memorizzati in una parola
scrittura, ovvero si memorizzano in una parola m bit
MemoriaArchitettura degli elaboratori - 19 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 2
Banco di memoria: considerazioni
Le strutture interne delle memorie sono molto varie; sono disponibili numerose tecnologie di memoria
Il modo più naturale per realizzare una memoria è costruire una matrice di bistabili, completandola con reti combinatorie di controllo per gestire l’accesso alle parole (come già visto per il register file)
Funzionalmente, un banco di memoria è molto simile ad un register file
Detto altrimenti, un register file è un banco di memoria di capienza piccolissima, es 32x32 = 1024 bit
Le capienze tipiche di un banco di memoria sono molto superiori:da 105 a 1011 bit(migliaia, milioni o svariati miliardi di bit)
Avremo bisogno di ottimizzare e semplificare i circuiti(spesso, sacrificando efficienza e semplificando le funzionalità)
Costruiamo banchi di memoria grandi con componenti di memoria più seplici
MemoriaArchitettura degli elaboratori - 20 -
Banco di memoria: considerazioni
Prima semplificazione: riduciamo il numero di bus
il banco di registri visto aveva tre «bus»: due di uscita (da cui leggere i contenuti attuali)e uno di ingresso (da cui immettere i contenuti da memorizzare)
Un componente di un banco di memoria più semplice ha due soli bus:uno di ingresso e uno di uscita
MemoriaArchitettura degli elaboratori - 21 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 3
Es: un componente di memoria da 32x64 bitcon 1 bus di uscita e 1 bus di entrata
MemoriaArchitettura degli elaboratori - 22 -
Porta di accesso (in lettura e scrittura) al banco di momoria
indirizzo
Dato in
CK (clock)
componente32x64 bits
64
5
Dato out64
Banco di memoria da 32 x 64 bit possibile implementazione
MemoriaArchitettura degli elaboratori - 23 -
CK
64 64
R0
U
IL
R1
U
IL
64
R2
U
IL
64
R3
U
IL …
64
R30
U
IL
64
R31
U
IL
DEC
32 31 30
64
64
29 28 2
ind5
MUX
dato in
dato out
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 4
Banco di memoria ad un bus solo
Il tipico banco di memoria ha uno solo bus: da un banco, eseguiamo una sola operazione alla volta, lettura oppure scrittura
Come implementare un bus bidirezionale?
E’ necessaria una nuova porta (per pilotaggio delle uscite del componente) che consenta la NON interferenza fra le uscite e le entrate nel bus: il tri-state buffer
Inoltre, per costruire banchi di memoria grandi vogliamo unire le uscite di 2 o più componenti in un unico bus
Come garantire la non interferenza fre le uscite dei vari componenti?
Stessa soluzione: il tri-state buffer
MemoriaArchitettura degli elaboratori - 24 -
Tri-State Buffer(buffer a tre stati)
È il circuito elementare modellabile come un contatto a tre posizioni:
in stato di bassa impedenza consente di avere in uscita o il livello alto (1) o il livello basso (0)
in stato di alta impedenza (Z) isola elettricamente l’uscita
quando un apposito ingresso di controllo E (Enable) non è attivo, il gate forza lo stato di alta impedenza
MemoriaArchitettura degli elaboratori - 25 -
I U
E
E I U
0 0 Z
0 1 Z
1 0 0
1 1 1
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 5
Funzionamento
MemoriaArchitettura degli elaboratori - 26 -
I U
E
I U
1
1 1 1 1
I U
E
I U
0
X Z X Z
I U
E
I U
1
0 0 0 0
interruttore chiuso
interruttore chiuso
interruttore apertostato di altaimpedenza0 oppure 1
ingresso dicontrollo
Nota: un tri-state buffer è molto diverso da una porta AND
MemoriaArchitettura degli elaboratori - 27 -
A
0
0
B
1
B
$!&@£$!
Circuito non corretto!
A
0
Z
B
1
B
B
Circuito corretto
A e B valgono 0 oppure 1
non leggibilese B=1 !
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 6
Nota: il valore Z (alta impedenza)è molto diverso da 0
1: passa corrente a (relativamente) bassa tensione
0: passa corrente a (relativamente) alta tensione
Z: non passa corrente (è isolato)
Per misurare la tensione, devo avere corrente
se faccio confluire due cavi con 0 e 1 in un cavo, ottengo un cavo illeggibile / rumoroso / casuale
se faccio confluire due cavi con 0 e Z in un cavo, ottengo un cavo con 0
se faccio confluire due cavi con 1 e Z in un cavo, ottengo un cavo con 1
se faccio confluire due cavi con Z e Z in un cavo, ottengo un cavo con Z
MemoriaArchitettura degli elaboratori - 28 -
Tri-State Buffer : uso tipicoOE (Output Enable)
MemoriaArchitettura degli elaboratori - 29 -
DISPOSITIVOA
input
output
bus di input
bus di output
DISPOSITIVOB
input
output
DISPOSITIVOC
input
output
OE (C)OE (B)OE (A)
CORE
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 7
Tri-State Buffer : uso tipicoCS (Chip Select)
MemoriaArchitettura degli elaboratori - 30 -
DISPOSITIVOA
input
output
bus di input
bus di output
DISPOSITIVOB
input
output
DISPOSITIVOC
input
output
OE (C)OE (B)OE (A)
CS (C)CS (B)CS (A)
CORE
CS (Chip Select) eOE (Output Enable)
MemoriaArchitettura degli elaboratori - 31 -
DISPOSITIVOA
input
output
bus di input
bus di output
DISPOSITIVOB
input
output
DISPOSITIVOC
input
output
CORE
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 8
Tri-State Buffer : uso tipicobus bidirezionali, di input/output
MemoriaArchitettura degli elaboratori - 32 -
bus di input / output
CORE
DISPOSITIVOA
input output
DISPOSITIVOB
input output
DISPOSITIVOC
input output
Tri-State Buffer : uso tipicobus bidirezionali, di input/output
MemoriaArchitettura degli elaboratori - 33 -
bus di input / output
CORE
DISPOSITIVOA
input output
DISPOSITIVOB
input output
DISPOSITIVOC
input output
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 9
CS e OE
CS - Chip Select:
isola elettricamente il dispositivo quando non è selezionato(i suoi input, e spesso, anche i suoi output)
quando si manda il segnale sul bus, solo il dispositivo con CS=1 ascolta, gli altri è come se non ci fossero
per il dispositivo con CS è 1 è come essere l’unico sul bus
OE - Output Enable:
isolare elettricamente le uscite del dispositivo (ma non le entrate)
utile per condividere tanti dispositivi in uscita su uno stesso bus
in pratica, consente di implementare un mutexeconomico e scalabile (ma non tanto efficiente)
MemoriaArchitettura degli elaboratori - 34 -
DE
C…
…
MUX
bus
Un banco di memoria con un solo bus di input/output
MemoriaArchitettura degli elaboratori - 36 -
Porta di accesso (in lettura e scrittura) al banco di memoria
RD e WR = comandi di lettura e scritturaRD = 1 e WR = 0: eseguiamo una letturaRD = 0 e WR = 1: eseguiamo una scritturaRD = 0 e WR = 0: il banco di memoria è inattivoRD = 1 e WR = 1: NO, errore
k
m
indirizzo
dato
RD (lettura)
CK (clock)
2k x m bits
WR (scrittura)
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 10
Un Memory Bank (da 32x64 bit)con un bus di uscite ingressi unificato
MemoriaArchitettura degli elaboratori - 37 -
busdata
componentememoria
32x64 bit
in out
indirizzo
CS
64
ind
RD
WR
5
controlCS = RD + WR
OE = RD
bus indirizzo
CS∙OECS∙OE
Quando RD = 0 WR = 0 :componente isolato
Quando RD = 1 WR = 0 :bus funziona in
Quando RD = 0 WR = 1 :bus funziona in
Costruire memorie grandi
N componenti di memoria possono essere assemblati per ottenerebanchi di memoria più grandi
O per ottenere memorie con parole più lunghe. Per es:
2 Componenti da 32x64 in un banco da 32x128
una componente fornisce i 64 bit HIGH, e l’altra i 64 LOW della parola finale (HIGH = most significant, LOW = least significant)
O per ottenere memorie con più parole. Per es:
4 Componenti da 32x64 in un banco da 128x64
una componente memorizza tutte le parole di indirizzo 00…..una componente memorizza tutte le parole di indirizzo 01…..una componente memorizza tutte le parole di indirizzo 10…..una componente memorizza tutte le parole di indirizzo 11…..
CS a 1 solo per la componente attiva. OE a 1 solo su quella componente, e se lettura.
O entrambe le cose contemporaneamente. Per es: …
MemoriaArchitettura degli elaboratori - 38 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 11
128
componenteHIGH
32x64 bit
in out
componenteLOW
32x64 bit
in out
Un Memory Bank da 32x128 bitimplementato con 2 componenti da 32x64 bit
MemoriaArchitettura degli elaboratori - 39 -
busdata
ind ind
128
ind5
bus indirizzo
CS∙OECS∙OE CS∙OE
64 64
128
64 64
RD
WRcontrol
CS = RD + WR
OE = RD
CS∙OE
Un Memory Bank da 128x64 bitimplementato con 4 componenti da 32x64 bit
MemoriaArchitettura degli elaboratori - 40 -
busdata
componente00
32x64 bit
in out
ind
componente01
32x64 bit
in out
ind
componente10
32x64 bit
in out
ind
componente11
32x64 bit
in out
ind
CS00 CS01 CS10 CS11
7
64
ind
RDWR
5
2control
4
4
CS00,01,10,11
OE00,01,10,11
bus indirizzo
CS00
OE00
CS00
∙OE00
CS01
OE01
CS01
∙OE01
CS10
OE10
CS10
∙OE10
CS11
OE11
CS11
∙OE11
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 12
Un Memory Bank da 128x64 bitimplementato con 4 componenti da 32x64 bit
MemoriaArchitettura degli elaboratori - 41 -
busdata
componente00
32x64 bit
in out
ind
componente01
32x64 bit
in out
ind
componente10
32x64 bit
in out
ind
componente11
32x64 bit
in out
ind
0 1 0
7
64
ind
RDWR
5
2control
4
4
CS00,01,10,11
OE00,01,10,11
bus indirizzo01
1
0
10111
= 0,1,0,0
= 0,1,0,0
0
0 1 0 00 0 0 0
ESEMPIO:lettura all’indirizzo 0110111
Un Memory Bank da 128x64 bitimplementato con 4 componenti da 32x64 bit
MemoriaArchitettura degli elaboratori - 42 -
busdata
componente00
32x64 bit
in out
ind
componente01
32x64 bit
in out
ind
componente10
32x64 bit
in out
ind
componente11
32x64 bit
in out
ind
0 1 0
7
64
ind
RDWR
5
2control
4
4
CS00,01,10,11
OE00,01,10,11
bus indirizzo01
1
0
10111
= 0,1,0,0
= 0,0,0,0
0
0 0 0 00 1 0 0
ESEMPIO:scrittura all’indirizzo 0110111
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 13
componente0 - HIGH
32x64 bit
in out
componente0 - LOW
32x64 bit
in out
componente1 - HIGH
32x64 bit
in out
componente1 – LOW
32x64 bit
in out
Un Memory Bank da 64x128 bitimplementato con 4 componenti da 32x64 bit
MemoriaArchitettura degli elaboratori - 43 -
busdata
ind ind ind ind
CS0 CS0 CS1 CS1
6
128
ind
RDWR
5
1control
2
2
CS0,1
OE0,1
bus indirizzo
CS0
∙OE0
CS0
∙OE0
CS0
∙OE0
CS0
∙OE0
CS1
∙OE1
CS1
∙OE1
CS1
∙OE1
CS1
∙OE1
Costruire memorie ancora più grandi
Assemblando blocchi di memoria potremmo ottenere memorie ancora più grandi, e così via.
Vogliamo ottenere memorie di GBytes! Questo «scala»?
Problemi:
Numero enorme di Flip-Flop: troppo caro?Soluzione: passare a DRAM (vedo dopo)
Lunghezza dei cavi diviene eccessiva?Soluzione: disporre i bit memoria spazialmente in una griglia 2Dcon righe e colonne («organizzazione a matrice»)
Il circuito eccede cmq quello che possiamo stampare in un Chip?Soluzione: disporre la memoria in un Chip esterno alla CPUAnzi: tanti Chip!Pilotati da CS e OE.
MemoriaArchitettura degli elaboratori - 44 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 14
Organizzazione a matrice
Le memorie le immaginiamo come vettori (1-dimensionali) di parole
Ma le memorie di elevata capacità spesso hanno una struttura fisica interna a matrice (2-dimensionale)
scopo: ridurre i collegamenti interni
In tal caso sono di solito presenti due comandi aggiuntivi (RAS e CAS), per l’accesso alla memoria
MemoriaArchitettura degli elaboratori - 45 -
Banco di memoria in un chip:
Sono disponibili componenti integrati di memoria di svariate capacità
Per esempio: 64 K 8, 1 M 8, 1 M 1, 256 M 1, …
Tuttavia, per ottenere memorie di capacità elevata, occorre aggregare più componenti di memoria, realizzando un banco di memoria
MemoriaArchitettura degli elaboratori - 46 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 15
Esempio
Si desidera ottenere un banco di memoria da 2 M 16 bit
Indirizzo da 21 bit
Dati da 16 bit
Si dispone di 4 chip di memoriada 1 M 8 ciascuno
Indirizzo da 20 bit
Dati da 8 bit
Il numero di chip è sufficiente:4 (1 M 8) = 32 Mbit e2 M 16 = 32 Mbit
Implementazione (traccia):matrice 2 2 (2 righe di 2 chip di memoria ciascuna)
MemoriaArchitettura degli elaboratori - 47 -
Morale: la Memoria Centrale di un computer
Morale: la memoria centrale di un computer è molto grande ma
ha un bus dati unificato, di lettura e scrittura(quindi in ogni dato momento: o ci si legge, o ci si scrive)
è esterna alla CPU, in un chip separato (lentezza)
è di tipo DRAM (consumo, lentezza)
totale: tanti cicli di clock per eseguire una scrittura o lettura.
Il register file è molto piccolo ma
ha tanti bus di lettura e scrittura(per es: due letture e una scrittura per colpo)
è stampata nello stesso Chip della GPU, bella vicina alla ALU(fa parte del circuito integrato nella GPU)
è di tipo SRAM (velocissima)
Totale un ciclo di clock per fare più letture e scritture
Come possiamo avere il meglio dei due mondi? See next lecture.
MemoriaArchitettura degli elaboratori - 48 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 16
Tecnologie di memoria
Esistono svariate tecnologie di memoria
Differiscono per:
capacità della memoria
tempo di accesso a una parola (in lettura o in scrittura)
politica di accesso: lettura e scrittura, sola lettura, programmabilità sul campo
stabilità: volatile o persistente
costo
MemoriaArchitettura degli elaboratori - 49 -
RAM Statica (SRAM)
Memoria RAM (Random Access Memory) realizzata con bistabili
Capacità medio-piccola
Tempo di accesso molto breve
Funziona in lettura e scrittura
Volatile: senza alimentazione il contenuto della memoria svanisce
Usi: svariati, in particolare come cache
MemoriaArchitettura degli elaboratori - 50 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 17
RAM Dinamica (DRAM)
La memoria SRAM consuma parecchi transistor per bit memorizzato (circa 6 transistor per bit)
La tecnologia DRAM usa circa 1 transistor per bit memorizzato
Sfrutta il fenomeno dell’accumulo temporaneo di carica sul transistor
Internamente contiene un circuito di rinfresco che rigenera le cariche sui transistor prima che queste svaniscano
MemoriaArchitettura degli elaboratori - 51 -
RAM Dinamica (DRAM)
Memoria RAM realizzata come matrice di transistor, ad altissima densità
Capacità grande-grandissima
Tempo di accesso medio
Funziona in lettura e scrittura
Volatile: senza alimentazione il contenuto della memoria svanisce
Usi: numerosissimi, la memoria centrale dei calcolatori normalmente è DRAM
MemoriaArchitettura degli elaboratori - 52 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 18
ROM
Memoria ROM (Read Only Memory), realizzata come matrice di transistor
Capacità grande-grandissima
Tempo di accesso medio
Funziona in sola lettura
Persistente: il contenuto permane anche in assenza di alimentazione
Usi: per memorizzare programmi permanenti, non modificabili; grandi volumi di produzione
MemoriaArchitettura degli elaboratori - 53 -
PROM, EPROM, EEPROM
Capacità e tempo simili alla ROM
Sola lettura e persistenti
Sono programmabili sul campo, tramite un apposito programmatore:
PROM: programmabile una volta sola
EPROM: cancellabile con raggi UV
EEPROM: cancellabile elettricamente (si può anche scrivere un solo byte per volta)
Usi: piccoli volumi di produzione, prototipi
MemoriaArchitettura degli elaboratori - 54 -
Università dell'Insubria A.A. 2016/17
Architettura degli elaboratori - Memoria 19
Memoria FLASH
Capacità e tempo simili alla DRAM (o solo di poco inferiori)
Funziona in lettura e scrittura (la scrittura però è a blocchi di byte)
Persistente: il contenuto permane anche in assenza di alimentazione
Usi: dati multimediali (p. es. immagini statiche, sequenze video), programmi fissi ma periodicamente aggiornabili
MemoriaArchitettura degli elaboratori - 55 -
Tabella riassuntiva
MemoriaArchitettura degli elaboratori - 56 -
Tipo Categoria Modalità dicancellazione
Scritturabyte
Volatile Usispecifici
SRAM lett/scritt elettrica si si cache
DRAM lett/scritt elettrica si si mem. centrale
ROM sola lett nessuna no no grandi vol.
PROM sola lett nessuna no no piccoli vol.
EPROM sola lett luce UV no no prototipi
EEPROM sola lett elettrica si (lenta) no prototipi
FLASH lett/scritt elettrica a blocchi no multimedia
Le memorie cancellabili vengono talvolta qualificate come “memorie prevalentemente a sola lettura” (read-mostly)