Cos'è la coerenza della cache?
La coerenza della cache è il problema naturale che si sviluppa quando si accede e alterati un set di dati di un sistema da più agenti. L'area principale dell'architettura del computer in cui questo diventa un problema è nei computer multiprocessore. Ogni processore in un computer multiprocessore ha la sua cache che carica e memorizza le informazioni dalla memoria di accesso casuale (RAM). Quando due processori accedono alla stessa area di memoria, la coerenza della cache andrebbe persa se non fossero prese alcune precauzioni.
Senza coerenza della cache, un sistema multiprocessore non sarebbe in grado di funzionare. Esistono diversi metodi che sono stati sviluppati per affrontare questo problema ed evitare potenziali problemi. La coerenza, il snooping e il snarf basati su directory sono tre metodi che vengono utilizzati per prevenire la perdita di coerenza della cache.
La coerenza basata sulla directory funziona come filtro per garantire la coerenza. I dati vengono inseriti all'interno di una parte della memoria accessibile a tutti i processori. Quando le informazioni che ioS memorizzato all'interno di quell'area della memoria, il sistema aggiornerà le cache o le invaliderà.
Snooping richiede al processore di monitorare tutti gli accessi alle posizioni di memoria che sono state memorizzate nella cache. Ciò consente al processore di sapere quando si è verificata un'operazione di scrittura. Sapendo quando si verifica un'operazione di scrittura, il processore può aggiornare la sua cache.
Il ringhio è abbastanza simile allo snooping. Il snarfing implica non solo il monitoraggio degli accessi alle posizioni di memoria che sono state memorizzate nella cache, ma anche il monitoraggio delle informazioni reali che vengono memorizzate nella memoria. Quando si verifica una scrittura di memoria, la cache può essere aggiornata con le nuove informazioni.
I sistemi di coerenza basati sulla directory hanno una latenza relativamente elevata, con conseguente elaborazione più lenta. I requisiti di larghezza di banda inferiori consentono ai sistemi di coerenza basati sulla directory di essere pratici in applicazioni su larga scala della coerenza della cache. LoroProcessori minerali che utilizza un sistema, più vantaggi può avere dall'uso di un sistema di coerenza basato sulla directory.
Snooping è un metodo molto più veloce. Questo metodo richiede più larghezza di banda rispetto all'approccio basato sulla directory. Questo metodo è in grado di essere utilizzato in modo efficace nei sistemi che hanno relativamente pochi processori.
Il ringhing non è generalmente usato come metodo per mantenere la coerenza della cache. Ciò è principalmente dovuto al fatto che il ringhio richiede più risorse rispetto ai metodi di snooping e di directory. Affinché un sistema di ringhio funzioni, deve tenere traccia sia degli indirizzi di memoria che dei dati memorizzati in quelle aree di memoria. La quantità di larghezza di banda ed elaborazione che viene presa da questo metodo lo rende indesiderabile per la maggior parte delle applicazioni di mantenimento della coerenza della cache.