La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... ·...

26
La gerarchia di Memoria

Transcript of La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... ·...

Page 1: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

La gerarchia di Memoria

Page 2: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Gap delle prestazioni DRAM - CPU

1

10

100

1000

19

80

19

81

19

82

19

83

19

84

19

85

19

86

19

87

19

88

19

89

19

90

19

91

19

92

19

93

19

94

19

95

19

96

19

97

19

98

19

99

20

00

DRAM

CPU

Page 3: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Località ed Organizzazione

Gerarchica

Le RAM statiche sono veloci ma consumano molto

ed offrono densità medio/basse

Le RAM dinamiche consumano poco ed offrono

densità molto alte ma sono lente rispetto alla CPU

(ed ogni anno il divario aumenta)

Page 4: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Località dei programmi

I programmi godono della proprietà di

località sia Spaziale sia Temporale

Località temporale:

• È molto probabile che un’istruzione verrà

referenziata nuovamente a breve

Località spaziale

• È molto probabile che vengano

referenziate istruzioni vicine a quella

attualmente in esecuzione

La località dei programmi suggerisce una

gerarchia di memoria

Main Memory (DRAM)

Cache (SRAM)

Livello Inferiore (Hard Disk)

Registri

CPU L0

L1

L2

L3

Page 5: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Gerarchia di Memoria

I livelli più alti sono caratterizzati da:

Alta Velocità,

Alto Costo

Piccole Dimensioni

I livelli più bassi sono caratterizzati da

Bassa Velocità

Basso Costo

Grandi Dimensioni

L’uso della gerarchia di memoria vuole creare l’illusione di una memoria

Grande quanto la memoria di livello più basso

Veloce come la memoria di livello più alto

Page 6: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Gerarchia di Memoria

Quando la CPU deve accedere a un dato in memoria

1. Il dato viene cercato nella memoria a partire dal livello più

alto (L1)

2. Se il dato non è presente a livello Li, viene cercato al livello

inferiore Li+1

3. Se il dato è presente a livello Li, viene trasferito al livello

superiore Li-1

Il trasferimento di informazioni all’interno della gerarchia

avviene tra livelli adiacenti.

Se il dato si trova ad esempio a livello L2, prima viene

trasferito da L2 a L1 e poi da L1 al processore (L0)

Ogni livello è organizzato in blocchi di n byte

Page 7: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Tempo medio di accesso alla memoria

tAMAT = tls + miss rate•tp

dove:

hit rate: tentativi riusciti/numero di tentativi

miss rate: miss rate= 1 – hit rate

tls=(tacc + tempo per determinare se dato è nel livello attuale)

tp= (tempo accesso al livello inferiore + tempo trasferimento blocco)

più basso livello

di memoria più alto livello

di memoria al Processore

dal Processore Blk X

Blk Y

Page 8: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Quattro domande per chi progetta la

gerarchia di memoria

Q1: Dove piazzare un blocco ? (Block placement)

Q2: Come faccio a sapere se un blocco è presente?

(Block identification)

Q3: Quale blocco devo sostituire nel caso di Miss? (Block replacement)

Q4: Cosa succede in scrittura ? (Write strategy)

Q5: Cosa succede nel caso di miss in scrittura ? (Write Miss strategy)

Page 9: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q1: Dove piazzare un blocco ?

blocco 0

7

7

8

15

16

23

24

31

0

Dove ?

Page 10: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q1: Dove piazzare un blocco ?

Full Associative:

• Un blocco della main memory può essere mappato in un blocco qualsiasi della cache

Direct Mapped:

• Data una memoria cache di NB blocchi, il blocco della memoria principale di indice j può essere mappato solo nel blocco della memoria cache di indice

Index = j modulo NB

• L’indice del blocco in cache è ottenuto considerando gli IL=log2NB bit meno significativi dall’indice del blocco della memoria principale

Indirizzo di blocco della main memory

Index

IL bit

Page 11: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q1: Dove piazzare un blocco ?

N-way Set Associative

• Data una memoria cache di NS set, ciascuno di N blocchi, il blocco della memoria principale di indice j può essere mappato nel set della memoria cache di indice

Index = j modulo NS

• All’interno del set un blocco può essere piazzato in una posizione qualsiasi.

• L’indice del set in cache è ottenuto considerando gli IL=log2NS bit meno significativi dall’indice del blocco della memoria principale.

Page 12: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q1: Dove piazzare un blocco ?

Page 13: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Lab di Calcolatori

Q2: Come faccio a sapere se un blocco è presente?

blocco 0

7

7

8

15

16

23

24

31

0

Direct mapped

Page 14: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q2: Come faccio a sapere se un blocco è presente?

