Aquí se enumeran ejemplos de protocolos de coherencia para memoria caché. Para simplificar, en los diagramas no se muestran las transacciones de lectura y escritura con estado " fallo ", que provienen únicamente del estado " I " ("inválido" o fallo de etiqueta). Se muestran directamente en el nuevo estado. Muchos de los siguientes protocolos tienen únicamente valor histórico. Actualmente, los principales protocolos utilizados son los de tipo R-MESI/MESIF y el HRT-ST-MESI (tipo MOESI), o un subconjunto o extensión de estos.
Problema de coherencia de caché
En sistemas como los multiprocesador , multinúcleo y NUMA , donde existe una caché dedicada para cada procesador , núcleo o nodo , puede surgir un problema de consistencia cuando el mismo dato se copia y almacena en más de una caché. Este problema se produce cuando el valor del dato se modifica en una caché pero no en las demás, lo que da lugar a un valor de referencia desconocido del dato en todo el sistema, donde la versión del dato en cada caché se considera igualmente válida. Este problema puede resolverse de dos maneras:
- Invalidar todas las copias en otras cachés ("broadcast-invalidate")
- Actualiza todas las copias en otras cachés (difusión de escritura) al nuevo valor correcto, mientras que la memoria principal (MM) puede actualizarse inmediatamente ("escritura directa") o no actualizarse hasta que sea absolutamente necesario ("escritura diferida" o "escritura diferida").
Nota: La coherencia generalmente se aplica solo a los datos (como operandos) y no a las instrucciones (véase Código automodificable ).
Los planes se pueden clasificar en función de:
- Esquema Snoopy frente a esquema de directorio y frente a cachés compartidas
- Protocolo de escritura directa frente a escritura diferida (la escritura diferida se basa en la propiedad)
- Protocolo de actualización frente a protocolo de invalidación
- Intervención versus no intervención
- Protocolo de compartición de datos sucios frente a protocolo sin compartición de datos sucios (MOESI frente a MESI)
Se adoptan tres enfoques para mantener la coherencia de los datos.
- Monitoreo o espionaje del bus : generalmente se utiliza para sistemas multiprocesador simétricos (SMP) basados en bus / sistemas multinúcleo .
- El protocolo basado en directorios (de paso de mensajes ) puede utilizarse en todos los sistemas, pero se usa típicamente en sistemas NUMA y en grandes sistemas multinúcleo.
- Caché compartida : generalmente se utiliza en sistemas multinúcleo .
protocolo de coherencia de Snoopy
Protocolo utilizado en sistemas basados en bus, como los sistemas SMP.
SMP – sistemas multiprocesador simétricos
Sistemas que funcionan bajo un único sistema operativo (SO ) con dos o más procesadores homogéneos y con una memoria principal compartida centralizada.

