Protocolos de coherencia de caché en un sistema multiprocesador

Requisito previo: memoria caché
En un sistema multiprocesador donde muchos procesos necesitan una copia del mismo bloque de memoria, el mantenimiento de la coherencia entre estas copias plantea un problema denominado problema de coherencia de caché.
Esto ocurre principalmente debido a estas causas: –

  • Compartir datos de escritura.
  • Proceso de migración.
  • Inconsistencia debido a E/S.

Protocolos de coherencia de caché:
Estos se explican a continuación:

1. Protocolo MSI:
Este es un protocolo de coherencia de caché básico que se utiliza en un sistema multiprocesador. Las letras del nombre del protocolo identifican los posibles estados en los que puede encontrarse una caché. Entonces, para MSI, cada bloque puede tener uno de los siguientes estados posibles:

  • Modificado:
    el bloque se ha modificado en la memoria caché, es decir, los datos en la memoria caché no son coherentes con el almacenamiento de respaldo (memoria). Por lo tanto, un caché con un bloque en estado «M» tiene la responsabilidad de escribir el bloque en el almacén de respaldo cuando se desaloje.
  • Compartido:
    este bloque no se modifica y está presente en al menos un caché. El caché puede desalojar los datos sin escribirlos en el almacén de respaldo.
  • No válido:
    este bloque no es válido y debe obtenerse de la memoria o de otro caché si se va a almacenar en este caché.

2. Protocolo MOSI:
este protocolo es una extensión del protocolo MSI. Agrega el siguiente estado en el protocolo MSI:

  • Propiedad:
    indica que el procesador actual es propietario de este bloque y atenderá las requests de otros procesadores para el bloque.

3. Protocolo MESI:
es el protocolo de coherencia de caché más utilizado. Cada línea de caché está marcada con uno de los siguientes estados:

  • Modificado:
    esto indica que la línea de caché está presente solo en el caché actual y está sucia, es decir, su valor es diferente al de la memoria principal. Se requiere que el caché vuelva a escribir los datos en la memoria principal en el futuro, antes de permitir cualquier otra lectura del estado de la memoria principal no válido.
  • Exclusivo:
    esto indica que la línea de caché está presente solo en el caché actual y está limpia, es decir, su valor coincide con el valor de la memoria principal.
  • Compartido:
    indica que esta línea de caché puede almacenarse en otros cachés de la máquina.
  • No válido:
    indica que esta línea de caché no es válida.

4. Protocolo MOESI:
Este es un protocolo de coherencia de caché completo que abarca todos los estados posibles comúnmente utilizados en otros protocolos. Cada línea de caché se encuentra en uno de los siguientes estados:

  • Modificado:
    una línea de caché en este estado contiene la copia correcta más reciente de los datos, mientras que la copia en la memoria principal es incorrecta y ningún otro procesador tiene una copia.
  • Propiedad:
    una línea de caché en este estado contiene la copia correcta más reciente de los datos. Es similar al estado compartido en que otros procesadores pueden contener una copia de los datos correctos más recientes y, a diferencia del estado compartido, sin embargo, la copia en la memoria principal puede ser incorrecta. Solo un procesador puede mantener los datos en estado propio, mientras que todos los demás procesadores deben mantener los datos en estado compartido.
  • Exclusivo:
    una línea de caché en este estado contiene la copia correcta más reciente de los datos. La copia de la memoria principal es también la copia correcta más reciente de los datos, mientras que ninguna otra tiene una copia de los datos.
  • Compartido:
    una línea de caché en este estado contiene la copia correcta más reciente de los datos. Otros procesadores en el sistema también pueden tener copias de datos en estado compartido. La copia de la memoria principal es también la copia correcta más reciente de los datos, si ningún otro procesador la mantiene en estado propio.
  • No válido:
    una línea de caché en este estado no contiene una copia válida de los datos. Las copias válidas de los datos pueden estar en la memoria principal o en otra memoria caché del procesador.

Publicación traducida automáticamente

Artículo escrito por Ankit87 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *