Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico"

Transcript

1 Architettura degli Elaboratori e Laboratorio Matteo Manzali Università degli Studi di Ferrara Anno Accademico

2 Register File Tipicamente tutte le istruzioni di un ISA (eccetto quelle di tipo lw e sw) operano su dati presenti in un Register File: tempo di accesso comparabile con quello richiesto dalla ALU hardware costoso ed ingombrante i RF hanno solitamente dimensioni molto ridotte (in MIPS abbiamo 32 registri) Esistono tecnologie alternative che permettono di avere densità maggiori di bit: costi (molto) inferiori prestazioni (molto) inferiori 2

3 Memoria principale Dalla lezione sulle memorie Memoria principale (RAM - Random Access Memory): meno veloce della memoria dei registri, ma molto più capiente è detta RAM perché i tempi di accesso sono indipendenti dal valore dell indirizzo della cella di memoria acceduta è composta da più livelli (gerarchie di memoria) è un tipo di memoria volatile (perde i dati se non alimentata) 3

4 Gerarchia di memoria La DRAM (Dynamic RAM) è più capiente ma più lenta: tempi di accesso intorno al centinaio di nanosecondi Dalla lezione sulle memorie ogni bit è memorizzato tramite un condensatore (memoria più densa della SRAM) i condensatori perdono la loro carica: è necessario rinfrescare il contenuto delle DRAM a intervalli di tempo prefissati (~1ms) è usata per realizzare memorie capienti e di accesso meno frequente (come la memoria principale) memoria volatile (perde i dati se non alimentata) 4

5 Il problema delle memorie I computer di oggi dipendono da sistemi di storage grandi e veloci: sono necessarie grandi capacità di storage per molte applicazioni di database, calcoli scientifici con grandi set di dati, video, musica etc. La velocità è importante per sfruttare al meglio le CPU con pipeline: possono accedere sia a istruzioni che a dati nello stesso ciclo di clock le cose diventano ancora peggiori se si utilizzano CPU superscalari 5

6 Il problema delle memorie Fino ad ora abbiamo supposto che: la memoria possa stare al passo con la CPU la CPU possa accedere due volte alla memoria in un singolo ciclo di clock (IF + MEM) Questa è una enorme semplificazione, nelle prossime lezioni vedremo quanto questo aspetto sia critico per le prestazioni dei moderni calcolatori. 6

7 Piccole o lente? Purtroppo si è obbligati a scegliere un compromesso tra velocità, costo e capacità. Le memorie statiche sono troppo costose per la maggior parte delle persone. Le memorie dinamiche hanno un tempo di accesso così alto rispetto alle altre unità funzionali del datapath che si sarebbe costretti ad inserire moltissimi stalli (o ad aumentare la durata del ciclo di clock). 7

8 Cache: introduzione E necessario trovare un equilibrio tra memorie veloci ed economiche. Questo viene fatto introducente una cache, che è una piccola memoria molto veloce: si posiziona tra il processore e la memoria principale dinamica tiene una copia dei dati utilizzati più di frequente dal processore L accesso generale alla memoria aumenta perchè viene migliorato il caso più frequente: l accesso a dati utilizzati di frequente è più veloce (cache) l accesso a dati poco usati rimane lento (memoria principale) 8

9 Il principio di località E difficile se non impossibile sapere, prima che un programma inizi, quali dati saranno acceduti più di frequente: questo rende difficile sapere cosa inserire nella cache I programmi tendono a seguire i principi di località: il principio di località temporale dice che se un programma accede ad un indirizzo di memoria è molto probabile che ci accederà nuovamente il principio di località spaziale dice che se un programma accede ad un indirizzo di memoria è molto probabile che accederà anche ad indirizzi vicini La cache sfrutta questi principi per migliorare i tempi di esecuzione dei programmi. 9

10 Località temporale I cicli sono un eccellente esempio di località temporale nei programmi: verosimilmente le istruzioni contenute nel ciclo verranno eseguite diverse volte il processore dovrà accedere più volte agli stessi indirizzi delle istruzioni in memoria Considerate questo pezzo di codice: Ogni istruzione verrà letta dalla memoria ad ogni ciclo 10

11 Località temporale Come per le istruzioni, anche i dati vengono spesso acceduti più volte durante l esecuzione di un programma. In questo esempio sum e i vengono lette e scritte continuamente: Variabili accedute molto di frequente possono essere tenute nei registri, ma questo non è sempre possibile: la quantità di registri è limitata ci sono casi in cui il dato deve rimanere in memoria (sharedmemory o allocazione dinamica) 11

12 Località spaziale Il principio di località spaziale dice che se un programma accede ad un indirizzo di memoria è molto probabile che accederà anche ad indirizzi vicini. Provate a pensare all utilizzo dello stack: Tutti i programmi seguono questo principio: le istruzioni sono contigue in memoria anche i dati spesso lo sono 12

13 Località spaziale nei dati I programmi spesso accedono a dati che sono contigui in memoria: gli elementi di un array vengono salvati in memoria in indirizzi contigui i diversi campi di un tipo di dati complesso (struttura) sono anch'essi salvati in memoria in indirizzi contigui struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } book; 13

14 Cache e località temporale La prima volta che il processore legge un indirizzo nella memoria principale, una copia di quel dato viene anche salvato nella cache: la prossima volta che lo stesso indirizzo viene letto, è possibile leggere il dato nella cache invece che accedere alla più lenta memoria dinamica quindi la prima lettura è più lenta di prima, in quanto si accede sia alla memoria principale che alla cache, ma le successive saranno molto più veloci Questo approccio sfrutta la località temporale: dati acceduti più di frequente sono salvati nella cache 14