Cada procesador tiene su propia caché que actúa como puente entre el procesador y la memoria principal . La conexión se realiza mediante un bus del sistema o una matriz de interconexión ("xbar") o una combinación de ambos enfoques: bus para direcciones y matriz de interconexión para datos (matriz de interconexión de datos). [ 1 ] [ 2 ] [ 3 ]
El cuello de botella de estos sistemas reside en el tráfico y el ancho de banda de la memoria . Este ancho de banda puede incrementarse mediante un bus de datos más amplio (más cables entre la memoria principal y cada componente), una matriz de interconexión de datos, intercalación de memoria (acceso paralelo multibanco) y transacciones de datos fuera de orden . El tráfico puede reducirse mediante una caché que actúa como filtro , eliminando la necesidad de que cada caché del procesador acceda directamente a la memoria compartida para cada transacción; por lo tanto, la caché es un elemento esencial para la utilización de la memoria compartida en sistemas SMP.
En sistemas multiprocesador con cachés independientes que comparten una memoria común, un mismo dato puede almacenarse en más de una caché. Puede surgir un problema de consistencia de datos cuando el dato se modifica en solo una de las cachés. Los protocolos para mantener la coherencia en sistemas multiprocesador se denominan protocolos de coherencia de caché .
En SMP, la coherencia se basa generalmente en el enfoque de "vigilancia del bus" o " Snoopy " (en referencia al personaje Snoopy de Peanuts ). En un sistema de espionaje, todas las cachés supervisan ("espían") las transacciones del bus para interceptar los datos y determinar si cada caché específica tiene una copia de esos datos.
Se utilizan varios protocolos de coherencia de caché para mantener la coherencia de los datos entre las cachés. [ 4 ]
Estos protocolos generalmente se clasifican solo en función de los estados de la caché (de 3 a 5 y 7 o más) y las transacciones entre ellos, pero esto podría generar cierta confusión.
Esta definición es incompleta porque carece de información importante y esencial sobre las acciones que produce cada protocolo. Estas acciones pueden ser invocadas por el procesador o el controlador del bus (por ejemplo, intervención, invalidación, difusión, etc.). El tipo de acciones depende de la implementación. Los estados y las reglas de transacción no abarcan todos los aspectos de un protocolo. Por ejemplo, el protocolo MESI con intervención compartida sobre datos no modificados es diferente de MESI sin intervención (véase más adelante). Al mismo tiempo, algunos protocolos con diferentes estados pueden ser prácticamente idénticos. Por ejemplo, los protocolos MESI Illinois de 4 estados y MERSI (R-MESI) IBM/MESIF-Intel de 5 estados son solo implementaciones diferentes de la misma funcionalidad (véase más adelante).
Los protocolos más comunes son MESI de 4 estados y MOESI de 5 estados , donde cada letra representa uno de los posibles estados de la caché. Otros protocolos utilizan subconjuntos de estos, pero con implementaciones diferentes y terminología equivalente. Los términos MESI, MOESI o cualquier subconjunto de ellos generalmente se refieren a una clase de protocolos, no a uno específico.
Estados de caché
Los estados MESI y MOESI suelen ser conocidos, y de hecho con mayor frecuencia, por nombres diferentes.
- M = Modificado o D = Sucio o DE = Sucio-Exclusivo o EM = Modificado Exclusivo
- Modificado en una sola caché; se requiere escritura diferida al reemplazarlo.
- Los datos se almacenan únicamente en una caché, pero los datos en memoria no se actualizan (son inválidos, no están limpios).
- O = Propietario o SD = Sucio compartido o SM = Modificado compartido o T = Etiquetado
- modificado, potencialmente compartido, propiedad, se requiere reescritura en el momento del reemplazo.
- Los datos pueden almacenarse en más de una caché, pero los datos en memoria no se actualizan (no son válidos ni están limpios). Solo una caché es la "propietaria"; las demás se configuran como "válidas" (S/V/SC). En caso de solicitud de lectura del bus, los datos son proporcionados por la caché "propietaria" en lugar de la memoria.
- E = Exclusivo o R = Reservado o VE = Válido-Exclusivo o EC = Exclusivo Limpio o Me = Exclusivo
- limpio, en una sola caché.
- Los datos se almacenan únicamente en una caché y se mantienen limpios en la memoria.
- S = Compartido o V = Válido o SC = Compartido Limpio
- compartido o válido
- Datos potencialmente compartidos con otras cachés. Los datos pueden estar limpios o sucios. El término "limpio" en SC es engañoso porque también pueden estar sucios (ver protocolo Dragon ).
- Yo = Inválido .
- Línea de caché no válida. Si la línea de caché no está presente (no hay coincidencia de etiqueta), se considera equivalente a no válida; por lo tanto, los datos no válidos significan datos presentes pero no válidos o no presentes en la caché.
Estados especiales:
- F = Adelante o R = Reciente
- Estados adicionales del protocolo MESI
- Último dato leído. Es un estado especial "Válido" que es el "Propietario" de los datos compartidos no modificados , utilizado en algunos protocolos MESI extendidos (MERSI o R-MESI IBM, [ 5 ] [ 6 ] MESIF – Intel [ 7 ] [ 8 ] ). El estado R/F se utiliza para permitir la "intervención" cuando el valor está limpio pero se comparte entre varias cachés. Esta caché en el estado R/F es responsable de la intervención ( intervención compartida ). En una solicitud de lectura del bus, los datos son suministrados por esta caché en lugar de ser suministrados por la memoria principal. MERSI y MESIF son el mismo protocolo con terminología diferente ( F en lugar de R ). A veces, R se denomina " último compartido " ( S L ). [ 9 ] [ 10 ]
- El estado R = Reciente se utiliza no solo en el protocolo MERSI = R-MESI , sino también en varios otros protocolos. Este estado se puede utilizar en combinación con otros estados, como en RT-MESI , HR-MESI , HRT-MESI , HRT-ST-MESI . [ 6 ] [ 11 ] [ 12 ] Todos los protocolos que utilizan este estado se denominarán de tipo R-MESI .
- H = Hover – H-MESI (estado adicional del protocolo MESI) [ 11 ]
- El estado Hover ( H ) permite que una línea de caché mantenga una etiqueta de dirección en el directorio aunque el valor correspondiente en la entrada de caché sea una copia no válida. Si el valor correspondiente se produce en el bus (es decir, si la etiqueta de dirección en el bus coincide con la etiqueta de dirección en la caché) durante una operación válida de "Lectura" o "Escritura " , la entrada de caché se actualiza para ser la copia válida y su estado cambia de H a S.
- Este estado puede utilizarse en combinación con otros estados. Por ejemplo, HR-MESI , HT-MESI , HRT-MESI , HRT-ST-MESI . [ 6 ] [ 11 ] [ 12 ]
Diversos protocolos de coherencia
Operaciones de coherencia de Snoopy
- Transacciones de autobuses
- Características de los datos
- Operaciones de caché
Transacciones de autobuses
Las operaciones principales son:
- Escribe a través de
- Respuesta
- Escribir Asignar
- Escritura sin asignación (o escritura alternativa )
- Intervención de caché
- Intervención compartida
- Intervención sucia
- Invalidación
- Escribir-difusión (o Escribir-actualización )
- Radiodifusión de intervención
Escribe a través de
- La línea de caché se actualiza tanto en la caché como en MM, o solo en MM ( write no-allocate ).
- Fácil de implementar, pero con un alto consumo de ancho de banda. Se recomienda su uso para escrituras únicas o poco frecuentes.
Respuesta
- Los datos se escriben únicamente en la caché. Los datos se vuelven a escribir en MM solo cuando se reemplazan en la caché o cuando otras cachés lo requieren (consulte la política de escritura , "desalojo de la caché").
- Se recomienda su uso cuando se producen varias escrituras en la misma línea de caché.
- Solución intermedia: Escritura directa para la primera escritura, escritura diferida para la siguiente ( protocolos Write-once y Bull HN ISI [ 20 ] ).
Escribir Asignar
- En caso de fallo , los datos se leen del "propietario" o del MM, y luego los datos se escriben en la caché (actualización-escritura parcial) (consulte la política de escritura ).
Escritura sin asignación ( Escribir alrededor )
- En caso de fallo , los datos se escriben únicamente en MM, sin involucrar la caché. De manera similar, el protocolo Bull HN ISI escribe los datos solo en la línea de caché del "propietario" si la línea está en estado D o SD (actualización del propietario), pero en caso contrario, solo escribe en MM.
- La opción Write-no-Allocate suele estar asociada con Write Through.
- Intervención de caché
- (o, en resumen, " intervención ")
- – Intervención compartida – intervención compartida y limpia (sobre datos no modificados)
- – En caso de error de lectura, los datos son suministrados por el propietario E o R / F o también S en lugar del MM (véanse los protocolos Illinois , tipo IBM R-MESI e Intel MESIF).
- – Intervención compartida – intervención compartida y limpia (sobre datos no modificados)
- – Intervención sucia (sobre datos modificados)
- – En caso de fallo de lectura, los datos son suministrados por el propietario M (D) u O (SD) o por E (R) (*) en lugar de MM (por ejemplo, protocolo MOESI, RT-MESI, …).
- – Intervención sucia (sobre datos modificados)
- (*) – No para E (R) en la propuesta original del protocolo MOESI [ 16 ] y en algunas otras implementaciones de tipo MOESI.
- La intervención es mejor que la ausencia de intervención porque las transacciones de caché a caché son mucho más rápidas que un acceso MM, y además ahorra ancho de banda de memoria que de otro modo se produciría en el bus MM (reducción del tráfico de memoria). Por lo tanto, MESI Illinois extendido y R-MESI tipo / MESIF son mucho mejores que el protocolo MOESI (véase MESI vs MOESI más abajo).
- Invalidación ( Write-invalidate , invalidate-broadcast , write-invalidate-broadcast , no confundir con write-broadcast )
- – En caso de escritura con estado S (V) u O (SD) (compartido), se envía una única transacción de bus para invalidar todas las copias en las demás cachés.
- Escribir-difusión ( Escribir-actualización )
- – Nota – La operación de actualización en las demás cachés también se denomina a veces "snarfing" . Las cachés monitorizan el bus y, si encuentran un acierto, lo capturan y se actualizan. Asimismo, la actualización del estado H en ( H-MESI ) puede definirse como snarfing . En el primer caso , esto ocurre en una operación de escritura-difusión. En el segundo caso , ocurre tanto en operaciones de lectura como de escritura.
- Radiodifusión de intervención
- Escribir: invalidar vs transmisión
- – La invalidación de escritura es mejor cuando un procesador realiza varias escrituras, normalmente parciales, antes de que otro procesador lea esa línea de caché.
- – La escritura por difusión (actualización) se utiliza mejor cuando hay un único productor (modificador) y muchos consumidores (receptores) de datos. Es menos recomendable cuando la caché está llena de datos que no se volverán a leer en un futuro próximo (mayor tráfico en el bus, mayor interferencia de la caché ).
- - La invalidación es la solución común.
Características de los datos
Los datos almacenados en caché tienen tres características:
- Validez
- Exclusividad
- Propiedad
- Validez
- – Cualquier línea de caché no inválida, es decir, MOES / D-SD-RV.
- Exclusividad
- – Datos válidos solo en una caché (datos no compartidos) en estado M (D) o E (R), con MM no limpio en caso de M (D) y limpio en caso de E (R).
- Propiedad
- – La caché que es responsable de suministrar los datos de la solicitud en lugar de un MM (Intervención) – Dependiendo del protocolo, la caché que debe realizar la intervención puede ser S - E - M en MESI Illinois , o R / F - E - M en R-MESI tipo / MESIF o M (D) u O (SD) o también E (R) (*) en protocolos de tipo MOESI, (por ejemplo AMD64 , [ 16 ] Bull HN ISI [ 20 ] – ver operación "Read Miss" más abajo).
(*) – Depende de la implementación.
Nota: No confundir la definición más restrictiva de "propietario" en el protocolo MOESI con esta definición más general .
Operaciones de caché
Las operaciones de caché son:
- Leer éxito
- Lee a la señorita
- Escribir éxito
- Escríbele a la señorita
- Leer éxito
- – Los datos se leen desde la caché. El estado permanece sin cambios.
- – Advertencia : dado que se trata de una operación obvia, posteriormente no se tendrá más en cuenta, ni siquiera en los diagramas de transacciones de estado.
- Lee a la señorita
- – La solicitud de lectura de datos se envía al bus.
- – Existen varias situaciones:
- Datos almacenados únicamente en MM
- – Los datos se leen desde MM.
- – La caché está configurada como E (R) o S (V).
- – E (R) si se utiliza una línea de bus especial (" Línea compartida ") para detectar " no compartición de datos ". Se utiliza en todos los protocolos que tienen estado E (R), excepto en los protocolos Write-Once y Bull HN ISI (ver "Write Hit" más abajo).
- Datos almacenados en MM y en una o más cachés en estado S (V) o en R/F en protocolos de tipo R-MESI / MESIF .
- – Hay tres situaciones:
- – Protocolo Illinois : se utiliza una prioridad de red para asignar de forma temporal y arbitraria la propiedad a una copia S. - Los datos son suministrados por la caché seleccionada. La caché solicitante se establece como S ( intervención compartida con la limpieza de MM).
- – Protocolos tipo R-MESI / MESIF – una copia está en estado R / F ( propietario compartido ) – Los datos son suministrados por la caché R / F. La caché de envío se cambia a S y la caché solicitante se establece R / F (en caso de fallo de lectura, la "propiedad" siempre la toma la última caché solicitante) – intervención compartida .
- – En todos los demás casos, los datos son suministrados por la memoria y la caché solicitante se establece en S (V).
- Datos almacenados en MM y solo en una caché en estado E (R) .
- – Los datos son suministrados por una caché E (R) o por el MM, dependiendo del protocolo. – Desde E (R) en MESI extendido (por ejemplo, Illinois , Pentium (R) II [ 14 ] ), tipo R-MESI / MESIF y desde la misma implementación MOESI (por ejemplo, AMD64 ) – La caché solicitante se establece en S (V), o R / F en protocolos tipo R-MESI / MESIF y la caché E (R) se cambia a S (V) o a I en el protocolo MEI.
- – En todos los demás casos, los datos son suministrados por el MM.
- Datos modificados en una o más cachés con MM no limpio
- Protocolo tipo MOESI: datos almacenados en M (D) o en O (SD) y las demás cachés en S (V).
- – Los datos se envían a la caché solicitante desde el "propietario" M (D) u O (SD). La caché solicitante se establece en S (V) mientras que M (D) se modifica en O (SD).
- – El MM no está actualizado.
- Protocolos tipo MESI y MEI: datos almacenados en M (D) y las demás cachés en estado S (V)
- – Hay dos soluciones:
- – Los datos se envían desde la caché M (D) a la caché solicitante y también a MM (por ejemplo, Illinois , Pentium (R) II [ 14 ] ).
- – La operación se realiza en dos pasos: se detiene la transacción solicitante, los datos se envían desde la caché M (D) a MM, luego la transacción en espera puede continuar y los datos se leen desde MM (por ejemplo, protocolo MESI y MSI Synapse ).
- – Todas las cachés están configuradas como S (V)
- Escribir éxito
- – Los datos se escriben en la caché.
- – Existen varias situaciones:
- Caché en S (V) o R/F u O (SD) (compartido)
- – Escribir invalidar
- – Copiar de nuevo
- – Los datos se escriben en la caché y se envía una transacción de invalidación al bus para invalidar todas las demás cachés.
- – La caché está configurada como M (D)
- – Escribir de principio a fin ( Escribir una sola vez , Bull HN ISI )
- – Los datos se escriben en la caché y en MM, invalidando todas las demás cachés. La caché se establece R (E).
- – Copiar de nuevo
- – Escribir código de difusión (por ejemplo, Firefly , Dragon )
- - Los datos se escriben en la caché y se envía una transacción de difusión al bus para actualizar todas las demás cachés que tienen una copia.
- – La caché se establece en M (D) si la "línea compartida" está desactivada; de lo contrario, se establece en O (SD). Todas las demás copias se establecen en S (V).
- Caché en estado E (R) o M (D) (exclusividad)
- – La escritura puede realizarse localmente sin ninguna otra acción. El estado se establece (o permanece) M (D).
- Escríbele a la señorita
- – Escribir Asignar
- – Lectura con intención de modificar la operación ( RWITM )
- – Como una operación de fallo de lectura más un comando de invalidación, luego se escribe (actualiza) la caché.
- – La caché solicitante se establece en M (D), todas las demás cachés se invalidan.
- – Escribir código de difusión (por ejemplo, Firefly , Dragon )
- – Como con un fallo de lectura. Si la "línea compartida" está "desactivada", los datos se escriben en la caché y se establece M (D); de lo contrario, como con un acierto de escritura: difusión de escritura.
- – Lectura con intención de modificar la operación ( RWITM )
- – Escritura sin asignación
- – Los datos se envían a MM, o como en el protocolo Bull HN ISI , solo a la caché D (M) o SD (O) si están disponibles, omitiendo la caché.
- – Escribir Asignar
protocolos de coherencia
- – Advertencia – Para simplificar, en los diagramas no se muestran las transacciones de lectura y escritura con estado "fallido" que obviamente provienen del estado I (o fallo de etiqueta). Se muestran directamente en el nuevo estado.
- – Nota – Muchos de los siguientes protocolos tienen únicamente valor histórico. Actualmente, los principales protocolos utilizados son R-MESI tipo / MESIF y HRT-ST-MES (tipo MOESI) o un subconjunto de estos.
Protocolo MESI

