Domande

Commenti

Transcript

Domande
Lezione di Tutorato Di Architettura degli Elaboratori B
29/04/2005
ESERCIZI: Cache
INTRODUZIONE Gerarchie di memoria:
CPU
Gli elaboratori con architettura alla Von Neumann soffrono del problema del Von Neumann
Bottleneck nell’accesso alla memoria. Per ovviare a questo problema si strutturata la
Liv 1
memoria in maniera gerarchica:
Liv.1: memoria più veloce (piccola, costosa).
Livello 2
Liv.n: memoria più lenta (grande economica)
Il processore indirizza tutta la memoria di Liv.n, ma accede direttamente solo al Liv.1.
…
L’obiettivo di questa soluzione è di dare l’illusione di avere una memoria
veloce come a Liv.1 e
Livello n
grande come a Liv.n.
Questo meccanismo per la risoluzione del problema del Von Neumann bottleneck funziona per il principio di località.
Località temporale: nell’esecuzione di un programma si tende a riferire elementi di memoria che sono stati riferiti di recente.
Località spaziale nell’esecuzione di un programma si tende a riferire elementi di memoria vicini a quelli riferiti di recente.
La memoria di Liv1 è solitamente chiamata cache, quella di Liv2 memoria principale e quella di Liv3 memoria di massa.
TERMINOLOGIA:
Hit:
Miss:
Hit rate (%):
Miss rate (%):
Hit Time:
Miss Penalty:
(Successo) il blocco cercato a Livello i è presente
(Fallimento) il blocco cercato a Livello i non è presente (compulsory, capacity, conflict)
percentuale di Hit rispetto ai tentativi di accesso a blocchi del Livello i
frequenza di Miss rispetto ai tentativi di accesso a blocchi del Livello i
latenza di accesso di un blocco al Livello i in caso di Hit
tempo richiesto per trasferire un blocco dal livello inferiore
1. Per una certa architettura e per un certo compilatore CompA, i CPI medi per le varie classi
di istruzioni (senza considerare l’effetto della cache) sono i seguenti, distribuiti nella
seguente: (vedi tabella).
Impiegando un nuovo compilatore, CompB, i CPI medi rimangono invariati, l’instruction
count (IC) aumenta del 15%, ma varia la distribuzione delle istruzioni.
CPIl/s = 2
CompA Percl/s = 30%
CompB Percl/s = 20%
CPIaritm = 1
Percaritm = 40%
Percaritm = 60%
CPIfp = 4,
Percfp = 10%
Percfp = 10%
CPIb/j = 1,8
Percb/j = 20%
Percb/j = 10%.
Calcolare quale dei due codici prodotti risulta più veloce, e lo speedup relativo.
Considerare infine l’effetto della cache sui tempi di esecuzione. In entrambi i casi abbiamo
instruction miss rate=2%, data miss rate=5%, e miss penalty=5 cicli.
Ricalcolare lo speedup considerando l’effetto della cache.
2. Sappiamo che, per certo mix di programmi e senza considerare gli stalli dovuti ai cache
miss, il CPI delle istruzioni di lw/sw è 3, mentre il CPI di tutte le altre istruzioni è 2. Le
istruzioni di lw/sw sono il 25% di tutte le istruzioni.
Valutare le seguenti architetture, per le quali i CPI di sopra rimangono invariati:
a) processore 250MHz, DataMissRate=5%,InstructionMissRate=2%,MissPenalty=10 cicli.
b) processore 500MHz, DataMissRate=3%,InstructionMissRate=2%,MissPenalty=15 cicli.
Quale delle due architetture esegue più cicli?
Qual è più veloce e di quanto?
3. Calcolare il miss penalty, considerando che instruction miss rate=2%, data miss rate=5%, la
percentuale di istruzioni di load/store è del 25%, il CPIideale (ovvero senza i cache miss) è 2,
mentre il CPIreale è 2.5. Introducendo una nuova tecnologia di memoria cache, che riduce
della metà i penalty, qual è lo speedup ottenibile?
Ultima modifica: 29/04/2005
Luca Di Gesù 786959
Lezione di Tutorato Di Architettura degli Elaboratori B
29/04/2005
4. Abbiamo le seguenti misure relative ad un processore a 2 GHz, quando usato per eseguire
un certo insieme di programmi: CPIideale = 2, Percl/s = 20%, Data miss rate = 30%, Instr miss
rate = 5%, CPIreale = 2, 4.
Qual `e il valore del Miss penalty?
Sappiamo che, portando la frequenza di clock a 2,2 GHz, otteniamo invece un CPIreale = 2,5.
Qual `e il valore del Miss penalty in questo caso?
5. Si consideri l’esecuzione di un programma P su di una data CPU. Il CPI ideale è pari a 3,
ma considerando i miss della cache si ottiene un CPI reale pari a 3.6. Sapendo inoltre che
MissPenalty = 12 cicli e che InstructionMissRate = 4% determinare Data miss rate per il
programma considerato, tenendo conto che la Percl/s è del 40%.
6. Calcolare il numero di insiemi ed il livello di associatività in una cache set-associative
dove siano noti l’INDEX, la dimensione (parte dati) della cache, la TAG e la dimensione
dell’indirizzo fisico. In particolare abbiamo che:
Cachesize=1 MB, TAGsize=13 b, ADDRsize = 30 b, INDEXsize =11 b.
7. Considerare una cache associativa a 4 vie (n = 4), con una parte dati in grado di
memorizzare 512 KB, e i cui blocchi sono grandi 32 B. L’indirizzo fisico con cui si accede
alla cache è di 27 b (ADDRsize). Calcolare la dimensione della TAG della cache.
8. Si consideri il seguente programma assembly, all’inizio del loop sia $4=0x1000a0.
loop: lw
$2, 0($4)
sw $2, 4($4)
addi $4, $4, 8
bne $4, $5, loop
Per semplicità, si consideri che gli indirizzi riferiti dal programma siano tutti fisici, e che
questi indirizzi siano usati per accedere una cache dati con le seguenti caratteristiche:
diretta, composta di 256 blocchi, da 16 B ciascuno.
Qual `e la sequenza di blocchi di cache (identificati dall’INDEX) acceduti dal programma?
Supponendo che all’inizio i blocchi siano tutti non validi, per quali istruzioni abbiamo hit e
per quali miss (calcolare il data miss rate)?
9. Considerare una cache 4-way associative, con parte dati di 8 KB organizzata in blocchi da
32 B. L’indirizzo fisico è di 16 bit.
a. Determinare la suddivisione dell’indirizzo fisico nei campi TAG, INDEX, OFFSET
b. Stabilire se gli indirizzi 0xAFAF e 0xAFB0 sono mappati nello stesso set della cache.
c. Supponendo che il contenuto di 0xAFAF sia nella cache, cosa accade se tentiamo di
leggere il contenuto di 0xAFB0 ?
d. Che cosa succede invece per gli indirizzi 0xAFAF e 0xA7B0 ?
e. E nel caso la cache fosse 2-way associative?
f. Come sono ripartiti i campi TAG, INDEX e OFFSET se invece la cache è completamente
associativa?
Ultima modifica: 29/04/2005
Luca Di Gesù 786959