14
Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Capitolo 11 La memoria cache Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare riferimenti a zone contigue Località temporale: tendenza a riprodurre riferimenti generati in precedenza Conviene organizzare la memoria come una gerarchia

Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Embed Size (px)

Citation preview

Page 1: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Capitolo 11La memoria cache

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Gerarchie di Memoria• Dati sperimentali mostrano che i riferimenti alla memoria

godono della proprietà di località spaziale e temporale.• Località spaziale: tendenza a generare riferimenti a zone

contigue• Località temporale: tendenza a riprodurre riferimenti

generati in precedenza• Conviene organizzare la memoria come una gerarchia

Page 2: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Gerarchie di memoria• Ai livelli più bassi memorie meno veloci e più capienti• Ai livelli più alti memorie più veloci di modeste dimensioni

– Memoria Ausiliaria: Dischi – Memoria principale: DRAM– Cache: SRAM – Gli stessi registri di CPU possono essere considerati come

il livello più alto della gerarchia

• Organizzazione– Il trasferimento tra livello avviene per blocchi– Un numero predefinito di blocchi di un livello superiore

costituisce un blocco del livello inferiore

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

La Cache• La cache è il livello superiore alla memoria centrale

• I blocchi di cache si chiamano linee

• I blocchi della memoria centrale si chiamano pagine• Un pagina contiene un numero predefinito di linee

(ovviamente il numero è una potenza del 2)

Page 3: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

La Cache• Un indirizzo generato dal processore viene cercato

nella memoria Cache:• se si trova => hit e quindi viene direttamente

trasmesso al processore

• Se non si trova => miss si ricerca nel livello di memoria inferiore

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• tasso di hit (h) : rapporto tra il numero di hit nel livello superiore e il numero totale dei riferimenti;

• tasso di miss (m) : rapporto tra il numero di miss nel livello superiore e il numero totale dei riferimenti.

m = 1 -h

• tc : tempo di accesso alla cache• tp : tempo di penalizzazione (tempo per accedere alla

memoria centrale e per portare la linea in cache)• t : tempo medio di accesso alla cache

t= h tc + m tp

Prestazioni

Page 4: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• Occorre una directory per rintracciare la presenza di un dato nella cache

• Per il principio della località spaziale, conviene copiare non la singola parola indirizzata, bensì l’intera linea => la linea èl’unità di trasferimento fra Cache e memeoria principale

Tempo di penalizzazione: Tp = TACCM + T trasf

Dove TACCM è il tempo di accesso della mem. princ.T trasf = è il tempo di traferimento verso la cache

La Cache

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Cache a mappatura diretta

Page 5: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• una data linea di memoria (centrale) viene sempre mappata nella stessa posizione di cache

• La memoria centrale si suddivide (logicamente) in blocchi della stessa dimensione della cache

• Si indichi con– W = 2w il numero di parole per linea– C la capacità della cache (in numero di parole)– L = 2l il numero di linee nella cache

• Ovviamente C = L W (se una parola è di 4 byte, allora la capacità della cache misurata in numero di byte è pari a 4C)

Cache a mappatura diretta

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Cache a mappatura diretta

Interpretazione dell’indirizzo (di parola) : • La memoria centrale più essere vista come composta da

B = 2b blocchi di dimensione C

Page 6: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Mappatura diretta

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Mappatura diretta

• NB: il precedente è un modello (non corrisponde esattamente a uno schema realizzativo)

• nL identifica la (posizione della) linea in DATA RAM e in TAG RAM

• Il contenuto di questa posizione di Tag RAM viene confrontato con il campo nB dell’ indirizzo generato dal processore

• Se il confronto indica uguaglianza (hit) la linea è in cache• La figura precedente mostra lo schema di principio per

estrarre la parola indirizzata– Nella pratica, i due campi a destra dell’indirizzo

individuano complessivamente la parola (il byte) del blocco di lunghezza C.

Page 7: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Mappatura diretta

• Pregi:– Semplicità– Velocità

• Difetti:– Possibile alto tasso di collisioni

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• Quando una qualunque linea di memoria centrale può essere portata in qualunque posizione di cache.

• Il Tag è il numero di linea entro la memoria centrale• Comporta una memoria CAM (Content Addressable Memory)• Il campo nX dell’indirizzo viene confrontato (in parallelo) con

tutte le posizioni di TAG RAM• La DATA RAM può essere indirizzata solo dopo che si è

concluso il confronto con il contenuto di TAG RAM• Vantaggio:

– Minime collisioni

• Svantaggi:– Lenta– Costosa

Cache completamente associativa

Page 8: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• Cerca di prendere il meglio della soluzione a mappatura diretta e della completamente associativa:– Efficienza (tempo di accesso) della soluzione a mappatura