15 Cache e località spaziale Quando un processore legge un dato i nella memoria principale, una copia di quel dato viene scritto in cache. Ma invece che copiare solo i, possiamo copiare in cache più valori con un unica operazione, ad esempio i bytes da i a i+3: se il processore deve accedere a quei dati potrà farlo nella cache invece che dalla memoria principale quindi invece di leggere un solo elemento di un array dalla memoria principale, la cache può caricarne un gruppo di 4 Anche in questo caso il caricamento iniziale sarà più costoso, ma stiamo facendo una scommessa sulla località spaziale. 15

16 Cache e località spaziale Quando un processore legge un dato i nella memoria principale, una copia di quel dato viene scritto in cache. Ma invece che copiare solo i, possiamo copiare in cache più valori con un unica operazione, ad esempio i bytes da i a i+3: se il processore deve accedere a quei dati potrà farlo nella cache invece che dalla memoria principale quindi invece di leggere un solo elemento di un array dalla memoria principale, la cache può caricarne un gruppo di 4 Anche in questo caso il caricamento iniziale sarà più costoso, ma stiamo facendo una scommessa sulla località spaziale. 16

17 Cache: hits e misses Una cache hit avviene quando la cache contiene il dato che stiamo cercando: questo ci permette di ottenere il dato molto più velocemente Una cache miss avviene quando la cache non contiene il dato che stiamo cercando: questo comporta un rallentamento perchè la CPU deve aspettare di accedere alla memoria principale 17

18 Cache: hits e misses Ci sono due modi di misurare le performance della cache: la hit rate è la percentuale di accessi in memoria gestiti dalla cache la miss rate (1 - hit rate) è la percentuale di accessi in memoria gestiti dalla memoria principale Tipicamente le cache hanno un hit rate del 95% o più, questo porta ad avere delle performance estremamente migliori rispetto ad una esecuzione senza cache. 18

19 Cache design La cache è divisa in blocchi di una data dimensione: solitamente il numero di blocchi è una potenza di 2 per il momento ipotizziamo che ogni blocco contenga 1 byte (in futuro vedremo dimensioni maggiori) Ecco un esempio di una cache con 8 blocchi, ciascuno da 1 byte: 19

20 4 domande importanti 1. Quando copiamo un blocco di dato dalla memoria principale nella cache, dove lo mettiamo esattamente? 2. Come possiamo dire che un dato è già in cache o se deve essere prima recuperato dalla memoria principale? 3. Prima o poi la cache si riempirà. Per caricare un nuovo dato in cache dobbiamo eliminarne uno vecchio: come decidiamo quale eliminare? 4. Come gestiamo le scritture in memoria? Le domande 1 e 2 sono collegate: dobbiamo sapere dove mettere un dato in cache se vogliamo poi recuperarlo 20

21 Dove mettere i dati? Una cache direct-mapped è l approccio più semplice: ogni indirizzo della memoria principale è associato ad uno ed un solo blocco della cache. Nell esempio abbiamo: memoria principale da 16 bytes cache da 4 bytes (1 byte per blocco) Come possiamo implementare la mappatura tra cache e memoria? 21

22 Divisione Un modo per individuare quale blocco è associato ad un particolare indirizzo di memoria è quello di usare l operatore modulo. Se la cache contiene 2 k blocchi, allora il dato all indirizzo di memoria i andrà in cache nel blocco con indice: i mod 2 k Nell esempio il dato letto all indirizzo 14 verrà inserito nel blocco 2: 14 mod 4 = 2 22

23 Bits meno significativi Un modo equivalente per individuare la posizione di un indirizzo della memoria in cache è quello di controllare i k bits meno significativi dell indirizzo. Con una cache a 4 (2 2 ) bytes ci basiamo sui 2 bits meno significativi dell indirizzo. All indirizzo 14, ovvero (1110)due, sarà associato il blocco 2, ovvero (10)due. Prendere i k bits meno significativi si un valore binario equivale a calcolare quel valore mod 2 k. 23

24 Come trovare i dati? Se vogliamo leggere dalla memoria l indirizzo i, possiamo utilizzare il trucco del modulo per determinare quale blocco dovrebbe contenere i. Ma altri indirizzi vengono mappati nello stesso blocco, come lo distinguiamo dagli altri? Ad esempio, il blocco 2 può contenere gli indirizzi 2, 6, 10 e

25 I tags Dobbiamo aggiungere dei tags alla cache, che forniscano i restanti bits dell indirizzo, in modo da distinguere l indirizzo del valore attualmente in cache dagli altri possibili indirizzi

26 I tags Ora possiamo dire esattamente quali indirizzi sono contenuti in cache, concatenando index e tag dei blocchi della cache. 26

27 Il bit di validità Inizialmente la cache sarà vuota e non conterrà dati validi. Dovremmo tenere in considerazione questo fatto aggiungendo un bit di validità per ogni blocco di cache: durante lo start del sistema, tutti i bits di validità sono messi a 0 appena un dato viene caricato su un blocco, il bit di validità di quel blocco sarà messo a 1 La cache quindi non contiene solo delle copie di dati in memoria, ma contiene anche bits fondamentali per la sua gestione. 27

