Parlami delle regole di funzionamento della cache.
sobes.tech AI
Risposta dell'AI
La cache memorizza copie dei dati per accelerare l'accesso. Regole principali:
-
Regola di località (Locality of Reference):
- Località temporale: Se un elemento di dati è stato usato di recente, probabilmente sarà usato di nuovo a breve.
- Località spaziale: Se un elemento di dati è stato usato, probabilmente anche gli elementi vicini saranno usati a breve.
-
Politiche di sostituzione della cache (Cache Replacement Policies): Determinano quale blocco di dati eliminare quando la cache è piena e si necessita di spazio per nuovi dati. Politiche comuni:
- FIFO (First-In, First-Out): Si elimina il blocco più "vecchio".
- LRU (Least Recently Used): Si elimina il blocco che è stato usato meno recentemente.
- LFU (Least Frequently Used): Si elimina il blocco usato meno frequentemente.
-
Politiche di scrittura della cache (Cache Writing Policies): Determinano quando le modifiche nella cache vengono sincronizzate con la memoria principale.
- Write-Through: I dati vengono scritti contemporaneamente nella cache e nella memoria principale. Garantisce coerenza, ma è più lento.
- Write-Back: I dati vengono prima scritti solo nella cache. La memoria principale viene aggiornata più tardi, quando il blocco viene rimosso dalla cache o marcato esplicitamente come "sporco" (modificato). È più veloce, ma richiede un meccanismo per tracciare le modifiche.
-
Gestione dei cache miss (Cache Miss Handling): Determinano come il sistema reagisce quando i dati richiesti non sono nella cache.
- Il sistema estrae i dati dal livello successivo di memoria (ad esempio, dalla memoria principale).
- I dati vengono caricati nella cache (sostituendo eventualmente un blocco esistente), e poi forniti al processo richiedente.
-
Regole di coerenza (Cache Coherence Rules): Importanti nei sistemi multiprocessore, dove più processori possono avere copie degli stessi dati nelle loro cache locali. Garantisce la coerenza dei dati tra tutte le cache. Esempi di protocolli: MSI, MESI.
-
Regole di invalidazione/aggiornamento (Cache Invalidation/Update): Quando un dato viene modificato in un luogo (ad esempio, nella cache di un processore), è necessario invalidare (rendere invalida) la copia nelle altre cache o aggiornarla, per evitare l'uso di dati obsoleti.