Valutazione delle prestazioni

Documenti analoghi
Valutazione delle prestazioni

Valutazione delle prestazioni

Valutazione delle prestazioni

La Valutazione delle Prestazioni

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Esercizi sulle prestazioni delle memorie cache

PRESTAZIONI. senza e con memoria cache

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Soluzione Esercizio 1

Architettura hardware

Criteri di caratterizzazione di una memoria

Prestazioni & Co: CPU, Memoria, I/O

Dischi: Esercizio 1. Ora t.elab = n.cicli impiegati / Frequenza = / ( ) = 20ms

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

L'architettura del processore MIPS

Von Neumann Bottleneck

La gerarchia delle memorie. Sommario

Il Processore. Informatica di Base -- R.Gaeta 27

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Esercitazione su Gerarchie di Memoria

Richiami sull architettura del processore MIPS a 32 bit

Cicli di clock e istruzioni

Architettura degli Elaboratori

Architettura dei calcolatori

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

Esame di INFORMATICA Lezione 4

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

Lezione4: MIPS e Istruzioni (1 Parte)

Il modello di von Neumann

Richiami sull architettura del processore MIPS a 32 bit

Esercitazione su Gerarchie di Memoria

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

LEZIONE 2 Il processore e la memoria centrale

Architettura degli Elaboratori

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Implementazione semplificata

Lezione 22 La Memoria Interna (1)

Il modello di Von Neumann

1 Esercizi in pseudocodice

Transcript:

Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1

Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per: quantificare le caratteristiche di una macchina (velocità, ecc.) fare scelte intelligenti (es. miglioramento dell hardware vs installazione nuovo software) orientarsi nell acquisto del calcolatore più adatto per l applicazione data Cristina Silvano pag 2

Tempo di risposta (o tempo di esecuzione o latenza) definito come il tempo tra l'inizio e il completamento di un lavoro o compito elaborativo. Esempi: Durata dell esecuzione del mio programma Attesa per l accesso ad un sito web Throughput definito come ammontare complessivo di lavoro svolto in un dato tempo. Esempi: Numero di programmi eseguiti nell unità di tempo Numero di lavori (job, transazioni, interrogazioni a basi di dati) svolti nell unità di tempo. Numero di programmi eseguibili da una macchina contemporaneamente Cristina Silvano pag 3

Relazione tra le prestazioni di due macchine X ed Y La frase X è più veloce di Y è usata per indicare che il tempo di risposta o di esecuzione, per un dato lavoro, è più basso in X che in Y. X è n% più veloce di Y Tempo di esecuzione Y Tempo di esecuzione X = 1 + n 100 Tempo di esecuzione = reciproco della prestazione, quindi: 1 + n 100 = Tempo di esecuzione Y Tempo di esecuzione X = n = 100 1 Prestazione Y 1 = prestazione X Prestazione X Prestazione Y Prestazione Y Prestazione X Prestazione Y Cristina Silvano pag 4

Miglioramento delle prestazioni Si parla di miglioramento della prestazione o di miglioramento del tempo di esecuzione per esprimere: incremento della prestazione diminuzione del tempo di esecuzione. Cristina Silvano pag 5

Esempio Se la macchina A esegue un programma in 10 secondi e la macchina B esegue lo stesso programma in 15 secondi, quale delle seguenti affermazione è vera? A è il 50% più veloce di B. A è il 33% più veloce di B. Risposta L'affermazione che la macchina A è n% più veloce della macchina B può essere espressa come Tempo di esecuzione B Tempo di esecuzione A = 1 + n 100 n = Tempo di esecuzione B Tempo di esecuzione A Tempo di esecuzione A * 100 15 10 10 * 100 = 50 A è perciò il 50% più veloce di B. Cristina Silvano pag 6

Cicli di clock Durata del periodo di un oscillazione completa del segnale di sincronizzazione (clock) Gli impulsi del clock indicano quando cominciare le attività Sostituisce spesso i secondi come unità di misura del tempo di CPU (tempo speso dalla CPU per eseguire il programma assegnato) Secondi = Cicli di clock * Secondi Ciclo di clock Cristina Silvano pag 7

