Protocolos de Coherencia de Caché MESI y Dragon: Funcionamiento y Estados

Enviado por fer y clasificado en Informática

Escrito el en español con un tamaño de 5,89 KB

Protocolo MESI (MSI con Estado Exclusivo)

El protocolo MESI añade el estado E (Exclusivo) al esquema tradicional MSI. Su objetivo principal es evitar transacciones innecesarias en el bus cuando la copia local es la única existente. Además, cabe destacar que el número de bits de codificación para las líneas de memoria es el mismo que en MSI, ya que tanto para almacenar tres estados como para almacenar cuatro estados se requieren exactamente 2 bits.

Transiciones y Dinámica de Estados en MESI

  • Entrada inicial: Entramos en el estado Compartido mediante una operación de lectura si existen copias previas; si no hay más copias, se entraría directamente en Exclusivo. Con una operación de escritura local se entra en Modificado, ya que la única copia válida pasa a ser la del procesador local.
  • Estado Compartido: Nos mantenemos en Compartido ante sucesivas operaciones de lectura, ya procedan del procesador local o de algún procesador remoto. Si un procesador remoto escribe, pasamos a Inválido; en cambio, si escribe el procesador local, realizamos la transición a Modificado.
  • Estado Exclusivo: Nos mantenemos en Exclusivo mientras sea el procesador local el que lee. Si otro procesador solicita la lectura, pasa a Compartido al registrarse más de una copia. Si el procesador local realiza una escritura, se pasa a Compartido (o actualiza a Modificado según la gestión del bus), y si la escritura proviene de otro nodo, pasa de inmediato a Inválido.
  • Estado Modificado: Permanecemos en Modificado ante cualquier operación local. Salimos de este estado a Inválido ante una escritura externa y a Compartido ante una lectura remota.
  • Estado Inválido: Nos mantenemos en Inválido ante cualquier operación remota. Desde aquí, una lectura local nos lleva a Compartido si existen más copias o a Exclusivo si no hay ninguna otra.

La ventaja de este esquema radica en que evita transacciones innecesarias si no hay más copias en memoria (paso directo de Exclusivo a Modificado), omitiendo divulgar al bus la intención de escribir. Esto representa una gran optimización porque constituye una operación altamente frecuente que no requiere la confirmación ni respuesta de los demás procesadores.

Protocolo Dragon

El protocolo Dragon dispone de cuatro estados, diferenciando explícitamente si una copia compartida ha sido modificada o no: SC (Compartido Limpio / Shared Clean) y SM (Compartido Modificado / Shared Modified: asignado al último que ha escrito). Este esquema soluciona las limitaciones de transferencias del modelo anterior.

Transiciones y Comportamiento en Dragon

  • Asignación inicial: Si el procesador local realiza una lectura, entra en Compartido Limpio (SC) si hay más copias presentes, o en Exclusivo (E) si no las hay. Si ejecuta una escritura, ingresa en Compartido Modificado (SM) si existen más copias, o bien directamente en Modificado (M).
  • Permanencia y salida de Exclusivo: Se mantiene en Exclusivo mientras el procesador local únicamente realice lecturas. Abandona este estado hacia Compartido Limpio en el momento en que otro procesador solicite una lectura o una escritura. Si el procesador local escribe, pasa a Modificado al ser el propietario único de la línea.
  • Estado Modificado: Al haber una única copia local y haberse realizado escrituras en ella, el sistema permanece en Modificado ante cualquier operación ejecutada por el nodo local. Cambia a Compartido Limpio si un nodo externo efectúa una escritura (convirtiéndose el nuevo procesador en dueño) o a Compartido Modificado si la intervención externa es de solo lectura.
  • Estado Compartido Modificado (SM): El procesador local continúa considerándose dueño de la línea. Ante nuevas lecturas o escrituras locales, permanece en Compartido Modificado; igualmente, ante lecturas externas, conserva este estado. Pasaría a Modificado si una escritura local elimina la presencia de copias ajenas. Por el contrario, si se ejecuta una escritura remota desde otro procesador, el bloque pasa a Compartido Limpio.
  • Estado Compartido Limpio (SC): El bloque se mantiene en este estado siempre que ocurran operaciones de lectura (locales o remotas) o escrituras remotas. Al realizar una escritura local, transiciona a Modificado (si ya no quedan más copias) o a Compartido Modificado si continúan existiendo múltiples propietarios. Cuando todas las copias activas se hallan en SC, cualquier nueva solicitud de datos es suministrada directamente por la memoria principal.

Nota técnica: No es posible pasar de Compartido Limpio a Exclusivo de forma pasiva debido a que las operaciones de lectura no se señalizan globalmente.

Limitaciones de la Topología de Bus Compartido

El medio físico habitual de interconexión entre nodos es un bus compartido. Dado que todo el ancho de banda disponible se distribuye entre los distintos procesadores, la adición excesiva de nodos degrada el rendimiento, volviendo el ancho de banda insuficiente e inviable para arquitecturas masivamente paralelas.

Entradas relacionadas: