Prestazioni & Co: CPU, Memoria, I/O

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Prestazioni & Co: CPU, Memoria, I/O"

Transcript

1 Prestazioni & Co: CPU, Memoria, I/O CPU - progettazione - prestazioni ideali Panoramica Memoria - gerarchie di memoria: cache, memoria principale, etc. - organizzazione, dimensionamento, indirizzamento, gest conflitti - prestazioni reali considerando anche il fattore memoria Periferiche di I/O - politiche di gestione delle singole periferiche - politiche di interfacciamento con il processore - prestazioni reali considerando i tempi di I/O Le scelte fatte a per l organizzazione, le politiche di gestione etc. influenzano le prestazioni della macchina che si ottiene

2 Misure per le Prestazioni T = durata del ciclo di clock (in secondi) F = numero cicli di clock al secondo (in Hz) F = 1 / T T = 1 / F Exe_Time X = tempo di esecuzione (CPU) di un programma sulla macchina X Prestazioni X = 1 / Exe_Time X (programmi/secondi) Speedup = Prestazioni X / Prestazioni Y = Exe_Time Y / Exe_Time X (se la macchina X è più veloce della macchina Y) Misure per le Prestazioni num. cicli = numero dei cicli di clock per eseguire un programma Exe_Time X = num. cicli T = num. cicli / F IC = numero di istruzioni del programma (Instruction Counter) CPI = numero medio di cicli per istruzione num. cicli = IC CPI Exe_Time X = IC CPI T = IC CPI / F MIPS = IC / ( Exe_Time X 10 6 ) = (IC F) / (IC CPI 10 6 ) = F / CPI 10 6

3 CPU Partiamo da una situazione ideale, in cui solo le caratteristiche della CPU influenzano le prestazioni Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6: Il responsabile del progetto di un nuovo processore, dopo il completamento della fase di progettazione del processore e della prima versione del compilatore, deve decidere se mandare in produzione il progetto così com è o spendere altro tempo per migliorarlo. Dopo aver discusso con un gruppo di specialisti hardware, deve decidere tra due alternative: a. Lasciare il progetto così com è: la macchina viene chiamata Mbase, la sua frequenza di clock? 500 MHz e utilizzando un simulatore vengono ottenute le misure riportate in tabella b. Ottimizzare l hardware: il gruppo di specialisti sostiene di poter migliorare il progetto del processore in modo da ottenere una macchina Mopt con frequenza 600 MHz. Utilizzando un simulatore si ottengono le misure riportate in tabella.

4 Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6 (continua): Classe Mbase: CPI Freq. Mbase Mopt: CPI Freq. Mopt A 2 40% 2 40% B 3 25% 2 25% C 3 25% 3 25% D 5 10% 4 10% 1. Qual è il CPI di ciascuna macchina? CPI Mbase = = 2.8 CPI Mopt = = 2.45 Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6 (continua): Classe Mbase: CPI Freq. Mbase Mopt: CPI Freq. Mopt A 2 40% 2 40% B 3 25% 2 25% C 3 25% 3 25% D 5 10% 4 10% 2. Quali sono i valori dei MIPS nativi di ciascuna macchina? MIPS X = IC / (Exe_Time X 10 6 ) = (IC F X ) / (CPI IC 10 6 ) = F X / (CPI 10 6 ) MIPS Mbase = / = MIPS Mopt = / = 244.9

5 Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6 (continua): Classe Mbase: CPI Freq. Mbase Mopt: CPI Freq. Mopt A 2 40% 2 40% B 3 25% 2 25% C 3 25% 3 25% D 5 10% 4 10% 3. Di quanto Mopt è più veloce di Mbase? Speedup = Perf Mopt / Perf Mbase = Exe_Time Mbase / Exe_Time Mopt = = (2.8 IC)/( ) ( )/ (2.45 IC) = 1.37 Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6 (continua): il gruppo che si occupa del compilatore viene a conoscenza della discussione per migliorare la macchina e propone di migliorare il calcolatore per aumentarne ulteriormente le prestazioni. La combinazione Mbase + nuovo compilatore viene chiamata Mcomp. Per quanto riguarda le istruzioni, il miglioramento viene stimato come segue: Classe Percentuale istruzioni eseguite rispetto alla macchina Mbase A 90% B 90% C 85% D 95% 4. Qual è il CPI di Mcomp? CPI Mcomp = ( ) / ( ) = / = 2.81

