Domande
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