b'\n_START_ARTICLE_\nCoherencia de cach\xc3\xa9\n_START_PARAGRAPH_\nLa coherencia de cach\xc3\xa9 hace referencia a la integridad de los datos almacenados en las cach\xc3\xa9s locales de los recursos compartidos. La coherencia de la cach\xc3\xa9 es un caso especial de la coherencia de memoria._NEWLINE_Cuando los clientes de un sistema, en particular las CPUs en un multiprocesador, mantienen cach\xc3\xa9s 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\xc3\xada estar trabajando con datos err\xc3\xb3neos, sin tener conocimiento de ello. La coherencia de la cach\xc3\xa9 intenta administrar estos conflictos y mantener consistencia entre las cach\xc3\xa9s y la memoria.\n_START_SECTION_\nMecanismos para la coherencia de la cach\xc3\xa9\n_START_PARAGRAPH_\nLos protocolos basados en directorio mantienen un directorio centralizado de los bloques que hay en las cach\xc3\xa9s. Se utilizan tanto en multiprocesadores con memoria f\xc3\xadsicamente distribuida, como en sistemas con memoria centralizada con red escalable. Estos protocolos de mantenimiento de coherencia reducen el tr\xc3\xa1fico en la red enviando selectivamente \xc3\xb3rdenes solo a aquellas cach\xc3\xa9s que disponen de una copia v\xc3\xa1lida del bloque implicado en la operaci\xc3\xb3n de memoria._NEWLINE_El protocolo Snoopy hace que las cach\xc3\xa9s individualmente monitoreen las l\xc3\xadneas(buses) de direcciones de accesos a memoria con respecto a los bloques que han copiado. Cuando una operaci\xc3\xb3n de escritura es observada sobre una direcci\xc3\xb3n de un bloque del cual tiene un bloque, el controlador de cach\xc3\xa9 invalida su copia. Tambi\xc3\xa9n es posible que el controlador de cach\xc3\xa9 observe la direcci\xc3\xb3n y el dato correspondiente a esa direcci\xc3\xb3n, intentando as\xc3\xad actualizar su copia cuando alguien modifica dicho bloque en la memoria principal._NEWLINE_El protocolo de memoria distribuida imita a los anteriores en un intento de mantener la consistencia entre bloques de memoria en sistemas con d\xc3\xa9bil acoplamiento.\n_START_SECTION_\nModelos de coherencia\n_START_PARAGRAPH_\nVarios modelos y protocolos han sido desarrollados para mantener la coherencia de la cach\xc3\xa9, tales como protocolo MSI, protocolo MESI, protocolo MOSI y el protocolo MOESI. La elecci\xc3\xb3n de un modelo de consistencia es crucial a la hora de dise\xc3\xb1ar un sistema de cach\xc3\xa9 coherente. Los modelos de coherencia difieren en rendimiento y escalabilidad, por lo que deben ser evaluados para cada sistema dise\xc3\xb1ado._NEWLINE_Adem\xc3\xa1s, las transiciones entre estados en una implementaci\xc3\xb3n en concreto de estos protocolos puede variar. Por ejemplo una implementaci\xc3\xb3n puede elegir diferentes transiciones para actualizar y actualiza tales como actualizaci\xc3\xb3n-en-lectura, actualizaci\xc3\xb3n-en-escritura, invalidaci\xc3\xb3n-en-lectura, o invalidaci\xc3\xb3n-en-escritura. La elecci\xc3\xb3n de una transici\xc3\xb3n puede afectar a la cantidad de tr\xc3\xa1fico entre cach\xc3\xa9s, lo que a su vez podr\xc3\xada afectar al ancho de banda disponible por las cach\xc3\xa9s para la operaci\xc3\xb3n actual. Esto debe ser tenido en consideraci\xc3\xb3n en el dise\xc3\xb1o de software distribuido que podr\xc3\xada causar problemas de contenci\xc3\xb3n entre cach\xc3\xa9s de m\xc3\xbaltiples procesadores.'