es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

coherencia de caché – no estoy seguro de cómo funciona esto

Dada esta introducción:

Considera un sistema con 2 núcleos, P1 y P2, utilizando los esquemas de escritura diferida y asignación de escritura.

Las direcciones A1 y A2 están mapeadas en el mismo bloque de caché, pero A1 NO ES igual a A2. La caché inicial es inválida. Utiliza aquí el protocolo MESI.

Se siguen los siguientes pasos:

  1. P1 escribe el valor 10 en A1.
  2. P1 lee el valor en A1.
  3. P2 lee el valor en A1.
  4. P2 escribe el valor 20 en A1.
  5. P2 escribe el valor 40 en A2.
  6. P1 lee el valor en A1.

Me pregunto, ¿por qué se considera la acción de P1 escribiendo en A1 como “exclusiva” en el paso 1? Habría pensado que se consideraría “modificada” considerando que estamos escribiendo en la dirección.

Este ejemplo se toma de esta fuente http://people.eecs.berkeley.edu/~pattrsn/252F96/Lecture18.pdf

Aquí está la tabla final del estado: tabla de caché.

¿Alguien podría explicar por qué los pasos 1 y 4 se consideran “exclusivos” y no “modificados”? ¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    En el protocolo MESI, “exclusive” y “modified” son dos estados diferentes de un bloque de caché.

    El estado “exclusive” significa que el bloque de caché está presente en solo una caché (en este caso, en la caché de P1) y ninguna otra caché tiene una copia de él. Este bloque de caché puede ser modificado sin notificar a ninguna otra caché.

    Por otro lado, el estado “modified” significa que el bloque de caché está presente en solo una caché (nuevamente, en la caché de P1) y ha sido modificado. Sin embargo, otras cachés pueden tener una copia de este bloque de caché y esas copias deben ser invalidadas antes de que el bloque de caché modificado pueda ser escrito de vuelta a la memoria principal.

    En este ejemplo, el Paso 1 se considera “exclusive” porque inicialmente ninguna caché tiene una copia del bloque de caché que contiene la dirección A1. Por lo tanto, cuando P1 escribe el valor 10 en A1, este bloque de caché ahora está presente solo en la caché de P1 y ninguna otra caché tiene una copia de él. Por lo tanto, está en el estado “exclusive”.

    De manera similar, en el Paso 4, cuando P2 escribe el valor 20 en A1, P2 no sabe que P1 ya tiene una copia del bloque de caché que contiene A1. Entonces, P2 escribe en este bloque de caché asumiendo que está en el estado “exclusive”. Esta acción de P2 hace que la copia de la caché de P1 sea invalidada y el bloque de caché que contiene A1 ahora está presente solo en la caché de P2. Por lo tanto, también está en el estado “exclusive”.

    En resumen, “exclusive” significa que un bloque de caché está presente solo en una caché y ninguna otra caché tiene una copia de él, mientras que “modified” significa que un bloque de caché ha sido modificado en una caché pero otras cachés pueden tener copias de él que deben ser invalidadas antes de que la versión modificada pueda ser escrita de vuelta a la memoria principal.

Comments are closed.