Cicli di clock T = Periodo o Durata del ciclo di clock = Tempo tra due impulsi consecutivi Secondi per ciclo f = Frequenza di clock = cicli di clock per secondo = 1 / T 1 Hz = 1 / sec Esempio: Un calcolatore con frequenza di clock pari a 500 MHz possiede un ciclo di durata: 1 500 * 10 6 = 2 * 10 9 = 2 nanosecondi Cristina Silvano pag 8

Migliorare le prestazioni = Migliorare il tempo di esecuzione Secondi Programma = Cicli di clock Programma * Secondi Ciclo di clock = Tempo di esecuzione Per migliorare le prestazioni, a parità di tutto il resto, occorre: ridurre il numero di cicli richiesti per un programma ridurre la durata del ciclo di clock aumentare la frequenza di clock Cristina Silvano pag 9

Principi quantitativi di progettazione dei calcolatori Rendere veloce il caso più comune si deve favorire il caso più frequente a discapito del più raro il caso più frequente è spesso il più semplice e può essere reso più veloce del caso infrequente Legge di Amdahl il miglioramento di prestazione che può essere ottenuto usando alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo nella quale tali modalità possono venire impiegate Cristina Silvano pag 10

Speedup o Accelerazione Speedup = Prestazione per l'intero lavoro usando quando possibile il miglioramento Prestazione per l'intero lavoro senza usare la miglioria oppure Speedup = Tempo di esecuzione per l'intero lavoro senza uso del miglioramento Tempo di esecuzione per l'intero lavoro usando quando possibile il miglioramento Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando la macchina con la miglioria rispetto alla macchina originale. Cristina Silvano pag 11

Esempio Si consideri un calcolatore (CALC1) che possiede un unità aritmetico logica intera (INT_ALU) e un unità aritmetico-logica in virgola mobile (FP_ALU). CALC1 esegue un applicazioni software che tipicamente prevede il 90% di istruzioni in aritmetica intera e il 10% in virgola mobile. Si consideri un nuovo calcolatore (CALC2) che possiede una INT_ALU ottimizzata che gli permette di raggiungere un miglioramento pari a 2x nell esecuzione delle istruzioni intere. Si valuti il miglioramento globale ottenuto utilizzando CALC2 per l applicazione software data. Infine si consideri un terzo calcolatore (CALC3) che possiede una FP_ALU ottimizzata che gli permette di raggiungere un miglioramento pari a 2x nell esecuzione delle istruzioni in virgola mobile e si valuti il miglioramento rispetto al calcolatore iniziale. Cristina Silvano pag 12

Risposta ISTRUZIONI INTERE ISTRUZIONI TOTALI Calcolatore T_ESEC Speedup_m T_ESEC Speedup CALC1 90 1.0 100 1.0 CALC2 45 2.0 55 1.81 CALC3 90 1.0 95 1.05 Cristina Silvano pag 13

La legge di Amdahl 1. Frazione migliorato ( 1), ovvero la frazione del tempo di calcolo della macchina originale che può essere modificato per avvantaggiarsi dei miglioramenti. Nell'esempio precedente la frazione è 0.90. 2. Speedup migliorato ( 1), ovvero il miglioramento ottenuto dal modo di esecuzione più veloce. Nel precedente esempio questo valore viene fornito nella colonna chiamata Speedup_m (pari a 2) Tempo di esecuzione nuovo = Tempo di esecuzione vecchio * (1 Frazione migliorato ) + Frazione migliorato Speedup globale = Tempo di esecuzione vecchio Tempo di esecuzione nuovo = 1 Speedup migliorato (1 Frazione migliorato ) + Frazione migliorato Speedup migliorato Cristina Silvano pag 14

Nell esempio precedente(ultima colonna) CALC2: Speedup globale = 100 55 = 1 (1 0.9) + 0.9 = 1.81 2 CALC3: Speedup globale = 100 95 = 1 (1 0.1) + 0.1 = 1.05 2 Cristina Silvano pag 15

Corollario Se un miglioramento è utilizzabile solo per una frazione del lavoro complessivo, allora non è possibile accelerare il lavoro più del reciproco di uno meno tale frazione: Speedup globale = 1 1 (1 Frazione migliorato ) + Frazione migliorato (1 Frazione migliorato ) Speedup migliorato Cristina Silvano pag 16