28 Cache hit: comportamento Quando la CPU prova a leggere dalla memoria, l indirizzo viene inviato ad un cache controller: i k bits più bassi identificano il blocco se il blocco è valido e il tag coincide con i bit più alti dell indirizzo, allora il dato viene inviato alla CPU Ecco un esempio di un indirizzo a 32 bits e una cache di 1 KB: 2 10 bits 28

29 Cache miss: comportamento I ritardi che abbiamo ipotizzato per l accesso a memoria nel nostro datapath (2 ns) si riferiscono ad un accesso in cache: se la CPU accedesse alla memoria principale i ritardi sarebbero molto maggiori noi assumiamo invece che la gran parte degli accessi in memoria risultino in un cache hit Tuttavia possono avvenire dei cache miss, ciò comporta dei ritardi che vanno gestiti: l approccio giù semplice è quello di inserire degli stalli fino a quando il dato non viene letto dalla memoria e scritto nella cache 29

30 Caricamento in cache Dopo che il dato viene letto dalla memoria, caricarlo in cache è immediato: i k bits meno significativi dell indirizzo indicano l indice del blocco i m - k bits più significativi dell indirizzo vengono messi nel campo tag il dato letto in memoria viene messo nel campo data il bit di validità viene messo a 1 30

31 Sostituzione in cache Cosa succede se dobbiamo utilizzare un blocco della cache già utilizzato per contenere un dato da un differente indirizzo di memoria? Abbiamo risposto implicitamente a questa domanda nella slide precedente: un cache miss causa il caricamento di un nuovo dato nel blocco ad esso associato, sovrascrivendo un eventuale dato esistente questa politica è chiamata least recently used (LRU) ed assume che i dati più vecchi sia meno probabile che vengano richiesti Prossimamente vedremo anche altre politiche di sostituzione più sofisticate. 31

32 Dimensioni della cache Consideriamo un calcolatore con: indirizzamento a byte 16 bits di indirizzo cache direct-mapped cache con blocchi da 1 byte cache con indice di 4 bit Quanti blocchi contiene la cache? Quanti bit sono necessari per costruire la cache? 32

33 Dimensioni della cache Quanti blocchi contiene la cache? 4 bits di indice 2 4 blocchi 16 blocchi Quanti bits sono necessari per costruire la cache? 1 bit di validità 16-4 = 12 bits in ciascun tag 1 byte di dato 8 bits dimensione totale: 2 4 ( ) = = 336 bits righe bit di validità tag data 33

