0% encontró este documento útil (0 votos)
52 vistas23 páginas

Memoria Compartida Distribuida

Este documento describe la memoria compartida distribuida y los protocolos de coherencia basados en directorio. Explica que un directorio distribuido permite escalar el número de procesadores almacenando el estado de cada bloque de memoria de forma descentralizada. También describe los mensajes y estados básicos de un protocolo de directorio, como fallos de lectura/escritura, invalidaciones, captaciones de bloques y respuestas.

Cargado por

juan enrique
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas23 páginas

Memoria Compartida Distribuida

Este documento describe la memoria compartida distribuida y los protocolos de coherencia basados en directorio. Explica que un directorio distribuido permite escalar el número de procesadores almacenando el estado de cada bloque de memoria de forma descentralizada. También describe los mensajes y estados básicos de un protocolo de directorio, como fallos de lectura/escritura, invalidaciones, captaciones de bloques y respuestas.

Cargado por

juan enrique
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 23

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

También podría gustarte