Esempio Si consideri un miglioramento che consente un funzionamento 10 volte più veloce rispetto alla macchina originaria, ma che sia utilizzabile solo per il 40% del tempo. Qual è il guadagno complessivo che si ottiene incorporando detto miglioramento? Risposta Frazione migliorato = 0.4 Speedup migliorato = 10 Speedup globale = 1 0.6 + 0.4 10 = 1 0.64 1.56 Cristina Silvano pag 17

Esempio Supponiamo di potere aumentare la velocità della CPU della nostra macchina di un fattore 5 (senza influenzare le prestazioni di I/O) con un costo 5 volte superiore. Assumiamo inoltre che la CPU sia utilizzata per il 50% del tempo ed il rimanente sia destinato ad attesa per operazioni di I/O. Se la CPU è un terzo del costo totale del computer è un buon investimento da un punto di vista costo/prestazioni, aumentare di un fattore cinque la velocità della CPU? Speedup globale = 1 0.5 + 0.5 5 = 1 0.6 = 1.67 Incremento di costo = 2 3 1 + 1 3 5 = 2.33 L'incremento di costo è quindi più grande del miglioramento di prestazioni: la modifica non migliora il rapporto costo/prestazioni. Cristina Silvano pag 18

Località del riferimento I programmi riutilizzano dati e istruzioni che hanno usato di recente. Regola pratica: un programma spende circa il 90% del suo tempo di esecuzione per solo il 10% del suo codice. Basandosi sul passato recente del programma, è possibile predire con ragionevole accuratezza quali dati e istruzioni userà nel prossimo futuro. località temporale elementi ai quali si è fatto riferimento di recente saranno utilizzati ancora nel prossimo futuro. località spaziale elementi i cui indirizzi sono vicini, tendono ad essere referenziati in tempi molto ravvicinati. Cristina Silvano pag 19

Esempio Supponiamo che una cache sia 5 volte più veloce della memoria principale ed inoltre che la cache possa venire usata per il 90% del tempo. Qual è il guadagno in velocità dovuto all'uso della cache? Risposta Speedup = (1 % tempo di uso cache)+ 1 % tempo di uso cache = Speedup usando la cache 1 (1 0.9) + 0.9 5 = 1 0.28 3.6 Otteniamo quindi una velocità 3.6 volte superiore usando la cache. Cristina Silvano pag 20

Il tempo è la misura delle prestazioni di un computer: il computer che svolge la stessa quantità di lavoro nel minore tempo è il più veloce. tempo di risposta rappresenta la latenza per il completamento di un lavoro includendo accessi a disco, accessi a memoria, attività di I/O,... tempo di CPU rappresenta il tempo speso dalla CPU per eseguire il programma dato: non include il tempo di attesa per I/O o per l'esecuzione di altri programmi. Comprende il tempo utente di CPU (tempo speso dalla CPU per eseguire le linee di codice che stanno nel nostro programma) + tempo di CPU di sistema (speso dal sistema operativo per eseguire i compiti richiesti dal programma) tempo di CPU = cicli di clock della CPU per un programma * tempo di un ciclo di clock tempo di CPU = cicli di clock della CPU per un programma frequenza di clock Cristina Silvano pag 21

Durata diversa delle diverse istruzioni In genere, istruzioni di tipo diverso richiedono quantità diverse di tempo. Esempi: la moltiplicazione richiede più tempo dell addizione l accesso alla memoria richiede più tempo dell accesso ai registri Fissata la durata del ciclo di clock, varia il numero di cicli di clock richiesti dalle diverse istruzioni Si può calcolare il numero medio di cicli di clock per istruzione di un dato programma. Cristina Silvano pag 22

Cicli di clock per istruzione (CPI) CPI = cicli di clock della CPU per un programma numero istruzioni T CPU = numero istruzioni * CPI * durata del ciclo di clock = numero istruzioni * CPI Frequenza di Clock T CPU = CI * CPI * T CLOCK = CI * CPI f CLOCK Introducendo nella prima formula le unità di misura, si può notare in che relazione stiano i vari componenti: Istruzioni cicli di clock Programma * Istruzione * Secondi ciclo di clock = Secondi Programma = tempo di CPU Cristina Silvano pag 23