6 Valutazione Prestazioni : Esercizio 6 (CPU) Esercizio 6 (continua): il gruppo che si occupa del compilatore viene a conoscenza della discussione per migliorare la macchina e propone di migliorare il calcolatore per aumentarne ulteriormente le prestazioni. La combinazione Mbase + nuovo compilatore viene chiamata Mcomp. Per quanto riguarda le istruzioni, il miglioramento viene stimato come segue: Classe Percentuale istruzioni eseguite rispetto alla macchina Mbase A 90% B 90% C 85% D 95% 4. Di quanto Mcomp è più veloce di Mbase? Speedup = Perf Mcomp / Perf Mbase = Exe_Time Mbase /Exe_Time Mcomp = = (2.8 IC) / ( ) ( ) / ( IC) = 2.8 / ( ) = Valutazione Prestazioni : Esercizio 7 (CPU) Esercizio 7: Sia M una macchina con frequenza di clock 400 Mhz. Per un insieme di benchmark viene osservata la distribuzione riportata in tabella. Viene proposta una macchina M* dove si aumenta la frequenza di clock fino ad ottenere un miglioramento della performance di (2.5%), modificando però i CPI come riportato in tabella. Classe M: CPI distrib. M*: CPI A 2 50% 4 B 3 30% 4 C 5 15% 5 D 7 5% 5 1. Qual è la frequenza di M*? 2. Con quale frequenza di M* si ottiene esattamente la stessa performance?

7 Valutazione Prestazioni : Esercizio 7 (CPU) Soluzione esercizio 7: 1. Speedup = Perf M* / Perf M = Exe_Time M / Exe_Time M* = = (IC M CPI M / F M ) (F M* / IC M* CPI M* ) = 102.5/100 Poichè IC M = IC M* si ha: Speedup = ( CPI M F M* ) / (F M CPI M* ) = 102.5/100 Ma: CPI M = = 3 CPI M* = = 4.2 Quindi: Speedup = 3 F M* / ( ) = 102.5/100 F M* = / = Prestazioni uguali si hanno quando Speedup = 1 Speedup = 3 F M* / ( ) = 1 F M* = / 3 = CPU + Memoria Ora cerchiamo di essere più realisti e vediamo cosa succede alle prestazioni considerando non solo la CPU ma anche la memoria

8 Hit & Miss Trasferimento di blocchi tra i livelli della gerarchia di memoria. Si usa la seguente terminologia: Hit (Successo) quando il blocco cercato a livello i è stato individuato Miss (Fallimento) quando il blocco cercato a livello i non è stato individuato Hit rate (%) percentuale di Hit rispetto ai tentativi fatti per accedere blocchi al livello i Miss rate (%) frequenza di Miss rispetto ai tentativi fatti per accedere blocchi al livello i Hit Time latenza di accesso di un blocco al livello i in caso di Hit Miss Penalty tempo necessario per copiare un blocco dal livello inferiore CPU + Memoria: Esercizio 1 Esercizio 1: Considerare una CPU su cui viene eseguito un programma P. Il CPI ideale è pari a 3, ma considerando i miss della cache si ottiene un CPI reale pari a 3.6. Sapendo inoltre che Miss penalty = 12 cicli e che Instruction miss rate = 4% determinare Data miss rate per il programma considerato, tenendo conto che la percentuale di load/store è del 40%. cicli tot. = CPI reale IC = CPI ideale IC + (IC perc. load/store Data miss rate Miss penalty) + (IC Instruction miss rate Miss penalty) cicli tot. = 3 IC + (IC 0.4 Data miss rate 12) + (IC ) = 3 IC + (IC 4.8 Data miss rate) + (IC 0.48) CPI reale = cicli tot. / IC = Data miss rate Data miss rate = / 4.8 = cioè 2.5%

