La coherencia
de cache hace referencia a la integridad de los datos almacenados
en las caches locales de los recursos compartidos. La coherencia de la cache es
un caso especial de lacoherencia de
memoria.
En particular las CPUs en un multiprocesador,
mantienen caches de una memoria compartida.
→Los
protocolos:
Los protocolos basados en directorio mantienen los
bloques que hay en las caches. 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 sólo a aquellas caches que
disponen de una copia válida del bloque implicado en la operación de memoria.
El protocolo Snoopy hace que las caches 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
cache invalida su copia. También es posible que el controlador de cache 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.
Varios modelos y protocolos han sido desarrollados para
mantener la coherencia de la cache, tales como protocolo
MSI, protocolo MESI, protocolo
MOSI y el protocolo
MOESI. La elección de un modelo de consistencia es crucial a
la hora de diseñar un sistema de cache coherente. Los modelos de coherencia
difieren en rendimiento y escalabilidad, por lo que deben ser evaluados para
cada sistema diseñado.
No hay comentarios:
Publicar un comentario