Memoria Cache. La memoria cache
|
|
|
- Gianmarco Gianni
- 9 anni fa
- Просмотров:
Транскрипт
1 Testo di rif.to: [Congiu] 6.1 (pg ) Memoria Cache 06.a Memoria associativa Cache completamente associativa Cache a mappatura diretta Cache set-associativa a n-vien Cache nell Xscale PXA-255 La memoria cache Per rendere più efficienti (più rapidi) gli accessi alla RAM: si interpone nel bus di memoria una memoria cache, ossia un modulo costituito da memoria: più veloce della RAM (ad es. 7 ns, invece di 70 ns), più costosa della RAM, di estensione ridotta (ad es. 512 Kbyte). si copiano nella cache alcune porzioni della RAM e si spera che il processore acceda proprio a quelle porzioni della RAM: se va bene, l accesso è 10 volte più veloce (ad es. 7ns anziché 70ns!) 1 Memoria centrale con memoria cache
2 Principio di località Località temporale: se il processore accede a un elemento in memoria, probabilmente vi accederà di nuovo presto. Località spaziale: se il processore accede a un elemento in memoria, probabilmente in futuro accederà ad elementi ad esso vicini. Il principio di località degli accessi alla memoria: vale certamente per il fetch delle istruzioni (eccetto che per le istruzioni di salto; ma se i salti sono all indietro, per cicli iterativi di lunghezza non eccessiva, si è fortunati!); vale spesso anche nell accesso ai dati (es. array, stack, buffer circolari, ); poiché le istruzioni e i dati si trovano in aree di memoria diverse, spesso esistono due cache distinte: instruction cache, data cache. 2 Cache unica per istruzioni e dati 3
3 Cache separate per istruzioni e dati 4 Organizzazioni della memoria cache Sono possibili diverse organizzazioni della memoria cache : cache completamente associative, cache a mappatura diretta, cache set-associative a n vie. 5
4 Cache completamente associativa La memoria cache è composta da un insieme di m blocchi o linee (cache line), ciascuno comprendente l byte, che contengono una copia del contenuto di altrettanti blocchi situati in RAM: 6 L estensione della cache è m l byte (m ed l sono sempre potenze intere di 2: m = 2 p e l = 2 q, con p e q interi positivi). La cache comprende inoltre alcuni bit di controllo e una CAM. La memoria associativa o CAM (1 di 2) Con il termine memoria associativa, chiamata anche CAM (Content Addressable Memory), si intende una memoria in grado di effettuare, in parallelo, il confronto tra un dato cercato e tutti i dati in essa contenuti. La memoria restituisce gli indirizzi dei dati in essa contenuti che siano uguali al dato cercato. 7 xyz Dato cercato abc xyz bcd xyz Ad es. può restituire una stringa di bit: gli 1 indicano le posizioni in cui il dato è stato trovato.
5 La memoria associativa o CAM (2 di 2) Nelle operazioni di lettura una memoria associativa ha un comportamento simmetrico rispetto alla RAM: la RAM riceve un indirizzo e restituisce il dato contenuto a quell indirizzo; la CAM riceve un dato e restituisce l indirizzo (o gli indirizzi) delle celle che contengono quel dato. La ricerca del dato viene operata in parallelo su tutti i registri della CAM: per gli scopi per cui sono usate, le CAM devono essere molto veloci e sarebbe inaccettabilmente lungo il tempo necessario per una ricerca sequenziale. Di conseguenza l hardware che realizza una CAM è molto complesso e molto costoso. 8 Blocchi della cache e indirizzi di RAM Ciascuna delle m linee della cache è destinata a contenere copia del contenuto di un blocco di l byte situato in RAM a partire da un indirizzo multiplo di l: in questo modo, se N è il numero di bit di un indirizzo di memoria, gli indirizzi degli l byte di ciascun blocco (l=2 q ) hanno gli N-q bit più significativi uguali (TAG), mentre i q bit meno significativi forniscono l indice di byte all interno del blocco 9 parte di indirizzo comune a tutti i byte di un blocco TAG N-q bit N bit indice di byte q bit INDIRIZZO DI MEMORIA
6 Esempio 10 0 RAM 0 Blocco di l=2 6 byte CACHE (m=2 9 blocchi di l byte) l = 64 (16 long-word), q = 6 (l = 2 q ) m = 512, p = 9 (m = 2 p ) cache = 32 Kbyte indirizzo di RAM da 32 bit: 26 bit: TAG, 6 bit: indice di byte (0 63) Gestione dei TAG: HIT/MISS Quando un blocco di l byte viene copiato dalla RAM alla linea k della cache, il TAG del blocco viene scritto nell elemento della CAM associato alla linea k; quando il processore genera un indirizzo di memoria, il campo TAG viene ricercato nella CAM della cache: se trovato (HIT ), l accesso si risolve (rapido) nella cache, altrimenti (MISS ): viene fatto l accesso alla RAM e, nello stesso tempo, il blocco di RAM comprendente l indirizzo cercato viene trasferito in una linea della cache (e il suo TAG inserito nel corrispondente elemento della CAM); 11 Si sfrutta quindi il principio (empirico) di località degli accessi alla memoria: se il principio è vero, gli accessi successivi al primo si risolvono (rapidamente) nella cache.
7 Vantaggi delle cache Esempio: lo hit rate (% di hit su tutti gli accessi) sia 90%, il tempo di accesso alla cache sia 7 ns, il tempo di accesso alla RAM sia 70 ns, 12 su 10 accessi, 9 durano 7 ns, uno 70 ns; il tempo di accesso medio risulta essere: (9 7ns + 70ns)/10 = 13.3 ns Con un costo aggiuntivo modesto, gli accessi alla memoria sono stati sveltiti di un fattore maggiore di 5! Una cache con un buon hit rate evita che il processore debba rallentare quando accede alla memoria. HIT rate Lo HIT RATE è quindi un indice della efficienza della cache : lo hit rate aumenta se aumenta la dimensione della cache (il numero N B per la dimensione L B dei blocchi): a parità di area di silicio occupata, se cresce N B diminuisce L B ; il progettista deve trovare un compromesso tra i due); costo_cam = f CAM (N B ); costo_cache = f cache (N B,L B )+f CAM (N B ). A parità di N B e L B, lo hit rate dipende da come si comporta il programma: se fa tanti salti e se i dati cui accede non sono raggruppati in memoria, lo hit rate diminuisce; se fa tanti cicli iterativi e se accede a dati contigui, lo hit rate aumenta; un compilatore potrebbe far sì che il codice dei cicli iterativi abbia indirizzo iniziale e lunghezza tali da poter stare in un unico blocco della cache. 13
8 MISS: scelta del blocco da rimpiazzare Quando, in seguito a un miss, è necessario ricopiare nella cache un nuovo blocco, normalmente (esaurito un transitorio iniziale) è necessario sovrascriverne uno già presente. La politica con cui si sceglie il blocco da sovrascrivere è molto importante per l efficienza della cache. Due criteri comunemente usati sono: FIFO: si sovrascrive la linea contenente il blocco che sta nella cache da più tempo, LRU (Least Recently Used): si sovrascrive la linea che da più tempo non subisce accessi (si possono usare uno o più dei bit di controllo associati alla linea, per tener traccia del tempo trascorso dall ultimo accesso). 14 MISS: aggiornamento del blocco in RAM Se il blocco selezionato per essere sovrascritto ha subito accessi per scrittura mentre si trovava nella cache (un bit di controllo, dirty bit, lo segnala), allora la sua copia in RAM è obsoleta: prima di sovrascriverlo, il contenuto del blocco va ricopiato in RAM (copy-back). Un tecnica alternativa, usata per tenere aggiornate le copie in RAM dei blocchi, consiste nell effettuare tutte le operazioni di scrittura sia nella cache sia anche in RAM (write-through). Con entrambe le tecniche, la scrittura in RAM può avvenire tramite un write buffer, ad accesso veloce, in modo che il processore non debba attendere che il trasferimento in RAM sia completato. 15
9 I bit di controllo della cache Già visti: dirty bit (copy-back), bit indicanti il tempo trascorso dall ultimo accesso (LRU). Un altro bit di controllo utile: bit di validità: indica se il blocco è una copia valida del corrispondente blocco in RAM (può essere invalidato in seguito a modifiche subite da quest ultimo per trasferimenti DMA o in sistemi multiprocessore). 16 Organizzazioni meno costose costo_cam = f CAM (N B ), costo_cache = f cache (N B,L B )+f CAM (N B ), f cache e f CAM sono ovviamente funzioni crescenti; il costo_cam incide molto sul costo complessivo della cache; riducendo la CAM si possono ottenere soluzioni meno costose (e, ovviamente, meno efficienti): cache a mappatura diretta, cache set-associative a n vie. 17
10 Cache a mappatura diretta Quando un blocco dalla RAM viene copiato nella cache, la posizione in cui viene collocato, anziché essere scelta con tecniche più o meno intelligenti (FIFO o LRU) è predeterminata: la collocazione di un blocco nella cache è data da: - il suo indirizzo in RAM, modulo l estensione della cache. 18 In sostanza è come se la RAM fosse divisa in pagine e ciascuna pagina in blocchi: le pagine di dimensione uguale a quella della cache, i blocchi di dimensione uguale a quelli della cache, l indice di un blocco all interno della propria pagina è l indice della linea in cui sarà caricato nella cache. Schema di cache a mappatura diretta 19
11 Blocchi di cache e indirizzi di RAM 20 Gli indirizzi di memoria hanno ancora il seguente significato: i q bit meno significativi: indice del byte nel blocco; i rimanenti N-q bit : comuni a tutti i byte del blocco. Questi ultimi sono ora così ripartiti: r bit meno significativi: indice k del blocco nella pagina, N-q-r bit: TAG = indice della pagina nella RAM. parte di indirizzo comune a tutti i byte del blocco k indice di pagina indice di blocco indice di byte TAG k N-q-r bit r bit N bit INDIRIZZO DI MEMORIA q bit Gestione dei TAG: HIT/MISS Quando il blocco di indice k viene copiato dalla RAM nella k-esima linea della cache, l indice della pagina di RAM cui il blocco appartiene (il TAG) viene scritto in un registro della cache associato al blocco k. Quando il processore genera un indirizzo di memoria: gli r bit che forniscono l indice k del blocco, individuano la posizione nella cache in cui si trova il blocco, se è presente; gli N-q-r bit più significativi dell indirizzo (TAG) vengono confrontati con il contenuto del registro della cache associato alla linea k (1 solo confronto: niente CAM!) se uguale (HIT), l accesso si risolve nella cache, altrimenti (MISS), il blocco k-esimo nella cache appartiene ad un altra pagina, e allora: viene effettuato l accesso alla RAM e, contemporaneamente, il blocco di RAM cercato viene trasferito nella linea k della cache (e il suo TAG nel corrispondente registro) 21
12 Mappatura diretta: pro e contro Pro: non richiede una CAM: organizzazione certamente meno costosa di quella completamente associativa. Contro: il blocco da sovrascrivere è predeterminato (non può essere scelto tra quelli che presumibilmente non servono più): hit rate decisamente più basso (minore efficienza). 22 È possibile un compromesso tra costo ed efficienza. Cache set-associativa a n vie Un buon compromesso tra l efficienza della organizzazione completamente associativa e il basso costo di quella a mappatura diretta, si può ottenere replicando n volte quest ultima: per ogni indice di blocco k, anziché esserci una sola linea nella cache, ve ne sono n; a ciascun set di n linee è associata una CAM (di n elementi) che contiene i TAG dei blocchi presenti nel set. Come nell organizzazione a mappatura diretta, la RAM è ancora divisa in pagine e ciascuna pagina in blocchi: l indice di blocco individua il set in cui sarà caricato un blocco, di indice k, può essere caricato in una qualsiasi delle n linee nel k-esimo set. 23
13 Schema di cache set-associativa a n vie 24 Set-associativa a 2 vie Gestione dei TAG: HIT/MISS Quando il blocco di indice k viene copiato dalla RAM nel k-esimo set della cache, il blocco da sovrascrivere, tra gli n del set, può essere scelto con politica FIFO o LRU; l indice della pagina di RAM cui il nuovo blocco appartiene (TAG) viene scritto nel corrispondente elemento della CAM. Quando il processore genera un indirizzo di memoria: gli r bit che forniscono l indice k del blocco, individuano il set nella cache in cui si trova il blocco, se è presente; gli N-q-r bit più significativi dell indirizzo (TAG) vengono confrontati (in parallelo) con il contenuto della CAM: se trovato (HIT), l accesso si risolve nella cache, altrimenti (MISS): viene effettuato l accesso alla RAM e, nello stesso tempo, il blocco di RAM caricato viene trasferito in una delle n linee del set (scelta con modalità FIFO o LRU) e il suo TAG nel corrispondente elemento della CAM. 25
14 Confronti con le altre organizzazioni La soluzione set-associativa, rispetto alla organizzazione a mappatura diretta: è più efficiente (hit rate maggiore): il blocco da rimpiazzare non è predeterminato, ma può essere scelto, tra quelli del set, con un criterio che renda meno probabili i miss; è più costosa: richiede una CAM per ciascun set; rispetto alla organizzazione completamente associativa: è meno efficiente (hit rate inferiore): la scelta del blocco da rimpiazzare non è fatta tra tutti i blocchi della cache, ma è limitata a quelli di un set; è meno costosa: tante (piccole) CAM per ciascun set costano meno di una CAM unica (grande). È un buon compromesso: è la soluzione più diffusa. 26 Livelli di cache Spesso sono presenti più livelli di cache: una cache di 1 livello, ormai sempre integrata nello stesso chip del processore, ad accesso rapidissimo; una cache di 2 livello, talvolta esterna al chip del processore, ad accesso rapido; a volte anche una cache di 3 livello. Lo scopo è di portare nella cache di 1 livello (più vicina al processore) ciò cui il processore accederà nell immediato futuro, spostando in una cache meno veloce (e meno costosa), ma più veloce della RAM, ciò che forse servirà più avanti (in modo da limitare le conseguenze negative dei miss ). 27
15 Gerarchia di memoria Sfruttando il principio di località: si consente l accesso alla velocità della tecnologia più cara, si rende disponibile una grande memoria con tecnologia poco cara. 28 Processor Datapath Control Registers On-Chip Cache Second Level Cache (SRAM) Main Memory (DRAM) Secondary Storage (Disk) Tertiary Storage (Disk) Speed (ns): ,000,000 10,000,000,000 (10 ms) (10 sec) Size (bytes): 100 K M G T Cost: Cache nel chip Intel Xscale PXA il chip contiene: una instruction cache da 32-Kbyte, una data cache da 32-Kbyte, una mini-data cache da 2-Kbyte,
16 PXA 255: instruction cache la instruction cache èda 32-Kbyte, set associativa a 32-vie (32-way set associative cache); ci sono 32 set, ciascuno contenente 32 blocchi (vie) ciascun blocco (line) contiene 8 word da 32-bit (32 byte) più un bit di validità. la politica di rimpiazzo è di tipo FIFO (round-robin algorithm). PXA 255: instruction cache
17 PXA 255: data cache ci sono 2 data cache: una data cache da 32 Kbyte una mini-data cache da 2 Kbyte associato alle 2 cache dati c è inoltre: un write buffer da 8 elementi, ciascuno di 16 byte; che serve a disaccoppiare la velocità di esecuzione delle istruzioni dalla lentezza degli accessi alla memoria esterna. PXA 255: data cache - 2 la data cache èda 32-Kbyte, set associativa a 32-vie (32-way set associative cache); 32 set, ciascuno contenente 32 blocchi (vie) ciascun blocco (line) contiene 8 word da 32-bit (32 byte) più un bit di validità, ci sono 2 dirty bit per ciascun blocco, uno associato ai primi 16 byte, l altro agli altri 16 la politica di rimpiazzo è di tipo FIFO (round-robin algorithm). per l aggiornamento dei blocchi in memoria, può essere impostata la politica copy-back oppure quella write-through. 33
18 PXA 255: data cache PXA 255: mini-data cache - 1 la mini-data cache èda 2-Kbyte, set associativa a 2-vie (2-way set associative cache); ci sono 32 set, ciascuno contenente 2 blocchi (vie), ciascun blocco (line) contiene 8 word da 32-bit (32 byte) più un bit di validità, ci sono 2 dirty bit per ciascun blocco, uno associato ai primi 16 byte, l altro agli altri 16 la politica di rimpiazzo è di tipo FIFO (round-robin algorithm). per l aggiornamento dei blocchi in memoria, può essere impostata la politica copy-back oppure quella writethrough. 35
19 PXA 255: mini-data cache Cache nel chip Samsung S3C2440A Il chip contiene: una instruction cache da 16 Kbyte, una data cache da 16 Kbyte. Entrambe sono set-associative a n=64 vie. Politica di rimpiazzo: round robin (cioè FIFO). Lunghezza di linea: 8 word (l=32 byte). 8 set da 64 x 32 = 2 Kbyte ciascuno La D-cache supporta sia copy-back che write-through. Il write buffer può contenere fino a 16 word di dati e 4 distinti indirizzi. INDIRIZZO DI MEMORIA: indice di pagina TAG 24 bit 32 bit indice di set indice di byte k 3 bit 5 bit
20 Ls sigla è PD32: 32 bit, 8 registri e 1 mouse Sire, tra 6 mesi costerà la metà e sarà veloce il doppio Fine 06.a Memoria Cache
Architettura dei sistemi di elaborazione: La memoria (parte 2)
Architettura dei sistemi di elaborazione: La memoria (parte 2) La cache è una memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale. Memoria Cache La cache e la memoria principale
La gerarchia di Memoria
La gerarchia di Memoria Metodologie di progettazione Hw-Sw- LS. Ing. Informatica Gap delle prestazioni DRAM - CPU 000 CPU 00 0 DRAM 980 98 982 983 984 985 986 987 988 989 990 99 992 993 994 995 996 997
Memoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
Cache: 1 livello della gerarchia di memoria
Cache: 1 livello della gerarchia di memoria Processore Controllo Datapath Registri On chip cache Cache di secondo livello (SRAM) Memoria principale (DRAM) Memoria secondaria (Disco) 4 decisioni da prendere
Criteri di caratterizzazione di una memoria
La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità
Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:
Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può
Struttura delle cache a indirizzamento diretto
Struttura delle cache a indirizzamento diretto Ogni posizione della cache include: Valid bit che indica se questa posizione contiene o meno dati validi. 0: posizione di cache non ancora utilizzata 1: posizione
Capitolo 11 La memoria cache
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
Von Neumann Bottleneck
Von Neumann Bottleneck Gerarchia di memoria Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo
Memorie cache. Gerarchia di memoria Principi Mapping Politiche
Memorie cache Gerarchia di memoria Principi Mapping Politiche Gerarchia di memoria Fino a questo punto abbiamo considerato sistemi così strutturati CPU Registes Prefetch buffer Main Memory dimensione velocità
Le memorie Cache a mappatura diretta e associative
Le memorie Cache a mappatura diretta e associative Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano Riferimento Patterson: 5.2,
Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1
Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria
Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini
Architettura degli Elaboratori 19 Memoria Virtuale Prof. Andrea Sterbini [email protected] Argomenti Argomenti della lezione - Memoria Virtuale - Esercizi Problema: - In un sistema multiprocesso
Lezione 22 La Memoria Interna (1)
Lezione 22 La Memoria Interna (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Dove siamo e dove stiamo andando La gerarchia
Architettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
Esercizi sulle prestazioni delle memorie cache
Esercizi sulle prestazioni delle memorie cache Prof. Alberto Borghese Dott. Massimo Marchi Dipartimento discienzedell Informazione dell [email protected] Università degli Studi di Milano A.A. 2012
Gerarchia di memorie
Gerarchia di memorie Regole base dell'efficienza: - Rendere di massima velocità il caso comune - Piccolo significa (in generale) veloce Nei programmi vi è una significativa presenza di località spaziale
Esercitazione su Gerarchie di Memoria
Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,
