Calcolatori Elettronici A a.a. 2008/2009

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

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

Blocchi di più parole

PRESTAZIONI. senza e con memoria cache

Gerarchia di Memorie

Esercitazione su Gerarchie di Memoria

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

Calcolatori Elettronici

Gli attori principali di un architettura

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Esercitazione su Gerarchie di Memoria

Introduzione alle gerarchie di memoria

MEMORIA GERARCHIE DI MEMORIA

Architettura degli elaboratori Tema d esame del 20/01/2016

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

Prestazioni & Co: CPU, Memoria, I/O

Architettura degli elaboratori - 2 -

Esercizi svolti sulle cache - Soluzioni

La memoria cache. Lab di Calcolatori

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici

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

La gerarchia delle memorie. Sommario

Calcolo prestazioni cache (1)

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello:

Esercitazione su Instruction Level Parallelism

PROVA SCRITTA DEL MODULO/CORSO DI. 24 novembre 2016

Cache: 1 livello della gerarchia di memoria

SOLUZIONI: Memoria virtuale

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Struttura delle memorie cache

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

Gerarchie di Memoria Andrea Gasparetto

Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria

Calcolatori Elettronici B a.a. 2008/2009

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

La Memoria Cache. Informatica B. Daniele Loiacono

Gerarchia di memoria

La gerarchia di Memoria

static dynamic random access memory

Gerarchie di Memoria

Memorie Caratteristiche principali

SIMULAZIONE DELLA PRIMA PROVA INTERMEDIA DEL MODULO DI. CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA 21 Aprile 2015

Calcolatori Elettronici A a.a. 2008/2009

La memoria. I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria

Valutazione delle prestazioni

CALCOLATORI ELETTRONICI 29 giugno 2010

Il Sottosistema di Memoria

Esame di Architetture Canale MZ Prof. Sterbini 8/6/15

Strutture di Memoria 1

IL PROBLEMA DELLA MEMORIA

Valutazione delle prestazioni

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

Il processore: unità di elaborazione

Calcolatori Elettronici B a.a. 2004/2005

Memoria Cache. La memoria cache

La tecnologia delle memorie

Lezione n.14. La memoria cache

Capitolo 11 La memoria cache

Simuliamo ora il funzionamento di LRU sulla reference string data:

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Le gerarchie di memoria: memoria cache

Architettura hardware

SOLUZIONI DELLA PRIMA PROVA INTERMEDIA DEL CORSO DI. NUOVO ORDINAMENTO DIDATTICO 19 Aprile 2007

(VHUFL]LVX0(025,$&$&+(

Memorie cache. Gerarchia di memoria Principi Mapping Politiche

Gerachie di Memorie. Matteo Dominoni a.a. 2002/2003. Gerarchie di Memoria A.A. 2002/2003 1

Architettura dei calcolatori

Livello logico digitale bus e memorie

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi Esercizi Gestione Memoria

Il Sottosistema di Memoria

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

Valutazione delle Prestazioni

La memoria - generalità

Memoria Cache. Calcolatori Elettronici a.a Omero Tuzzi CACHE 1

Gerarchia di memorie

Il processore Pentium

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining

CALCOLATORI ELETTRONICI 31 marzo 2015

Memorie Cache. Calcolatori Elettronici a.a

La gerarchia di memorie (2)

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Cache e gerarchia di memoria

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

Memoria cache, interrupt e DMA

La Gerarchia delle Memorie. Calcolatori Elettronici II

Migliorare le prestazioni di processori e memorie

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

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

Struttura gerarchica delle memorie

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Di seguito per ciascun tipo di BIOS sono riportate le combinazioni di beep. In particolare sono analizzati i seguenti BIOS:

CONCETTI GENERALI... 2 Il principio di località... 2 Gerarchia di memorie... 2 Principi generali di una gerarchia di memorie...

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Transcript:

Calcolatori Elettronici A a.a. 2008/2009 Memoria cache: Esercizi Massimiliano Giacomin 1

Esercizio: miss della cache e collocazione dei blocchi nella cache Sia data la seguente sequenza di indirizzi a cui si intende fare accesso, espressi come indirizzi di parola: 1, 4, 8, 5, 33, 66, 32, 56, 9, 11, 4, 43, 88, 6, 32 Sia data una cache con blocchi di 4 parole e una dimensione totale di 32 parole Determiniamo se ciascuno degli accessi è un hit o un miss assumendo che la cache sia inizialmente vuota, nei 3 casi seguenti: 1) cache a corrispondenza diretta 2) cache totalmente associativa, ipotizzando una sostituzione LRU 3) cache set-associativa a 2 vie, ipotizzando una sostituzione LRU Assumendo indirizzi a 16 bit, determiniamo anche il numero di bit riservati all etichetta (tag), al blocco (o insieme) e alla parola 2

