le gerarchie di memoria: concetti e...

88
2009 2009 - - 10 10 1 Le gerarchie di memoria: concetti e Le gerarchie di memoria: concetti e organizzazione organizzazione Mariagiovanna Mariagiovanna Sami Sami

Upload: buicong

Post on 18-Feb-2019

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010 1

Le gerarchie di memoria: concetti e Le gerarchie di memoria: concetti e organizzazioneorganizzazione

MariagiovannaMariagiovanna SamiSami

Page 2: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 22 --

Punti principali:Punti principali:

Le applicazioni richiedono memorie sempre più grandiprestazioni sempre più elevate memorie più veloci;

Le memorie veloci costano (molto) più di quelle lente;La logica è più veloce della memoria (oggi, nei calcolatori di fascia alta, il rapporto fra ciclo di clock della CPu e ciclo della memoria RAM è di qualche ordine di grandezza);

Page 3: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 33 --

Il gap logicaIl gap logica--memoria (CPUmemoria (CPU--DRAM):DRAM):

10.000

1.000

100

10

prestazioni

100.000

1

1980 2005

memoria

logica

Page 4: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 44 --

Il gap logicaIl gap logica--memoria:memoria:

Dal 1980 al 1986: la latenza delle DRAM diminuisce del 7% all’anno (quindi le prestazioni delle DRAM aumentano di 1,07 volte), le prestazioni delle CPU aumentano di 1,35 volte per anno;Dopo il 1986: il miglioramento delle prestazioni delle CPU sale a 1,55 volte per anno, quello delle DRAM si mantiene costante.

Page 5: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 55 --

Il sistema idealeIl sistema ideale

Ha una memoriamolto grande, oltre cheMolto veloce ( ritardo di propagazione della memoria prossimo a quello della logica)il tutto a un prezzo ragionevolmente basso!

Non esiste (ad oggi) una tecnologia di memoria che soddisfi simultaneamente a tutti questi requisiti…

Page 6: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 66 --

La soluzione:La soluzione:

Non un livello di memoria, come nell’architettura-base di Von Neumann, maUna gerarchia di memorie, ognuna caratterizzata da differenti tecnologie, costi, dimensioni – e diversi meccanismi di accesso

il programmatore vede uno spazio di memoria molto grande;la CPU vede una memoria veloce Il tutto a costi accettabili!

Page 7: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 77 --

Veloce è piccolo...

Al livello più elevato della gerarchia, le memorie sono molto più piccole di quanto richiesto dall’applicazione tipica

Durante l’esecuzione (run time), si rendono necessari trasferimenti fra diversi livelli.Qui, faremo l’ipotesi che l’informazione venga copiata ogni volta solamente fra livelli adiacenti della gerarchia.

Page 8: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 88 --

CPU

Registri

1st level cache

2nd level cache

DRAM

dischi

On-chip

Chip separati (oggi, L2 on chip)

meccanici

(≥64 KB; 1 ns) trasferimenti gestiti da hw

trasferimenti gestiti da hw

≥512 MB; 100 ns; trasferimenti gestiti da OS

100 GB; 5 ms; gestiti dal sistema operativo

Riferimento ai registri (500 bytes, 0.25 ns)

Meccanismo di accesso Posizione

I livelli delle memorie in un sistema I livelli delle memorie in un sistema tipicotipico

Page 9: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 99 --

Principio alla base delle Principio alla base delle gerarchie di memoria: gerarchie di memoria: localitàlocalità

Località temporale: quando si fa riferimento a una posizione di memoria, con alta probabilità si farà di nuovo riferimento alla stessa posizione entro breve tempo (caso tipico: ripetuto accesso alle istruzioni del corpo di un ciclo).Località spaziale: quando si fa riferimento a una posizione di memoria, con alta probabilità si farà entro breve tempo riferimento a posizioni vicine (es.: istruzioni in sequenza; dati organizzati in vettori o matrici e a cui si accede sequenzialmente, etc.).

Page 10: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1010 --

Fortemente dipendente dall’applicazione: Località sia temporale sia spaziale elevata nel caso di cicli interni di breve lunghezza che operano su dati organizzati in vettori, Località ridotta nel caso di ripetute chiamate a procedure, o di dati cui si accede mediante puntatori;Valida nel caso generale per le istruzioni, più legata all’applicazione nel caso dei dati.

LocalitàLocalità

Page 11: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1111 --

In alcune applicazioni, i dati hanno località di un solo tipo – es., dati “streaming” in elaborazione video (non hanno località temporale), coefficienti usati in elaborazione di segnale o immagine (gli stessi coefficienti si usano ripetutamente su dati diversi – non c’è località spaziale) l’uso delle gerarchie può esserne modificato per quanto riguarda la memoria dati.

LocalitàLocalità

Page 12: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1212 --

GerarchiaGerarchia

Registri: la memoria più veloce, intrinsecamente parte della CPU

Dimensioni tipiche: 64-256 parole Struttura: banco di registri (Register File) dotato di più porte di lettura e di scrittura possibile un (limitato) accesso parallelo (letture e scritture simultanee) mediante tutte le porte disponibili. Gestiti dal programmatore in assembler o dal compilatore (che alloca le variabili ai registi, gestisce i trasferimenti dallo e allo spazio di memoria).

