vale1411
Genius
3 min. di lettura
Vota

Concetti Chiave

  • La memoria cache è una memoria veloce e limitata posta tra CPU e RAM per migliorare i tempi di accesso.
  • Il funzionamento della cache si basa sulla presenza di 'cache hit' per un accesso rapido, mentre 'cache miss' comporta un rallentamento.
  • La gestione della cache utilizza località spaziale e temporale, con politiche di allocazione e rimpiazzamento come LRU.
  • Nelle architetture moderne si utilizzano più livelli di cache (L1, L2, L3) per ottimizzare costi e prestazioni.
  • La cache è integrata nella CPU o nel suo package, permettendo comunicazioni veloci senza contese.

Memoria Cache

La memoria principale è costituita da DRAM, più lenta della CPU, e questo causa un rallentamento, problema che persiste anche se la banda di trasferimento con memorie DDR è elevata, poiché la latenza iniziale è quasi sempre maggiore di 10 ns. Inoltre, nel calcolo della latenza totale si deve considerare il tempo di recupero dei dati e il controller della memoria (se integrato nel North Bridge).
Uno dei modi per risolvere questo problema è quello di usare SDRAM invece che DRAM, poiché le prime sono più veloci ma sono anche più costose.


Per questo vengono introdotte le cache, cioè una memoria veloce con dimensioni di limitate che si trova tra CPU e RAM.

Il principio di funzionamento consiste nel:
- la CPU reperisce i dati sempre dalla cache, come se potesse contenere tutte le informazioni presenti in RAM
- se la parola desiderata è presente nella cache (cache hit) c'è un vantaggio di tempo di accesso
- se la parola non è presente (cache miss) la parola deve essere trasferita da DRAM a cache e poi è letta, operazione risulta più lenta, quindi l'utilizzo della cache è vantaggioso solo quando c'è una percentuale di hit alta.
Per caricare un dato in presenza di cache:
- si richiede il dato alla cache
- se presente si carica subito
- altrimenti si legge il dato nella memoria e si carica nella cache, se cache piena si applica la politica di rimpiazzamento
Lo spostamento dei dati tra memoria e cache non avviene per parole ma per blocchi chiamate linee di cache, di dimensioni variabili tra 8 e 512 parole.
Per la tecnica di gestione (allocazione e rimpiazzamento di cache) si utilizzano:
- località spaziale, c'è un'alta probabilità di accedere in breve tempo a celle di memoria con indirizzo vicino. La politica di allocazione consente di leggere più dati di quelli necessari poiché potrebbero essere necessari in seguito visto che sono vicini
- località temporale, c'è un'alta probabilità di accedere nuovamente in breve tempo a una cella di memoria a cui si ha già avuto l'accesso. La politica di rimpiazzamento consente di decidere quale blocco rimpiazzare in caso di necessità, di solito si usa politica di LRU (Least Recently Used)
Negli elaboratori attuali vengono usate più cache:
- ci sono diversi livelli di cache (L1, L2,...) usate a cascata per ottimizzare il trade-off costi/prestazioni (di solito ci sono due livelli di cache, la cache L1 è la più veloce ma anche la meno capiente)
- ci sono cache diverse usate per istruzioni e per dati con località diverse
Microarchitettura a 3 livelli di cache:
- ci sono una piccola cache dati (L1-D) e una indirizzi (L1-I) all’interno della CPU
- c’è la cache di livello 2 assemblata al package della CPU
- c’è la cache di livello 3 presente nella scheda madre
La presenza di cache all’interno della CPU o nel suo package consente di usare bus riservati molto veloci dove non ci sono contese.

Domande da interrogazione

  1. Qual è il problema principale della memoria DRAM rispetto alla CPU?
  2. La DRAM è più lenta della CPU, causando un rallentamento, nonostante l'elevata banda di trasferimento delle memorie DDR, a causa della latenza iniziale superiore a 10 ns.

  3. Come funziona il principio della cache per migliorare le prestazioni?
  4. La CPU accede sempre ai dati dalla cache; se i dati sono presenti (cache hit), l'accesso è veloce, altrimenti (cache miss) i dati devono essere trasferiti dalla DRAM alla cache, rallentando l'operazione.

  5. Quali sono le tecniche di gestione della cache menzionate nel testo?
  6. Le tecniche includono la località spaziale, che prevede l'accesso a celle di memoria vicine, e la località temporale, che prevede l'accesso ripetuto a celle già utilizzate, con politiche di rimpiazzamento come LRU.

  7. Quali sono i livelli di cache utilizzati negli elaboratori attuali?
  8. Gli elaboratori attuali utilizzano più livelli di cache (L1, L2, L3) per ottimizzare il rapporto costi/prestazioni, con cache separate per istruzioni e dati e una microarchitettura a 3 livelli di cache.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community