Spagnolo Inglese
11365 Users    

Uno sguardo alla memoria cache

  Download in PDF
Uno sguardo alla memoria cache

1.Memoria cache - Aspetti Generali

Il tempo di accesso per la cache è almeno 10 volte più piccolo di quello della memoria principale. A causa della sua tecnologia molto costosa, le dimensioni sono limitate. Per raggiungere alte prestazioni gli indirizzi hanno bisogno di essere allocate il più delle volte nella cache. La terminologia utilizzata per l’efficienza della cache è “Hit rate” (l’hit rate rappresenta il rapporto tra il numero di indirizzi ai quali la cache accede e il numero totale di indirizzamenti durante un determinato tempo). L’opposto dell’hit rate è chiamato “Miss Rate” che può essere determinato dalla formula Miss Rate = 1 – Hit Rate.

Data Transfer
Fig.1 Data Transfer

Speed Access
Fig.2 Speed Access

2.Come valutare le prestazioni della memoria cache?

Accesso -> operazioni di lettura/scrittura
Hit -> il dato si trova nella cache
Miss -> il dato no si trova nella cache, accesso ad una memoria più lenta
Miss_Rate -> n. di miss / n. di accessi
Hit_Rate -> n. di hit / n. di accessi

Esempio:
Tempo di accesso (cache) = 1ns
Tempo di accesso (memoria principale) = 10ns
Hit_Rate = 90% ( su 100 accessi, 90 sono nella cache)
Tempo di accesso (con la cache) = 90*1+10*1 = 100ns
Tempo di accesso (senza la cache) = 100*10 = 1000ns
Incremento di velocità = 100/10 = 10
Aumenta l’hit rate -> aumentano le prestazioni della cache -> diminuisce il consumo di energia -> aumenta la velocità di esecuzione.

3. Tipi di Miss
Compulsory miss – inizialmente la cache è vuota e il primo accesso è sempre un miss. Il programma ha bisogno di eseguire alcuni cicli fino a che la cache sarà piena e questo tipo di miss non si verificherà più.
Conflict miss – questo tipo si verifica solo sulle cache di tipo direct-map e solitamente avviene perché il dato si trova in diverse locazioni della cache.
Capacity miss – avviene perché la cache è piena e necessira di fare spazio per i dati attuali eliminando altri dati dalla cache; nella maggior parte dei casi sono dati vecchi.

CPU DIE
Fig.3 CPU Die

4.Architetture della cache

La cache è suddivisa in “linee” che hanno 4 componenti:
- Valid bit: è posto a 1 quando dati validi sono memorizzati nella cache.
- Dirty Bit: è posto a 1 quando i dati vengono modificati e non avviene un aggiornamento nella memoria principale allo stesso tempo.
- Tag: questo campo indica quale indirizzo è presente in quella linea.
- Data: i dati prelevati dalla memoria principale.
Direct Mapped – ogni blocco dalla memoria principale può occupare solo un particolare blocco nella cache, non importa se quel blocco è vuoto o meno. Questo modello di organizzazione della cache non richiede una politica di sostituzione.
Fully Associative – ogni blocco dalla memoria principale può occupare qualunque blocco della cache. Se la cache è piena allora una politica di sostituzione ha bisogno di decidere quali dati devono essere rimossi dalla cache per fare spazio a questo nuovo blocco di dati.
Set Associative – la cache è divisa in vari insiemi. Il nuovo dato può occupare solo i blocchi di un particolare insieme, determinato da alcuni bit dell’indirizzo. In pratica è la più usata a causa di un ottimo rapporto tra implementazione ed efficienza.

5.Gestione della cache
La memoria cache ha piccole dimensioni comparata alla memoria principale di un qualunque sistema. Sapendo che il tempo di accesso della cache è 10 volte più piccolo della memoria esterna, prelevare dati dalla cache è un enorme vantaggio. Il processo di eliminare dati dalla cache per farne spazio a nuovi è chiamato “Algoritmo di sostituzione della cache”.