34 Diverse organizzazioni Nelle prossime slides vedremo cache con diverse organizzazioni rispetto a quella visto fino ad ora (direct-mapped): come possiamo sfruttare la località spaziale? come possiamo ridurre il numero di possibili conflitti (più indirizzi mappati su un singolo blocco? Prima di tutto analizziamo le performance della cache. 34

35 Fattori di performance Per esaminare le performance di una memoria dobbiamo concentrarci su alcuni fattori importanti: quanto tempo richiede la copia di un dato dalla cache alla CPU? quanto tempo richiede la copia di un dato dalla memoria principale alla cache? quanto spesso dobbiamo accedere alla memoria principale? Esistono definizioni per tutti questi fattori. 35

36 Fattori di performance Il tempo di hit (hit time) è il tempo richiesto perchè un dato venga copiato dalla cache alla CPU: è un operazione veloce, solitamente richiede da 1 a 3 cicli di clock La penalità di miss (miss penalty) è il tempo richiesto perchè un dato venga copiato dalla memoria principale alla cache: è un operazione più lenta, solitamente richiede decine (se non centinaia) di cicli di clock La miss rate (già vista all inizio della lezione) è la percentuale di cache miss. 36

37 Tempo medio di accesso Il tempo medio di accesso alla memoria (average memory access time, AMAT) può essere calcolato come: AMAT = hit time + (miss rate miss penalty) costo che va pagato ad ogni accesso Come possiamo migliorare questo tempo? ovviamente un tempo medio minore è desiderabile possiamo diminuire la miss penalty oppure la miss rate L AMAT non è un indice di performance dell intero programma ma solo degli accessi alla memoria il tempo di esecuzione rimane l indice di performance migliore 37

38 Esempio Assumiamo che il 33% delle istruzioni di un programma facciamo accessi in memoria per dati. La hit rate è 97% e l hit time è un solo ciclo di clock, ma la miss penalty è 20 cicli di clock. AMAT = 1 + ( ) = 1,6 cicli di clock La miss penalty è legata all hardware difficile migliorare! Come possiamo ridurre la miss rate? 38

39 Località spaziale Le cache con blocchi da 1 byte non traggono vantaggio dal principio di località spaziale. Possiamo aumentare la dimensione di ciascun blocco. Nell esempio vengono usati blocchi da 2 bytes: in questo modo è possibile caricare 2 bytes alla volta dalla memoria. Se leggiamo dall indirizzo 12, verranno caricati in cache sia il dato a quell indirizzo sia quello all indirizzo

40 Blocchi di indirizzi Se la cache ha 2 n blocchi, possiamo suddividere concettualmente anche la memoria principale in 2 n blocchi. Per determinare l indirizzo di blocco (block address) di un indirizzo i, si fa la divisione intera: i / 2 n Nell esempio ci sono blocchi da 2 bytes, possiamo quindi vedere la memoria di 16 bytes come una memoria a 8 blocchi. Ad esempio sia l indirizzo 12 che il 13 corrispondono al blocco 6. 40

41 Cache mapping Una volta calcolato il block address, è possibile mapparlo nella cache come visto in precedenza con il byte address (dividendolo per il numero di blocchi della cache e prendendo il resto). 41

42 Dove mettere i dati? Quando accediamo ad un dato in memoria, copieremo tutto il suo blocco in cache in modo da sfruttare la località spaziale. Nel nostro esempio, se un programma legge dall indirizzo 12, copieremo in cache l intero blocco di memoria 6 (indirizzi 12 e 13) nel blocco di cache 2: idem se il programma leggesse dall indirizzo 13 Il byte i del blocco di memoria (0 o 1 nell esempio) viene scritto nel byte i del blocco della cache. Block Address 6 42

43 Trovare il dato in cache Poniamo di avere una cache con 2 k blocchi, ciascuno contenente 2 n bytes. Possiamo determinare dove un dato è posizionato in cache basandoci sul suo indirizzo in memoria principale: k bits dell indirizzo selezionano uno dei 2 k blocchi della cache i n bits meno significativi sono ora l offset del blocco, che decide quale dei 2 n bytes del blocco della cache deve contenere il dato 43

44 Trovare il dato in cache 44

45 Per ciascuno di questi indirizzi, quale byte verrà letto dalla cache (o ci sarà un miss)? Esercizio 45

46 Ecco una cache direct-mapped con 1024 blocchi da 4 bytes ciascuno e indirizzi di memoria di 32 bits. Dove verrà salvato l indirizzo 6146? blocchi tag Esempio più realistico index block offset 46

47 Esempio più realistico 47

48 Il resto del blocco Il byte i del blocco di memoria viene scritto nel byte i del blocco della cache. In alternativa si possono anche guardare i bit meno significativi dell indirizzo per identificare l offset. 48

49 Svantaggi del direct mapping La cache direct-mapped è semplice: ogni indirizzo di memoria appartiene esattamente ad un solo blocco di cache. Ma cosa succede se, in questo esempio, il programma usa gli indirizzi 2, 6, 2, 6, 2, 6, 2,.? 49

50 Cache fully associative Una cache completamente associativa (fully associative) permette di salvare i dati in qualsiasi blocco della cache: quando un dato viene caricato dalla memoria può essere messo in qualsiasi blocco non utilizzato della cache in questo modo tra due o più indirizzi di memoria che fanno riferimento allo stesso singolo blocco della cache Se tutti i blocchi sono già in uso possiamo eliminare il meno recente, supponendo che se non è stato utilizzato da un periodo di tempo non sarà riutilizzato a breve. 50

51 Cache fully associative Tuttavia una cache fully associative è estremamente costosa da implementare: non essendoci un campo index, l intero indirizzo deve essere usato come tag, aumentando la dimensione della cache il dato può essere ovunque nella cache, quindi è necessario controllare il tag di ogni blocco (costoso in termini di hw) 51

52 Set associativity Un compromesso è rappresentato dalle cache set-associative: la cache è divisa in gruppi di blocchi, chiamati sets ogni indirizzo in memoria è mappato in un solo set della cache, ma il dato può essere messo in un blocco qualsiasi di quel set Se ogni set ha 2 x blocchi, a cache è chiamata 2 x -way associative (cache associativa a 2 x vie). Ecco alcune possibili organizzazioni di una cache a 8 blocchi: 8-way associativity = cache fully associative cache direct-mapped 52

53 Determinare il set Possiamo determinare a quale set appartiene un indirizzo in memoria in maniera simile a come fatto in precedenza. Se una cache ha 2 s sets ed ogni blocco ha 2 n bytes, l indirizzo di memoria può essere suddiviso come segue: Semplicemente calcoleremo il numero del set invece del numero del blocco: 53

54 Dove verrà messo il dato all indirizzo 6195, assumendo una cache a 8 blocchi con 16 bytes per blocco? 6195 in binario è : ogni blocco ha 16 bytes 4 bits di offset Per la 1-way cache, i 3 bits successivi (011) sono l index Per la 2-way cache, i 2 bits successivi (11) sono l index Per la 4-way cache, il bit successivo (1) è l index Il dato può andare in qualsiasi blocco, mostrato in verde, all interno del set corretto. Esempio con set 54

55 Sostituzione del blocco Qualsiasi blocco vuoto nel set corretto può essere usato per scrivere il dato. Se non ci sono blocchi vuoti il controller della cache deve sostituire quello usato meno di recente (LRU). Per le cache associative è molto costoso tenere traccia di questo tipo di informazione, quindi vengono usati algoritmi più approssimativi. Una scelta semplice ma sufficientemente efficiente è l approccio random: scelgo casualmente quale blocco sovrascrivere. 55

56 Implementazione 2-way Sono necessari solo due comparatori (gli AND), al contrario degli m-n richiesti dalla fully associative. Anche la dimensione dei tag è minore. 56

57 Ricapitolando Blocchi larghi sfruttano la località spaziale caricando in cache dati da più indirizzi contigui nella memoria principale. Le cache associative assegnano a ciascun indirizzo di memoria un particolare set della cache, ma non uno specifico blocco all interno di quel set: la dimensione di un set varia da 1 (direct-mapped) a 2 k (fully associative) set molto grandi (alta associatività) portano a meno conflitti e miss rates più basse, ma ad un costo hardware molto alto nella realtà vengono utilizzate cache da 2-way a 16-way per ottenere un buon compromesso tra costi e performance 57

58 Scrivere in cache La scrittura in cache comporta ulteriori problemi. Per prima cosa assumiamo che l indirizzo in cui vogliamo andare a scrivere sia già caricato in cache (utilizziamo una direct-mapped). Possiamo scrivere quel nuovo dato in cache, evitando un costoso accesso alla memoria principale. 58

59 Memoria inconsistente Ma ora la cache e la memoria principale contengono dati differenti! Come possiamo assicurare che successive letture ritornino il valore corretto? Il problema peggiora se diversi dispositivi condividono la memoria principale, come nel caso di sistemi multiprocessore. 59

60 Cache write-through Una cache write-through risolve il problema dell inconsistenza forzando tutte le scritture ad aggiornare sia la cache che la memoria principale. Questo è semplice da implementare e mantiene cache e memoria consistenti. E poco efficiente: ogni scrittura porta un accesso alla memoria, con le relative latenze. 60

61 Write buffer Una possibile ottimizzazione è l utilizzo di un buffer per le scritture (write buffer): il buffer mantiene i dati in attesa di essere scritti in memoria la CPU continua come se si fosse limitata ad un accesso alla cache si ha uno stallo in scrittura solo se il write buffer è già pieno 61

62 Cache write-back In una cache write-back la memoria non viene aggiornata fino a quando il blocco non deve essere sostituito. Ad esempio, possiamo scrivere dei dati nella cache, lasciando il dato inconsistente: il blocco viene segnato come sporco (dirty), per indicare l inconsistenza letture successive vengono gestite dalla cache, che contiene il dato aggiornato 62

63 Cache write-back Non abbiamo necessità di scrivere il valore aggiornato a meno che il blocco non debba essere sostituito. Ad esempio con una read da Mem[142], che mappa allo stesso blocco, le modifiche della cache verranno prima scritte in memoria. Solo dopo la scrittura il blocco potrà essere sostituito con i dati dell indirizzo

64 Considerazioni Ogni blocco ha bisogno di un dirty bit per indicare se deve o meno essere salvato in memoria prima di essere sostituito: altrimenti si avrebbero scritture non necessarie La penalità per l accesso alla memoria non viene applicata fino a quando il blocco non deve essere sovrascritto: in quel caso però verrà applicata una penalità doppia (scrittura del vecchio blocco e lettura del nuovo) posso utilizzare un write buffer come per la cache write-through 64

65 Considerazioni Il vantaggio delle cache write-back è che non tutte le scritture necessitano di accesso alla memoria: se uno stesso indirizzo viene scritto spesso, queste scritture verranno fatte in cache se diversi bytes dello stesso blocco vengono modificati, è necessario un solo accesso alla memoria per scriverli 65

66 Write misses Un ulteriore scenario è quello in cui proviamo a scrivere in un indirizzo che non è caricato in cache, questa situazione è chiamata write miss. Vogliamo scrivere dentro a Mem[ ] ma vediamo che l indirizzo non è presente in cache. Quando aggiorniamo in memoria Mem[ ], dobbiamo anche caricarlo in cache? 66

67 write-no-allocate Con la politica write-no-allocate l operazione di scrittura viene fatta direttamente nella memoria principale, senza passare per la cache. Questo è ottimo nel caso in cui il dato sia scritto ma non riutilizzato subito dopo, poiché non c è motivo di fare un aggiornamento in cache. 67

68 write-allocate La politica write-allocate invece prevede che il dato aggiornato sia caricato anche in cache. Se il dato è richiesto dopo la scrittura può essere trovato già in cache. 68

69 Dati e istruzioni Fino ad ora abbiamo gestito letture e scritture della memoria dati. Si può (e si deve) utilizzare la cache anche per la memoria istruzioni. E possibile suddividere staticamente la cache in due sezioni dedicate rispettivamente a dati e istruzioni: PRO: non ci sono criticità strutturali nelle fasi IF e MEM una cache unificata metterebbe in stallo anche le fetch durante le load e store CON: non si può variare la dimensione delle sezioni è problema se c è una forte disomogeneità tra la quantità di istruzioni e di dati 69

70 Gerarchia di cache Fino ad ora abbiamo considerato una sola cache tra la CPU e la memoria principale. Per ridurre miss rate e miss penalty si può usare una cache a più livelli. Il principio è simile a quello già visto: se un dato è disponibile nel livello di cache superiore lo si usa altrimenti si cerca nel livello inferiore Man mano che ci si allontana dalla CPU la cache diventa più capiente ma più lenta a rispondere. 70

71 Gerarchia di cache Più livelli di cache rappresentano un buon compromesso tra il tempo di accesso e la hit rate: le cache L1 offrono un accesso veloce le cache L2 offrono una buona hit rate Questa gerarchia è comunemente utilizzata nei moderni processori (negli ultimi anni sono state introdotte anche le L3). 71

72 Esempio: Intel i (Haswell) 8 blocchi per set L1 caches (data and instruction): 32 KB 64 byte blocks 8-way set associative 4 cycle access time L2 cache: 256 KB 64 byte blocks 8-way set associative 12 cycle access time frequency of 3.4 GHz clock period of ~ 0.3 ns RAM latency = 36 cycles + 57 ns 8 blocchi per set L3 cache: 8 MB 64 byte blocks direct mapped 36 cycle access time 72

73 Associatività e miss rate Come abbiamo visto, un alta associatività significa un costo hardware più grande. Ma comporta anche un calo delle miss rate: ogni set ha più blocchi meno possibilità di conflitti 73

74 Dimensione cache e miss rate Anche la dimensione della cache ha impatto sulle performance: più grande è la cache, più bassa è la possibilità di avere conflitti 74

75 Dimensione blocco e miss rate Anche la dimensione della blocco ha impatto sulle performance: più grande è il blocco, più viene sfruttata la località spaziale 75

76 Performance Quindi sembrerebbe facile implementare la cache perfetta: massimizzare la dimensione della cache massimizzare la dimensione del blocco massimizzare la dimensione del set Purtroppo più è grande la cache più è grande la latenza di accesso: è proprio per questo che è stata introdotta tra la CPU e la memoria Bisogna trovare il giusto equilibrio: es.: potrebbe essere meglio avere un miss rate leggermente più alto ma con latenza minori 76

Architettura dei sistemi di elaborazione: La memoria (parte 2)

Architettura dei sistemi di elaborazione: La memoria (parte 2) Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale

Dettagli

La gerarchia di Memoria

La gerarchia di Memoria La gerarchia di Memoria Gap delle prestazioni DRAM - CPU 1000 CPU 100 10 DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1 Località ed Organizzazione

Dettagli

La gerarchia di Memoria

La gerarchia di Memoria La gerarchia di Memoria Gap delle prestazioni DRAM - CPU 1000 CPU 100 10 DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Località ed Organizzazione

Dettagli

La memoria cache. Lab di Calcolatori

La memoria cache. Lab di Calcolatori La memoria cache 1 Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Cache Anno Accademico Francesco Tortorella La cache nella gerarchia di memoria D. Patterson, 2011 4 decisioni da prendere CPU CACHE MEM 1. Dove posizionare un blocco? 2. Come reperire un blocco?

Dettagli

Miglioramento delle prestazioni

Miglioramento delle prestazioni Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura

Dettagli

La gerarchia di Memoria

La gerarchia di Memoria La gerarchia di Memoria Calcolatori Elettronici 1 Gap delle prestazioni DRAM - CPU 1000 CPU 100 10 DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998

Dettagli

Introduzione alle memorie cache. Sommario

Introduzione alle memorie cache. Sommario Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 0/0/200 Sommario Obiettivo Livelli della gerarchia di memoria Memoria cache: concetti base Architettura

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Cache Anno Accademico Francesco Tortorella La cache nella gerarchia di memoria D. Patterson, 2011 Funzionamento della cache 4 decisioni da prendere CPU CACHE

Dettagli

La gerarchia di Memoria. Calcolatori Elettronici

La gerarchia di Memoria. Calcolatori Elettronici La gerarchia di Memoria 1 Gap delle prestazioni DRAM - CPU 1000 CPU 100 10 D R A M 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2 Località

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Gerarchia di memorie: memorie cache Massimiliano Giacomin 1 Semplice classificazione delle memorie Memorie a sola lettura (ROM, PROM, EPROM, EEPROM-Flash) Memorie volatili (RAM)

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

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

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

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1 Introduzione alle memorie cache Corso ACSO prof. Cristina SILVANO Politecnico di Milano Cristina Silvano, 06/01/2013 versione 2 1 Obiettivo Sommario Livelli della gerarchia di memoria Memoria cache: concetti

Dettagli

Esercizio. Si consideri una cache con 64 blocchi di 16 byte ciascuno. A quale numero di blocco corrisponde l indirizzo 1200 espresso in byte?

Esercizio. Si consideri una cache con 64 blocchi di 16 byte ciascuno. A quale numero di blocco corrisponde l indirizzo 1200 espresso in byte? Esempio MIPS 32 bit Indirizzo su 32 byte Cache ad accessi diretto Dimensioni della cache 2 n blocchi, di cui n bit usati per l indice dimensione del blocco di cache 2 m parole ossia 2 m+2 byte In questo

Dettagli

Gerarchia di memoria 247

Gerarchia di memoria 247 Gerarchia di memoria 247 Qual è la memoria ideale? La memoria ideale dovrebbe avere le prestazioni della SRAM e la capacità e il costo del disco Possiamo approssimare la situazione ideale usando una gerarchia

Dettagli

Le memorie Cache. Sommario

Le memorie Cache. Sommario Le memorie Cache Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2, 5.3 1/36 Sommario Circuito di lettura

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Cache Anno Accademico 24/25 Francesco Tortorella Cache livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

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

static dynamic random access memory

static dynamic random access memory LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento

Dettagli

Memorie Caratteristiche principali

Memorie Caratteristiche principali Memorie Caratteristiche principali Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola, blocco Metodo di accesso:

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Le memorie Cache. Sommario

Le memorie Cache. Sommario Le memorie Cache Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2, 5.3 1/30 Sommario Circuito di lettura

Dettagli

Lezione di Tutorato Di Architettura degli Elaboratori B 29/04/2005. SOLUZIONI: Cache

Lezione di Tutorato Di Architettura degli Elaboratori B 29/04/2005. SOLUZIONI: Cache SOLUZIONI: 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

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

Gerarchie di memoria e Cache

Gerarchie di memoria e Cache Gerarchie di memoria e Cache A/A 27/28 Caratteristiche memoria Ideally one would desire an indefinitely large memory capacity such that any particular... word would be immediately available.... We are...

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica La cache: come migliorare le prestazioni Ricapitolando (1) La memoria principale e la cache sono scomposte in blocchi di uguale dimensione L indirizzo del

Dettagli

La gerarchia di memorie (1)

La gerarchia di memorie (1) La gerarchia di memorie (1) Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci Obiettivo Illusione di avere a disposizione una memoria che sia: grande veloce (ritardo della memoria

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria I programmatori hanno l esigenza di avere memorie sempre più veloci e capienti, per poter memorizzare programmi e dati Purtroppo la tecnologia permette solo di costruire memorie grandi

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

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

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24

Dettagli

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24

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

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

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

Le memorie Cache n-associative

Le memorie Cache n-associative Le memorie Cache n-associative Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2, 5.3 1/30 Sommario

Dettagli

La struttura gerarchica delle memorie

La struttura gerarchica delle memorie Architettura degli Elaboratori e delle Reti Lezione 27 La struttura gerarchica delle memorie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria I programmatori hanno l esigenza di avere memorie sempre più veloci e capienti, per poter memorizzare programmi e dati Purtroppo la tecnologia permette solo di costruire memorie grandi

Dettagli

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/30

Dettagli

La gerarchig. erarchia di memorie e (1) Divario delle prestazioni processore- memoria. La soluzione: gerarchia di memorie.

La gerarchig. erarchia di memorie e (1) Divario delle prestazioni processore- memoria. La soluzione: gerarchia di memorie. La gerarchig erarchia di memorie e () Architetture Avanzate dei Calcolatori Valeria Cardellini Prestazioni Divario delle prestazioni processore- memoria 00.000 0.000 Soluzione: memorie cache più piccole

Dettagli

Gli attori principali di un architettura

Gli attori principali di un architettura Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali

Dettagli

Le memorie Cache a mappatura diretta

Le memorie Cache a mappatura diretta Le memorie Cache a mappatura diretta Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2, 5.3 1/18 Sommario

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Rielaborate da Salvatore Tucci Clocking q Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti

Dettagli

Esercitazione del 19/05/ Soluzioni

Esercitazione del 19/05/ Soluzioni Esercitazione del 9/5/5 - Soluzioni Una CPU moderna ha una velocità di esecuzione delle istruzioni generalmente molto più alta della capacità di fornire dati delle memorie DRAM. In generale possiamo dire

Dettagli

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24

Dettagli

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

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

Memoria Cache. G. Lettieri. 16 Marzo 2017

Memoria Cache. G. Lettieri. 16 Marzo 2017 Memoria Cache G. Lettieri 16 Marzo 2017 1 Introduzione La memoria centrale è molto più lenta del processore. Possiamo rendercene conto scrivendo un programma che accede ripetutamente agli elementi di un

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria 1 Gerarchia di memoria: Terminologia Hit: il dato appare in qualche blocco al livello superiore (Es.: Blocco X) Hit Rate: la frazione degli accessi di memoria trovati nel livello superiore

Dettagli

Esercitazione del 28/05/ Soluzioni

Esercitazione del 28/05/ Soluzioni . Introduzione Esercitazione del 28/05/2009 - Soluzioni Una CPU moderna ha generalmente una velocità di esecuzione delle istruzioni molto più alta della capacità delle memorie DRAM di fornire dati. In

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci La memoria virtuale Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi Nelle lezioni L2 Cache precedenti{ Più

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria Prof. Cristina Silvano Politecnico di Milano Dipartimento di Elettronica e Informazione Nota: Alcune figure incluse in queste lezioni sono tratte dai testi: D.A. Patterson and J.L.

Dettagli

Gerarchie di memoria Roberto Bisiani 5/22/2002 1

Gerarchie di memoria Roberto Bisiani 5/22/2002 1 Gerarchie di memoria 2002 Roberto Bisiani 5/22/2002 Dove studiare Trasparenze delle lezioni Patterson & Hennessy Cap. 7 5/22/2002 2 Tendenze tecnologiche Capacita' Velocita (latenza) Logica: 2x in 3 anni

Dettagli

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini Architettura degli Elaboratori 19 Memoria Virtuale Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Memoria Virtuale - Esercizi Problema: - In un sistema multiprocesso

Dettagli

Le memorie Cache a mappatura diretta e associative

Le memorie Cache a mappatura diretta e associative Le memorie Cache a mappatura diretta e associative Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento Patterson: 5.2,

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) La gerarchia di memorie (2) Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria

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 Gerarchia di Memoria Barbara Masucci

La Gerarchia di Memoria Barbara Masucci Architettura degli Elaboratori La Gerarchia di Memoria Barbara Masucci Punto della situazione Ø Abbiamo studiato Ø Il processore MIPS e due diverse implementazioni per un sottoinsieme del suo IS Ø Obiettivo

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) Migliorare le prestazioni delle cache La gerarchia di memorie () Architetture Avanzate dei Calcolatori Valeria Cardellini Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

La Gerarchia di Memorie Valeria Cardellini

La Gerarchia di Memorie Valeria Cardellini La Gerarchia di Memorie Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Divario delle

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

Gerarchia di Memorie

Gerarchia di Memorie Gerarchia di Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Gerarchia di Memorie Obiettivo: creare l illusione di

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit

Dettagli

REGISTRI MEMORIA CACHE MEMORIA PRINCIPALE DISCO. Figura 1 Gerarchia di memoria.

REGISTRI MEMORIA CACHE MEMORIA PRINCIPALE DISCO. Figura 1 Gerarchia di memoria. Memoria Cache 1 Introduzione La velocità di un microprocessore è molto più alta di un qualsiasi sistema di memoria disponibile a costi ragionevoli. Ogni singolo accesso alla memoria principale di un microprocessore

Dettagli

La struttura gerarchica delle memorie

La struttura gerarchica delle memorie Architettura degli Elaboratori e delle Reti Lezione 27 La struttura gerarchica delle memorie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria Politecnico di Milano - Facoltà di Ingegneria Corso di CALCOLATORI ELETTRONICI Prof. M. Sami Ing. C. Silvano Dipartimento di Elettronica e Informazione A. A. 1999/2000 Nota: Alcune

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Memoria cache: Esercizi individuali proposti Massimiliano Giacomin Esercizio 1: collocazione dei blocchi nella cache Sia data la seguente sequenza di indirizzi di byte a cui si

Dettagli

La Gerarchia delle Memorie. Calcolatori Elettronici II

La Gerarchia delle Memorie. Calcolatori Elettronici II La Gerarchia delle Memorie Calcolatori Elettronici II 1 Connessione memoria processore: schema tipo Processor MAR MDR k-bit address bus n-bit data bus Memory Up to 2 k addressable locations Dimensione

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

Lezione n.14. La memoria cache

Lezione n.14. La memoria cache Lezione n. La memoria cache Sommario: Politiche di sostituzione Memoria cache Mapping degli indirizzi (modo in cui i dati sono memorizzati nella cache) Capacità e prestazioni Questa lezione conclude la

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 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

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

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione Gestore della memoria II parte La segmentazione come la paginazione prevede di dividere lo spazio di indirizzamento logico del processo(ovvero la memoria necessaria al processo) in più parti Quello che

Dettagli

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

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità Sistema di Memoria Caratteristiche desiderabili Ampia capacità Velocità Economicità 1 Memoria Cache L'idea alla base della memoria cache nasce dalla semplice osservazione che la memoria centrale (dove

Dettagli

La Memoria Virtuale Valeria Cardellini

La Memoria Virtuale Valeria Cardellini La Memoria Virtuale Valeria Cardellini Corso di Calcolatori Elettronici A.A. 28/9 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica La gerarchia di memorie

Dettagli

Sistema di Memoria. Caratteristiche desiderabili Ampia capacità Velocità Economicità

Sistema di Memoria. Caratteristiche desiderabili Ampia capacità Velocità Economicità Sistema di Memoria Caratteristiche desiderabili Ampia capacità Velocità Economicità Memoria Cache L'idea alla base della memoria cache nasce dalla semplice osservazione che la memoria centrale (dove risiede

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale la memoria secondaria i dispositivi di input/output 1 Fornisce la capacità di

Dettagli

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche ELABORAZIONE Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche operazioni relazionali (confronto tra dati) operazioni booleane altre

Dettagli

La Memoria Cache. Informatica B. Daniele Loiacono

La Memoria Cache. Informatica B. Daniele Loiacono La Memoria Cache Informatica B Il problema della memoria q Obiettivo: fornire agli utenti una memoria grande e veloce fornire al processore i dati alla velocità con cui è in grado di elaborarli q Problema:

Dettagli

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto Un quadro della situazione Lezione 14 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

CALCOLATORI ELETTRONICI 30 agosto 2010

CALCOLATORI ELETTRONICI 30 agosto 2010 CALCOLATORI ELETTRONICI 30 agosto 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche di AND, OR e NOT la funzione combinatoria (a

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria I programmatori hanno l esigenza di avere memorie sempre più veloci e capienti, per poter memorizzare programmi e dati Purtroppo la tecnologia permette solo di costruire memorie grandi

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 218-219 Pietro Frasca Lezione 17 Martedì 4-12-218 Memoria segmentata Nei sistemi che utilizzano la

Dettagli

Caching Andrea Gasparetto

Caching Andrea Gasparetto Tutorato di architettura degli elaboratori Caching Andrea Gasparetto andrea.gasparetto@unive.it Esercizio 1 Dati una cache con 4096 blocchi, e con dimensione dell INDEX di 10 b, determinare il grado di

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Informatica. appunti dalla lezione del 13/12/2011

Informatica. appunti dalla lezione del 13/12/2011 Informatica appunti dalla lezione del 13/12/2011 Iterazione vs ricorsione Ogni algoritmo ricorsivo può essere riscritto in forma iterativa: tipicamente con un ciclo for o un ciclo while, e senza che nel

Dettagli

Valutazione delle Prestazioni Barbara Masucci

Valutazione delle Prestazioni Barbara Masucci Architettura degli Elaboratori Valutazione delle Prestazioni Barbara Masucci Punto della situazione Ø Abbiamo studiato Ø Una prima implementazione hardware (a ciclo singolo) di un sottoinsieme dell IS

Dettagli

Nome Cognome, Numero Matricola: Durata Esame: 30 min

Nome Cognome, Numero Matricola: Durata Esame: 30 min Nome Cognome, Numero Matricola: Grader per Esame: Architetture 2 - Canale A-L - 13.07.2011 Enrico Tronci Dip. di Informatica, Università di Roma La Sapienza, Via Salaria 113, Roma, Italy tronci@di.uniroma1.it,

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

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

LE MEMORIE. Prof. CAPEZIO Francesco. Quest'opera è soggetta alla licenza Creative Commons Attribuzione Non Commerciale

LE MEMORIE. Prof. CAPEZIO Francesco. Quest'opera è soggetta alla licenza Creative Commons Attribuzione Non Commerciale LE MEMORIE Prof. CAPEZIO Francesco Quest'opera è soggetta alla licenza Creative Commons Attribuzione Non Commerciale Introduzione Le memorie di un computer possono essere divise tra centrali e secondarie.

Dettagli