Write-back vs Write-Through


Entiendo que la principal diferencia entre los dos métodos es que en el método "write-through" los datos se escriben en la memoria principal a través de la caché inmediatamente, mientras que en "write-back" los datos se escriben en un "último tiempo".

Todavía tenemos que esperar la memoria en "latter time", así que ¿Cuál es el beneficio de "write-through"?

Author: Naftaly, 2014-11-23

3 answers

El beneficio de la escritura a través de la memoria principal es que simplifica el diseño del sistema informático. Con write-through, la memoria principal siempre tiene una copia actualizada de la línea. Por lo tanto, cuando se realiza una lectura, la memoria principal siempre puede responder con los datos solicitados.

Si se usa write-back, a veces los datos actualizados están en la caché del procesador, y a veces en la memoria principal. Si los datos están en la caché de un procesador, ese procesador debe impedir que la memoria principal responda a la lectura request, porque la memoria principal puede tener una copia obsoleta de los datos. Esto es más complicado que escribir.

Además, la escritura puede simplificar el protocolo de coherencia de caché porque no necesita el estado Modify. El estado Modify registra que la caché debe volver a escribir la línea de caché antes de invalidar o desalojar la línea. En escritura a través de una línea de caché siempre se puede invalidar sin escribir de nuevo, ya que la memoria ya tiene una copia actualizada de la alinear.

Una cosa más - en un software de arquitectura de escritura que escribe en registros de E/S mapeados en memoria debe tomar pasos adicionales para asegurarse de que las escrituras se envíen inmediatamente fuera de la caché. De lo contrario, las escrituras no son visibles fuera del núcleo hasta que la línea es leída por otro procesador o la línea es desalojada.

 53
Author: Craig S. Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-27 02:06:30

Veamos esto con la ayuda de un ejemplo. Supongamos que tenemos una caché asignada directamente y se utiliza la política de escritura. Así que tenemos un bit válido, un bit sucio, una etiqueta y un campo de datos en una línea de caché. Supongamos que tenemos una operación: escribir A (donde A se asigna a la primera línea de la caché).

Lo que sucede es que los datos(A) del procesador se escriben en la primera línea de la caché. Se establecen los bits válidos y los bits de etiqueta. El bit sucio se establece en 1.

Poco sucio simplemente indica que la línea de caché fue escrita desde la última vez que fue introducida en la caché!

Ahora supongamos que se realiza otra operación: read E(donde E también se asigna a la primera línea de caché)

Dado que tenemos caché mapeada directa, la primera línea puede ser simplemente reemplazada por el bloque E que será traído de la memoria. Pero como el último bloque escrito en la línea (bloque A) aún no está escrito en la memoria (indicado por el bit sucio), por lo que el controlador de caché emitirá primero un escribe a la memoria para transferir el bloque A a la memoria, luego reemplazará la línea con el bloque E emitiendo una operación de lectura a la memoria. bit sucio ahora se establece en 0.

Así que la política de escritura no garantiza que el bloque sea el mismo en memoria y su línea de caché asociada. Sin embargo, cada vez que la línea está a punto de ser reemplazada, se realiza una escritura al principio.

Una política de escritura es todo lo contrario. De acuerdo con esto, la memoria siempre tendrá a datos actualizados. Es decir, si se escribe el bloque de caché, la memoria también se escribirá en consecuencia. (no uso de bits sucios)

 2
Author: Rajat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-17 19:27:10

Write-Back es más complejo y requiere un complicado Protocolo de Coherencia de Caché(MOESI), pero vale la pena, ya que hace que el sistema sea rápido y eficiente.

El único beneficio de la escritura es que hace que la implementación sea extremadamente simple y no se requiere un protocolo de coherencia de caché complicado.

 0
Author: Gaurav Toshniwal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-12 03:55:08