sábado, 2 de mayo de 2015

Coherencia de Caché

Coherencia de Caché

En informática, la coherencia de caché se refiere a la coherencia de los datos almacenados en las memorias caché locales de un recurso compartido.
En un sistema multiprocesador de memoria compartida con una memoria caché separada para cada procesador, es posible tener muchas copias de cualquier un operando de instrucción: una copia en la memoria principal y uno en cada memoria caché. Cuando se modifica una copia de un operando, las otras copias del operando se debe cambiar también. Coherencia de caché es la disciplina que asegura que los cambios en los valores de los operandos compartidos se propagan por todo el sistema en el momento oportuno.
Hay tres niveles diferentes de coherencia de caché:



  • Cada operación de escritura parece ocurrir instantáneamente
  • Todos los procesadores ver exactamente la misma secuencia de los cambios de los valores para cada operando separada
  • Diferentes procesadores pueden ver una operación y asumir diferentes secuencias de valores

  • Tanto en el nivel 2 el comportamiento y el nivel de comportamiento 3, un programa puede observar datos obsoletos. Recientemente, los diseñadores de computadoras han llegado a darse cuenta de que la disciplina de programación requerido para hacer frente a la conducta de nivel 2 es suficiente para lidiar también con el comportamiento de nivel 3. Por lo tanto, en algún momento sólo el nivel 1 y el comportamiento del nivel 3 se verá en máquinas.

    Mecanismos de coherencia de caché

    • Coherencia basada Directory: En un sistema basado en directorios, que los datos sean compartidos se coloca en un directorio común que mantiene la coherencia entre los cachés. El directorio actúa como un filtro a través del cual el procesador debe pedir permiso para cargar una entrada de la memoria principal a la memoria caché. Cuando se modifica una entrada del directorio ni actualizaciones o invalida las otras cachés con esa entrada.
    • IGMP es el proceso en el que los cachés individuales monitorear las líneas de dirección para los accesos a los lugares de memoria que tienen en caché. Se llama un protocolo de invalidación de escritura cuando se observa una operación de escritura en un lugar que una caché tiene una copia y el controlador de memoria caché invalida su propia copia de la posición de memoria snooped.
    Un filtro snoop reduce el tráfico IGMP mediante el mantenimiento de una pluralidad de entradas, cada uno representando una línea de caché que puede ser adquirido por uno o más nodos. Cuando sea necesario reemplazar una de las entradas, el filtro snoop selecciona para el reemplazo de la entrada representa la línea o líneas de propiedad de los nodos de menor cantidad, determinada a partir de un vector de presencia en cada una de las entradas de caché. Un tipo temporal o de otro tipo de algoritmo se utiliza para refinar la selección si más de una línea de caché es poseído por el menor número de nodos.
    • Snarfing es donde un controlador de memoria caché observa tanto la dirección y los datos en un intento de actualizar su propia copia de una ubicación de memoria cuando un segundo maestro modifica una ubicación en la memoria principal. Cuando se observa una operación de escritura en un lugar que una caché tiene una copia, el controlador de memoria caché actualiza su propia copia de la posición de memoria snarfed con los nuevos datos.
    Sistemas de memoria compartida distribuida imitan estos mecanismos en un intento de mantener la coherencia entre los bloques de memoria en los sistemas débilmente acoplados.
    Los dos tipos más comunes de la coherencia que se estudian normalmente son IGMP y el Directorio de base, cada uno con sus propias ventajas y desventajas. Protocolos Snooping tienden a ser más rápido, si hay suficiente ancho de banda disponible, ya que todas las transacciones son una respuesta de solicitud/visto por todos los procesadores. El inconveniente es que snooping no es escalable. Cada solicitud debe ser transmitido a todos los nodos en un sistema, lo que significa que a medida que el sistema se hace más grande, el tamaño del bus y el ancho de banda que proporciona debe crecer. Directorios, por otra parte, tienden a tener latencias más largas pero el uso de mucho menos ancho de banda ya que los mensajes son punto a punto y no transmiten. Por esta razón, muchos de los sistemas más grandes utilizan este tipo de coherencia de caché.

    Referencia
    http://docsetools.com/articulos-informativos/article_70643.html


    No hay comentarios:

    Publicar un comentario