Skip to main content

¿Qué es la coherencia de caché?

La coherencia de la memoria caché es el problema natural que se desarrolla cuando múltiples agentes acceden y alteran el conjunto de datos de un sistema. El área principal de la arquitectura de la computadora donde esto se convierte en un problema es en las computadoras multiprocesador. Cada procesador en una computadora multiprocesador tiene su propio caché que carga y almacena información de la memoria de acceso aleatorio (RAM). Cuando dos procesadores acceden a la misma área de memoria, la coherencia de caché se perdería si no se toman ciertas precauciones.

Sin coherencia de caché, un sistema multiprocesador no podría funcionar. Se han desarrollado varios métodos para abordar este problema y evitar posibles problemas. La coherencia basada en directorios, la indagación y la indagación son tres métodos que se utilizan para evitar la pérdida de coherencia de caché.

La coherencia basada en directorios funciona como un filtro para garantizar la coherencia. Los datos se colocan dentro de una porción de memoria que es accesible para todos los procesadores. Cuando se cambia la información almacenada dentro de esa área de memoria, el sistema actualizará los cachés o los invalidará.

La indagación requiere que el procesador monitoree todos los accesos a las ubicaciones de memoria que se han almacenado en caché. Esto permite que el procesador sepa cuándo se produjo una operación de escritura. Al saber cuándo ocurre una operación de escritura, el procesador puede actualizar su caché.

Snarfing es bastante similar a fisgonear. Snarfing implica no solo monitorear los accesos a las ubicaciones de memoria que se han almacenado en caché, sino también monitorear la información real almacenada en la memoria. Cuando se produce una escritura en la memoria, la memoria caché se puede actualizar con la nueva información.

Los sistemas de coherencia basados ​​en directorios tienen una latencia relativamente alta, lo que resulta en un procesamiento más lento. Los requisitos de ancho de banda más bajos permiten que los sistemas de coherencia basados ​​en directorios sean prácticos en aplicaciones de coherencia de caché a gran escala. Cuantos más procesadores use un sistema, más ventajas puede tener al usar un sistema de coherencia basado en directorios.

La indagación es un método mucho más rápido. Este método requiere más ancho de banda que el enfoque basado en directorios. Este método puede usarse de manera efectiva en sistemas que tienen relativamente pocos procesadores.

Snarfing no se usa generalmente como un método para mantener la coherencia de caché. Esto se debe principalmente a que el snarfing requiere que se utilicen más recursos en comparación con los métodos basados ​​en directorios y snooping. Para que un sistema snarfing funcione, debe realizar un seguimiento tanto de las direcciones de memoria como de los datos almacenados en esas áreas de la memoria. La cantidad de ancho de banda y el procesamiento que ocupa este método lo hace indeseable para la mayoría de las aplicaciones de mantener la coherencia de caché.