Estados MESI = DRVI
- – Uso de una "línea compartida" de bus para detectar copias "compartidas" en las otras cachés.
- Operaciones del procesador
- Lee a la señorita
- Existen dos implementaciones alternativas: MESI estándar (sin intervención) y MESI extendida (con intervención).
- 1 – MESI "sin intervención" (por ejemplo, PowerPC 604 [ 24 ] )
- – Si hay una copia M en una caché, la transacción se detiene y espera hasta que la caché M actualice la MM; entonces la transacción puede continuar y los datos se leen desde la MM. Ambas cachés están configuradas S
- – de lo contrario, los datos se leen desde MM. Si la "línea compartida" está "activada", la caché se establece en S; de lo contrario , en E.
- 2 – MESI "Intervención" de M y E (por ejemplo, Pentium (R) II [ 14 ] )
- – Si existe una copia M o E (exclusividad) en una caché, los datos se suministran a la caché solicitante desde M o desde E (intervención). Si la caché emisora es M, los datos también se escriben al mismo tiempo en MM (copia inversa). Todas las cachés están configuradas S
- – de lo contrario, los datos se leen desde MM. Si la "línea compartida" está "activada", la caché se establece en S; de lo contrario , en E.
- Escribir éxito
- – Si la caché es M o E (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción.
- – de lo contrario, los datos se escriben en la caché y se envía una transacción de invalidación al bus para invalidar todas las demás cachés.
- – La caché está configurada como M
- Escríbele a la señorita
- – La operación RWITM se envía al bus. La operación se realiza en dos pasos: un "Read Miss" con el comando "invalidate" para invalidar todas las demás cachés, y luego como con un "Write Hit" con el estado M (ver Operación de caché - Write Miss ).
- Transacciones de autobuses
- Autobús Leer
- – si M y "sin intervención" los datos se envían a MM (Copia de vuelta)
- – si M y "Intervención" los datos se envían a la caché solicitante y a MM (Copia de retorno)
- – si E (*) y "Intervención" los datos enviados a la caché solicitante
- – El estado cambia (o permanece) en S
- Lectura de autobús – ( RWITM )
- – Como con "Leer autobús"
- – La caché está configurada como "Inválida" ( I )
- Transacción inválida de autobús
- La caché está configurada como "Inválida" ( I ).
- Operaciones
- – Escribir Asignar
- – Intervención : de M – E (*)
- – Escribir Invalidar
- – Copia de respaldo : reemplazo M
- (*) – MESI ampliado
Protocolo MOESI

Estados MEOSI = DR-SD-VI = T-MESI IBM [ 12 ]
- – Uso de la "línea compartida" del bus para detectar copias "compartidas" en las otras cachés.
- Operaciones del procesador
- Lee a la señorita
- – Si existe una copia M , O o E (*) en otra caché, los datos son suministrados por esta caché (intervención). La caché solicitante se establece en S , M se cambia a O y E a S.
- – de lo contrario, los datos se leen desde MM.
- – Si la línea compartida está activada, la caché solicitante se establece en S; de lo contrario , en E.
- Escribir éxito
- – Si la caché es M o E (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción.
- – de lo contrario O o S (compartición) se envía una transacción de "invalidación" en el bus para invalidar todas las demás cachés.
- – La caché está configurada (o permanece) M
- Escríbele a la señorita
- – Se envía una operación RWITM al autobús
- – Los datos son suministrados por el "propietario" o por MM como en Read Miss, luego se escribe (actualiza) la caché.
- – La caché está configurada como M y todas las demás cachés están configuradas como I.
- Transacciones de autobuses
- Autobús Leer
- – Si la caché es M , O o E (*), los datos se envían a la caché solicitante (intervención). Si la caché es E , el estado cambia a S; de lo contrario, se establece (o permanece) en O.
- – de lo contrario, el estado cambia o permanece en S
- Lectura de autobús – ( RWITM )
- – Si la caché es M , O o E (*) los datos se envían al bus (Intervención)
- – La caché está configurada como "Inválida" ( I )
- Transacción inválida de autobús
- – La caché está configurada como "Inválida" ( I )

- Operaciones
- Escribir Asignar
- Intervención : del Ministerio de Educación (*)
- Escribir Invalidar
- Copia de respaldo : reemplazo de MO
- – (*) implementación que depende de E
Protocolo de Illinois
Estados MESI = DRVI [ 4 ]
- - Características:
- – Es una extensión del protocolo MESI.
- – Uso de una prioridad de red para intervención compartida (intervención sobre datos compartidos)
- – Diferencias con MESI: además de E y M , intervención también de S (ver Read Miss – punto 1 )
- Operaciones
- - Escribir Asignar
- - Intervención : de MES
- - Escribir Invalidar
- - Copia de respaldo : reemplazo M
Protocolo de escritura única (o escritura primero)

Estados DRVI (MESI) [ 4 ] [ 18 ] [ 19 ]
- - Características:
- – No se permite el uso de "línea compartida" (protocolo para bus estándar o no modificable).
- – Escribir directamente en el primer acierto de escritura en el estado V , luego copiar de vuelta.
- Operaciones del procesador
- Lee a la señorita
- – Si existe una copia D en otra caché, los datos son suministrados por esta caché (intervención) y, al mismo tiempo, también se escriben en MM (copia de retorno).
- – de lo contrario, los datos se leen desde MM
- – todas las cachés están configuradas V
- Escribir éxito
- – Si la caché es D o R (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción y el estado se establece (o permanece) en D.
- – De lo contrario V (primer acierto de escritura) los datos se escriben en la caché y en MM (escritura directa) invalidando todas las demás cachés (invalidación de escritura). – La caché se establece R
- Escríbele a la señorita
- – Similar a un fallo de lectura pero con el comando "invalidar" ( RWITM ) más un acierto de escritura en estado D (actualizando). La caché se establece en D y todas las demás cachés se establecen en "Inválido" ( I ).
- Nota: La escritura directa (Write Through) solo se realiza en caso de "fallo de escritura". Cabe destacar que, en este caso, se requiere una transacción de bus para invalidar las demás cachés y, por lo tanto, se puede aprovechar esta situación para actualizar también la caché de memoria (MM). En cambio, en caso de "acierto de escritura" no se requiere ninguna transacción, por lo que una escritura directa sería una operación inútil si la caché se actualiza de nuevo.
- Transacciones de autobuses
- Autobús Leer
- – Si la caché es D, los datos se envían a la caché solicitante (intervención) y a MM (copia de retorno). La caché se establece en V.
- – de lo contrario, el estado cambia o permanece en V
- Lectura de autobús – ( RWITM )
- – Si la caché es D, los datos se envían al bus (Intervención).
- – La caché está configurada como "Inválida" ( I )
- Transacción inválida de autobús
- – La caché está configurada como "Inválida" ( I )
- Operaciones
- Escribir Asignar
- Intervención : de D
- Escritura directa : primer acierto de escritura en el estado V
- Escribir Invalidar
- Copia de respaldo : Reemplazo D
Protocolo ISI de Bull HN

(Bull-Honeywell Italia)
Estados D-SD-RVI (MOESI) Protocolo patentado (F. Zulian) [ 20 ]
- - Características:
- – Extensión MOESI del protocolo Write-Once
- - Escribir sin asignar en caso de fallo con actualización de D o SD
- - No se permite el uso de RWITM
- - No se permite el uso de "línea compartida".
- Operaciones del procesador
- Lee a la señorita
- - Al igual que con MOESI con "Línea compartida" "activada" e intervención solo del "propietario" D o SD , pero no de R.
- Escribir éxito
- - Si la caché es D o R , como con MOESI, la escritura puede realizarse localmente sin ninguna otra acción. La caché se establece (o permanece) en D.
- - Si SD o V (primera escritura), como con Write-Once , los datos se escriben en la caché y en MM (Write Through) invalidando todas las demás cachés (Write-Invalidate) – La caché se establece R
- - Escríbele a la señorita
- - Los datos se envían al bus sin pasar por la caché (Write-no-allocate).
- - Si existe una copia "propietaria" D o SD , la "propietaria" se actualiza (ver Escritura sin asignación: actualización de la propietaria ) mientras que las demás cachés se invalidan. La "propietaria" se establece (o permanece) como D. La memoria permanece "sucia".
- - de lo contrario, los datos se envían a MM invalidando todas las demás cachés (Write-Invalidate).
- - Escríbele a la señorita
- Transacciones de autobuses
- Autobús Leer
- - Al igual que con MOESI, con intervención únicamente del "propietario" D o SD.
- Lectura de bus (actualización de escritura / invalidación de escritura)
- - Si la caché es D o SD , la caché se actualiza; de lo contrario, se establece como "Inválida" ( I ).
- Operaciones
- Write-no-allocate : en caso de fallo
- Escribir actualización : en caso de fallo
- Escritura directa : para la primera escritura, luego copia de vuelta
- Escribir actualización / Escribir invalidar
- Intervención : de SD-D
- Copia de retorno : reemplazo D o reemplazo SD con invalidación
- Obs. - Este es el único protocolo que tiene transacciones OE (SD-R) y también es el único que utiliza Write-no-allocated en caso de fallo.
Protocolo Synapse

Estados DVI (MSI) [ 4 ]
- - Características:
- - La característica de este protocolo es tener una etiqueta de un solo bit con cada línea de caché en MM, lo que indica que una caché tiene la línea en estado D.
- - Este bit evita una posible condición de carrera si la caché D no responde con la suficiente rapidez como para impedir que el MM responda antes de actualizarse.
- - Los datos siempre provienen de MM
- - No se permite el uso de "línea compartida".
- - La característica de este protocolo es tener una etiqueta de un solo bit con cada línea de caché en MM, lo que indica que una caché tiene la línea en estado D.
- Operaciones del procesador
- Lee a la señorita
- - Si existe una copia D en otra caché, la transacción de lectura se rechaza (sin acuse de recibo). La copia D se vuelve a escribir en MM y cambia su estado en V ; luego, la caché solicitante reenvía una nueva transacción de lectura y los datos se leen desde MM.
- - de lo contrario, los datos se leen desde MM.
- - La caché está configurada en V
- Escribir éxito
- - Si la caché es D , la escritura puede realizarse localmente sin ninguna otra acción.
- - de lo contrario V , como lo hace Read Miss, incluyendo una transferencia de datos desde la memoria con un comando de invalidación adicional ( RWITM ). Esto se hace solo para invalidar las otras copias de V porque este protocolo no admite una transacción de invalidación.
- - La caché está configurada como D. Todas las demás copias de caché están configuradas como "Inválidas" ( I ).
- Escriba a la señorita ( RWITM )
- - Igual que con Read Miss, pero con el comando invalidate. La línea de caché proviene de MM, luego se escribe (actualiza) la caché. La caché se establece en D. Todas las demás cachés se establecen en "Inválidas" ( I ).
- Transacciones de autobuses
- Autobús Leer
- - Si la caché es D , los datos se envían a MM (Copia de retorno). La caché se establece en V.
- - de lo contrario el estado permanece en V
- Lectura de autobús ( RWITM )
- - Si la caché es D, los datos se envían a MM (Copia de retorno).
- - La caché ( D o V ) está configurada como "Inválida" ( I ).
- Operaciones
- Escribir Asignar
- Intervención : ninguna intervención
- Escribir Invalidar : ( RWITM )
- No invalidar transacción
- Copia de respaldo : Reemplazo D
Protocolo de Berkeley

Estados D-SD-VI (MOSI) [ 4 ]
- - Características:
- - Igual que con MOESI sin estado E
- - No se permite el uso de "línea compartida".
- Operaciones del procesador
- Lee a la señorita
- - Los datos son proporcionados por el "propietario", es decir, desde D o desde SD o desde MM. D se modifica en SD.
- - La caché está configurada en V
- Escribir éxito
- - Si la caché es D (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción.
- - de lo contrario ( SD o V ), se envía una transacción de "invalidación" en el bus para invalidar las otras cachés.
- - La caché está configurada (o permanece) D
- Escríbele a la señorita
- - La operación RWITM se envía al autobús
- - Al igual que con Read Miss, los datos provienen del "propietario", D o SD o de MM, y luego se actualiza la caché.
- - La caché está configurada como D. Todas las demás cachés están configuradas como I.
- Transacciones de autobuses
- Autobús Leer
- - Si la caché es D o SD, los datos se envían a la caché solicitante (intervención). La caché se establece (o permanece) en SD.
- - de lo contrario, la caché permanece en V
- Lectura de autobús – ( RWITM )
- - Si la caché es D o SD, los datos se envían al bus (Intervención).
- - La caché está configurada como "Inválida" ( I )
- Transacción inválida de autobús
- - La caché está configurada como "Inválida" ( I )
- Operaciones
- Escribir Asignar
- Intervención : de D-SD
- Escribir Invalidar
- Copia de seguridad : reemplazo de D-SD
Protocolo de luciérnagas (DEC)

Estados D-VE-S (MES) [ 4 ]
- - Características:
- - No hay estado "inválido"
- - "Escribir-difusión" + "Escribir a través"
- - Uso de "línea compartida"
- - La "difusión por escritura" evita la necesidad del estado "Inválido".
- - Intervención simultánea desde todas las cachés (intervención compartida y sucia: sobre datos no modificados que sobre datos modificados)
- - Este protocolo requiere un bus síncrono
- Operaciones del procesador
- Lee a la señorita
- - Cualquier otra caché es la "propietaria", es decir, todas las demás cachés con una copia suministrada simultáneamente de la fecha en el bus (intervención simultánea: la sincronización del bus está fija para que todas respondan en el mismo ciclo), de lo contrario, los datos son suministrados por MM.
- - Si existe una caché D , los datos se envían simultáneamente también a MM (Copia de retorno).
- - Si existen copias en las otras cachés, la opción "Línea compartida" se establece en "activada".
- - Si "Línea compartida" está "activada", todas las cachés se configuran en S; de lo contrario, la caché solicitante se configura en VE .
- Escribir éxito
- - Si la caché es D o VE (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción y la caché se establece en D.
- - de lo contrario S , se envía una "difusión de escritura" al bus para actualizar todas las demás cachés y el MM (Write Through).
- - Si hay una copia en otra caché, la "Línea compartida" se establece en "activada". Si la "Línea compartida" se establece en "desactivada", la caché se establece en VE; de lo contrario, todas las cachés se establecen en S.
- Escríbele a la señorita
- - La operación se realiza en dos pasos. Primero se lee el error y luego se escribe el acierto.
- - Si los datos provienen de una caché (Línea compartida "activada"), se envía una "difusión de escritura" al bus para actualizar todas las demás cachés y el MM (Escritura directa). Todas las cachés se configuran S
- - de lo contrario, la caché se establece en D
- Transacciones de autobuses
- Autobús Leer
- - Si se produce un acierto ( D , VE o S ), los datos se envían al bus (intervención) y, en caso de D, los datos también se escriben en MM. La caché se establece en S.
- Autobús Leer
- - Si se activa ( D o VE o S ), los datos se envían al bus (Intervención).
- - Todas las cachés están configuradas como S
- Escribir radiodifusión
- - La caché se actualiza con nuevos datos. El estado permanece S
- Operaciones
- Escribir Asignar
- Intervención : desde D-VE-S (desde todos los cachés "válidos")
- Escritura-difusión – Escribir a través de
- Copia de retorno : reemplazo D y en cualquier transacción con una caché D
Protocolo Dragon (Xerox)

Estados D-SD-VE-SC (MOES) [ 4 ]
Nota: el estado SC , a pesar del término "limpio", puede ser "limpio" o "sucio", al igual que el estado S de los demás protocolos. SC y S son equivalentes.
- - Características:
- - No hay estado "inválido"
- - "Escribir por difusión" (no "Escribir directamente")
- - Uso de "línea compartida"
- - La "difusión por escritura" evita la necesidad del estado "Inválido".
- Operaciones del procesador
- Lee a la señorita
- - Los datos son proporcionados por el "propietario", es decir, desde D o desde SD o desde MM. D se modifica en SD.
- - Si "línea compartida" está "activada", la caché se establece en SC; de lo contrario, en VE.
- Escribir éxito
- - Si la caché es D o VE (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción. La caché se establece (o permanece) como D.
- - de lo contrario SD o SC (compartición) los datos se escriben en la caché y se envía una "difusión de escritura" al bus para actualizar todas las demás cachés. - El MM no se actualiza (no hay escritura directa).
- - Si existe una copia en otra caché, la opción "Línea compartida" se establece en "activada".
- - Si la "Línea compartida" está "activada", la caché se establece en SD ; de lo contrario, en D. Todas las demás cachés que se pueden copiar se establecen en SC.
- Escríbele a la señorita
- - Al igual que con Read Miss, los datos provienen del "propietario", D o SD o de MM, y luego se actualiza la caché.
- - Si existe una copia en otra caché, la opción "Línea compartida" se establece en "activada".
- - Si la "Línea compartida" está "activada", los datos actualizados se transmiten a las demás cachés y el estado se establece en SD . Todas las demás cachés se establecen en SC.
- - de lo contrario la caché es D
- Transacciones de autobuses
- - Autobús Leer
- - Si la caché es D o SD, los datos se envían a la caché solicitante (intervención). La caché se establece (o permanece) en SD.
- - de lo contrario, la caché permanece SC
- - Autobús Leer
- Autobús Leer
- - Si la caché es D o SD, los datos se envían al bus (Intervención).
- - La caché está configurada como SC
- Escribir radiodifusión
- - La caché se actualiza con nuevos datos. La caché permanece SC
- Operaciones
- Escribir Asignar
- Intervención : de D-SD (pero no de VE)
- Redacción de programas de radiodifusión
- Copia de seguridad : reemplazo de D-SD
Protocolo MERSI (IBM) / MESIF (Intel)

Estados MERSI o R-MESI Estados MESIF Protocolos patentados – IBM (1997) [ 6 ] – Intel (2002) [ 8 ]
- - MERSI y MESIF son el mismo protocolo (solo cambia el nombre del estado, F en lugar de R ).
- - Características:
- - La misma funcionalidad del protocolo Illinois
- - Un nuevo estado R (Reciente) / F (Adelante) es el " propietario " de los datos "compartidos y limpios" (con MM actualizado).
- - La "propiedad compartida" (sobre datos limpios) no se asigna mediante una prioridad de red como en Illinois , sino que siempre se asigna a la última caché con Read Miss, estableciendo su estado R / F.
- - La "propiedad" se libera temporalmente en caso de reemplazo de R / F . La "propiedad" se reasigna nuevamente al siguiente Read Miss con cachés "compartidas limpias".
- - Uso de la "línea compartida"
- Operaciones
- Escribir Asignar
- Intervención : de MER/F
- Escribir Invalidar
- Copia de respaldo : reemplazo M
MESI contra MOESI
MESI y MOESI son los protocolos más populares.
Es común pensar que MOESI es una extensión del protocolo MESI y, por lo tanto, más sofisticado y eficaz. Esto solo es cierto si se compara con el MESI estándar, es decir, el MESI sin intervención compartida. El MESI con intervención compartida, como el MESI de Illinois o los protocolos equivalentes de 5 estados (MERSI/MESIF) , es mucho más eficaz que el protocolo MOESI .
En MOESI, las operaciones de caché a caché se realizan únicamente sobre datos modificados. En cambio, en los protocolos MESI tipo Illinois y MERSI/MESIF , las operaciones de caché a caché se realizan siempre tanto con datos limpios como modificados. En caso de datos modificados, la intervención la realiza el "propietario" M, pero la propiedad no se pierde, ya que se migra a otra caché (caché de lectura/escritura en MERSI/MESIF o una caché seleccionada como la de tipo Illinois ). La única diferencia es que el MM debe actualizarse. Sin embargo, también en MOESI esta transacción debe realizarse posteriormente en caso de reemplazo, si no se produce ninguna otra modificación mientras tanto. No obstante, este es un límite menor en comparación con las transacciones de memoria debido a la no intervención, como en el caso de datos limpios para el protocolo MOESI. (Véase, por ejemplo, "Evaluación del rendimiento entre MOESI (Shanghai) y MESIF Nehalem-EP" [ 21 ] ).
Los sistemas más avanzados utilizan únicamente el protocolo R-MESI/MESIF o los protocolos más completos RT-MESI , HRT-ST-MESI y POWER4 IBM , que son una fusión mejorada de los protocolos MESI y MOESI.
Nota: La comunicación caché a caché es un método eficiente en sistemas multiprocesador/multinúcleo con conexiones directas entre cachés, pero resulta menos eficiente en cachés remotas , como en sistemas NUMA , donde se prefiere un MESI estándar . Por ejemplo, el protocolo POWER4 de IBM con Intervención Compartida solo se realiza de forma local, no entre módulos remotos.
Protocolo RT-MESI

Estados RT-MESI Protocolo patentado por IBM [ 11 ] [ 12 ]
- Características:
- - Fusión de MESI y MOESI
- - Intervención compartida + Intervención con datos sucios (tanto en datos limpios como sucios)
- - Misma funcionalidad del protocolo R-MESI con un nuevo estado T = Etiquetado, equivalente al estado O.
- - Migración de "Dueño sucio"
- - El "propietario" (tanto compartido como modificado) es siempre la última caché solicitante (el nuevo "propietario" ( LRU ) tiene menos probabilidades de ser desasignado pronto en comparación con el anterior).
- - Los "propietarios" son T , M , E , R (todos excepto S )
- - Uso de la "línea compartida"
Operaciones del procesador
- Lee a la señorita
- - Si existe una copia M o T (propiedad sucia) en otra caché, los datos son suministrados por esta caché (intervención sucia). La caché solicitante se establece en T y las copias M o T anteriores se modifican en S.
- - Si existe una copia E o R (propiedad compartida) en otra caché, los datos son suministrados por esta caché (intervención compartida). Los datos solicitados se establecen en R y E o R se modifican en S.
- - de lo contrario, los datos se leen desde MM y la caché se establece en R.
- Escribir éxito
- - Si la caché es M o E (exclusividad), la escritura puede realizarse localmente sin ninguna otra acción.
- - de lo contrario T o R o S (compartir) se envía una transacción de "invalidación" en el bus para invalidar todas las demás cachés.
- - La caché está configurada (o permanece) en M y todas las demás cachés están configuradas en I.
- Escríbele a la señorita
- - La operación RWITM se envía al autobús
- - Los datos son suministrados por el "propietario" o por el MM como en Read Miss, luego los datos se escriben (actualizan) en la caché.
- - La caché está configurada como M y todas las demás cachés están configuradas como I.
- Transacciones de autobuses
- Autobús Leer
- - Si la caché es T , M , R o E, los datos se envían a la caché solicitante (intervención).
- - La caché está configurada (o permanece) en S
- Lectura de autobús – ( RWITM )
- - Si la caché es T , M , R o E, los datos se envían a la caché solicitante (intervención).
- - La caché está configurada como "Inválida" ( I )
- Transacción inválida de autobús
- - La caché está configurada como "Inválida" ( I )
- Operaciones
- Escribir Asignar
- Intervención : de TMRE
- Escribir Invalidar
- Copia de respaldo : reemplazo de la marca registrada
Protocolo RT-ST-MESI
Es una mejora del protocolo RT-MESI [ 12 ] y es un subconjunto del protocolo HRT-ST-MESI [ 11 ].
- S T = Etiquetado compartido
- - El uso del estado "Shared-Tagged" permite mantener la intervención después de la desasignación de una línea de caché etiquetada.
- - En caso de reemplazo de T (desasignación de línea de caché), los datos deben escribirse de nuevo en MM y, por lo tanto, se pierde la "propiedad". Para evitar esto, se puede utilizar un nuevo estado S T. En Read Miss , el T anterior se establece en S T en lugar de S. S T es el candidato para reemplazar la propiedad en caso de desasignación de T. La transacción "Copiar de vuelta" de T se detiene (sin actualización de MM) por la caché S T que cambia su estado en T. En caso de una nueva lectura de otra caché, esta última se establece en T , el T anterior se cambia en S T y el S T anterior se cambia en S.
Se puede obtener una mejora adicional utilizando más de un estado ST , ST1 , ST2 , … STn .
- - En Read Miss, T se cambia en S T1 y todos los índices de los demás S Ti se incrementan en "1.
- - En caso de desasignación de T , S T1 detiene la transacción "Copiar atrás", cambia su estado en T y todos los índices de los demás S Ti disminuyen en "1".
- - En caso de una desasignación, por ejemplo S Tk , la cadena se interrumpirá y todos los S Ti con índice mayor que "k" se aflojarán automáticamente en términos de S T y se considerarán de facto solo como estados S simples incluso si se establecen como S T. Todo esto porque solo S T1 interviene para bloquearse y reemplazarse a sí mismo con T. Por ejemplo, si tenemos un tipo de situación T , S T1 , S T3 , S T4 con S T2 reemplazado, si T se reemplaza la nueva situación será T , S T2 , S T3 sin ningún S T1 .
Protocolo HRT-ST-MESI

IBM patentó el protocolo completo HRT-ST-MESI [ 11 ] [ 12 ]
- Estado I = Etiqueta no válida (*) – Datos no válidos - Estado H = Etiqueta válida – Datos no válidos
- El estado I se establece durante la inicialización de la caché y su estado cambia solo después de un fallo de lectura o escritura del procesador. Después, no devolverá más en este estado.
- H tiene la misma funcionalidad que el estado I , pero además con la capacidad de capturar cualquier transacción de bus que coincida con la etiqueta del directorio y actualizar la caché de datos.
- Después de la primera utilización, I es reemplazada por H en sus funciones.
- - Las características principales son :
- - Responde
- - Intervención tanto en el intercambio de datos limpios como sucios – de TMRE
- - Reservar estados de los etiquetados (etiquetados compartidos)
- - Actualización automática del estado H (Hover) no válida
(*) – Nota: La etiqueta para la definición siempre es válida, pero hasta la primera actualización de la línea de caché se considera inválida para evitar actualizar la caché también cuando esta línea ya no se ha requerido ni utilizado.
Protocolo POWER4 de IBM
Estados MT-Me-SI -Mu-S L = RT-MESI+Mu [ 9 ]
- - Uso de la "línea compartida"
- Utilizado en sistemas multinúcleo/modulares : caché L2 múltiple [ 9 ]
- Este protocolo es equivalente al protocolo RT-MESI para sistemas con múltiples cachés L2 en sistemas multimodulares.
- S L - "Último compartido" equivalente a R en RT-MESI
- Yo - "Válido Exclusivo" = E
- Mu – estado modificado no solicitado
- - estado especial: se solicita una reserva para cargar y almacenar palabras dobles (para implementaciones de 64 bits)
- La "intervención compartida" de SL se realiza únicamente entre cachés L2 del mismo módulo .
- La "intervención sucia" de T se realiza únicamente entre cachés L2 del mismo módulo.
- Operaciones
- - Escribir Asignar
- - Intervención : de MT-VE-S L = MOES L
- - Escribir Invalidar
- - Copia de retorno : reemplazo de MT
- - Nota : T y S L – Intervención únicamente en el módulo de localización
Consideraciones generales sobre los protocolos
En determinadas condiciones, el protocolo más eficiente y completo resulta ser el protocolo HRT-ST-MESI .
- - Responde
- - Intervención tanto con datos sucios como con datos limpios compartidos
- - Reservar estados del estado etiquetado (etiquetado compartido)
- - Actualización automática de estado H (Hover) no válida
Referencias
- ↑ Patente estadounidense 5701413 , "Sistema multiprocesador con memoria compartida"
- ↑ Patente europea 0923032A1 , "Método para transferir datos en un sistema informático multiprocesador con unidad de interconexión de barras cruzadas"
- ↑ "Especificación y verificación del protocolo de arbitraje del bus PowerScale: un experimento industrial con LOTOS, cap. 2, pág. 4" (PDF) . Archivado del original (PDF) el 6 de julio de 2017.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 , Archibald , James; Baer, Jean-Loup (1986). "Protocolos de coherencia de caché: evaluación mediante un modelo de simulación multiprocesador" (PDF) . ACM Transactions on Computer Systems . 4 (4). Association for Computing Machinery (ACM): 273– 298. doi : 10.1145/6513.6514 . ISSN 0734-2071 . S2CID 713808 .
- 1 2 ""Manual de usuario del microprocesador RISC MPC7400"" (PDF) .
- 1 2 3 4 5 6 7 Patente estadounidense 5996049 , "Protocolo de coherencia de caché con estado de lectura reciente para datos e instrucciones"
- 1 2 ""Introducción a la interconexión Intel® QuickPath"" (PDF) .
- 1 2 Patente estadounidense 6922756 , "Estado directo para su uso en coherencia de caché en un sistema multiprocesador"
- 1 2 3 4 "Microarquitectura del sistema POWER4" (PDF) . cc.gatech.edu . 8 de octubre de 2008. Archivado del original (PDF) el 7 de noviembre de 2013.
- ↑ "Manual de datos del núcleo de caché L2 del IBM PowerPC 476FP"
- 1 2 3 4 5 6 7 Patente estadounidense 6275908 , "Protocolo de coherencia de caché que incluye un estado HR"
- 1 2 3 4 5 6 7 8 Patente estadounidense 6334172 , "Protocolo de coherencia de caché con estado etiquetado para valores modificados"
- ↑ ""MPC750UM/D 12/2001 Rev. 1 Manual del usuario de la familia de microprocesadores RISC MPC750"" (PDF) .
- 1 2 3 4 Shanley, T. (1998). Arquitectura del sistema Pentium Pro y Pentium II . Serie de arquitectura de sistemas de PC de Mindshare. Addison-Wesley. pág. 160. ISBN 978-0-201-30973-7.
- ↑ Manual del programador de la arquitectura AMD64 . Vol. 2: Programación del sistema. AMD. Mayo de 2013 – vía Internet Archive.
- 1 2 3 Sweazey, P.; Smith, AJ (1986). "Una clase de protocolos de consistencia de caché compatibles y su soporte por el IEEE futurebus" (PDF) . ACM SIGARCH Computer Architecture News . 14 (2). Association for Computing Machinery (ACM): 414– 423. doi : 10.1145/17356.17404 . ISSN 0163-5964 . S2CID 9713683 .
- ↑ Papamarcos, Mark S.; Patel, Janak H. (1984). «Una solución de coherencia de baja sobrecarga para multiprocesadores con memorias caché privadas» . Actas del 11.º simposio internacional anual sobre arquitectura de computadoras - ISCA '84 . Nueva York, Nueva York, EE. UU.: ACM Press. págs. 348–354 . doi : 10.1145/800015.808204 . ISBN 0818605383.
- 1 2 Goodman, James R. (1983). "Uso de la memoria caché para reducir el tráfico de memoria del procesador" (PDF) . Actas del 10.º simposio internacional anual sobre arquitectura de computadoras - ISCA '83 . Nueva York, Nueva York, EE. UU.: ACM Press. págs. 124–131 . doi : 10.1145/800046.801647 . ISBN 0897911016.
- 1 2 Hwang, K. (2011). Arquitectura avanzada de computadoras, 2.ª ed . Serie de ciencias de la computación de McGraw-Hill. McGraw Hill Education. pág. 301. ISBN 978-0-07-070210-3.
- 1 2 3 4 Patente EP 0396940B1 , Ferruccio Zulian, "Memoria caché y protocolo de consistencia relacionado"
- 1 2 Hackenberg, Daniel; Molka, Daniel; Nagel, Wolfgang E. (12 de diciembre de 2009). "Comparación de arquitecturas de caché y protocolos de coherencia en sistemas SMP multinúcleo x86-64" (PDF) . Actas del 42.º Simposio Internacional Anual IEEE/ACM sobre Microarquitectura . Nueva York, NY, EE. UU.: ACM. págs. 413–422 . doi : 10.1145/1669112.1669165 . ISBN 9781605587981.
- 1 2 Rolf, Trent (2009), Organización de caché y gestión de memoria de la arquitectura informática Intel Nehalem (PDF)
- ↑ David Kanter (28 de agosto de 2007), "La interfaz de sistema común: la interconexión futura de Intel" , Real World Tech : 5 , consultado el 12 de agosto de 2012.
- ↑ "Optimización del protocolo de coherencia de caché MESI para aplicaciones multihilo en sistemas multiprocesador simétricos pequeños" . Currículum de Neal Tibrewala . 12 de diciembre de 2003. Archivado del original el 22 de octubre de 2016.
- Coherencia de caché