9 Memoria Ora passiamo all organizzazione, dimensionamento, indirizzamento della memoria cache. Anche queste scelte influenzano le prestazioni complessive della macchina. Memoria: Esercizio 2 Esercizio 2: Considerare una cache 4-way associative in cui la parte dati è di 8KB e avente blocchi da 32B. L indirizzo fisico è di 16 bit. a. Determinare la suddivisione dell indirizzo fisico nei campi TAG, INDEX, OFFSET 1 Blocco = 32 B ==> OFFSET = log 2 32 = 5 bit Tot. blocchi =Cache size /Block size =8KB/32B = 2 13 /2 5 = 2 8 blocchi Poichè la cache è 4-way associative si hanno 2 8 /2 2 = 2 6 set Quindi INDEX = 6 bit e i rimanenti 5 bit sono per TAG

10 Memoria: Esercizio 2 (continua) Esercizio 2: Considerare una cache 4-way associative in cui la parte dati è di 8KB e avente blocchi da 32B. L indirizzo fisico è di 16 bit. b. Determinare se gli indirizzi 0xAFAF e 0xAFB0 sono inseriti nello stesso insieme della cache. TAG INDEX OFFSET 0xAFAF = = xAFB0 = = Quindi i contenuti dei due indirizzi si trovano nello stesso set c. Supponendo che il contenuto di 0xAFAF sia nella cache, cosa accade se tentiamo di leggere il contenuto di 0xAFB0? I due indirizzi hanno lo stesso TAG!! Quindi se il contenuto di 0xAFAF si trova nella cache, allora c è anche il contenuto di 0xAFB0. Memoria: Esercizio 2 (continua) Esercizio 2: Considerare una cache 4-way associative in cui la parte dati è di 8KB e avente blocchi da 32B. L indirizzo fisico è di 16 bit. d. Cosa succede invece per gli indirizzi 0xAFAF e 0xA7B0? TAG INDEX OFFSET 0xAFAF = = xA7B0 = = Anche in questo caso, i contenuti dei due indirizzi si trovano nello stesso set. Ma ora i due indirizzi hanno TAG diverso!! Quindi, se il contenuto di 0xAFAF si trova nella cache, non è detto che ci sia anche il contenuto di 0xAFB0.

11 Memoria: Esercizio 2 (continua) Esercizio 2: Considerare una cache 4-way associative in cui la parte dati è di 8KB e avente blocchi da 32B. L indirizzo fisico è di 16 bit. d. Cosa succede invece per gli indirizzi 0xAFAF e 0xA7B0? TAG INDEX OFFSET 0xAFAF = = xA7B0 = = e. E... se la cache fosse 2-way associative? Tot. blocchi = 2 8 & cache 2-way associative ==> 2 8 / 2 = 2 7 Cioè INDEX = 7 bit...e i due indirizzi considerati sono su set diversi! TAG INDEX OFFSET 0xAFAF = = xA7B0 = = Memoria: Esercizio 2 (continua) Esercizio 2: Considerare una cache 4-way associative in cui la parte dati è di 8KB e avente blocchi da 32B. L indirizzo fisico è di 16 bit. f. Cosa succede dei campi TAG, INDEX e OFFSET se invece la cache è completamente associativa?? 1 Blocco = 32 B ==> OFFSET = log 2 32 = 5 bit Tot. blocchi =Cache size/block size =8KB/32B = 2 13 /2 5 = 2 8 blocchi Poichè la cache è completamente associativa c è un unico set con 2 8 blocchi. Allora INDEX = 0 bit e TAG = 16-5 = 11 bit