Calcolo degli indirizzi di blocco Gli indirizzi a cui dobbiamo fare accesso sono espressi come indirizzi di parola Siccome, in ogni caso, dobbiamo caricare nella cache un blocco di 4 parole, trasformiamo gli indirizzi di parola in indirizzi di blocco Usiamo la seguente equazione indirizzo di blocco = indirizzo di parola indirizzo di parola = ampiezza di un blocco 4 E quindi troviamo le seguenti corrispondenze indirizzo di parola 1, 4, 8, 5, 33, 66, 32, 56, 9, 11, 4, 43, 88, 6, 32 indirizzo di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 3

Caso 1: cache a corrispondenza diretta Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 Blocco della cache 0, 1, 2, 1, 0, 0, 0, 6, 2, 2, 1, 2, 6, 1, 0 Cache 0 1 2 Un blocco della memoria può andare in un solo blocco della cache Indirizzo 3 4 5 6 7 blocco di 4 parole Etichetta Blocco Parola 11 3 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 blocco di 4 parole Memoria 4

Caso 1: cache a corrispondenza diretta Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 blocco della cache = (numero blocco memoria) modulo (numero blocchi in cache) Blocco 1 2 3 4 5 6 7 8 0 mem[0] mem[0] mem[0] mem[0] mem[8] mem[16] mem[8] mem[8] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem[2] mem[2] mem[2] mem[2] mem[2] mem[2] 3 4 5 6 mem[14] 7 miss miss miss hit miss miss miss miss 5

Caso 1: cache a corrispondenza diretta Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 blocco della cache = (numero blocco memoria) modulo (numero blocchi in cache) Blocco 9 10 11 12 13 14 15 0 mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem[2] mem[2] mem[2] mem[10] mem[10] mem[10] mem[2] 3 4 5 6 mem[14] mem[14] mem[14] mem[14] mem[22] mem[22] mem[22] 7 hit hit hit miss miss hit hit Risultato totale degli accessi alla cache = 9 miss e 6 hit 6

Caso 2: cache completamente associativa Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 Cache 0 1 Un blocco della memoria può andare in qualsiasi blocco della cache Indirizzo blocco di 4 parole Etichetta Parola 14 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Memoria 7

Caso 2: cache completamente associativa Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 Blocco 1 2 3 4 5 6 7 8 0 mem[0] mem[0] mem[0] mem[0] mem[0] mem[0] mem[0] mem[0] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem[2] mem[2] mem[2] mem[2] mem[2] mem[2] 3 mem[8] mem[8] mem[8] mem[8] 4 mem[16] mem[16] mem[16] 5 mem[14] 6 7 miss miss miss hit miss miss hit miss 8

Caso 2: cache completamente associativa Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 Blocco 9 10 11 12 13 14 15 0 mem[0] mem[0] mem[0] mem[0] mem[0] mem[0] mem[0] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem[2] mem[2] mem[2] mem[2] mem[2] mem[2] mem[2] 3 mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] 4 mem[16] mem[16] mem[16] mem[16] mem[16] mem[16] mem[16] 5 mem[14] mem[14] mem[14] mem[14] mem[14] mem[14] mem[14] 6 mem[10] mem[10] mem[10] mem[10] 7 mem[22] mem[22] mem[22] hit hit hit miss miss hit hit Risultato totale degli accessi alla cache = 8 miss e 7 hit 9

Caso 3: cache set-associativa a due vie Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 Indirizzi di insieme 0, 1, 2, 1, 0, 0, 0, 2, 2, 2, 1, 2, 2, 1, 0 Un blocco della memoria può andare in un blocco qualsiasi all interno dell insieme determinato a partire dal numero del blocco in memoria Insieme 0 Insieme 1 Insieme 2 Insieme 3 Indirizzo Cache Etichetta Insieme 12 2 2 Parola 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Memoria 10

Caso 3: cache set-associativa a due vie Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 insieme della cache = (numero blocco memoria) modulo (numero insiemi in cache) Insieme 1 2 3 4 5 6 7 8 0 mem[0] mem[0] mem[0] mem[0] mem[0] mem[16] mem[16] mem[16] mem[8] mem[8] mem[8] mem[8] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem[2] mem[2] mem[2] mem[2] mem[2] mem[2] mem[14] 3 miss miss miss hit miss miss hit miss 11

Caso 3: cache set-associativa a due vie Indirizzi di blocco 0, 1, 2, 1, 8, 16, 8, 14, 2, 2, 1, 10, 22, 1, 8 insieme della cache = (numero blocco memoria) modulo (numero insiemi in cache) Insieme 9 10 11 12 13 14 15 0 mem[16] mem[16] mem[16] mem[16] mem[16] mem[16] mem[16] mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] mem[8] 1 mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] mem[1] 2 mem [2] mem[2] mem[2] mem[2] m em[22] mem[22] mem[2] mem[14] mem[14] mem[14] mem[10] mem[10] mem[10] mem[10] 3 hit hit hit miss miss hit hit Risultato totale degli accessi alla cache = 8 miss e 7 hit 12

Esercizio 2 Sia data una cache con: - 4K blocchi - ogni blocco ha 4 parole - indirizzi di 32 bit Trovare il numero totale di bit per i tag nel caso di: - cache a corrispondenza diretta - cache set associativa a 4 vie - cache completamente associativa 13