Page 13: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1313 --

Gerarchia (2)Gerarchia (2)

Cache di primo livello (L1): di norma sullo stesso chip della CPU, tecnologia SRAM.

I dati in cache ricevono un nome attraverso lo spazio di indirizzamento della memoria(l’effettivo meccanismo di accesso dipende dalla soluzione scelta per la cache); I trasferimenti fra la L1 e le memorie di livello inferiore sono totalmente gestiti dallo hardware; Di norma la cache è “trasparente” al programmatore e al compilatore (si vedranno più avanti le eccezioni!).

Page 14: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1414 --

Cache di primo livelloCache di primo livello

Può essere o unificata (= un’unica cache ospita sia istruzioni sia dati) o (più abitualmente negli microprocessori moderni) possono esserci Instruction-cache (I-cache) e Data-cache (D-cache) separate, in stile Harvard (in alcune architetture per sistemi embedded, la presenza della D-cachedipende dall’applicazione prevista);L’accesso può essere o mediante indirizzo fisico o mediante indirizzo virtuale (cache virtually addressed).

Page 15: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1515 --

Cache di primo livelloCache di primo livello

Uso di indirizzo virtuale: tanto più interessante quanto più grande è la cache, presenta numerosi problemi: es.:

Richiede meccanismi di traduzione associati alla cache;Più processi possono usare lo stesso indirizzo virtuale per accedere a spazi di indirizzamento diversi. Possibili soluzioni: svuotare la cache (“cache flushing”) quan do si ha commutazione di contesto, oppure associare degli “identificatori dello spazio degli indirizzi” (ASID – Address Space Identifier) come tag ai blocchi di cache unitamente al tag dell’indirizzo virtuale;

Page 16: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1616 --

Cache di primo livelloCache di primo livello

Uso di indirizzo virtuale: cont.:Esistenza di “sinonimi”: più processi possono puntare alla stessa pagina fisica che viene “condivisa”. Lo stesso blocco di memoria fisica potrebbe essere portato in diversiblocchi della cache! (soluzione.: es., i processi possono essere forzati – da software – a usare gli stessi indirizzi virtuali condivisi).

Page 17: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1717 --

Cache di 2° (e 3°) Cache di 2° (e 3°) livellolivello

Quando esiste, può comparire sia sullo stesso chip della CPU (la cache di 2°livello) sia su un chip separato. La tecnologia è SRAM. Numero dei livelli di cache e dimensioni delle varie cache: determinati dai vincoli di prestazioni. Come la cache di 1° livello, quelle di 2° e 3° livello sono trasparenti al programmatore e al compilatore; trasferimenti gestiti da hardware.

Page 18: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1818 --

Altre “Altre “cachescaches”?”?

Principio di località: vale a molti livelli; Termine cache: usato oggi per indicare l’uso di una memoria-tampone che supporta l’uso di elementi riutilizzati spesso. Es.: file cache, web cache…

Page 19: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 1919 --

RAMRAM

RAM volatile: di norma in tecnologia (S-)DRAM (salvo in casi particolari che richiedono caratteristiche ben precise – ad esempio, nelle applicazioni spaziali la DRAM è troppo soggetta a guasti dovuti a radiazioni);Applicazioni embedded: spesso parte almeno dello spazio di indirizzamento primario è implementato con tecnologie (semi)permanenti (es., Flash).

Page 20: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2020 --

Gerarchie di memoria: sommario delle Gerarchie di memoria: sommario delle caratteristichecaratteristiche

Disco magnetico

DRAM CMOS

