Coherencia de caché


En la arquitectura de la computadora , la coherencia de la caché es la uniformidad de los datos de recursos compartidos que terminan almacenados en múltiples cachés locales . Cuando los clientes de un sistema mantienen cachés de un recurso de memoria común, pueden surgir problemas con datos incoherentes, que es particularmente el caso de las CPU en un sistema de multiprocesamiento .

En la ilustración de la derecha, considere que ambos clientes tienen una copia en caché de un bloque de memoria en particular de una lectura anterior. Suponga que el cliente en la parte inferior actualiza / cambia ese bloque de memoria, el cliente en la parte superior podría quedarse con un caché de memoria no válido sin ninguna notificación del cambio. La coherencia de la caché está destinada a gestionar dichos conflictos manteniendo una vista coherente de los valores de los datos en varias cachés.

En un sistema multiprocesador de memoria compartida con una memoria caché separada para cada procesador, es posible tener muchas copias de datos compartidos: una copia en la memoria principal y otra en la caché local de cada procesador que lo solicitó. Cuando se cambia una de las copias de datos, las otras copias deben reflejar ese cambio. La coherencia de la caché es la disciplina que garantiza que los cambios en los valores de los operandos compartidos (datos) se propaguen por todo el sistema de manera oportuna. [1]

Teóricamente, la coherencia se puede realizar en la granularidad de carga / almacenamiento . Sin embargo, en la práctica, generalmente se realiza con la granularidad de los bloques de caché. [3]

Un tipo de datos que ocurren simultáneamente en diferentes memorias caché se denomina coherencia caché o, en algunos sistemas, memoria global.

En un sistema multiprocesador, considere que más de un procesador ha almacenado en caché una copia de la ubicación de memoria X. Las siguientes condiciones son necesarias para lograr la coherencia de la caché: [4]


Una ilustración que muestra múltiples cachés de alguna memoria, que actúa como un recurso compartido
Cachés incoherentes: los cachés tienen diferentes valores de una única ubicación de dirección.
Cachés coherentes: el valor en todas las copias de los cachés es el mismo.