Oggi ci sono molti tipi di algoritmi che sono implementati nei controller delle cache. Alcuni di essi sono:
-LRU (Least Recently Used – usati meno recentemente) – Sostituisce i dati che non sono stati utilizzati per il periodo più lungo. LRU è implementato con una lista linkata.
-LFU (Least Frequently Used – usati meno frequentemente) – Ogni linea della cache ha un contatore che è incrementato ogni volta che il dato viene richiesto dalla cache.
- FIFO (First In First Out – il primo ad entrare è l primo ad uscire) – E’ molto semplice da implementare, ma ha un problema quando la memoria fisica è maggiore (Anomalia di Belady).
ARC (Adaptive Replacement Cache – Rimpiazzamento adattativo della cache) – combina le soluzioni LRU e LFU e dinamicamente si regola tramite queste due.

6.Ottimizzazione della cache

Usare un algoritmo per la gestione delle prestazioni della cache può essere significativamente incrementata usando i vantaggi di altri due princìpi:
-Località spaziale – Il dato richiesto dalla cache è posizionato vicino il dato precedente usato nella memoria fisica.
-Località temporale – I dati richiesti dalla cache sono recentemente usati o riutilizzati.

Alcune soluzioni molto spesso usano questi due metodi sono il prefetching, il loop blocking e la fusione, l’array pudding e l’array merging.

Leggi la versione Inglese: Memory Cache - Overview by RarCod

Commenta!Feed Rss

Cache di livello 1, 2, e 3

Leggendo le caratteristiche tecniche dei microprocessori installati a bordo dei recenti personal computer, vi sara' capitato di sentire parlare di cache di livello 1, 2 o anche 3. Cosa significano questi termini?
La cache di livello 1 e' quella realizzata il piu' vicino possibile al processore, anzi normalmente viene realizzata all'interno dello stesso chip. Ne consegue che questa risulta essere la memoria cache piu' veloce, e gli accessi possono essere effettuati alla velocita' del micro anziche' a quella del bus. Questa cache e' la piu' veloce ma anche la piu' piccola. Esiste poi un'altra cache realizzata sulla motherboard, la cache di livello 2, realizzata con piccoli banchi ad accesso molto veloce. Alcuni micro hanno poi due cache interne on-chip: in questo caso L1 e L2 sono riferiti alle cache del micro, mentre L3 fa riferimento alla cache sulla motherboard.

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

Articoli di elettronica correlati

  • Tempo di latenza della cache L1 e L2, confrontato con la RAM e l'Hard Disk (HDD). Manca solo il confronto della latenza con SSD, che abbiamo aggiunto noi.

  • L'IBM presenta il suo nuovo processore per sistemi server, POWER7 con 1,2 miliardi di transistor e 567mm2 a 45 nanometri. Si tratta di un chip con 8-core, in cui ognuna di queste unità supporta fino a quattro thread "simultaneous multithreading", per un totale di 32 thread per chip.

  • i.MX25 della Freescale per il mercato industriale e automobilistico

  • La famiglia di prodotti i.MX35x lancia il portafoglio ARM11 della Freescale in applicazioni industriali fornendo le funzionalità del prodotto, la qualità di esso e la longevità del dispositivo richiesti dai clienti.

  • Il Core i7 è la più nuova serie di processori della Intel e comprende il Core i7 965, 940 e 920. Il Core i7 920, come gli altri processori 965 e 940, adotta la nuova tecnologia Nehalem ed ha una cache memory di 8 MB, un bus di circa 6Gbytes/sec, un socket LGA (Lan Grid Array) 1366 e un TDP (Thermal Design Power) di 130 W.

Commenti recenti

Nuovi utenti

  • franckys58
  • harrison3001
  • Edi82
  • 1lampo1
  • Marco Inzolia
  • sante44
  • bassanocarrelli
  • swutz

Chi è online

Ci sono attualmente 1 utente e 18 visitatori collegati.

Utenti online

  • Agutu