Data una cache direct mapped di NB blocchi e un main memory di NM

blocchi, nello stesso blocco della cache possono essere mappati NM div

NB blocchi.

Per sapere se il blocco presente in cache è quello effettivamente cercato,

oltre a memorizzare il blocco, viene memorizzata una informazione

supplementare, il tag del blocco ovvero la parte più significativa

dell’indirizzo del blocco che si sta cercando.

La memorizzazione del Tag richiede IB= log2 (NM div NB) bit

Indirizzo di blocco generato dal processore

Tag Index Offset

Mediante l’index viene individuato il blocco in cache, mediante il Tag viene

verificato se il blocco presente è quello cercato

L’offset individua la word all’interno del blocco

Page 15: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q2: Come faccio a sapere se un blocco è presente?

Tag Index Offset

= ? MUX

Hit/Miss

Page 16: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q2: Come faccio a sapere se un blocco è presente?

Data una cache Set Associative a N vie di NS set e un main memory di

NM blocchi, nello stesso set della cache possono essere mappati NM div

NS blocchi.

La memorizzazione del Tag richiede IB= log2 (NM div NS) bit

Fissata la dimensione della memoria cache, all’aumentare del numero di

blocchi di ciascun set diminuisce il numero di set presenti ( diminuisce il

numero di bit dell’index e aumenta quello del tag)

Nel caso di memoria full associative possiamo pensare la cache con un

unico set e pertanto il tag coincide con l’indirizzo del blocco

Page 17: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q2: Come faccio a sapere se un blocco è presente?

Page 18: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q3: Quale blocco devo sostituire nel caso di Miss?

Random

Least Recently Used

Associativity: 2-way 4-way 8-way

Size LRU Random LRU Random LRU Random

16 KB 5.18% 5.69% 4.67% 5.29% 4.39% 4.96%

64 KB 1.88% 2.01% 1.54% 1.66% 1.39% 1.53%

256 KB 1.15% 1.17% 1.13% 1.13% 1.12% 1.12%

Miss Rate

Page 19: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q4: Cosa succede in scrittura ?

Write through: L’informazione é scritta sia in cache sia nel

livello inferiore di memoria.

Write back: L’informazione é scritta solo in cache. Il blocco

della cache modificato è scritto in main memory solo quando

è sostituito. Ad ogni blocco è associato un dirty bit che viene

settato a 1 se il blocco viene modificato, altrimenti resta a 0

Pro e contro di entrambi

• WT: un read miss non richiede scritture (in main memory)

• WB: più scritture sullo stesso blocco (in cache) comportano una sola

scrittura in main memory

Page 20: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q4: Cosa succede in scrittura ?

WT è combinato con un write buffers in modo da non

aspettare il livello inferiore di memoria.

Processore

Cache

Write Buffer

Main

Memory

Page 21: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Q5: Write-miss Policy: Write Allocate

versus Not Allocate

Write allocate: in caso di miss in scrittura il blocco

viene caricato in cache e poi viene fatta la scrittura

sul blocco

Write Not allocate: in caso di miss non viene fatto il

caricamento del blocco in cache

Tipicamente abbiamo le seguenti combinazioni:

• Write back con Write allocate

• Write through con Write Not allocate

Page 22: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Cause Miss Rate

Compulsary

Capacity

Conflict

Page 23: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Cause Miss Rate

Cache Size (KB)

Mis

s R

ate

pe

r Ty

pe

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

1 2 4 8

16

32

64

128

1-way

2-way

4-way

8-way

Capacity

Compulsory

Page 24: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Elementi che influenzano il miss

Dimensione della cache

Dimensione del blocco

Associatività

Page 25: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

DIMENSIONE DEL BLOCCO

Block Size (bytes)

Miss

Rate

0%

5%

10%

15%

20%

25%

16

32

64

12

8

25

6

1K

4K

16K

64K

256K

Page 26: La gerarchia di Memoria - unict.itutenti.dieei.unict.it/users/smonteleone/corsi/aa2016-17/... · 2017. 5. 9. · + miss rate•t p dove: hit rate: tentativi riusciti/numero di tentativi

Dimensione cache e associatività

Miss rate vs A.M.A.T

Cache Size Associativity

(KB) 1-way 2-way 4-way 8-way

1 2.33 2.15 2.07 2.01

2 1.98 1.86 1.76 1.68

4 1.72 1.67 1.61 1.53

8 1.46 1.48 1.47 1.43

16 1.29 1.32 1.32 1.32

32 1.20 1.24 1.25 1.27

64 1.14 1.20 1.21 1.23

128 1.10 1.17 1.18 1.20

Ridurre il miss rate aumentando l’associatività non necessariamente riduce

l’AMAT