0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu...

19
Università dell'Insubria A.A. 2016/17 Architettura degli elaboratori - Memoria 1 Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate [email protected] 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 2 k = m cioè k = log 2 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 Memoria Architettura degli elaboratori - 19 -

Transcript of 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu...

Page 1: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

[email protected]

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 -

Page 2: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 3: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 4: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 5: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 !

Page 6: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 7: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 8: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 9: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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)

Page 10: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 11: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 12: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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

Page 13: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 14: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 15: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 16: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 17: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 18: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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 -

Page 19: 0HPRULD - CNRvcg.isti.cnr.it/~tarini/teaching/archi/2016/11-Memoria.pdf · ,o prgr sl qdwxudoh shu uhdol]]duh xqd phpruld q frvwuxluh xqd pdwulfh gl elvwdelol frpsohwdqgrod frq uhwl

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)