Sei sulla pagina 1di 14

Capitolo 11

La memoria cache

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
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 organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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)

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
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 organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Prestazioni
• 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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
La Cache
• 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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Cache a mappatura diretta

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Cache a mappatura diretta
• 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=2 l 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)

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Cache a mappatura diretta


Interpretazione dell’indirizzo (di parola) :
• La memoria centrale più essere vista come composta da
B = 2b blocchi di dimensione C

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Mappatura diretta

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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.

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Mappatura diretta

• Pregi:
– Semplicità
– Velocità
• Difetti:
– Possibile alto tasso di collisioni

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Cache completamente associativa


• 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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Calcolatori elettronici – Architettura e organizzazione
Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Cache semi-associativa
• 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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Calcolatori elettronici – Architettura e organizzazione
Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

La scrittura
• 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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
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 organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Prestazioni

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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)

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
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 organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

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)

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
Confronto livelli di Cache
• La tabella ha valore indicativo

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci

Posizionamento

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci
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.

Calcolatori elettronici – Architettura e organizzazione


Copyright © 2009 – The McGraw-Hill Companies srl
Giacomo Bucci