Memoria Compartida Simetrica
Memoria Compartida Simetrica
Memoria Compartida Simetrica
Grupo ARCOS
Departamento de Informática
Universidad Carlos III de Madrid
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Asume MIMD.
Nuevas aplicaciones:
Aplicaciones empotradas.
Desktop.
Servidores de alta gama.
Multiprocesadores
Un multiprocesador es un computador formado por
procesadores altamente acoplados con:
Coordinación y uso típicamente controlados por un
sistema operativo único.
Compartición de memoria mediante un único espacio
de direcciones compartido.
Modelos de software:
Procesamiento paralelo: Conjunto de hilos acoplados que
cooperan.
Procesamiento de peticiones: Ejecución de procesos
independientes originados por usuarios.
Multiprogramación: Ejecución independiente de múltiples
aplicaciones.
Alternativas:
CMP (Chip MultiProcessors) o multi-core.
Múltiples chips.
Cada uno puede ser (o no) multi-core.
Multicomputador: Procesadores débilmente acoplados
que no comparten memoria.
Usados en computación científica de gran escala.
Aprovechamiento de un multiprocesador:
Con n procesadores se necesitan n hilos o procesos.
Identificación de hilos:
Identificados explícitamente por programador.
Creados por el sistema operativo a partir de peticiones.
Iteraciones de un bucle generadas por compilador paralelo
(p. ej. OpenMP).
P1 P2 P3 P4
Caché compartida
Memoria principal
P1 P2
Red de interconexión
P3 P4
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Evolución:
1. Mono-núcleo con memoria en bus compartido.
2. Conexión de memoria a bus separado solamente para
memoria.
Memoria caché
Tipos de datos en memoria caché:
Datos privados: Datos usados por un único procesador.
Datos compartidos: Datos usados por varios
procesadores.
Coherencia de caché
$t0
Thread 1 Thread 2 inicialmente 1.
lw $t0 , d i r x lw $t0 , d i r x Asumiendo
addi $t0 , $t0 , 1
sw $t0 , d i r x
escritura
inmediata.
Incoherencia de caché
¿Por qué se da la incoherencia?
Dualidad de estado:
Estado global → Memoria principal.
Estado local → Caché privada.
Dos aspectos:
Coherencia: ¿Qué valor devuelve una lectura?
Consistencia: ¿Cuándo obtiene una lectura un valor
escrito?
Consistencia de memoria
Define en qué momento un proceso que lee verá una
escritura.
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Multiprocesadores coherentes
Un multiprocesador coherente ofrece:
Migración de datos compartidos.
Un dato puede moverse a una caché local y usarse de forma
transparente.
Reduce latencia de acceso a dato remoto y demanda de
ancho de banda a la memoria compartida.
Snooping (espionaje):
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 el medio de multidifusión
para determinar si tienen una copia del bloque.
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Mantenimiento de la coherencia
Invalidación de escrituras:
Garantiza que un procesador tiene acceso exclusivo a un
bloque antes de realizar una escritura.
Invalida el resto de copias que puedan tener otros
procesadores.
Implementación
Invalidación:
Se aprovecha el bit de validez (V) asociado a cada bloque.
Escrituras:
Necesidad de saber si hay otras copias en caché.
Si no hay otras copias no hay que difundir escritura.
Protocolo básico
Basado en una máquina de estados para cada bloque
de caché:
Cambios de estado generados por:
Peticiones del procesador.
Peticiones del bus.
Acciones:
Cambios de estado.
Acciones sobre el bus.
Inválido (I)
Fallo lectura
Fallo escritura Bus: Fallo lectura
ra
Fa
ra
itu
Bu
l
itu
lo
cr
s:
es
cr
le
ct
Fa
es
llo
ur
llo
lo
Fa
a
al
le
:F
ct
ur
s
Bu
a
Fallo lectura
Acierto lectura Modificado (M) Compartido (S) Acierto lectura
Acierto escritura Escribir bloque / Bus: Fallo lectura
Acierto escritura
Bus: Invalidación
Fallo escritura
Inválido (I)
Fa
l lo
de
ra es
itu
ia
cr
cr
or
m e itur
es
em
o qu
a
de
es blo
In
va
llo
cc r i
lid
r a rib
Fa
ar
ta c
or Es
Ab
Fallo de lectura
Modificado (M) Compartido (S) Fallo de lectura
Escribir bloque
Abortar acceso memoria
Solución:
El procesador que envía invalidación mantiene propiedad
del bus hasta que la invalidación llega al resto.
Extensiones a MSI
MESI:
Añade estado exclusivo (E) que indica que el bloque
reside en una única caché pero no está modificado.
Escritura de un bloque E no genera invalidaciones.
MESIF:
Añade estado forward (F): Alternativa a S que indica qué
nodo debe responder a una petición.
Usado en Intel Core i7.
MOESI:
Añade estado poseído (O) que indica que el bloque está
desactualizado en memoria.
Evita escrituras a memoria.
Usado en AMD Opteron.
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Rendimiento
El uso de políticas de coherencia de caché tiene impacto
sobre tasa de fallos.
4 Protocolos de espionaje
5 Rendimiento en SMPs
6 Conclusión
Resumen
Multiprocesador como computador con procesadores
altamente acoplados con coordinación, uso y compartición
de memoria.
Multiprocesadores clasificados en SMP (Symetric
multiprocessor) y DSM (Distributed Shared Memory).
Dos aspectos a considerar en la jerarquía de memoria:
coherencia y consistencia.
Dos alternativas en la coherencia de caché: directorio y
espionaje (snooping).
Los protocolos de espionaje no requieren un elemento
centralizado.
Pero generan más tráfico de bus.
Referencias
Computer Architecture. A Quantitative Approach
5th Ed.
Hennessy and Patterson.
Secciones: 5.1, 5.2, 5.3.
Ejercicios recomendados:
5.1, 5.2, 5.3, 5.4, 5.5, 5.6.
Grupo ARCOS
Departamento de Informática
Universidad Carlos III de Madrid