El protocolo MESIF es un protocolo de coherencia de memoria caché y coherencia desarrollado por Intel para arquitecturas de memoria no uniformes coherentes de caché . [1] El protocolo consta de cinco estados, Modificado (M), Exclusivo (E), Compartido (S), No válido (I) y Adelante (F). [2]
Los estados M, E, S e I son los mismos que en el protocolo MESI . El estado F es una forma especializada del estado S e indica que una caché debe actuar como un respondedor designado para cualquier solicitud de la línea dada. El protocolo asegura que, si alguna caché contiene una línea en el estado S, como máximo una (otra) caché la mantiene en el estado F.
En un sistema de cachés que emplea el protocolo MESI, una solicitud de línea de caché que es recibida por múltiples cachés que tienen una línea en el estado S será atendida de manera ineficiente. Puede satisfacerse desde la memoria principal (lenta), o todas las cachés compartidas podrían responder, bombardeando al solicitante con respuestas redundantes. En un sistema de cachés que emplea el protocolo MESIF, una solicitud de línea de caché será respondida solo por el caché que mantiene la línea en el estado F. [3] Esto permite al solicitante recibir una copia a velocidades de caché a caché, mientras que permite el uso de tan pocos paquetes de multidifusión como lo permita la topología de la red.
METRO | mi | S | I | F | |
---|---|---|---|---|---|
METRO | |||||
mi | |||||
S | |||||
I | |||||
F |
Debido a que un caché puede descartar (invalidar) unilateralmente una línea en los estados S o F, es posible que ningún caché tenga una copia en el estado F, aunque existan copias en el estado S. En este caso, se satisface una solicitud de línea (de manera menos eficiente, pero aún así correctamente) desde la memoria principal. Para minimizar la posibilidad de que la línea F se descarte debido a la falta de interés, al solicitante más reciente de una línea se le asigna el estado F; cuando un caché en el estado F responde, cede el estado F al nuevo caché.
Por lo tanto, la principal diferencia con el protocolo MESI es que una solicitud de una copia de la línea de caché para lectura siempre entra en la caché en el estado F. La única forma de ingresar al estado S es satisfacer una solicitud de lectura de la memoria principal.
Para cualquier par de cachés, los estados permitidos de una línea de caché determinada se enumeran en la tabla de la derecha. El orden en que se enumeran los estados no tiene otro significado que el de hacer pronunciable el acrónimo MESIF.
Existen otras técnicas para satisfacer las solicitudes de lectura de las cachés compartidas mientras se suprimen las respuestas redundantes, pero tener una única respuesta de caché designada hace que sea más fácil invalidar todas las copias cuando sea necesario para pasar al estado Exclusivo.
Comparación con el protocolo MOESI
El estado F en este protocolo no debe confundirse con el estado O "Propietario" en el protocolo MOESI. Si bien ambos estados identifican un caché de un conjunto de compartidores para transferir datos de manera eficiente mediante transferencias directas de caché a caché (en lugar de esperar información de la memoria principal), hay una diferencia detrás de la intención de los dos estados.
- Una línea de caché en el estado F está limpia y puede descartarse en cualquier momento sin previo aviso.
- Una línea de caché en el estado O está sucia y se debe volver a escribir en la memoria antes de descartarla.
El estado F en el protocolo MESIF es simplemente una forma de elegir uno de los que comparten una línea de caché limpia para responder a una solicitud de lectura de datos mediante una transferencia directa de caché a caché en lugar de esperar a que los datos provengan de la línea principal. memoria. Esta optimización tiene sentido en arquitecturas donde la latencia de caché a caché es mucho menor en comparación con la latencia de acceder a la memoria principal. Un punto clave que debe tenerse en cuenta aquí es que, de manera similar al protocolo MESI, cuando los datos están en el estado compartido (con una de las cachés en el estado F), los datos están limpios.
El estado O en el protocolo MOESI es una optimización del protocolo MESI donde se relaja el requisito de que los datos compartidos estén limpios. En otras palabras, los cachés pueden compartir datos que están sucios siempre que uno de los usuarios asuma la responsabilidad de poseer los datos. Las solicitudes de datos compartidos ahora serán satisfechas por el propietario. Esta optimización permite retrasar la escritura diferida de datos al permitir compartir datos sucios. [4] La diferencia clave en el protocolo MOESI es que, a diferencia del protocolo MESIF, el estado de propiedad no está limpio.
Es posible construir un protocolo MOESIF.
Ver también
Referencias
- ^ David Kanter (28 de agosto de 2007), "La interfaz del sistema común: interconexión futura de Intel" , Tecnología del mundo real : 5 , consultado el 12 de agosto de 2012
- ^ Michael E. Thomadakis (17 de marzo de 2011). "La arquitectura del procesador Nehalem y las plataformas SMP Nehalem-EP" (PDF) . Universidad Texas A & M. pag. 30–34. Archivado desde el original (PDF) el 11 de agosto de 2014 . Consultado el 21 de marzo de 2014 .
- ^ US 6922756 , Hum, Herbert HJ & James R. Goodman, " Estado de avance para uso en coherencia de caché en un sistema multiprocesador ", emitido el 26 de julio de 2005 , asignado a Intel Corporation
- ^ Hennessy, J .; Patterson, D. Arquitectura informática: un enfoque cuantitativo (quinta ed.). pag. 362.