SRAM CMOS (on- e off-chip

Memoriacustom con più porte

Tecnologia

CD/NastroDiskRAMCacheMemoria retrostante

OS/OperatoreOSHWCompilatoreGestita da

50-5002.500-10.000

5.000-20.000

50.000-500.000

Banda(MB/sec)

5.000.00050-2500.5-250.25-0.5Tempo di accesso (ns)

> 1 TB< 512 GB< 16 MB< 1KBDimens. tipica

DiscoRAMCacheRegistrinome

4321Livello

Page 21: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2121 --

Le cache: richiamiLe cache: richiami

Cache: strutturata in blocchi (o linee); blocco = minima quantità d’informazione trasferibile fra due livelli di memoria (fra due livelli di cache, o fra RAM e cache). Dimensione (larghezza) del blocco: influenza direttamente la larghezza del bus ( banda).Scelta della larghezza del blocco: punto critico. Blocco più largo meno trasferimenti fra livelli, ma anche rischio di minor efficienza nell’uso della memoria (e costo più alto per il bus).

Page 22: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2222 --

Le cache: richiamiLe cache: richiami

La CPU indirizza lo spazio generale di memoria. Si fa qui l’ipotesi che gli indirizzi siano indirizzi fisici (non occorre traduzione dall’indirizzo cui si fa riferimento nel programma all’effettivo indirizzo in RAM).

Page 23: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2323 --

Le cache: richiamiLe cache: richiami

La CPU accede al (più alto) livello di cache:Il controllore della cache determina se l’elemento richiesto è effettivamente presente in cache:

Si: trasferimento fra cache e CPU;No: si devono effettuare opportuni trasferimenti dalle memorie di livello inferiore alla cache di livello più elevato.

Page 24: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2424 --

Qualche definizioneQualche definizione

Hit: l’elemento richiesto dalla CPU è presente in cache;Miss: l’elemento richiesto dalla CPU non è presente in cache;Hit rate: frazione degli accessi a memoria ricompensati da uno hit (cifra di merito per le prestazioni della cache);Miss rate: frazione degli accessi a memoria cui risponde un miss (miss rate = 1-hit rate).

Page 25: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2525 --

Qualche definizioneQualche definizione

Hit time: tempo di accesso alla cache in caso di successo (include il tempo per determinare se l’accesso si conclude con hit o miss);Miss penalty: tempo necessario per sostituire un blocco in cache con un altro blocco dalla memoria di livello inferiore (si usa un valore medio);Miss time: = miss penalty + hit time, tempo necessario per ottenere l’elemento richiesto in caso di miss.

Page 26: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2626 --

Alcuni punti fondamentaliAlcuni punti fondamentali

La cache è molto più veloce delle memorie di livello inferiore hit time molto minore del tempo richiesto per accedere alle memorie di livello inferiore (che è quindi la componente principale della miss penalty).Miss penalty determinata prevalentemente dalla tecnologia.Hit rate elevato tempo medio di accesso prossimo allo hit time – come si determina analiticamente il tempo medio di accesso?

Page 27: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2727 --

Tempo medio di accesso Tempo medio di accesso TTAA

TA = hit_rate*hit_time+miss_rate*miss_time= hit_rate*hit_time + miss_rate*(hit_time + miss_penalty)=hit_time*(hit_rate+miss_rate) + miss_rate*miss_penalty = hit_time + miss_rate*miss_penalty .Scelte architetturali: permettono di ridurre il miss_rate TA diventa più prossimo a hit_time.

Page 28: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2828 --

Influenza delle memorie sulle Influenza delle memorie sulle prestazioni del sistemaprestazioni del sistema

Memory stall cycles: numero di cicli durante i quali la CPU è bloccata (in stallo) in attesa di accesso alla memoria;Ipotesi semplificatrici:

tempo di ciclo: include il tempo necessario per gestire un cache hit,durante un cache miss la CPU è in stallo.

CPU_execution_time = (CPU_clock_cycles + Memory_stall_cycles) * clock cycle timeMemory_stall_cycles = Number_of_misses*miss_penalty

Page 29: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 2929 --

Una valutazione più Una valutazione più dettagliata:dettagliata:

Memory_stall_cycles = IC*(Misses/Instruction)*Miss_penalty = IC*Reads_per_instruction*Read_miss_rate*Read_miss_penalty + IC*Writes_per_instruction*Write_miss_rate*Write_miss_penalty

Si semplifica mediando letture e scritture:Memory_stall_cycles =

IC*(memory_accesses/instruction)*miss_rate*miss_penalty

Page 30: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3030 --

Una valutazione più Una valutazione più dettagliata:dettagliata:

altra cifra di merito:Misses/instruction = miss_rate* (memory_accesses/instruction)

indipendente dall’implementazione hardware, dipendente dall’architettura (legata al numero medio di accessi a memoria per istruzione)

Page 31: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3131 --

I problemi essenziali per le I problemi essenziali per le gerarchie di memoriagerarchie di memoria

1. Dove – nel livello gerarchico più alto – si può portare un blocco (block placement)?

2. Come si trova un blocco nel livello gerarchico più alto (block identification)?

3. Quale blocco nel livello gerarchico più alto si deve sostituire in caso di miss (block replacement osostituzione)?

4. Come si gestiscono le scritture (write policy)? Aspetto ortogonale agli altri tre punti, indipendente dalla particolare architettura della cache.

Page 32: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3232 --

Cache Cache DirectDirect--mappedmapped : : richiamirichiami

Ogni blocco nello spazio degli indirizzi trova il suo corrispondente in uno e un solo blocco in cache:

NB = numero di blocchi nella cacheNR = numero di blocchi nella RAMBAC = indirizzo del blocco in cache (indice)BAR = indirizzo del blocco in RAMBAC= |BAR|modNB

Nw= numero di parole nel blocco

Page 33: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3333 --

Cache Cache DirectDirect--mappedmapped (2)(2)

Selezione della parola nel blocco: operata mediante i log2(NW) bit meno significativi dell’indirizzo della parola (se la memoria è indirizzata al byte, occorre tener conto anche di bit riservati allo spiazzamento del byte nella parola!)Indirizzo del blocco in cache (indice della cache): si estrae usando i log2(NB) bit dell’indirizzo immediatamente più significativi.Tutti i blocchi della RAM che hanno i log2(NB) bit meno significativi dell’indirizzo (a parte i log2(NW) riservati allo spiazzamento della parola) uguali si “mappano” (possono essere trasferiti) sullo stesso blocco della cache.

Page 34: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3434 --

ArchitetturaArchitettura--basebase di cache di cache directdirect--mappedmapped: : Blocchi di 4 paroleBlocchi di 4 parole

31……. 15… 3-2 1-0

Byte-oriented address

Byte displ.nt

VBtag 4 wordsindex

0

4095

12

=

HIT

16

data

Wo

Page 35: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3535 --

ArchitetturaArchitettura--basebase di cache di cache directdirect--mappedmapped::

ogni linea della cache include:Il bit di validitàIl tag costituito dai log2(NR)-log2(NB)-log2(NW)bit più significativi dell’indirizzo in RAMIl blocco vero e proprio di quattro parole.

Page 36: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3636 --

Cache Cache DirectDirect--mappedmapped: il : il Problema dellaProblema della sostituzionesostituzione

Banale – non tiene conto della località temporale! (il blocco sostituito avrebbe potuto essere stato usato molto di recente)Cache Direct Mapped:

implementazione facile, richiede poca area, È veloce (percorso critico relativamente breve)Non molto efficiente per quanto riguarda la politica di sostituzione (facile il fenomeno di “thrashing”).

Page 37: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3737 --

L’altro estremo: cache L’altro estremo: cache totalmente associativatotalmente associativa

Ogni blocco di RAM può essere mappato su un qualsiasi blocco di cache (nessun vincolo sul Placement);Il contenuto di un blocco di cache è identificato mediante l’indirizzo completo in memoria – il tag è costituito dall’indirizzo completo della parola;La ricerca viene effettuata mediante confronto parallelo dell’indirizzo “ricercato” con tutti itags.

Page 38: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3838 --

Cache setCache set--associative a N vieassociative a N vie

Compromesso fra soluzioni direct-mapped and associativa : la cache è organizzata come insieme di set, ognuno dei quali include Nblocchi. Anche la RAM è vista come organizzata in set, più numerosi dei set della cache; ogni set della RAM viene correlato a uno e un solo set dellacache con una filosofia direct-mapped.

Page 39: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 3939 --

Cache setCache set--associative a N vieassociative a N vie

Placement: ogni blocco in un set della RAM può mapparsi su uno qualsiasi dei blocchi di cache nel set della cache correlato, mediante tecniche associative – ogni blocco di memoria si può mappare su una delle N posizioni all’interno di un set.

Page 40: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4040 --

Cache setCache set--associative a N vieassociative a N vie

L’indice del Set in cache corrispondente a un dato set in RAM è identificato come

(set)cache=(block_address)RAMmod(#cache_sets)

#cache_sets è una potenza di 2 – l’indice della cache viene estratto usando i log2(#cache_sets) bit meno significativi dell’indirizzo (a parte lo spiazzamento).

Page 41: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4141 --

Cache setCache set--associative a N vieassociative a N vie

A dimensioni di cache costanti:Aumentando l’associatività di un fattore 2 raddoppia il numero di blocchi in un set, si dimezza il numero di set. L’indice è più corto di un bit, il tag più lungo di un bit (così sono i confrontatori; il numero dei confrontatoriraddoppia, poiché tutti i confronti sui tag sono fatti in parallelo);Cache set-associativa a N vie: N confrontatori in un set. Schema generale di cache set-associativa a 4 vie di 4 KB con blocchi di quattro parole:

Page 42: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4242 --

Cache setCache set--associative a N vieassociative a N vie

Way 0

Way 4

Cache block

Set 63

Way 0

Way 4

Cache block

Set 1

Way 0

Way 3

Cache block

Set 0

CAM DATA

tag

Word select

Set index DATA

Tag Set index word

Memory address

byte

Page 43: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4343 --

Cache setCache set--associative a N vieassociative a N vie

si confrontano i miss rate al variare delle dimensioni della cache, del grado di associatività e delle politiche di sostituzione:

1.12%1.12%1.13%1.13%1.17%1.15%256 KB

1.53%1.39%1.66%1.54%2.01%1.88%64 KB

4.96%4.395.29%4.67%5.69%5.18%16 KB

randomLRUrandomLRUrandomLRUSize

8-way8-way4-way4-way2-way2-way

Page 44: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4444 --

Il problema della sostituzione per Il problema della sostituzione per cache associative e setcache associative e set--associativeassociative

Quale blocco sostituire in caso di cache miss?1. Scelta casuale (random);2. Least-recently used (LRU): per tener conto della

località temporale, il blocco sostituito è quello che da più tempo non si utilizza (a ogni blocco si associa un contatore all’indietro, che viene portato al massimo valore in caso di accesso e decrementato di uno ogni volta che si accede a un altro blocco);

3. First-in First-out (FIFO): si approssima la soluzione LRU determinando il blocco più vecchio invece di quello non usato da più tempo.

Page 45: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4545 --

Il problema della sostituzione per Il problema della sostituzione per cache associative e setcache associative e set--associativeassociative

La soluzione random è la più semplice; la LRU diventa sempre più costosa al crescere del numero di blocchi.D-cache misses per 1000 istruzioni su benchmark SPEC2000:

92,592,192,192,592,192,192,592,192,2256 KB

100,3100,599,7103,1102,3102,4103,9104,3103,464 KB

110,4111,8109,0113,3115,1111,7115,5117,3114,116 KB

FIFOrandomLRUFIFOrandomLRUFIFOrandomLRUdimens

Otto vieQuattro vieDue vie

associatività

Page 46: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4646 --

Il problema della scritturaIl problema della scrittura

Scritture: molto meno frequenti delle letture – le prestazioni sono migliori per le letture che per le scritture:

Blocchi più lunghi di una parola: la lettura del blocco inizia non appena l’indirizzo è disponibile, ancor prima della verifica deltag – la scrittura deve aspettare la verifica del tag;

Di norma, scrivendo si modifica solo parte del blocco (una sola parola) – occorre attendere la seleziona della parola giusta.

Page 47: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4747 --

Il problema della scritturaIl problema della scrittura

Scrittura in memoria: si vogliono ottenere:Velocità – richiede che si scriva in cacheConsistenza – l’informazione in RAM deve sempre essere consistente con quella in cache.

Due strategie fondamentali di scrittura: write-through, write-back

Page 48: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4848 --

Il problema della scritturaIl problema della scrittura

Write-through: l’informazione viene scritta simultaneamente nel blocco di cache e nel blocco di RAM – la consistenza viene sempre rispettata, il tempo di accesso per le scritture è quello della RAM ( le prestazioni diminuiscono).

Page 49: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 4949 --

Il problema della scritturaIl problema della scrittura

Write-back: detta anche copy-back. Quando si esegue un’istruzione di scrittura, i dati vengono scritti solo nel blocco di cache. Il blocco di RAM viene modificato solo quando il blocco di cache deve essere sostituito.Subito dopo una scrittura, cache e RAM sono inconsistenti (o “non coerenti”): Politica “ingenua” di sostituzione: prima di leggere il nuovo blocco, quello in cache da sostituire viene sempre “ricopiato” in RAM. Le sostituzioni richiedono tempo doppio!

Page 50: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5050 --

Il problema della scritturaIl problema della scrittura

Riscrittura in RAM: necessaria solo se il blocco in cache è stato modificato;il blocco di cache può essere pulito (clean - non modificato) o sporco (dirty - modified) ( a ogni blocco di cache si deve aggiungere un “dirty bit” che ne segnala lo stato, e che viene posto a 1 in caso di scrittura);La riscrittura in RAM viene effettuata solo se il bit dirty vale 1.

Page 51: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5151 --

Il problema della scritturaIl problema della scrittura

Si tende a preferire la politica Write-back a quella Write-through: la località fa si che con alta probabilità si scriva di nuovo in un blocco cui si è recentemente fatto un accesso in scrittura buona probabilità di scritture multiple prima di dover fare una sostituzione. Vantaggi e svantaggi delle due politiche:

Page 52: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5252 --

Il problema della scritturaIl problema della scrittura

Write-back:Le singole parole vengono scritte dalla CPU alla velocità imposta dalla cache, non dalla RAM;Più scritture in uno stesso blocco comportano solo una scrittura in RAM; Quando si fa una scrittura in RAM, si sfrutta la maggior larghezza del bus, poiché si trasferisce l’intero blocco.

Page 53: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5353 --

Il problema della scritturaIl problema della scrittura

Write-through:Read miss meno costose che con write back – non richiedono mai di scrivere in RAM prima di effettuare la lettura (una read miss con write-back implica che si deve scrivere in RAM se il blocco sostituito è dirty);Soluzione più facile da implementare. Per essere efficiente, una cache write-through deve essere dotata di un writebuffer in modo che la RAM non rallenti la cache (si veda la figura):

Page 54: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5454 --

Il problema della scritturaIl problema della scrittura

Write buffer fra cache and RAM:La CPU scrive nella cache e nel write bufferIl controllore di memoria scrive dal buffer alla RAM

CPU CACHE

RAM

Write buffer

Page 55: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5555 --

Il problema della scritturaIl problema della scrittura

Write buffer: è una semplice FIFO – trasferimenti dalla cache al buffer alla velocità della cache, dal buffer alla RAM alla velocità della RAM. Si possono accodare tante scritture quante sono le posizioni nel buffer; quando il buffer è pieno, si verificano dei write stalls (la CPU deve aspettare che le scritture giungano al completamento). E se si verificasse una lettura di una parola ancora nel write buffer?

Page 56: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5656 --

Il problema della scritturaIl problema della scrittura

Soluzione semplice : una read miss aspetta che il write buffer sia vuoto (le prestazioni diminuiscono...)Alternativa: in caso di read miss, si confrontano i contenuti del Write Buffer con l’indirizzo della parola richiesto dalla read, se non c’è coincidenza (match) si serve per prima la readmiss.

Page 57: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5757 --

Il problema della scritturaIl problema della scrittura

Le scritture possono indurre write miss –tentativi di scrivere in un indirizzo non presente in cache. Soluzioni possibili :

Write allocate (anche detta fetch on write): il blocco viene prima caricato in cache, poi si effettua la scrittura (in uno qualsiasi dei due modi visti prima);No write allocate (anche detta writearound): il blocco viene modificato direttamente in RAM, senza essere trasferito in cache.

Page 58: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5858 --

Il problema della Il problema della scrittura***scrittura***

In genere:Le cache Write-back tendono a usare l’opzione write allocate (per il principio di località, si spera che scritture successive coinvolgano lo stesso blocco);Le cache Write-through tendono a usare l’opzione no write allocate: (le scritture devono comunque andare alla memoria di livello inferiore, non si guadagna sui trasferimenti!)

Page 59: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 5959 --

Come si sceglie la soluzione di Come si sceglie la soluzione di cache?cache?

Cache di primo livello – la scelta è fra I- e D-cache separate piuttosto che una cache unificata:

Cache “separate” possono essere ottimizzate individualmente – le statistiche dimostrano che la I-cache ha miss rate più basso della D-cache (in tabella: valori ottenuti usando i benchmark SPEC92):

Page 60: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6060 --

Miss rate per Miss rate per II--cachecache, , DD--cachecache, , cache unificata:cache unificata:

0.95%2.88%0.02%128 KB

1.35%3.77%0.15%64 KB

2.87%6.47%0.64%16 KB

7,24%15.94%1.78%4 KB

UnifiedD-cacheI-cacheSize

Page 61: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6161 --

Cause dei cache miss:Cause dei cache miss:

Compulsory – detti anche “miss per partenza a freddo” o “miss alla prima referenza” – al primo accesso, un blocco non è mai presente in cache. Non dipendono dalle dimensioni nè dalla architettura della cache. Capacity: quando si esegue un programma, alcuni blocchi devono essere sostituiti di tanto in tanto. Diminuiscono all’aumentare delle dimensioni della cache.

Page 62: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6262 --

Cause dei cache miss:Cause dei cache miss:

Conflict: nelle cache direct-mapped o in quelle set-associative, può rendersi necessario ricaricare più tardi nello stesso set i blocchi che si sono prima sostituiti miss da collisione(“conflict”). Diminuiscono all’aumentare delle dimensioni della cache e dell’associatività: una cache completamente associativa li evita.Regola del 2:1”: il miss rate di una Cache direct mapped di N byte è circa pari a quello di una cache set-associative a 2 vie di N/2 byte.

Page 63: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6363 --

Cache miss: alcuni aspetti Cache miss: alcuni aspetti generaligenerali

Cache Istruzioni: è di tipo “read-mostly” –località spaziale molto buona (salvo che nel caso di chiamate a procedura molto frequenti);Cache Dati: località fortemente dipendente dall’applicazione. Cache thrashing: gli stessi blocchi vengono ripetutamente trasferiti alla e dalla cache.

Page 64: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6464 --

Cache missCache miss

Cache thrashing: riduce di molto le prestazioni; nei sistemi application-specific è possibile identificare blocchi di dati (o istruzioni) che potrebbero essere soggetti a thrashingCache locking: particolari blocchi di cache vengono vincolati (locked) dal programmatore(si noti: la cache diventa visibile al programmatore) – di fatto, si impedisce la sostituzione dei blocchi “locked” (possibile solo con cache associative o set-associative). Usata soprattutto in sistemi embedded.

Page 65: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6565 --

Per migliorare le prestazioni Per migliorare le prestazioni della cache.della cache.

A livello architetturale, si può cercare di Ridurre miss penaltyRidurre miss rateRidurre hit time

(non si prendono in considerazione qui gli aspetti tecnologici!).

Page 66: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6666 --

Come ridurre la Miss Penalty : Come ridurre la Miss Penalty : cache cache MultiMulti--livellolivello..

Cache di primo livello (L1): abbastanza piccola da essere molto veloce; cache di secondo livello (L2) abbastanza grande da catturare molti degli accessi che altrimenti andrebbero alla RAM:

Miss_penaltyL1= Hit_timeL2+Miss_rateL2*Miss_PenaltyL2

TA=Hit_timeL1+Miss_rateL1*Miss_PenaltyL1=Hit_timeL1+Miss_rateL1* (Hit_timeL2+Miss_rateL2*Miss_penaltyL2)dove Miss_rateL2 si valuta sugli accessi alla cache L1 che non hanno avuto successo.

Page 67: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6767 --

CachesCaches MultiMulti--livellolivello::

Local misses: numero di miss in una cache diviso per il numero totale di accessi alla stessa cache;Global misses: numero di miss in una cache diviso per il numero totale di accessi a memoriagenerati dalla CPU global miss rate per la cache L2: Miss_rateL1* Miss_rateL2

Page 68: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6868 --

Riduzione della Miss Penalty : Riduzione della Miss Penalty : cachescaches MultiMulti--livellolivello::

L’analisi delle prestazioni dimostra che:La cache di secondo livello è utile se è molto più grande delle cache L1; La velocità della cache L1 influenza la frequenza di clock della CPU, quella della cache L2 influenza la miss penalty della cache L1;L’architettura della cache L2 può essere basata su meccanismi semplici (Direct Mapped).

Page 69: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 6969 --

Riduzione della Miss Penalty : Riduzione della Miss Penalty : cachescaches MultiMulti--livellolivello::

È bene che i dati presenti nella L1 siano presenti anche nella L2? Due politiche:1. Multilevel inclusion: i dati nella L1 sono sempre

presenti nella L2 (permette la consistenza fra I/O e cache, se l’I/O accede alla L2). Problema: l’analisi delle prestazioni suggerisce che i blocchi della L1 possano essere più piccoli di quelli della L2, la sostituzione diventa difficile;

2. Multilevel exclusion: i dati nella L1 non sono maipresenti nella L2. (Ragionevole per L2 piccole).

Page 70: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7070 --

Riduzione della Miss Penalty : Riduzione della Miss Penalty : criticalcritical word first, word first, earlyearly restartrestart..

Critical Word First: in presenza di read miss, la parola mancante viene richiesta alla memoria e inviata alla CPU non appena arriva; la CPU inizia l’esecuzione mentre si riempie anche il resto del blocco (detta anche wrapped fetch, request word first);Early restart: le parole vengono lette nell’ordine normale, non appena la parola richiesta arriva la si invia alla CPU.

Soluzioni utili solo se i blocchi sono grandi.

Page 71: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7171 --

Riduzione della Miss Penalty: priorità Riduzione della Miss Penalty: priorità ai ai readread miss rispetto alle scritturemiss rispetto alle scritture..

Cache di tipo write-through dotate di writebuffer: in caso di read miss, si controlla il contenuto del Write Buffer – se non c’è conflitto, si serve il read miss (che riceve priorità sulla scrittura).Cache di tipo write-back: si copia il blocco dirty in un buffer, poi si compie la lettura dalla memoria, infine la scrittura del blocco dirtydal buffer alla memoria.

Page 72: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7272 --

Riduzione della Miss Penalty: Riduzione della Miss Penalty: “fusione” sul “fusione” sul WriteWrite Buffer.Buffer.

Si usa il W.B. anche per cache Write-Back: al momento di una scrittura in RAM:

Il W.B. è vuoto: vi si scrivono i dati e l’indirizzo completo, la CPU ha “finito” la scrittura;Il W.B. contiene blocchi modificati: si controlla l’indirizzo dei dati da memorizzare – se il nuovo indirizzo è uguale a quello di un elemento valido nel W.B., i nuovi dati vengono combinati con tale elemento (write merging);Il W.B. è pieno e non ci sono coincidenze di indirizzo: la CPU deve aspettare finché nel W.B. si vuota una posizione.

Page 73: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7373 --

Riduzione della Miss Penalty: Riduzione della Miss Penalty: VictimVictim Cache.Cache.

Idea-base: ciò che si è scartato potrebbe presto tornare nuovamente utile. Si inserisce una piccola cache associativa (victim cache) fra la cache L1 e il suo percorso di riempimento; la Victim cache contiene solo blocchi scartati dalla cache (sostituiti) in caso di miss (victims). In caso di nuovo miss, i blocchi-vittima vengono verificati prima di passare alla memoria di livello inferiore.Se i dati richiesti sono nella victim cache, si scambiano victim block e cache block.

Page 74: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7474 --

Riduzione del Miss rateRiduzione del Miss rate

Blocchi più grandi: si sfrutta meglio la località spaziale. Diminuiscono i compulsory miss; blocchi più grandi numero minore di blocchi nella cache può aumentare il numero diconflict miss (e anche di capacity miss). La Miss penalty aumenta cresce il tempo medio di accesso. Le statistiche mostrano che la dimensione ottima di blocco è fra 32 bytes (per cache piccole) e 64 bytes (per cache più grandi).

Page 75: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7575 --

Riduzione del Miss rateRiduzione del Miss rate

Nota: il miss rate aumenta se il blocco è troppo grande in rapporto alle dimensioni della cache.

10%

0%

Miss rate

Dim. Blocco (byte)

16 32 64 128 256

256 K 64 K

5%

16 K

4K

Page 76: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7676 --

Riduzione del Miss rateRiduzione del Miss rate

Associatività più elevata: le statistiche mostrano che una cache set-associative a 8 vie porta a riduzione dei miss quasi identica a quella di una cache totalmente associativa – un grado più alto di associatività (raro) si adotta per ragioni diverse (es.: X-Scale, set-associativa a 32 vie: necessaria perché adotta cache-locking);Associatività più elevata: aumenta lo hit time (la circuiteria è più complessa). Si può preferire la soluzione Direct-mapped perché consente frequenza di clock più elevata.

Page 77: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7777 --

Riduzione dei Cache miss : Riduzione dei Cache miss : Way Way PredictionPrediction

Si aggiungono altri bit in cache per predire la via (= blocco entro il set) del prossimo accesso alla cache. Un multiplexer nello schema di selezione dei dati viene pre-posizionato; all’istante della lettura si effettua un solo confronto su tag (invece di confrontare tutti i tag nel set). Miss in cicli di clock successivi si controllano gli altri blocchi. L’accuratezza della predizione va valutata con simulazioni su benchmark; nel caso di sistemi embedded, porta a riduzione dei consumi.

Page 78: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7878 --

Riduzione dei Cache miss: Riduzione dei Cache miss: Ottimizzazione da compilatoreOttimizzazione da compilatore

Ottimizzazioni durante la compilazione: orientate a ridurre separatamente instructionmiss e data miss.Tecniche: riorganizzazione del codice in modo da ridurre – es. – conflict miss, migliorando la località spaziale e temporale.Esempi: lo scambio fra cicli annidati (in modo che si acceda ai dati nell’ordine in cui questi sono memorizzati) può migliorare la localitàspaziale.

Page 79: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 7979 --

Riduzione dei Cache miss: Riduzione dei Cache miss: Ottimizzazione da compilatoreOttimizzazione da compilatore

Blocking: migliora la località temporale. Per un algoritmo in cui ad alcune matrici si accede per righe e ad altre per colonne, e ad ogni iterazione si accede sia a righe sia a colonne, memorizzare le matrici per righe piuttosto che per colonne non migliora le prestazioni.Invece di operare su righe o colonne intere, l’algoritmo opera su sottomatrici (blocchi): lo scopo è massimizzare gli accessi ai dati presenti in cache prima che vengano sostituiti.

Page 80: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8080 --

Un approccio alternativo per ridurre Un approccio alternativo per ridurre miss rate e miss penalty: Parallelismomiss rate e miss penalty: Parallelismo

Il principio: sovrapporre l’esecuzione del programma all’attività nella gerarchia di memorie.A volte gli approcci sono ottimizzati per specifiche architetture di CPU.

Page 81: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8181 --

Parallelismo: Parallelismo: nonblockingnonblocking cachescaches

Approccio semplice: la CPU continua a leggere istruzioni dalla I-cache durante un D-cache miss;Più in generale: La D-cache continua a consentire accessi (e possibilmente fornire hit) anche durante un miss (“hit under miss”);Ha senso per CPU dotate di parallelismo intrinseco; la complessità del controllore della cache è molto maggiore.

Page 82: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8282 --

Parallelismo: Parallelismo: prefetchingprefetching hardware di hardware di istruzioni e datiistruzioni e dati

L’approccio: lettura anticipata (prefetch) di elementi prima che siano richiesti dalla CPU. Prefetching di istruzioni: spesso fatto da HW: soluzione tipica: in caso di miss la CPU legge il blocco richiesto e anche quello immediatamente consecutivo. Il blocco richiesto viene portato in cache, quello “prefetched”viene posto in uno instruction stream buffer (ISB).Se un blocco richiesto è presente nell’ISB, lo si legge dall’ISB, si cancella l’originaria richiesta alla cache, si invia la prossima richiesta di prefetch.

Page 83: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8383 --

Parallelismo: Parallelismo: prefetchingprefetching hardware di hardware di istruzioni e datiistruzioni e dati

Risultati sperimentali: uno stream buffer da un solo blocco cattura fino al 25% dei miss da una cache direct-mapped di 16 KB. Con quattro blocchi nello stream buffer, lo hit rate migliora fin quasi al 50% dei miss; con 16 blocchi, fino al 72%.Si può adottare un approccio similare per la D-cache.Es.: UltraSparc III adotta questo approccio.

Page 84: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8484 --

Parallelismo: Parallelismo: prefetchingprefetching contollatocontollatodal compilatoredal compilatore

Il compilatore inserisce istruzioni di prefetch per richiedere i dati prima che si debbano usare:

Register prefetch carica il valore in un registro;Cache prefetch carica i dati in cache (non in un registro).

Le soluzioni possono essere faulting o nonfaulting (si genera – o no – eccezione nel caso di fault sull’indirizzo virtuale o di violazione delle protezioni).

Page 85: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8585 --

Parallelismo: Parallelismo: prefetchingprefetching contollatocontollatodal compilatoredal compilatore

Nonfaulting prefetch: si comporta come una no-op se altrimenti provocherebbe un’eccezione.La maggior parte delle moderne CPU adottano nonfaulting prefetching; approccio utile se la CPU può procedere mentre si leggono i dati prefetched (la memoria non va in stallo, continua a fornire istruzioni e dati mentre aspetta i dati prefetched).

Page 86: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8686 --

Parallelismo: Parallelismo: prefetchingprefetching contollatocontollatodal compilatoredal compilatore

Prefetching più efficace: semanticamenteinvisibile al programma – non modifica il contenuto di registri o memoria, né provoca fault sulla memoria virtuale.

Page 87: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8787 --

Come ridurre lo hit time?Come ridurre lo hit time?

Hit time: influenza la frequenza di clock del processore – il tempo di accesso alla cache vincola il ciclo di clock, anche quando la CPU richiede più di un ciclo per accesso alla cache;Cache on-chip: molto più veloce di una off-chip

la cache deve essere abbastanza piccola da trovar posto sul chip;Architetture semplici di cache tempo di accesso inferiore (meno operazioni!) una cache direct-mapped diventa interessante.

Page 88: Le gerarchie di memoria: concetti e organizzazionehome.deib.polimi.it/sami/architetture/cache_09.pdf · - 9 - 2009-10 Principio alla base delle gerarchie di memoria: località Località

20092009--1010-- 8888 --

Come ridurre lo hit time?Come ridurre lo hit time?

Accesso “pipeline” alla cache: la latenza reale può essere di diversi cicli, il pipelining porta a tempo di ciclo ridotto ma hit più lenti: aumenta il numero di stadi della pipeline della CPU aumenta la penalità quando si sbaglia la predizione sui salti, aumenta il numero di cicli fra la richiesta di un dato e l’istante in cui il dato è disponibile (Pentium 4: tempo di accesso alla cache = 4 cicli). Alternativa: avviare più istruzioni indipendenti per ciclo Trace Cache nell’architettura NetBurst del Pentium 4.