Articulo de referencia

Escritura única (coherencia de caché)

En la literatura sobre protocolos de coherencia de caché , Write-Once fue el primer protocolo MESI definido. Tiene la optimización de ejecutar write-through en la primera escrit...

En la literatura sobre protocolos de coherencia de caché , Write-Once fue el primer protocolo MESI definido. Tiene la optimización de ejecutar write-through en la primera escritura y write-back en todas las escrituras subsiguientes, reduciendo el tráfico general del bus en escrituras consecutivas a la memoria de la computadora . Fue descrito por primera vez por James R. Goodman en (1983). [ 1 ] Los protocolos de coherencia de caché son un tema importante en los sistemas de multiprocesamiento simétrico , donde cada CPU mantiene una caché de la memoria.

Estados

En este protocolo, cada bloque en la caché local se encuentra en uno de estos cuatro estados:

  • Inválido : Este bloque tiene una copia incoherente de la memoria.
  • Válido : Este bloque contiene una copia coherente de la memoria. Es posible que los datos se compartan, pero su contenido no se modifica.
  • Reservado : El bloque es la única copia de la memoria, pero sigue siendo coherente. No se requiere escritura diferida si se reemplaza el bloque.
  • Sucio : El bloque es la única copia de la memoria y es incoherente. Esta copia se escribió una o más veces. Este es el único estado que genera una escritura diferida cuando el bloque se reemplaza en la caché.

Estos estados tienen exactamente el mismo significado que los cuatro estados del protocolo MESI (simplemente se enumeran en orden inverso), pero esta es una versión simplificada que evita la operación de lectura para obtener la propiedad. En su lugar, toda la invalidación se realiza mediante escrituras en la memoria principal.

Para cualquier par de cachés dado, los estados permitidos de una línea de caché determinada son los siguientes (abreviados en el orden anterior):

Transiciones

El protocolo sigue ciertas reglas de transición para cada evento:

Diagrama de transición de escritura única
La transición "WM" desde el estado Inválido es errónea; la escritura debe realizarse en la memoria y, por lo tanto, deja la línea en el estado Reservado .
  • Lectura exitosa : La información proviene de la caché actual. No hay cambio de estado.
  • Fallo de lectura : Los datos se leen de la memoria principal. Otras cachés supervisan la lectura; si alguna de ellas tiene la línea en estado "Dirty" (sucio ), la lectura se interrumpe el tiempo suficiente para escribir los datos de nuevo en la memoria antes de que se le permita continuar. Cualquier copia en estado "Dirty" o "Reserved" (reservado) se establece en estado "Válido" .
  • Escritura acertada : Si la información en la caché está en estado Sucio o Reservado , la línea de caché se actualiza en su lugar y su estado se establece en Sucio sin actualizar la memoria. Si la información está en estado Válido , se ejecuta una operación de escritura directa que actualiza el bloque y la memoria, y el estado del bloque cambia a Reservado . Otras cachés detectan la escritura y establecen sus copias en Inválido .
  • Fallo de escritura : Una escritura parcial en una línea de caché se gestiona como un fallo de lectura (si es necesario recuperar la parte no escrita de la línea de caché) seguido de un acierto de escritura. Esto deja todas las demás cachés en estado inválido y la caché actual en estado reservado .

Esta es una variante del protocolo MESI, pero no incluye una operación explícita de lectura para obtener la propiedad ni una operación de invalidación por difusión para introducir una línea en la caché en estado exclusivo sin realizar una escritura en la memoria principal. En cambio, la primera escritura en una línea de caché válida (también conocida como compartida ) realiza una escritura directa en memoria, lo que invalida implícitamente las demás cachés. Posteriormente, la línea se encuentra en estado reservado ( exclusivo ) y se pueden realizar escrituras adicionales sin referencia a la memoria principal, dejando la línea de caché en estado modificado ( sucio ).

Referencias

  1. Goodman, James R. (1983). "Uso de la memoria caché para reducir el tráfico de memoria del procesador" . ACM SIGARCH Computer Architecture News . 11 (3): 124– 131. doi : 10.1145/1067651.801647 .
  • Archibald, J.; Baer, ​​JL (noviembre de 1986). "Protocolos de coherencia de caché: evaluación mediante un modelo de simulación multiprocesador". ACM Trans. Comput. Syst . 4 (4): 273– 298. doi : 10.1145/6513.6514 . S2CID 713808 . 
  • Goodman, JR (1983). «Uso de la memoria caché para reducir el tráfico de memoria del procesador». Actas del 10.º simposio internacional anual sobre arquitectura de computadoras - ISCA '83 . Simposio Internacional sobre Arquitectura de Computadoras: Estocolmo, Suecia, 13-17 de junio de 1983. pp. 124-131 . doi : 10.1145/800046.801647 . ISBN  0-89791-101-6.