Coherencia de caché

La coherencia de caché hace referencia a la integridad de los datos almacenados en las cachés locales de los recursos compartidos. La coherencia de la caché es un caso especial de la coherencia de memoria.

Múltiples cachés con recursos comunes.

Cuando los clientes de un sistema, en particular las CPUs en un multiprocesador, mantienen cachés de una memoria compartida, los conflictos crecen. Haciendo referencia al dibujo, si el cliente de arriba tiene una copia de un bloque de memoria de una lectura previa y el cliente de abajo cambia ese bloque, el cliente de arriba podría estar trabajando con datos erróneos, sin tener conocimiento de ello. La coherencia de la caché intenta administrar estos conflictos y mantener consistencia entre las cachés y la memoria.

Mecanismos para la coherencia de la caché

Los protocolos basados en directorio mantienen un directorio centralizado de los bloques que hay en las cachés. Se utilizan tanto en multiprocesadores con memoria físicamente distribuida, como en sistemas con memoria centralizada con red escalable. Estos protocolos de mantenimiento de coherencia reducen el tráfico en la red enviando selectivamente órdenes solo a aquellas cachés que disponen de una copia válida del bloque implicado en la operación de memoria.

El protocolo Snoopy hace que las cachés individualmente monitoreen las líneas(buses) de direcciones de accesos a memoria con respecto a los bloques que han copiado. Cuando una operación de escritura es observada sobre una dirección de un bloque del cual tiene un bloque, el controlador de caché invalida su copia. También es posible que el controlador de caché observe la dirección y el dato correspondiente a esa dirección, intentando así actualizar su copia cuando alguien modifica dicho bloque en la memoria principal.

El protocolo de memoria distribuida imita a los anteriores en un intento de mantener la consistencia entre bloques de memoria en sistemas con débil acoplamiento.

Other Languages