Skip to main content

Cos'è la coerenza della cache?

La coerenza della cache è il problema naturale che si sviluppa quando si accede a un set di dati di 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.Coerenza, snooping e snarf basate sulla directory sono tre metodi che vengono utilizzati per prevenire la perdita di coerenza della cache. La coerenza basata sulla directory funziona come filtro al fine di garantire la coerenza.I dati vengono inseriti all'interno di una parte della memoria accessibile a tutti i processori.Quando le informazioni memorizzate all'interno di quell'area della memoria vengono modificate, il sistema aggiornerà le cache o le invaliderà.

Snooping richiede al processore di monitorare tutti gli accessi alle posizioni della 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 effettive memorizzate nella memoria.Quando si verifica una scrittura di memoria, la cache può essere aggiornata con le nuove informazioni. I sistemi di coerenza basati su 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.Più processori utilizza un sistema, più vantaggi può avere dall'uso di un sistema di coerenza basato sulla directory.

Il 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 training 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 con questo metodo lo rende indesiderabile per la maggior parte delle applicazioni di mantenimento della coerenza della cache.