12 Memoria Memoria cache: qualcosa sui conflitti... Memoria: Esercizio 3 Esercizio 3: Si consideri una cache 1-way associative (diretta) indirizzabile, rispetto a indirizzi fisici di 16 bit, mediante 4 bit OFFSET, 4 bit INDEX e 8 bit TAG. Si consideri inoltre la seguente sequenza di indirizzi di memoria fisica, ognuno dei quali corrisponde ad un accesso in lettura: 1. 0x7F5A 2. 0x3CC7 3. 0x7F5B 4. 0x10C2 5. 0x8F50 Si supponga che ogni blocco della cache sia inizialmente NON VALIDO. a. Quali saranno i blocchi VALIDI alla fine della sequenza di lettura? Rispetto agli indirizzi della sequenza, i blocchi interessati sono quelli con INDEX = 5 (cioè il sesto blocco) e INDEX = C (cioè il tredicesimo blocco). Questi saranno quindi gli unici blocchi VALIDI

13 Memoria: Esercizio 3 (continua) Esercizio 3: Si consideri una cache 1-way associative (diretta) indirizzabile, rispetto a indirizzi fisici di 16 bit, mediante 4 bit OFFSET, 4 bit INDEX e 8 bit TAG. Si consideri inoltre la seguente sequenza di indirizzi di memoria fisica, ognuno dei quali corrisponde ad un accesso in lettura: 1. 0x7F5A 2. 0x3CC7 3. 0x7F5B 4. 0x10C2 5. 0x8F50 b. Si verificano conflitti durante la sequenza di lettura? Se si, quali? " Gli accessi in memoria 1 e 3 fanno riferimento allo stesso blocco della cache, ma non si verifica conflitto. " L accesso in memoria 4 è in conflitto con il 2: il 4 rimuoverà dalla cache il blocco corrispondente al 2. " L accesso in memoria 5 è in conflitto con il 3 e 2: il 5 rimuoverà dalla cache il blocco corrispondente agli accessi 3 e 2. Memoria: Esercizio 3 (continua) Esercizio 3: Si consideri una cache 1-way associative (diretta) indirizzabile, rispetto a indirizzi fisici di 16 bit, mediante 4 bit OFFSET, 4 bit INDEX e 8 bit TAG. Si consideri inoltre la seguente sequenza di indirizzi di memoria fisica, ognuno dei quali corrisponde ad un accesso in lettura: 1. 0x7F5A 2. 0x3CC7 3. 0x7F5B 4. 0x10C2 5. 0x8F50 c. Come si presenta la cache (i blocchi VALIDI) alla fine della sequenza di lettura?

14 Memoria: Esercizio 3 (continua) Esercizio 3: Si consideri una cache 1-way associative (diretta) indirizzabile, rispetto a indirizzi fisici di 16 bit, mediante 4 bit OFFSET, 4 bit INDEX e 8 bit TAG. Si consideri inoltre la seguente sequenza di indirizzi di memoria fisica, ognuno dei quali corrisponde ad un accesso in lettura: 1. 0x7F5A 2. 0x3CC7 3. 0x7F5B 4. 0x10C2 5. 0x8F50 c. Se la cache è 2-way associative, si verificano conflitti durante la sequenza di lettura? Se si, quali?? Questa volta INDEX si riferisce ai set, e ogni set contiene due blocchi (In totale allora ci sono 32 blocchi). Non si verificano conflitti. Memoria: Esercizio 3 (continua) Esercizio 3: 1. 0x7F5A 2. 0x3CC7 3. 0x7F5B 4. 0x10C2 5. 0x8F50 La situazione dei blocchi validi alla fine della sequenza di lettura è:

15 Memoria Memoria virtuale: interazione con la memoria cache Memoria: Esercizio 4 Esercizio 4: Si consideri un sistema di memoria virtuale paginata, con pagine di 2KB e una cache (indirizzabile tramite l indirizzo fisico) con blocchi di dati di 16B. Considerare il seguente loop che accede ad un array di interi (memorizzati su 4B) for (i=0; i<2048; i++) if (a[i]%2) a[i]--; Si supponga inoltre che la porzione di memoria virtuale acceduta dal loop non sia inizialmente presente, nè in memoria fisica nè in cache. a. Che tipo di località sfrutta il loop? Spaziale, perchè elementi vicini vengono riferiti in sequenza; Temporale, quando la stessa locazione viene acceduta sia in lettura che in scrittura.