Esercizio 2 Sia data una cache con: - 4K blocchi - ogni blocco ha 4 parole - indirizzi di 32 bit Corrispondenza diretta: 4K = 2 12 blocchi TAG 12 bit 4 bit 32-16 = 16 16 bit 16 bit * 2 12 = 16*4 kbit = 64 kbit 14

Esercizio 2 Sia data una cache con: - 4K blocchi - ogni blocco ha 4 parole - indirizzi di 32 bit Set associativa a 4 vie: 4K = 2 12 blocchi 2 12 /4 = 2 10 insiemi TAG 10 bit 4 bit 32-14 = 18 14 bit 18 bit * 2 12 = 18*4 kbit = 72 kbit 15

Esercizio 2 Sia data una cache con: - 4K blocchi - ogni blocco ha 4 parole - indirizzi di 32 bit Completamente associativa: 4K = 2 12 blocchi TAG 4 bit 32-4 = 28 28 bit * 2 12 = 28*4 kbit = 112 kbit 16

Esercizio 3 Si consideri una CPU che esegue tutte le istruzioni in 2 cicli di clock. Si assuma il seguente carico di lavoro: - Tipo-R 50 % - lw 20 % - sw 16 % - salti 14 % Si dispone di una cache con le seguenti caratteristiche: - f miss per le istruzioni: 2% - f miss per accesso ai dati: 4% - P miss = 100 cicli di clock Confrontare le prestazioni tra il caso reale ed il caso di cache ideale senza miss 17

Caso reale CPI = 2 + 0.02*100+ 0.36*0.04*100 = 2 + 2 + 1.44 = 5.44 Caso ideale CPI = 2 Dato che nei due casi T clock non cambia, nel caso ideale il processore sarebbe 5.44/2 = 2.72 volte più veloce 18

Esercizio 3 (continua) Si consideri una CPU che esegue tutte le istruzioni in 2 cicli di clock. Si assuma il seguente carico di lavoro: - Tipo-R 50 % - lw 20 % - sw 16 % - salti 14 % Si dispone di una cache con le seguenti caratteristiche: - f miss per le istruzioni: 2% - f miss per accesso ai dati: 4% - P miss = 100 cicli di clock Si supponga raddoppiare la frequenza del processore: quale miglioramento in termini di prestazione si ottiene? 19

Nel caso precedente: T es = I * 5.44 * T clock Raddoppiando la frequenza: P miss uguale in termini di tempo raddoppia in termini di cicli CPI = 2 + 0.02*200+ 0.36*0.04*200 = 2 + 4 + 2.88 = 8.88 T es = I * 8,88 * T clock 5.44*2 8.88 = 1.23 volte più veloce 20

Commento Quanto più il processore è veloce (T clock o CPI bassi) tanto maggiore è l importanza della cache 21

Esercizio 4 Si consideri un processore con CPI=1 e frequenza di 5GHz. Si dispone di una cache primaria con f miss = 2% e di una memoria DRAM con un tempo di accesso di 100ns. Determinare quale sarebbe l incremento di prestazioni aggiungendo una cache secondaria con un tempo di accesso di 5ns e f miss = 25% 22

Esercizio 4 Si consideri un processore con CPI=1 e frequenza di 5GHz. Si dispone di una cache primaria con f miss = 2% e di una memoria DRAM con un tempo di accesso di 100ns. Determinare quale sarebbe l incremento di prestazioni aggiungendo una cache secondaria con un tempo di accesso di 5ns e f miss = 25% Solo cache L1 T clock = 1/5*10 9 ns = 0.2 ns P miss = 100/0.2 = 500 cicli di clock CPI = 1+0.02*500 = 11 23

Esercizio 4 Si consideri un processore con CPI=1 e frequenza di 5GHz. Si dispone di una cache primaria con f miss = 2% e di una memoria DRAM con un tempo di accesso di 100ns. Determinare quale sarebbe l incremento di prestazioni aggiungendo una cache secondaria con un tempo di accesso di 5ns e f miss = 25% Solo cache L1 T clock = 1/5*10 9 ns = 0.2 ns P miss = 100/0.2 = 500 cicli di clock CPI = 1+0.02*500 = 11 Cache L1 + L2 Miss in cache primaria, hit in secondaria: 5/0.2=25 cicli CPI = 1+0.02*(0.75*25 + 0.25*525) = 4 24

Esercizio 4 Si consideri un processore con CPI=1 e frequenza di 5GHz. Si dispone di una cache primaria con f miss = 2% e di una memoria DRAM con un tempo di accesso di 100ns. Determinare quale sarebbe l incremento di prestazioni aggiungendo una cache secondaria con un tempo di accesso di 5ns e f miss = 25% Solo cache L1 T clock = 1/5*10 9 ns = 0.2 ns P miss = 100/0.2 = 500 cicli di clock CPI = 1+0.02*500 = 11 11/4=2.8 volte più veloce Cache L1 + L2 Miss in cache primaria, hit in secondaria: 5/0.2=25 cicli CPI = 1+0.02*(0.75*25 + 0.25*525) = 4 25

NB: si noti che nonostante il local miss rate della cache L2 sia del 25%, il global miss rate risultante è 2%*25%= 0.5% 26