Numero totale di cicli di clock n cicli di clock della CPU = (CPIi * Ii) i=1 Ii = numero di volte che l'istruzione di tipo i viene eseguita in un programma CPIi = numero di cicli di clock per l istruzione di tipo i. Questa formula può essere usata per esprimere il tempo di CPU come n T CPU = (CPIi * Ii) * T CLOCK i=1 Cristina Silvano pag 24

Nuova espressione di CPI CPI = n (CPIi * Ii) n i=1 numero istruzioni = i=1 (CPIi * Ii numero istruzioni ) Ogni singolo CPIi viene moltiplicato per la frazione delle occorrenze nel programma: n CPI = (CPIi * fi) i=1 Cristina Silvano pag 25

Esempio Si consideri un calcolatore in grado di eseguire le istruzioni riportate in tabella. Calcolare CPI e il tempo di CPU per eseguire un programma composto da 100 istruzioni supponendo di usare una frequenza di clock pari a 500 MHz. Frequenza cicli di clock ALU 43% 1 Load 21% 4 Store 12% 4 Branch 12% 2 Jump 12% 2 Risposta CPI = 0.43 * 1 + 0.21 * 4 + 0.12 * 4 + 0.12 * 2 + 0.12 * 2 = 2.23 T CPU = CI * CPI * T clock = 100 * 2.23 * 2 ns = 446 ns Cristina Silvano pag 26

MIPS = milioni di istruzioni per secondo MIPS = numero istruzioni tempo di esecuzione * 10 6 Essendo: tempo di esecuzione = numero istruzioni * CPI frequenza di clock MIPS = frequenza di clock CPI * 10 6 Poiché i MIPS sono la frequenza delle operazioni per unità temporale, le prestazioni per le macchine più veloci che hanno elevati valori di MIPS, possono venire specificate come l'inverso del tempo di esecuzione. La caratteristica positiva del MIPS è che risulta semplice da comprendere infatti le macchine più veloci hanno valori di MIPS più elevati. Cristina Silvano pag 27

MIPS: problemi dipende dall'insieme di istruzioni, quindi è difficile confrontare computer con diversi insiemi di istruzioni; varia a seconda del programma considerato; può variare in modo inversamente proporzionale alle prestazioni! Esempio: macchina con hardware opzionale per virgola mobile. Le istruzioni in virgola mobile richiedono più cicli di clock rispetto a quelle che lavorano con interi, quindi i programmi che usano l'hardware opzionale per la virgola mobile in luogo delle routine software per tali operazioni impiegano meno tempo ma hanno un MIPS più basso. L'implementazione software delle istruzioni in virgola mobile esegue semplici istruzioni, con il risultato di avere un elevato MIPS, ma ne esegue talmente tante da avere un più elevato tempo di esecuzione. Cristina Silvano pag 28

MIPS relativo MIPS relativo = tempo CPU di riferimento tempo CPU da valutare * MIPS CPU di riferimento Tempo CPU di riferimento = tempo di esecuzione di un programma sulla macchina di riferimento Tempo CPU da valutare = tempo di esecuzione dello stesso programma sulla macchina da valutare MIPS CPU di riferimento = MIPS accertato per la macchina di riferimento Negli anni ottanta la principale macchina di riferimento è stata il VAX 11/780, detta la macchina da 1 MIPS. Il vantaggio del MIPS relativo è piccolo: bisogna conoscere il tempo di esecuzione, il programma ed i suoi dati di ingresso per avere informazioni significative. Cristina Silvano pag 29

Benchmark = Programmi per valutare le prestazioni 1. Programmi reali Pur non sapendo il venditore quale frazione del tempo sarà dedicata a questi programmi, egli sa che alcuni utenti li useranno per risolvere problemi reali. Le prestazioni sono valutate meglio eseguendo un applicazione reale che rappresenti un tipico carico di lavoro. 2. Benchmark ridotti Tentativi di circoscrivere piccoli pezzi chiave dai programmi. 3. Benchmark sintetici Cercano di simulare la frequenza media degli operandi e delle operazioni di un vasto insieme di programmi. SPEC (System Performance Evaluation Cooperative) Cristina Silvano pag 30