16 Memoria: Esercizio 4 (continua) Esercizio 4: Si consideri un sistema di memoria virtuale paginata, con pagine di 2KB e una cache (indirizzabile tramite l indirizzo fisico) con blocchi di dati di 16B. Considerare il seguente loop che accede ad un array di interi (memorizzati su 4B): for (i=0; i<2048; i++) if (a[i]%2) a[i]--; Si supponga inoltre che la porzione di memoria virtuale acceduta dal loop non sia inizialmente presente, nè in memoria fisica nè in cache. b. Rispetto all esecuzione del loop contare il numero di page fault, sia nel caso che l indirizzo virtuale &a[0] sia un multiplo della dimensione della pagina, sia nel caso che questo non sia vero locazioni di interi ==> B = 8KB per memorizzare l array. Se &a[0] è un multiplo della dimensione della pagina, si hanno in totale 8KB / 2KB = 4 page fault. Altrimenti si hanno 5 page fault. Memoria: Esercizio 4 (continua) Esercizio 4: Si consideri un sistema di memoria virtuale paginata, con pagine di 2KB e una cache (indirizzabile tramite l indirizzo fisico) con blocchi di dati di 16B. Considerare il seguente loop che accede ad un array di interi (memorizzati su 4B): for (i=0; i<2048; i++) if (a[i]%2) a[i]--; Si supponga inoltre che la porzione di memoria virtuale acceduta dal loop non sia inizialmente presente, nè in memoria fisica nè in cache. c. Rispetto all esecuzione del loop contare il numero di cache miss, sia nel caso in cui l indirizzo fisico corrispondente ad &a[0] sia un multiplo del blocco della cache, sia nel caso in cui questo non sia vero Se &a[0] è un multiplo della dimensione del blocco allora: 8KB / 16B = 2 13 B / 2 4 B = 2 9 = 512 cache miss Se invece &a[0] non è un multiplo della dimensione del blocco, si hanno 513 cache miss

17 Memoria: Esercizio 4 (continua) Esercizio 4: Si consideri un sistema di memoria virtuale paginata, con pagine di 2KB e una cache (indirizzabile tramite l indirizzo fisico) con blocchi di dati di 16B. Considerare il seguente loop che accede ad un array di interi (memorizzati su 4B): for (i=0; i<2048; i++) if (a[i]%2) a[i]--; Si supponga inoltre che la porzione di memoria virtuale acceduta dal loop non sia inizialmente presente, nè in memoria fisica nè in cache. d. Perchè non è stato necessario dare informazioni sul tipo di organizzazione della cache, o sulla politica di rimpiazzamento delle pagine della memoria virtuale? Perchè abbiamo considerato solo Compulsory Miss, che dipendono solo dalle dimensioni (dell array e delle memorie) e non dalle specifiche organizzazioni dei livelli di memoria Memoria Memoria principale: indirizzi virtuali e indirizzi fisici.

18 Memoria: Esercizio 5 Esercizio 5: Si consideri un sistema di memoria virtuale e page table di dimensione 8MB con valid e dirty bit. Ogni pagina è di 1024B e l indirizzo fisico è di 24 bit. Qual è la dimensione dell indirizzo virtuale? Ogni pagina è di 1024B = 2 10 B e quindi sono necessari 10 bit per indirizzare ciascun byte di ogni pagina (10 bit DISPLACEMENT) Quindi i 24 bit dell indirizzo fisico comprendono 10 bit di displacement e 14 bit per indirizzare le pagine Allora ogni ingresso della Page Table è composto dei 2 bit per valid e dirty, e 14 bit per indirizzare le pagine ==> 16 bit in totale (2B) Il numero totale di ingressi della Page Table è 8MB/2B=4MB=2 22 B e servono quindi 22 bit per indirizzarle. La dimensione dell indirizzo virtuale è quindi: 22bit + 10bit (displacement) = 32bit Memoria: Esercizio 6 Esercizio 6: Si consideri un sistema di memoria virtuale paginata, con pagine di 1KB e indirizzo virtuale di 32bit. Si consideri una TLB 2-way-associative di 512B, in cui ciascun elemento consiste di 4B suddivisi in 2 bit per valid e dirty, TAG e il corrispondente numero di pagina fisica. Derivare la dimensione dell indirizzo fisico. 1. Troviamo quanti bit sono necessari per il displacement di pagina: La pagina ha dimensione 1KB = 2 10 B e quindi servono 10 bit per il displacement di pagina. Quindi dei 32 bit dell indirizzo virtuale, 22 bit servono per indirizzare gli elementi della page table.

