la gerarchia di memoria ing. rosa senatore università degli studi di salerno corso di calcolatori...
TRANSCRIPT
La gerarchia di memoria
Ing. Rosa Senatore
Università degli Studi di SalernoCorso di Calcolatori Elettronici
Anno 2013/14
ARGOMENTI
Progetto di una memoria cacheModalità di Indirizzamento (Mapping)Modalità di IdentificazioneModalità di Scrittura Modalità di Sostituzione
Prelievo dati memoria cache – memoria centrale
Livelli della gerarchia di memoria
Cache: Definizioni
Hit (Successo): il dato richiesto dal processore è presente all’interno di un blocco della cache.
Miss (Fallimento):il dato richiesto dal processore non è presente all’interno della cache e deve essere recuperato in memoria centrale.
Hit Rate (tasso di successo): numero di accessi che trovano il dato in cache rispetto al numero di accessi totale.
Hit Time (tempo di successo): tempo di accesso al dato in cache, comprensivo del tempo necessario a determinare il successo/fallimento della richiesta.Miss Rate (tasso di fallimento): (1-Hit Rate) numero di accessi che non trovano il dato in cache rispetto al numero di accessi totale.
Miss Penalty (tempo di fallimento): tempo di reperimento del dato dalla memoria centrale, comprensivo del tempo necessario al rimpiazzamento del dato in cache.
Progetto di una memoria cache
Modalità di Identificazione
Modalità di Scrittura
Modalità di Sostituzione
Write -Through
Write-Back
Casuale
LRU (Least Recently Used)
Modalità di indirizzamento
(Mapping)
Completamente Associativo
Set Associativo
Diretto
Etichetta (Tag)
V Tag Data
0 0001010101010
0 0111110101010
1 0001010000010
0 0001011111010
1 0011111001010
0 0001010101010
1 1101010101011
1 0101010000011
0 0011110011010
0 0000000000010
1 0111000101010
Progetto di una memoria cache
Bit di validità Dati BloccoEtichetta (Identificazione)
Cache ad indirizzamento diretto000001010 01
1 100101110111
00001 00101 01001 01101 10001 10101 11001 11101
Memoria Centrale: 25 blocchi
Memoria Cache: 23 blocchi
Indirizzo nella cache : (indirizzo del blocco in mem. centrale) mod (n° di blocchi nella cache)
Ogni blocco della memoria centrale
può essere caricato in un solo blocco
della cache.
Indirizzamento Diretto
Indice V Tag Data
0
1
2
…
…
…
…
….
…..
2M-1
=
Data
Hit
K MN-M-K
Tag Blocco Word offset
Memoria Centrale : 2N word
Dimensione Blocco : 2K word
2M blocchi in memoria cache
2N-M-K blocchi in conflitto
Indirizzo N bit
Modalità di Scrittura
Modalità di Sostituzione
• Write-through: scrittura del dato sia in cache che in memoria.
• Write-back: scrittura del dato solo nella cache, la copia in memoria avviene solo al momento della sostituzione del blocco.
Fissata automaticamente dalla modalità di mapping.
Cache ad Indirizzamento Diretto
Miglioramento delle prestazioni della cache ad indirizzamento diretto
• Aumento delle dimensioni del blocco (trade-off tra miss penalty e miss rate)
• Cache multi-livello
• Split Cache (suddivisione cache Dati e cache Istruzioni)
• Posizionamento dei blocchi nella cache più flessibile (Cache Set Associative o Completamente Associative)
Cache Set-Associativa ad n vie
K M-hN-( M-h) - K
Tag Set Word offset Indirizz
o N bitMemoria Centrale : 2N word
Dimensione Blocco : 2K word
2M blocchi in memoria cache
2N-K blocchi in memoria centrale
Cache Set-Associativa a 4 vie
Circuiteria Aggiuntiva:
• n comparatori (n confronti in parallelo)
• Multiplexer (ritardo aggiuntivo)
Cache set-associativa ad n (2h)vie
Modalità di Scrittura
Modalità di Sostituzione
• Write-through: scrittura del dato sia in cache che in memoria.
• Write-back: scrittura del dato solo nella cache, la copia in memoria avviene solo al momento della sostituzione del blocco.
• Casuale
• LRU (Least Recently Used): • Nelle cache a 2 vie viene inserito un bit di uso
per ogni blocco dell’insieme.• Nelle cache a 4 vie viene inserito un contatore di
uso per ogni blocco dell’insieme.
Cache Set-Associativa
ESERCIZIO 1: Un processore dispone di una memoria cache organizzata in 32 blocchi da 128 locazioni e di una memoria centrale di 1M locazioni. Supponendo che il processore generi il seguente indirizzo:
E che lo schema di traduzione degli indirizzi sia di tipo diretto, dire in quali ipotesi la parola indirizzata dal processore si trova nella cache e, in caso affermativo, qual è l’indirizzo della cache (espresso in cifre decimali) corrispondente al dato richiesto.
0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1
Nel caso in esame:tag: 010110012=8910
blocco: 110102=2610
offset: 01011012=4510
La parola si trova all’indirizzo
2610 *12810+4510 = 338310
20
137
20
22
2n°blocchi mem. centrale
n°blocchi in conflitto8
5
13
22
2
128 locazioni per blocco → 7 bit per indirizzare la locazione
32 blocchi → 5 bit per indirizzare il blocco nella cache
256 blocchi in conflitto → 8 bit per l’etichetta
758
offsetbloccotag
ESERCIZIO 2: Un processore dispone di una memoria cache organizzata in 32 blocchi da 128 locazioni e di una memoria centrale di 1M locazioni. Supponendo che il processore generi il seguente indirizzo:
E che lo schema di traduzione degli indirizzi sia di tipo set associativo a 2 vie, dire in quali ipotesi la parola indirizzata dal processore si trova nella cache e, in caso affermativo, qual è l’indirizzo della cache (espresso in cifre decimali) corrispondente al dato richiesto
0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1
Nel caso in esame:tag: 0101100112=17910
indice: 10102=1010
offset: 01011012=45 10
La parola si trova all’indirizzo
1010 *25610+4510 = 260510
Oppure 1010 *25610+12810 +4510 =
273310
n° di set 45
22
2
128 locazioni per blocco → 7 bit per indirizzare la locazione
16 set → 4 bit per indirizzare il set nella cache
512 blocchi in conflitto → 9 bit per l’etichetta
20
749
offsetindicetag
n°blocchi in conflitto9
4
13
22
2
137
20
22
2n° blocchi mem. centrale
ESERCIZIO 3: Un processore dispone di una memoria cache organizzata in 4k blocchi, ognuno costituito da 4 word e di una memoria centrale di 4 Gbyte. Ogni locazione di memoria contiene 1 byte.Calcolare la memoria aggiuntiva che occorre per memorizzare i bit di etichetta nel caso in cui lo schema di traduzione degli indirizzi sia:1) Diretto2) Set Associativo a 2 vie3) Set Associativo a 4 vie 4) Completamente Associativo
1) Diretto
4 1216
Dimensione memoria centrale 4GB→ Indirizzo a 32 bit
Dimensione cache 4k x 4 x 4 byte = 64 kbyte2) Set-Associativo a 2 vie
4 1117
3) Set-Associativo a 4 vie
4 1018
4) Completamente Associativo
4 28
bit per etichette= 16 bit x 4k = 64 kbit
bit per etichette= 18 bit x 4k = 72 kbit
bit per etichette= 17 bit x 4k = 68 kbit
bit per etichette= 28 bit x 4k = 112 kbit = 14 kbyte
byte offsetbloccotag byte offset
indicetag
byte offset
indice
tag byte offset
tag
La gerarchia di memoria
Ing.Rosa Senatore
Università degli Studi di SalernoCorso di Calcolatori Elettronici
Anno 2013/14