Media aritmetica dei tempi di esecuzione Una media dei tempi di esecuzione che rispetta il tempo di esecuzione totale è la media aritmetica (arithmetic mean) 1 n n Tempoi i=1 tempo i è il tempo per il programma i-esimo degli n programmi che costituiscono il carico di lavoro. Cristina Silvano pag 31

Media aritmetica pesata dei tempi di esecuzione Se il carico di lavoro è composto da un insieme di programmi non eseguiti tutto lo stesso numero di volte, si assegna un peso wi ad ognuno di essi per indicare la frequenza relativa del programma entro il carico di lavoro. Si usa quindi una media aritmetica pesata (weighted arithmetic mean): n (Peso i * Tempo i ) i=1 dove Peso i rappresenta la frequenza del programma i-esimo entro il carico di lavoro e Tempo i è il tempo di esecuzione di tale programma. Cristina Silvano pag 32

Esercizio (1) (1) Un programma resta in esecuzione per 1 sec, su un processore dotato di ciclo di clock di 50 nsec, con Throughput 1 = 15 MIPS. Quanto vale il CPI, per il programma in questione? (2) Si supponga ora che, grazie a una qualche tecnica di ottimizzazione, il throughput del programma venga aumentato. Nella nuova situazione, il 40% delle istruzioni del programma viene eseguito con CPI = 1, mentre la frazione di istruzioni rimanente (ovvero il 60%) viene eseguito con CPI invariato. Quanto vale lo SpeedUp (accelerazione) passando dal caso (1) al caso (2)? Quanto vale il Throughput 2 in MIPS? Cristina Silvano pag 33

Esercizio (2) (1) Un programma resta in esecuzione per 1 sec, su un processore dotato di ciclo di clock di 100 nsec, con CPI 1 = 1,5. Quanto vale il Throughput (o frequenza di operazione), misurato in MIPS? (2) Si supponga ora che, grazie a una qualche tecnica di ottimizzazione, il 30% delle istruzioni del programma venga eseguito con CPI = 1 e che la frazione di istruzioni rimanente (ovvero il 70%) venga eseguito con CPI invariato. Quanto vale il Throughput misurato in MIPS? Quanto vale lo SpeedUp (accelerazione) passando dal caso (1) al caso (2)? Cristina Silvano pag 34

Esercizio (3) (1) Un programma resta in esecuzione per 1 sec, su un processore dotato di ciclo di clock di 50 nsec, con Throughput 1 = 10 MIPS. Quanto vale il CPI per il programma in questione? (2) Si supponga ora che, grazie all'aggiunta di superscalarità, il Throughput del programma venga aumentato. Nella nuova situazione, il 50% delle istruzioni del programma viene eseguito con grado superscalarità 3, mentre la frazione di istruzioni rimanente viene eseguita con grado di superscalarità 1. Quanto vale lo SpeedUp (accelerazione) passando dal caso (1) al caso (2)? Quanto vale il Throughput 2 in MIPS? Cristina Silvano pag 35

Prestazioni della gerarchia di memoria HIT MISS HIT RATE successo del tentativo di accesso al livello superiore della gerarchia fallimento del tentativo di accesso al livello superiore della gerarchia l'indirizzo deve essere cercato nel livello inferiore percentuale dei tentativi di accesso al livello superiore della gerarchia che hanno avuto successo # successi HIT RATE = # accessi a memoria MISS RATE percentuale dei tentativi di accesso al livello superiore della gerarchia che sono falliti # fallimenti MISS RATE = # accessi a memoria HIT RATE + MISS RATE = 1 Cristina Silvano pag 36