19 Memoria: Esercizio 6 (continua) Esercizio 6: Si consideri un sistema di memoria virtuale paginata, con pagine di 1KB e indirizzo virtuale di 32bit. Si consideri una TLB 2-way-associative di 512B, in cui ciascun elemento consiste di 4B suddivisi in 2 bit per valid e dirty, TAG e il corrispondente numero di pagina fisica. Derivare la dimensione dell indirizzo fisico. 1. Troviamo quanti bit sono necessari per il displacement di pagina: 2. Vediamo com è composto l indirizzo di TLB: tot. elementi TLB = 512B / 4B = 128 elementi tot. insiemi TLB = 128 / 2 = 64 (essendo la TLB 2-way associative) Quindi l indirizzo virtuale, letto come indirizzo di TLB, è così composto: Memoria: Esercizio 6 (continua) Esercizio 6: Si consideri un sistema di memoria virtuale paginata, con pagine di 1KB e indirizzo virtuale di 32bit. Si consideri una TLB 2-way-associative di 512B, in cui ciascun elemento consiste di 4B suddivisi in 2 bit per valid e dirty, TAG e il corrispondente numero di pagina fisica. Derivare la dimensione dell indirizzo fisico. 1. Troviamo quanti bit sono necessari per il displacement di pagina: 2. Vediamo com è composto l indirizzo di TLB: 3. Troviamo la dimensione dell indirizzo fisico: Ogni elemento della TLB è di 32 bit (come specificato) di cui 2 bit (valid, dirty) + 16 bit TAG + num.pag.fisica = 32 bit Quindi num.pag.fisica = 14 bit e dim. indirizzo fisico è di = 24 bit.

20 Memoria Page Table & TLB (Translation Lookaside Buffer) Dischi: misure di prestazioni tempo (o latenza) di accesso = costante + tempo di trasferimento tempo di trasferimento = dim. blocco / banda di trasferimento costante = seek + lat. rotazione + overhead del controller seek = tempo medio necessario per posizionare le testine sul cilindro opportuno lat. rotazione = tempo medio di attesa del settore opportuno = 0.5 t.rotazione = / RPM overhead del controller = ritardo dovuto al controller

21 Dischi: Esercizio 7 Esercizio 7: Si consideri un sistema con CPU a 400MHz e disco con frequenza di trasferimento di 16MB/s. Il processore si fa carico di gestire l I/O tra disco e memoria, impiegando 160 cicli di clock per trasferire blocchi di lunghezza fissa. Quando il disco è usato al massimo, il processore usa il 40% del tempo per la gestione dell I/O. Qual è la dimensione dei blocchi trasferiti da disco? tempo di trasferimento = dim. blocco / banda di trasferimento L inverso del tempo di trasferimento di un blocco misura quanti blocchi al secondo si possono trasferire (frequenza), ovvero il numero massimo di operazioni di I/O al secondo. Quindi: n. max I/O al sec. = banda di trasferimento / dim. blocco dim. blocco = banda di trasferimento / n. max I/O al sec. n.cicli al sec. per I/O = perc. I/O Freq. CPU = = n. max I/O al sec. = n.cicli al sec. per I/O /n.cicli cicli per accesso = / 160 = 10 6 Quindi dim.blocco = (16 MB/s ) / 10 6 = 16B Dischi: Esercizio 8 Esercizio 8: Si consideri un programma che legge blocchi di 2KB da disco, li elabora, e li riscrive su disco. Le tre fasi non hanno sovrapposizioni. Il processore è a 500MHz e la fase di elaborazione di ogni blocco costa 10 milioni di cicli. I parametri del disco sono: 6200 RPM, seek = 9 msec, banda di trasferimento = 10 MB/sec, overhead controller = 1.5 msec. a. Calcolare le prestazioni del sistema in termini di banda di elaborazione complessiva, cioè di blocchi letti+elaborati+scritti (les) al secondo. t_les (di un blocco) = 2 t.accesso + t.elab banda_les = 1 / t_les (numero di blocchi elaborati al secondo) t.elab = n.cicli impiegati / Frequenza = / = 20msec t.accesso = seek + lat.rotazione + overhead + t.trasferimento lat.rotazione = /RPM = /6200 = sec = 4.8 msec t.trasferimento=dim.blocco/banda trasf = 2KB /10 MB/sec=0.2msec t.accesso = 9msec + 4.8msec + 1.5msec + 0.2msec = 15.5 msec t_les_a = msec + 20msec = 51msec banda_les_a = 1 / ( ) = 19.6