diretta– Senza l’elevato tasso di collisioni di questa

• La cache è divisa in vie• La medesima linea si mappa sulla medesima posizione di

qualunque via

Cache semi-associativa

Page 9: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

• In caso di Write-miss:– Write-allocate: porta in cache la linea mancante– Write-non-allocate: la linea non viene portata in cache (viene solo

aggiornata la memoria centrale). Ha senso in considerazione del fatto che:

– il numero di scritture rispetto a quello delle letture è relativamente basso

– A differenza delle operazioni di fetch (alta probabilità di letture sequenziali contigue), è probabile che gli indirizzi di scrittura siano sparsi

• In caso di Write-hit (consistenza fra Mcache e Mprinc):– Write-through (scrittura in memoria immediata): viene aggiornata la

cache e al tempo stesso la parola di memoria– Write-back (scrittura in memoria differita): viene aggiornata solo la

cache. La memoria centrale viene aggiornata

La scrittura

Page 10: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Linee di cache: stato

• Validità di una linea di cache (LdC): inizialmente il contenuto di una LdC non è significativo. Man mano che vengono caricate LdC si avranno linee valide e non-valide• Serve un bit di validità

• In caso di operazioni di I/O è possibile che linee di memoria centrale siano aggiornate.• Corrispondente LdC (se esiste) deve transire in uno stato non valido

Oppure che linee trasferite da dispositivi di I/O verso l’esterno non siano aggiornate per effetto del copy-back (ma anche nel caso di copy-through ci possono essere problemi di sincronizzazione)• Soluzione: memoria interessata ai trasferimenti I/O viene resa non

cacheable

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Linee di cache: rimpiazzamento

• LRU (Least Recently Used): principio standard per le CPU attuali

• FIFO (First in First Out): non praticata• RAND: casuale, le prestazioni sono comparabili

a LRU

Page 11: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Prestazioni

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Divisa/unificata

• Cache unica per dati e istruzioni o cache separate (per dati e istruzioni)– Agli albori dell'impiego le cache erano unificate

– Le macchine attuali hanno cache divise

• Cache divise– Gli accessi relativi alle istruzioni hanno il livello di località alto,

per queste il valore di hit è alto

– Cache istruzioni più semplici da realizzare (di solito sola lettura)

– Determinano una architettura equivalente alla Harvard– Non è detto che diano sempre le migliori prestazioni (a parità di

dimensione globale (Cunif = Cdati + Cistr) sotto certe condizioni di carico la cache unificata potrebbe essere superiore)

Page 12: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Cache multilivello

• Rappresentano la pratica corrente

• Gerarchia di memoria più granulare, sfruttando al meglio le differenti caratteristiche tecnologiche dei componenti

• Il livello più alto (L1) ha una dimensione di un ordine di grandezza inferiore a quella del livello inferiore(L2)

• Un miss in L1 determina la ricerca della linea in L2; se la linea non è neanche in L2:– Viene letto un blocco di linee (contigue) da M e portate in L2– La linea indirizzata (appartenente al blocco) viene trasferita in L1

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Cache multilivello -prestazioni• tc tempo medio di accesso alla cache

• h1/ h2 tassi di hit (L1/L2)

• m1 tasso di miss L1

• m2 tasso di miss L2 (n. fallimenti/n. accessi a L2)

• tc1 tempo di accesso alla cache L1

• tc2 tempo di accesso alla cache L2 (comprende anche il tempo per trasferire la linea da L2 a L1)

• tp tempo di penalizzazione su L2 ( tempo di accesso a L2 più tempo necessario a portare il blocco in L2)

t= h tc + m tp =>tc = h1tc1 + m1 (h2tc2+m2tp)

Page 13: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Confronto livelli di Cache

• La tabella ha valore indicativo

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Posizionamento

Page 14: Capitolo 11 La memoria cache - isti.cnr.itglami/sistemi/11.La.Memoria.Cache_GL.pdf · Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 –

Calcolatori elettronici – Architettura e organizzazioneGiacomo Bucci

Copyright © 2009 – The McGraw-Hill Companies srl

Posizionamento • Cache fisica: quando è posta a valle del meccanismo di

traduzione degli indirizzi logici (virtuali) – Più semplici

• Cache virtuale: quando è posta a monte del meccanismo di traduzione degli indirizzi (più efficienti)– Se il dato è in cache non c'è bisogno di passare attraverso la

traduzione degli indirizzi

– Ha il problema dell'Alias: lo stesso indirizzo virtuale puòappartenere a due distinti processi (con spazi di indirizzi diversi)

• Invalidazione di tutta la cache (cache flush) quando c’è un cambio di contesto (processo)

• Aggiungere al Tag il “Tag di processo”, in modo da verificare se l'indirizzo appartiene al processo correntemente in esecuzione.