Memoria compartida distribuida Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 1/23
Introducción a memoria compartida distribuida 1 Introducción a memoria compartida distribuida 2 Bases del protocolo de directorio 3 Protocolo basado en directorio 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 2/23
Introducción a memoria compartida distribuida Protocolos de espionaje y escalabilidad Problemas de protocolos de espionaje. Requiere comunicación con todas las cachés: En cada fallo de caché. En cada escritura de dato compartido. Qué ventaja tienen los protocolos de espionaje? Ausencia de estructura de datos centralizada. Bajo coste de implementación. Qué inconveniente tiene los protocolos de espionaje? Ausencia de estructura de datos centralizadas. Comunicaciones limitan la escalabilidad. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 3/23
Introducción a memoria compartida distribuida Modelo básico de DSM P1 P2 Mem E/S Mem E/S Red de interconexión Mem E/S Mem E/S P3 P4 Necesidad de eliminar tráfico de coherencia. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 4/23
Introducción a memoria compartida distribuida Clases de protocolos de coherencia Espionaje (snooping): Cada caché mantiene el estado de compartición de cada bloque que tiene. Las cachés accesibles mediante medio de multidifusión (bus). Todas las cachés monitorizan si tienen una copia del bloque. Basados en directorio: El estado de compartición se mantiene en un directorio. SMP: Directorio centralizado en memoria o en caché de más alto nivel. DSM: Para evitar cuello de botella se usa un directorio distribuido (más complejo). cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 5/23
Introducción a memoria compartida distribuida Protocolo basado en directorio Idea: Mantener el estado de cada bloque de caché. Qué cachés tiene copia del bloque? Bits de estado del bloque. Multicores con caché externa compartida. Vector de bits de longitud igual a número de cores. Indica que cachés privadas pueden tener copia del bloque. Solamente se envía invalidación a cachés marcadas en mapa de bits. Esquema funciona bien dentro de un único multicore. Ejemplo: Intel Core i7. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 6/23
Introducción a memoria compartida distribuida Directorio centralizado y escalabilidad Un directorio centralizado evita broadcast pero Se convierte en cuello de botella. Problema de escalabilidad con número de procesadores. Solución: Directorio distribuido. Distribuir el directorio con la memoria. Cada directorio tiene información de la memoria local asociada. Siempre se sabe a qué directorio ir. Distintas peticiones de coherencia van a distintos directorios. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 7/23
Introducción a memoria compartida distribuida Direcotrio distribuido P1 P2 Mem E/S Mem E/S Dir Dir Red de interconexión Dir Dir Mem E/S Mem E/S P3 P4 cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 8/23
Bases del protocolo de directorio 1 Introducción a memoria compartida distribuida 2 Bases del protocolo de directorio 3 Protocolo basado en directorio 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 9/23
Bases del protocolo de directorio Directorio Operaciones básicas. Tratamiento de fallo de lectura. Tratamiento de escritura en un bloque compartido limpio. El directorio debe mantener el estado de cada bloque: Compartido: Uno o más nodos tienen el bloque en caché y el valor en memoria está actualizado. No cacheado: Ningún nodo tiene una copia del bloque. Modificado: Solamente un nodo tiene copia del bloque en caché y lo ha escrito. Valor en memoria no actualizado. Además: Mapa de bits con información de nodos que tienen copias del bloque. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 10/23
Bases del protocolo de directorio Mensajes Mensaje Fuente Destino Contenido Función Fallo Caché Directorio P,A P tiene fallo de lectura en A. lectura local local Pedir dato y P compartidor. Fallo Caché Directorio P,A P tiene fallo de escritura en A. escritura local local Pedir dato y P propietario. Invalidación Caché Directorio A Invalidar A en todas las cachés. local local Invalidación Caché Directorio A Invalidar copia compartida. local remota Captación Directorio Caché A Capta bloque. local remota Estado a compartido. Captación/ Directorio Caché A Capta bloque. Innvalidación local remota Invalida bloque. Respuesta Directorio Caché D Devolver valor a directorio. valor dato local local Post-escritura Caché Directorio A,D Post-escritura de dato. dato remota local P Nodo, A Dirección, D Dato cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 11/23
Protocolo basado en directorio 1 Introducción a memoria compartida distribuida 2 Bases del protocolo de directorio 3 Protocolo basado en directorio 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 12/23
Protocolo basado en directorio Transición de estados En chips multicore: La coherencia interna se mantiene mediante directorio centralizado. El mismo directorio puede actuar como directorio local en DSM. Implementación del protocolo: Transición de estados de caché local. Envían peticiones a directorio local. Transición de estados del directorio. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 13/23
Protocolo basado en directorio Transición de estados de caché individual Acierto lectura Acierto escritura Modificado (Solo lect) Captar/Invalidar Post-escritura Escritura CPU Enviar mens fallo escritura Inválido (I) Fallo lectura Post-escritura y leer fallo Captar Post-escritura Lectura CPU Enviar mens. fallo lectura Invalidar Compartido (Lect/Escr) Acierto lectura Fallo escritura Post-escritura Acierto escritura Enviar mens invalidación Fallo escritura Enviar mens fall escritura Fallo lectura Leer fallo cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 14/23
Protocolo basado en directorio Entrada no cacheada El valor de memoria está actualizado. Peticiones: Fallo de lectura: Se envía dato de memoria a nodo peticionario. Nodo peticionario es el único en estado compartido. Estado pasa a compartido. Fallo de escritura: Se envía dato de memoria a nodo peticionario. El bloque se pasa a estado exclusivo. Nodo peticionario es el propietario. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 15/23
Protocolo basado en directorio Entrada compartida El valor de memoria está actualizado. Peticiones: Fallo de lectura: Se envía el dato de memoria al nodo peticionario. El nodo peticionario se añade al conjunto de nodos de la entrada. Fallo de escritura: Se envía el dato de memoria al nodo peticionario. Se envían mensajes de invalidación al conjunto de nodos de la entrada. Se activa en el conjunto solamente el nodo peticionario. Se pasa a estado exclusivo. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 16/23
Protocolo basado en directorio Entrada exclusiva El valor del bloque se encuentra en caché en el nodo identificado por el conjunto (nodo porpietario). Peticiones: Fallo de lectura: Se envía mensaje de captación a propietario. Se escribe dato en memoria. Se envía dato a nodo peticionario. Se añade nodo peticionario a conjunto de nodos. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 17/23
Protocolo basado en directorio Entrada exclusiva Peticiones: Post-escritura: Ocurre cuando el propietario hace post-escritura del bloque. El bloque pasa a estado no cacheado. Se vacía el conjunto de la entrada. Fallo de escritura: El bloque tiene nuevo propietario. Se invalida bloque en antiguo propietario y se obtiene valor. Se envía valor a nodo peticionario. Se activa en el conjunto solamente el nuevo peticionario. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 18/23
Protocolo basado en directorio Transición de estados del directorio No cacheado Fallo escritura Captr/Invalidar Respuesta dato Nodo={P} Exclusivo (Lect/Escr)) Post-escritura Nodos={} Fallo escritura Respuesta dato; Nodos={P} Fallo lectura Fallo escritura Fallo lectura Respuesta dato; Nodos={P} Captar;Respuesta dato;nodo=nodo+{p} Invalidar; Nodos={P}; Respuesta dato Compartido (Solo lectura) Fallo lectura Nodos=Nodos+{P} cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 19/23
Conclusión 1 Introducción a memoria compartida distribuida 2 Bases del protocolo de directorio 3 Protocolo basado en directorio 4 Conclusión cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 20/23
Conclusión Resumen Problemas de escalabilidad en protocolos de espionaje. Alternativas de protocolos basados en directorio: Directorio centralizado en SMP. Directorio distribuido en DSM. En chips multicore: Coherencia interna mediante directorio centralizado. Usado como directorio local en DSM. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 21/23
Conclusión Referencias Computer Architecture. A Quantitative Approach 5th Ed. Hennessy and Patterson. Secciones: 5.4. Ejercicios recomendados: 5.9, 5.10, 5.11, 5.12. cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 22/23
Conclusión Memoria compartida distribuida Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Grupo ARCOS Departamento de Informática Universidad Carlos III de Madrid cbed Arquitectura de Computadores Grupo ARCOS http://www.arcos.inf.uc3m.es 23/23