22 Dischi: Esercizio 8 (continua) Esercizio 8: Si consideri un programma che legge blocchi di 2KB da disco, li elabora, e li riscrive su disco. Le tre fasi non hanno sovrapposizioni. Il processore è a 500MHz e la fase di elaborazione di ogni blocco costa 10 milioni di cicli. I parametri del disco sono: 6200 RPM, seek = 9 msec, banda di trasferimento = 10 MB/sec, overhead controller = 1.5 msec. b. Valutare, calcolando i relativi Speedup, se è meglio comprare un nuovo processore a 800MHz, oppure cercare di ottimizzare il tempo medio di seek fino a 4.5 msec. t_les (di un blocco) = 2 t.accesso + t.elab t.elab = n.cicli impiegati / Frequenza = / = 12.5msec t_les_b1 = msec msec = 43.5msec banda_les_b1 = 1 / ( ) = 23 Speedup = banda_les_b1 / banda_les_a = 23 / 19.6 = 1.17 t.accesso = 4.5msec + 4.8msec + 1.5msec + 0.2msec = 11 msec t_les_b2 = 2 11msec + 20msec = 42msec banda_les_b2 = 1 / ( ) = 23.8 Speedup = banda_les_b2 / banda_les_a = 23.8 / 19.6 = 1.21 Meglio migliorare il tempo di seek

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Memoria Virtuale e I/O

Memoria Virtuale e I/O Memoria Virtuale e I/O Paolo Baldan [email protected] Introduzione CPU - progettazione - prestazioni ideali Le prestazioni reali sono influenzate (pesantemente) da memoria e I/O. Memoria - gerarchie

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

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

Dischi: Esercizio 1. Ora t.elab = n.cicli impiegati / Frequenza = / ( ) = 20ms Esercitazioni I/O Dischi: Esercizio 1 Si consideri un programma che legge blocchi di 2 KB da disco, esegue un elaborazione su questi, e quindi li riscrive su disco. Le tre fasi non hanno sovrapposizioni.

Dettagli

SOLUZIONI: Memoria virtuale

SOLUZIONI: Memoria virtuale SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi

Dettagli

Von Neumann Bottleneck

Von Neumann Bottleneck Von Neumann Bottleneck Gerarchia di memoria Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo

Dettagli

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

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Criteri di caratterizzazione di una memoria

Criteri di caratterizzazione di una memoria La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI ESERCIZIO 1 (10 Punti) Si implementi una rete sequenziale la cui uscita valga Z=1 solo quando viene riconosciuta la sequenza in ingresso

Dettagli

PRESTAZIONI. senza e con memoria cache

PRESTAZIONI. senza e con memoria cache PRESTAZIONI del processore MIPS pipeline senza e con memoria cache Prestazioni del processore GENERICO (P&H pp 29 31) Definizioni dei parametri di prestazione fondamentali del processore: sia P una prova,

Dettagli

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

Esercizi svolti sulle cache - Soluzioni

