Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 1/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 2/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 3/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 4/23
Memoria compartida distribuida
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).
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 5/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 6/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 7/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 8/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 9/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 10/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 11/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 12/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 13/23
Memoria compartida distribuida
Protocolo basado en directorio
Transición de estados de caché individual
Inválido (I)
ar
id
al
In
nv
ra
va
tu
r/I
lid
i
ta
ar
c
ra
ap
En
s
itu
-e
PU
C
Le
vi
st
cr
ar
C
c
Po
tu
es
ra
ra
itu
en
llo
C
cr
s.
fa
PU
Es
f
s
al
en
lo
m
Fallo lectura
le
ar
ct
Acierto lectura
vi
ur
Acierto escritura Acierto lectura
En
Post-escritura y leer fallo
a
Captar
Modificado Compartido
(Solo lect) (Lect/Escr)
Post-escritura
Acierto escritura
Fallo escritura Enviar mens invalidación Fallo lectura
Post-escritura Leer fallo
Fallo escritura
Enviar mens fall escritura
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 14/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 15/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 16/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 17/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 18/23
Memoria compartida distribuida
Protocolo basado en directorio
Transición de estados del directorio
No cacheado
a
ur
rit
sc
P}
R
{}
t-e
es
=
={
ra
os
s
pu
Fa
os
Po
itu
od
l
es
lo
od
cr
N
t
es
le
;N
ct
da
lo
to
ur
l
to
Fa
a
da
;N
ta
od
es
os
pu
={
es
P}
R
Exclusivo Fallo lectura Compartido
(Lect/Escr)) (Solo lectura)
Captar;Respuesta dato;Nodo=Nodo+{P}
Fallo escritura Fallo lectura
Captr/Invalidar Fallo escritura Nodos=Nodos+{P}
Respuesta dato
Nodo={P} Invalidar; Nodos={P}; Respuesta dato
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 19/23
Memoria compartida distribuida
Conclusión
1 Introducción a memoria compartida distribuida
2 Bases del protocolo de directorio
3 Protocolo basado en directorio
4 Conclusión
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 20/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 21/23
Memoria compartida distribuida
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.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 22/23
Memoria compartida distribuida
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
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 23/23