Una introducción general a la coherencia de la caché
Resumen: El concepto de coherencia de caché puede ser relativamente nuevo para usted, pero es un concepto de campo informático relativamente importante. Así que hoy, esta página le dará una introducción general a la coherencia de la caché.
Tabla de contenido
Visión general
En la arquitectura de la computadora, la coherencia de la caché es la coherencia de los datos de recursos compartidos, que eventualmente se almacenan en múltiples cachés locales. Pueden ocurrir problemas con datos incoherentes cuando los clientes mantienen cachés de recursos de memoria comunes, especialmente comunes para las CPU en sistemas de multiprocesamiento.
Cada procesador tiene una memoria caché separada en un sistema multiprocesador de memoria compartida. Es probable que tenga muchas copias de los datos compartidos: una copia en la memoria principal y otra en la caché local de cada procesador que la solicite.
Si una de las copias de los datos cambia, las otras copias deben reflejar el cambio. La coherencia de la caché es una disciplina y garantiza que los cambios en los valores de los operandos compartidos (datos) se propaguen rápidamente por todo el sistema.
La siguiente parte enumera los requisitos para la coherencia de la caché.
- Propagación de escritura: Los cambios de datos en cualquier caché deben propagarse a otras copias en el caché equivalente.
- Serialización de transacciones: Todos los procesadores deben ver las lecturas / escrituras en una única ubicación de memoria en el mismo orden.
En teoría, la coherencia se puede implementar en la granularidad de carga / almacenamiento. Sin embargo, en la práctica, generalmente se ejecuta en la granularidad del bloque de caché.
Definición
La coherencia define el comportamiento de lectura y escritura en una única ubicación de dirección. Un tipo de datos que aparecen simultáneamente en las distintas memorias caché se denomina coherencia caché. También se le llama memoria global en algunos sistemas.
En un sistema multiprocesador, más de un procesador ha almacenado en caché una copia de la ubicación de memoria X. Para lograr la coherencia de la caché, es necesario cumplir las siguientes condiciones.
- Cuando el procesador P lee la ubicación X después de la escritura por el mismo procesador Pto X y la escritura en X por otro procesador no aparece entre la instrucción de escritura y lectura de P, X siempre debe devolver un valor escrito por P.
- Cuando el procesador P1 lee la ubicación X, otro procesador escribe de P2 a X, y cualquier otro procesador escribe en X ocurre entre dos accesos, y las lecturas y escrituras están suficientemente separadas. X siempre debe devolver un valor escrito por P2. Esta condición define el concepto de una visión coherente de la memoria. La propagación de escrituras en ubicaciones de memoria compartida asegura que todas las cachés tengan una visión coherente de la memoria. Si el procesador P1 lee el valor anterior de X, podemos decir que la memoria es incoherente incluso después de escribir P2.
Las condiciones anteriores cumplen las condiciones de propagación de escritura necesarias para la coherencia de la caché. Pero no son adecuados porque no cumplen con los criterios de serialización de transacciones.
Mecanismos de coherencia
Hay dos mecanismos más comunes para garantizar la coherencia:fisgón and basado en directorio, cada uno con sus ventajas y desventajas. Si hay suficiente ancho de banda disponible, los protocolos basados en Snooping tienden a ser más rápidos porque todas las transacciones son solicitudes / respuestas que ven todos los procesadores.
La desventaja es que el espionaje no tiene escalabilidad. Cada solicitud debe transmitirse a todos los nodos del sistema, lo que significa que a medida que el sistema crece, el tamaño del bus y el ancho de banda que proporciona deben aumentar.
Por otro lado, los directorios tienden a tener una latencia más larga, con tres solicitudes / reenvíos / respuestas de saltos. Sin embargo, los directorios utilizan mucho menos ancho de banda porque los mensajes son de punto a punto en lugar de difundirse. Como resultado, muchos sistemas grandes adoptan este tipo de coherencia de caché.
Protocolos de coherencia
El protocolo de coherencia aplica la coherencia de la caché en sistemas multiprocesador. El objetivo es garantizar que dos clientes no vean valores diferentes en los mismos datos compartidos.
El protocolo debe alcanzar las exigencias básicas de coherencia, adaptado a los sistemas o aplicaciones de destino.
Los protocolos también se pueden clasificar como snoopy o basados en directorios. Por lo general, los primeros sistemas adoptaron protocolos basados en directorios, donde el directorio rastrea los datos compartidos y los que comparten. Las solicitudes de transacción se envían a todos los procesadores en un protocolo snoopy. Todos los procesadores monitorean las solicitudes y responden de manera adecuada.
Artículo anterior
[2022] Best Watermark Software On Windows Resumen: El concepto de coherencia de caché puede ser relativamente nuevo para usted, pero es un concepto de campo informático relativamente importante. Así que hoy, esto ...Siguiente artículo
El mejor software de OCR en línea en Windows / iOS / Android Resumen: El concepto de coherencia de caché puede ser relativamente nuevo para usted, pero es un concepto de campo informático relativamente importante. Así que hoy, esto ...Acerca de Bitwar Data Recovery
3 pasos para recuperar más de 500 tipos de documentos, fotos, videos, audios y archivos eliminados, formateados o perdidos de diversos escenarios de pérdida de datos.
Más información