Esercizi svolti sulle cache - Soluzioni Esercizi svolti sulle cache - Soluzioni 1. Si progetti una cache di 16K a 8 vie per un sistema con indirizzamento al byte di 32bit, bus dati a 32 bit, bus indirizzi a 30bit, e word di 4 byte. In quale

Dettagli

Cache: 1 livello della gerarchia di memoria

Cache: 1 livello della gerarchia di memoria Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere

Dettagli

Architettura degli Elaboratori (modulo II e B) (Compito 24 Giugno 2009)

Architettura degli Elaboratori (modulo II e B) (Compito 24 Giugno 2009) Architettura degli Elaboratori (modulo II e B) (Compito 24 Giugno 2009) Usare un foglio separato per rispondere a due delle domande seguenti, specificando nell intestazione: Titolo del corso (Architettura

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: [email protected] Cristina Silvano pag 1 Valutazione delle prestazioni

Dettagli

Soluzione Esercizio 1

Soluzione Esercizio 1 Esercizio 1 Si consideri una notazione binaria in virgola mobile a 16 bit, detta ALFA, di cui (nell ordine da sinistra a destra) si usa 1 bit per il segno (0=positivo), 6 bit per l esponente, che è rappresentato

Dettagli

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

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi G L O S S A R I O BIT: acronimo di Binary Digit. E l unità elementare di informazione. Può assumere solo il valore 0 o 1. CALCOLATORE: macchina che opera la trasformazione dei dati (informazioni) HARDWARE:

Dettagli

Calcolo prestazioni cache (1)

Calcolo prestazioni cache (1) Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1

Dettagli

MEMORIA GERARCHIE DI MEMORIA

MEMORIA GERARCHIE DI MEMORIA MEMORIA GERARCHIE DI MEMORIA La memoria è divisa in più livelli che sono dal più vicino al più distante al CPU, per tempi di accesso: memoria cache, SRAM, capienza (MB), più veloce (decimi di ns), costosa

Dettagli

Simuliamo ora il funzionamento di LRU sulla reference string data:

Simuliamo ora il funzionamento di LRU sulla reference string data: 1. Un computer ha quattro frame, i cui istanti di caricamento, di ultimo riferimento e i reference bit sono riportati nella seguente tabella: Frame Caric. Rifer. R 2 135 287 1 1 240 250 1 0 169 253 0 3

Dettagli

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2 Esercizio FAT 1 In un disco con blocchi di 1 Kbyte (= 2 10 byte), è definito un file system FAT. Gli elementi della FAT sono in corrispondenza biunivoca con i blocchi fisici del disco. Ogni elemento ha

Dettagli

Struttura delle cache a indirizzamento diretto

Struttura delle cache a indirizzamento diretto Struttura delle cache a indirizzamento diretto Ogni posizione della cache include: Valid bit che indica se questa posizione contiene o meno dati validi. 0: posizione di cache non ancora utilizzata 1: posizione

Dettagli

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

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a) Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 2006 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 28 Settembre 26 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (8 punti)

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: [email protected] Cristina Silvano pag 1 Valutazione delle prestazioni

Dettagli

La gerarchia di Memoria

La gerarchia di Memoria La gerarchia di Memoria Metodologie di progettazione Hw-Sw- LS. Ing. Informatica Gap delle prestazioni DRAM - CPU 000 CPU 00 0 DRAM 980 98 982 983 984 985 986 987 988 989 990 99 992 993 994 995 996 997

Dettagli

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

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1 Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Lezione 22 La Memoria Interna (1)

Lezione 22 La Memoria Interna (1) Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Dettagli

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis

Sommario. Indirizzamento della memoria cache. Indirizzamento della memoria cache. Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Sommario Memoria

Dettagli

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Trend tecnologico: Capacità della Memoria Capacità chip DRAM DRAM Year Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 1 Gb Incremento

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

ISA Input / Output (I/O) Data register Controller

ISA Input / Output (I/O) Data register Controller ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),

Dettagli

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica L hard disk Introduzione alla memoria virtuale Scendiamo di un altro livello CPU Banco Cache Memoria principale Memoria secondaria Dimensioni < 1KB < 1 MB

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Dettagli