• Non ci sono risultati.

Capitolo 11 La memoria cache

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 11 La memoria cache"

Copied!
14
0
0

Testo completo

(1)

Calcolatori elettronici – Architettura e organizzazione

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

Capitolo 11

La memoria cache

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

(2)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

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)

(3)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

• 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

(4)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

Cache a mappatura diretta

(5)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

Cache a mappatura diretta

Interpretazione dell’indirizzo (di parola) :

La memoria centrale più essere vista come composta da B = 2bblocchi di dimensione C

(6)

Calcolatori elettronici – Architettura e organizzazione

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

Mappatura diretta

Mappatura diretta

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

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

• Il contenuto di questa posizione di Tag RAM viene confrontato con il campo nBdell’ 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.

(7)

Calcolatori elettronici – Architettura e organizzazione

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

Mappatura diretta

• Pregi:

– Semplicità – Velocità

• Difetti:

– Possibile alto tasso di collisioni

• 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 nXdell’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

(8)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

(9)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

(10)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

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

(11)

Calcolatori elettronici – Architettura e organizzazione

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

Prestazioni

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)

(12)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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

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)

(13)

Calcolatori elettronici – Architettura e organizzazione

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

Confronto livelli di Cache

• La tabella ha valore indicativo

Posizionamento

(14)

Calcolatori elettronici – Architettura e organizzazione

Giacomo 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.

Riferimenti

Documenti correlati

• Dati nella cache L1 (~ 2 cicli per l’accesso) – Necessarie q=0.5 (cioe’ 2 flop per dato trasferito) per. avere il 50%

Le memorie di massa servono per immagazzinare dati e programmi e si dividono in hard disk (dischi rigidi o fissi), floppy disk (dischi flessibili e rimovibili), CD ROM (compact

O., individua una area della memoria centrale che può contenere in locazioni consecutive la sequenza di istruzioni e dati del programma da caricare e fissa in K il primo indirizzo

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

[r]

Uno scanner ad alta risoluzione viene collegato ad un personal computer attraverso un’interfaccia USB 2.0, con velocit`a di trasferimento pari a 240 Mbps. Sapendo che lo

Inoltre, quando l’unità centrale richiede l’accesso a una locazione di memoria virtuale non presente in una cella di memoria reale, si rende necessario effettuare