El protocolo MSI es un protocolo básico de la coherencia del escondrijo que se utiliza en sistemas de multiprocesador. Como con otros protocolos de la coherencia del escondrijo, las letras del nombre del protocolo identifican los estados posibles en los cuales una línea del escondrijo puede estar. Así pues, para MSI, cada bloque contenido dentro de un escondrijo puede tener uno de tres estados posibles:
el M del
odified: El bloque se ha modificado en el escondrijo . Los datos en el escondrijo son entonces contrarios con la memoria adicional (e. Un escondrijo con un bloque en el " M" el estado tiene la responsabilidad de escribir el bloque a la memoria adicional cuando se desahucia.
el S del
hared: Este bloque está sin modificar y existe en por lo menos un escondrijo. El escondrijo puede desahuciar los datos sin la escritura él a la memoria adicional.
nvalid del I del
: Este bloque es inválido, y se debe traer de la memoria o de otro escondrijo si se va el bloque a ser almacenado en este escondrijo.
Estos estados de la coherencia se mantienen con la comunicación entre los escondrijos y la memoria adicional. Los escondrijos tienen diversas responsabilidades cuando se leen los bloques o escrito, o cuando aprenden de la otra publicación de los escondrijos leen o escriben para un bloque.
Cuando una petición leída llega un escondrijo para un bloque en el " M" o " S" los estados, el escondrijo suministran los datos. Si el bloque no está en el escondrijo (en el " I" estado), debe verificar que la línea no esté en el " M" estado en cualquie otro escondrijo. Diversas arquitecturas de puesta en antememoria dirigen esto diferentemente. Por ejemplo, las arquitecturas del autobús realizan a menudo el snooping, donde está difusión la petición leída a todos los escondrijos. Otras arquitecturas incluyen los directorios de escondrijo que tienen los agentes (directorios) que saben qué escondrijos tenían por último copias de un bloque particular del escondrijo. Si otro escondrijo tiene el bloque en el " M" estado, debe contestar los datos a la memoria adicional e ir al " S" o " I" estados. Una vez cualquie " M" se contesta la línea, el escondrijo obtiene el bloque de la memoria adicional, u otro escondrijo con los datos en el " S" estado. El escondrijo puede entonces suministrar los datos al solicitante. Después de suministrar los datos, el bloque del escondrijo está en el " S" estado.
Cuando una petición de la escritura llega un escondrijo para un bloque en el " M" el estado, el escondrijo modifica los datos localmente. Si el bloque está en el " S" el estado, el escondrijo debe notificar cualquier otro escondrijo que pudiera contener el bloque en el " S" indicar que él debe desahuciar el bloque. Esta notificación puede estar vía snooping del autobús o un directorio, como se describe anteriormente. Entonces los datos pueden localmente ser modificados. Si el bloque está en el " I" el estado, el escondrijo debe notificar cualquier otro escondrijo que pudiera contener el bloque en el " S" o " M" estados que él debe desahuciar el bloque. Si el bloque está en otro escondrijo en el " M" el estado, ese escondrijo debe escribir los datos a la memoria adicional o suministrarlos al escondrijo solicitante. Si a este punto el escondrijo todavía no tiene el bloque localmente, el bloque se lee en la memoria adicional antes de ser modificada en el escondrijo. Después de que se modifiquen los datos, el bloque del escondrijo está en el " M" estado.
Este protocolo fue utilizado en la máquina del SGI 4D.
.
| Random links: | Montaña de Mingus | Lobo marino de las Islas Gal3apagos | Ghulam Ali | Cáncer de Dinah y los ladrones graves | Tribuna salvaje |