Che cosa è Cache Coerenza?

La coerenza della cache è il problema naturale che si sviluppa quando insieme di dati di un sistema si accede e alterato da più agenti. La principale area di architettura computer in cui questo diventa un problema è in computer multiprocessore. Ogni processore in un computer multiprocessore ha la propria cache che carica e memorizza le informazioni dalla memoria ad accesso casuale (RAM). Quando due processori stanno accedendo alla stessa area di memoria, cache di coerenza sarebbe persa se non sono state prese alcune precauzioni.

Senza coerenza della cache, un sistema multiprocessore sarebbe in grado di funzionare. Ci sono diversi metodi che sono stati sviluppati al fine di affrontare la questione e di evitare potenziali problemi. Elenco a base di coerenza, snooping e Snarfing sono tre metodi che vengono utilizzati per prevenire la perdita di coerenza della cache.

Coerenza Directory basata funziona come un filtro per assicurare la coerenza. Dati è collocato all'interno di una porzione di memoria che è accessibile a tutti i processori. Quando le informazioni che sono memorizzate in tale area di memoria viene modificato, il sistema sarà o aggiornare le cache o invalidare.

Snooping richiede il processore di monitorare tutti gli accessi alle locazioni di memoria che sono stati memorizzati nella cache. Questo permette al processore di sapere quando si è verificato un operazione di scrittura. Conoscendo quando si verifica un'operazione di scrittura, il processore può aggiornare la cache.

Snarfing è molto simile a curiosare. Snarfing non comporta solo il monitoraggio degli accessi alle locazioni di memoria che sono stati memorizzati nella cache, ma il monitoraggio anche le informazioni effettive che viene memorizzato nella memoria. Quando si verifica una scrittura memoria, la cache può essere aggiornato con le nuove informazioni.

Sistemi di coerenza basata su directory hanno una relativamente alta di latenza, con conseguente trasformazione lenta. Requisiti di larghezza di banda inferiori consentono sistemi di coerenza di directory-based per essere pratico in applicazioni su larga scala di coerenza della cache. I più processori che un sistema utilizza, i maggiori vantaggi si possono avere da utilizzando un sistema coerente basata su directory.

Snooping è un metodo molto più veloce. Questo metodo richiede più larghezza di banda rispetto all'approccio basato su directory. Questo metodo è in grado di essere utilizzata efficacemente in sistemi che hanno relativamente pochi processori.

Snarfing non viene solitamente utilizzato come metodo per mantenere coerenza della cache. Ciò è dovuto soprattutto Snarfing richiede più risorse da utilizzare rispetto ad entrambi snooping e metodi di directory-based. Affinché un sistema Snarfing lavorare, deve tenere traccia di entrambi gli indirizzi di memoria ei dati memorizzati in dette aree di memoria. La quantità di larghezza di banda e di elaborazione che viene ripreso con questo metodo rende indesiderabile per la maggior parte delle applicazioni di mantenimento della cache coerenza.