stringtranslate.com

Protocolo MESIF

El protocolo MESIF es un protocolo de coherencia de caché y coherencia de memoria desarrollado por Intel para arquitecturas de memoria no uniforme coherentes de caché . [1] El protocolo consta de cinco estados: modificado (M), exclusivo (E), compartido (S), no válido (I) y directo (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 garantiza que, si alguna caché contiene una línea en el estado S, como máximo una (otra) caché la contenga 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 contienen una línea en el estado S será atendida de manera ineficiente. Puede ser satisfecha 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 la caché que contiene la línea en el estado F. [3] Esto permite al solicitante recibir una copia a velocidades de caché a caché, al mismo tiempo que permite el uso de tan pocos paquetes de multidifusión como lo permita la topología de red.

Debido a que una caché puede descartar unilateralmente (invalidar) una línea en los estados S o F, es posible que ninguna caché tenga una copia en el estado F, aunque existan copias en el estado S. En este caso, se satisface una solicitud de la línea (de manera menos eficiente, pero aún correcta) 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 una caché en el estado F responde, cede el estado F a la nueva 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 ingresa a la caché en el estado F. La única forma de ingresar al estado S es satisfacer una solicitud de lectura de otra caché, transfiriéndole el estado F.

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 el que se enumeran los estados no tiene importancia, salvo para que el acrónimo MESIF sea pronunciable.

Existen otras técnicas para satisfacer solicitudes de lectura de cachés compartidos y al mismo tiempo suprimir respuestas redundantes, pero tener solo una única respuesta de caché designada hace que sea más fácil invalidar todas las copias cuando sea necesario para realizar la transición al estado Exclusivo.

Comparación con el protocolo MOESI

El estado F de este protocolo no debe confundirse con el estado O de "Propietario" del protocolo MOESI. Si bien ambos estados identifican una 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), existe una diferencia detrás de la intención de los dos estados.

El estado F en el protocolo MESIF es simplemente una forma de elegir a uno de los participantes de una línea de caché limpia para que responda 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 memoria principal. Esta optimización tiene sentido en arquitecturas donde la latencia de caché a caché es mucho menor en comparación con la latencia de acceso a la memoria principal. Un punto clave que se debe tener 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 en el que 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 que los comparten asuma la responsabilidad de poseerlos . Las solicitudes de datos compartidos ahora serán satisfechas por el propietario. Esta optimización permite retrasar la reescritura de los datos al permitir compartir datos sucios. [4] La diferencia clave en el protocolo MOESI es que, a diferencia del protocolo MESIF, el estado Owned no está limpio.

Es posible construir un protocolo MOESIF.

Véase también

Referencias

  1. ^ David Kanter (28 de agosto de 2007). "La interfaz de sistema común: la interconexión futura de Intel". Real World Tech . pág. 5 . Consultado el 12 de agosto de 2012 .
  2. ^ Michael E. Thomadakis (17 de marzo de 2011). "La arquitectura del procesador Nehalem y las plataformas SMP Nehalem-EP" (PDF) . Universidad Texas A&M. págs. 30–34. Archivado desde el original (PDF) el 11 de agosto de 2014. Consultado el 21 de marzo de 2014 .
  3. ^ US 6922756, Hum, Herbert HJ y Goodman, James R., "Estado de avance para uso en coherencia de caché en un sistema multiprocesador", publicado el 26 de julio de 2005, asignado a Intel Corporation 
  4. ^ Hennessy, J.; Patterson, D. Computer Architecture: A Quantitative Approach (quinta ed.). pág. 362. En un protocolo MOESI, el bloque se puede cambiar del estado Modificado al Estado Propio en la memoria caché original sin escribirlo en la memoria.