(1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi...

13
(1) La memoria cache Tecniche di rimpiazzo

Transcript of (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi...

Page 1: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(1)

La memoria cache

Tecniche di rimpiazzo

Page 2: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(2)

Problemi con le cache°Ampiezza del blocco

°Tipi di Cache Misses

°Fully Associative Cache

°N-Way Associative Cache

°Politiche di rimpiazzo dei blocchi

Page 3: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(3)

Block Size°Benefici dalla località spaziale• Località spaziale: è probabile che le parole che si trovano vicine ad una parola richiesta siano nuovamente richieste in tempi brevi.

• La località spaziale emerge spontaneamente nei programmi.

Page 4: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(4)

Block Size

• La frequenza di miss si riduce all’aumentare della dimensione dei blocchi. (miss rate)

•Ma attenzione se la dimensione dei blocchi è troppo grande la frequenza di miss aumenta perchè si ridurrebbe il numero di blocchi presenti nella cache.

• Il costo di una miss (miss penalty) aumenta al crescere della dimensione del blocco.

Page 5: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(5)

Cache a confronto

°Cache contenente 8 blocchi

mappa diretta

tag dati

2 vie

tag dati tag dati

completamente associativa

tag dati tag dati tag dati tag dati tag dati tag dati tag dati tag dati

4 vie

tag dati tag dati tag dati tag dati

Page 6: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(6)

Esempio: mappa diretta

°Cache da 4 parole°Sequenza di accessi: 0,8,0,6,8 (dim. Blocco=1B)

Indirizzo blocco Blocco cache0 06 28 0

Blocco da accedere H/M Blocco 0 Blocco 1 Blocco 2 Blocco 3

0 M Mem[0]8 M Mem[8]0 M Mem[0]6 M Mem[0] Mem[6]8 M Mem[8] Mem[6]

Page 7: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(7)

Associativa a 2 vie

°Cache da 4 parole

°Sequenza di accessi: 0,8,0,6,8

Indirizzo blocco Blocco cache0 06 08 0

Blocco da accedere H/M Insieme 0 Insieme 0 Insieme 1 Insieme 1

0 M Mem[0]8 M Mem[0] Mem[8]0 H Mem[0] Mem[8]6 M Mem[0] Mem[6]8 M Mem[8] Mem[6]

Page 8: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(8)

Completamente associativa

°Cache da 4 parole

°Sequenza di accessi: 0,8,0,6,8

Blocco da accedere H/M Blocco 0 Blocco 1 Blocco 2 Blocco 3

0 M Mem[0]8 M Mem[0] Mem[8]0 H Mem[0] Mem[8]6 M Mem[0] Mem[8] Mem[6]8 H Mem[0] Mem[8] Mem[6]

Page 9: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(9)

Block Replacement Policy (1/2)

°Se abbiamo scelta dove andiamo a mettere un nuovo blocco?

Page 10: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(10)

Block Replacement Policy (2/2)

°Se è tutto vuoto, generalmente scriviamo il nuovo blocco nel primo.

°Se tuttavia tutte le locazioni hanno già un blocco valido, possiamo usare una politica di rimpiazzo.

Page 11: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(11)

Block Replacement Policy: LRU

°LRU (Least Recently Used)• Idea: buttare fuori blocchi con accesso meno recente.

•Pro: temporal locality => cose usate da poco potrebbero essere riusate a breve.

Associatività:2 vie 4 vie 8 vie

Dimensione LRU Random LRU Random LRU Random

16 KB 5.2% 5.7% 4.7% 5.3% 4.4% 5.0%

64 KB 1.9% 2.0% 1.5% 1.7% 1.4% 1.5%

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

Page 12: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(12)

Esempio

°Abbiamo una 2-way set associative cache con 4 word di capacità totale e blocchi da 1 word.

° Supponiamo di voler effettuare gli accessi in memoria ai blocchi:

0, 2, 0, 1, 4, 0, 2, 3, 5, 4

Che percentuale di miss e di hit otterremo applicando la tecnica LRU?

Page 13: (1) La memoria cache Tecniche di rimpiazzo. (2) Problemi con le cache °Ampiezza del blocco °Tipi di Cache Misses °Fully Associative Cache °N-Way Associative.

(13)

Example: LRU°Addresses 0, 2, 0, 1, 4, 0, ... 0 lru

1 lru

loc 0 loc 1

set 0

set 1

0 2lruset 0

set 1

lruset 0

set 1

0 41 lru

• 0: miss, bring into set 0 (loc 0)

• 2: miss, bring into set 0 (loc 1)

• 0: hit

• 1: miss, bring into set 1 (loc 0)

• 4: miss, bring into set 0 (loc 1, replace 2)

• 0: hit

0 2set 0

set 1

lru

0set 0

set 1

lrulru2

lru

2set 0

set 1

01 lru

lrulru 4

lru