Sobes.tech
Middle

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  6. 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.