Prestazioni della gerarchia di memoria (cont.) Obiettivo principale della gerarchia di memoria = Incrementare le prestazioni Importante la velocità di accesso sia in caso di hit sia in caso di miss. HIT TIME tempo di accesso al livello superiore (che comprende anche il tempo necessario per determinare se l'accesso ha successo oppure fallisce) MISS PENALTY o PENALIZZAZIONE DI FALLIMENTO composto da: TEMPO DI ACCESSO per accedere alla prima parola del blocco dopo che è stato rilevato il fallimento TEMPO DI TRASFERIMENTO per trasferire le altre parole del blocco MISS TIME = HIT TIME + MISS PENALTY Cristina Silvano pag 37

Prestazioni della gerarchia di memoria (cont.) Il TEMPO DI ACCESSO è legato al tempo di latenza del livello inferiore, mentre il TEMPO DI TRASFERIMENTO è legato alla larghezza di banda del canale tra i due livelli di memoria. Il TEMPO MEDIO DI ACCESSO ALLA MEMORIA risulta: T m = HIT RATE HIT TIME + MISS RATE MISS TIME dove: MISS TIME = HIT TIME + MISS PENALTY HIT RATE + MISS RATE = 1 Tm = HIT TIME + MISS RATE MISS PENALTY Cristina Silvano pag 38

Impatto delle prestazioni della cache sul tempo di CPU Il tempo di CPU è composto da cicli che la CPU spende eseguendo il programma e da cicli che la CPU trascorre in attesa di risposta dal sottosistema di memoria. T CPU = (cicli di clock della CPU in esecuzione + cicli di clock stallo di memoria) T CLOCK dove T CLOCK = durata del ciclo di clock Hp) Tutti gli stalli di memoria sono dovuti a fallimenti di accesso alla cache; Hp) I cicli di clock utilizzati per un accesso alla cache riuscito (HIT) sono inclusi nei cicli di clock della CPU in esecuzione; Cristina Silvano pag 39

Impatto delle prestazioni della cache sul tempo di CPU cicli di clock stallo di memoria = #accessi a memoria MISS RATE MISS PENALTY Fattorizzando il CI si ricava: tempo di CPU = CI (CPI ESECUZ + # accessi a memoria ISTRUZIONE MISS RATE MISS PENALTY) T CLOCK CPI CON CACHE = CPI ESECUZ + # accessi a memoria ISTRUZIONE MISS RATE MISS PENALTY CASO IDEALE (100% HIT): CASO SENZA CACHE (100% MISS): CPI CACHE IDEALE = CPI ESECUZ CPI SENZA CACHE = CPI ESECUZ + # accessi a memoria ISTRUZIONE MISS PENALTY Cristina Silvano pag 40

Esercizio: Si consideri il VAX-11/780. La penalizzazione di fallimento è di 6 cicli di clock, mentre tutte le istruzioni impiegano 8.5 cicli di clock se si ignorano gli stalli di memoria. Ipotizzando un miss rate dell'11% e che vi siano in media 3 riferimenti alla memoria per ogni istruzione Qual è l'impatto sulle prestazioni quando viene inserita la cache reale rispetto ad una cache ideale? Qual è l'impatto sulle prestazioni tra il caso di cache reale e senza inserimento della cache? Risposta MISS PENALTY = 6 CPI ESECUZ = 8.5 MISS RATE = 0.11 # accessi a memoria ISTRUZIONE = 3 CPI CON CACHE = # accessi a memoria CPI ESECUZ + ISTRUZIONE = 8.5 + 3 0.11 6 = 10.48 MISS RATE MISS PENALTY = Cristina Silvano pag 41

CASO IDEALE (100% HIT): CPI CACHE IDEALE = CPI ESECUZ = 8.5 CASO SENZA CACHE (100% MISS): CPI SENZA CACHE = CPI ESECUZ + # accessi a memoria ISTRUZIONE MISS PENALTY = 8.5 + 3 * 6 = 26.5 CPI CON CACHE CPI CACHE IDEALE = 10.48 8.5 = 1.23 CPI CON CACHE CPI SENZA CACHE = 10.48 26.5 = 0.4 In pratica, l impatto della gerarchia di memoria rispetto alla cache ideale comporta un incremento del tempo di CPU pari al 23% essendo il tempo di CPU proporzionale al CPI (a parità di CI e T CLOCK ): Tempo di CPU = CI CPI T CLOCK Cristina Silvano pag 42