Memoria Compartida Simetrica

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 37

Memoria compartida simétrica

Memoria compartida simétrica


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/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 2/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

Creciente importancia de multiprocesadores


Caída de la eficiencia en uso de silicio y energía al
explotar mayor nivel de ILP.
El coste de silicio y energía crece más rápidamente que el
rendimiento.

Interés creciente en servidores de alto rendimiento.


Cloud computing, software as a service, . . .

Crecimiento de aplicaciones intensivas en datos.


Enormes cantidades de datos en Internet.
Big data analytics.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 3/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

TLP: Paralelismo a nivel de hilo


TLP implica la existencia de múltiples contadores de
programa.

Asume MIMD.

Uso generalizado de TLP fuera de computación científica


relativamente reciente.

Nuevas aplicaciones:
Aplicaciones empotradas.
Desktop.
Servidores de alta gama.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 4/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 5/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

La aproximación más común:


De 2 a decenas de procesadores.
Memoria compartida.
Implica memoria compartida.
No necesariamente implica una única memoria física.

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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 6/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

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).

Identificación realizada a alto nivel por el programador o


software de sistema con hilos con un número suficiente
de instrucciones a ejecutar.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 7/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

Multiprocesadores y memoria compartida

SMP: Symmetric Multi-Processor DSM: Distributed Shared Memory

Memoria compartida Memoria compartida


centralizada. distribuida
Comparten una memoria La memoria se distribuye
centralizada única a la que entre los procesadores.
todos acceder por igual. Necesaria cuando hay
Todos los multi-core son SMP. muchos procesadores.
UMA: Uniform Memory NUMA: Non Uniform Memory
Access Access.
La latencia de memoria es La latencia depende de la
uniforme. ubicación del dato accedido.

Comunicación mediante acceso a memoria compartidas globales.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 8/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

SMP: Symmetric MultiProcessor

P1 P2 P3 P4

Caché Caché Caché Caché


privada privada privada privada

Caché compartida

Memoria principal

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 9/37


Memoria compartida simétrica
Introducción a las arquitecturas multiprocesador

DSM: Distributed Shared Memory

P1 P2

Mem E/S Mem E/S

Red de interconexión

Mem E/S Mem E/S

P3 P4

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 10/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 11/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

SMP y jerarquía de memoria


¿Por qué usar memoria centralizada?
Cachés grandes multi-nivel reducen la demanda de ancho
de banda sobre memoria principal.

Evolución:
1. Mono-núcleo con memoria en bus compartido.
2. Conexión de memoria a bus separado solamente para
memoria.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 12/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

Memoria caché
Tipos de datos en memoria caché:
Datos privados: Datos usados por un único procesador.
Datos compartidos: Datos usados por varios
procesadores.

Problema con datos compartidos:


El dato puede replicarse en múltiples caché.
Reduce la contención.
Cada procesador accede a su copia local.
Si dos procesadores modifican sus copias . . .
¿Coherencia de caché?

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 13/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

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.

Proceso Instrucción Caché P1 Caché P2 Memoria principal


T1 Inicialmente No presente No presente 1
T1 lw $t0, dirx 1 No presente 1
T1 addi $t0, $t0, 1 1 No presente 1
T2 lw $t0, dirx 1 1 1
T1 sw $t0, dirx 0 1 1

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 14/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

Incoherencia de caché
¿Por qué se da la incoherencia?
Dualidad de estado:
Estado global → Memoria principal.
Estado local → Caché privada.

Un sistema de memoria es coherente si cualquier lectura


de una posición devuelve el valor más reciente que se
haya escrito para esa posición.

Dos aspectos:
Coherencia: ¿Qué valor devuelve una lectura?
Consistencia: ¿Cuándo obtiene una lectura un valor
escrito?

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 15/37


Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

Condiciones para la coherencia


Preservación de orden de programa:
Una lectura del procesador P sobre la posición X posterior
a una escritura del procesador P sobre la posición X, sin
escrituras intermedias de X por otro procesador, siempre
devuelve el valor escrito por P.
Vista coherente de la memoria:
Una lectura de un procesador sobre la posición X posterior
a una escritura por otro procesador sobre la posición X,
devuelve el valor escrito si las dos operaciones están
suficientemente separadas en el tiempo y no hay escrituras
intermedias sobre X.
Serialización de escrituras:
Dos escrituras sobre la misma posición por dos
procesadores son vistas en el mismo orden por todos los
procesadores.
cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 16/37
Memoria compartida simétrica
Arquitecturas de memoria compartida centralizada

Consistencia de memoria
Define en qué momento un proceso que lee verá una
escritura.

Coherencia y consistencia son complementarias:


Coherencia: Comportamiento de lecturas y escrituras a
una única posición de memoria.
Consistencia: Comportamiento de lecturas y escrituras
con respecto a accesos a otras posiciones de memoria.

Existen distintos modelos de consistencia de memoria.


Dedicaremos una sesión específica a este problema.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 17/37


Memoria compartida simétrica
Alternativas de coherencia de caché

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 18/37


Memoria compartida simétrica
Alternativas de coherencia de caché

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.

Replicación de datos compartidos leídos


simultáneamente.
Se realiza copia del dato en caché local.
Reduce latencia de acceso y contención de las lecturas.

Propiedades críticas para el rendimiento:


Solución: Protocolo hardware de mantenimiento de
coherencia de caché.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 19/37


Memoria compartida simétrica
Alternativas de coherencia de caché

Clases de protocolos de coherencia de caché


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).

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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 20/37


Memoria compartida simétrica
Protocolos de espionaje

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 21/37


Memoria compartida simétrica
Protocolos de espionaje

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.

Actualización de escrituras (difusión de escrituras):


Difunde todas las escrituras a todas las cachés para
modificar el bloque.
Consume más ancho de banda.

Estrategia más común ⇒ Invalidación.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 22/37


Memoria compartida simétrica
Protocolos de espionaje

Uso del bus de memoria


Invalidación.
El procesador adquiere el bus y difunde la dirección a
invalidar.
Todos los procesadores espían el bus.
Cada procesador comprueba si tienen en caché la
dirección difundida y la invalidan.
No puede haber dos escrituras simultáneas:
El uso exclusivo del bus serializa las escrituras.
Fallos de caché:
Escritura inmediata (write through):
La memoria tiene la última escritura realizada.
Post-escritura (write back):
Si un procesador tiene una copia modificada, contesta al
falló de caché del otro procesador.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 23/37


Memoria compartida simétrica
Protocolos de espionaje

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.

Se añade bit de compartición (S) asociado a cada bloque.


Cuando hay escritura:
Se genera invalidación en bus.
Se pasa de estado compartido a estado exclusivo.
No hace falta enviar nuevas invalidaciones.

Cuando hay fallo de caché en otro procesador:


Se pasa de estado exclusivo a estado compartido.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 24/37


Memoria compartida simétrica
Protocolos de espionaje

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.

Aproximación simple con tres estados:


M: El bloque ha sido modificado.
S: El bloque está compartido.
I: El bloque ha sido invalidado.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 25/37


Memoria compartida simétrica
Protocolos de espionaje

Acciones generadas por el procesador


Petición Estado Acción Descripción
Acierto de lectura S→S Acierto Leer dato de caché local
Acierto de lectura M→M Acierto Leer dato de caché local
Fallo de lectura I→S Fallo Difundir fallo de lectura en bus.
Fallo de lectura S→S Remplazo Fallo de conflicto de dirección.
Difundir fallo de lectura en bus.
Fallo de lectura M→S Remplazo Fallo de conflicto de dirección.
Escribir bloque y difundir fallo de lectura.
Acierto de escritura M→M Acierto Escribir dato en caché local.
Acierto de escritura S→M Coherencia Invalidación en bus.
Fallo de escritura I→M Fallo Difundr fallo de escritura en bus.
Fallo de escritura S→M Remplazo Fallo de conflicto de dirección.
Difundir fallo de escritura en bus.
Fallo de escritura M→M Remplazo Fallo de conflicto de dirección.
Escribir bloque y difundir fallo de escritura.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 26/37


Memoria compartida simétrica
Protocolos de espionaje

Protocolo MSI: Acciones de procesador

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

Bus: Fallo escritura

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 27/37


Memoria compartida simétrica
Protocolos de espionaje

Acciones generadas por el bus


Petición Estado Acción Descripción
Fallo de lectura S→S – Memoria compartida sirve el fallo
Fallo de lectura M→S Coherencia Intento de compartir dato.
Se coloca bloque en bus.
Invalidar S→I Coherencia Intento de escribir bloque compartido.
Invalidar el bloque.
Fallo de escritura S→I Coherencia Intento de escribir bloque compartido.
Invalidar el bloque.
Fallo de escritura M→I Coherencia Intento de escribir bloque que es.
exclusivo en algún sitio.
Se escribe (write-back) el bloque.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 28/37


Memoria compartida simétrica
Protocolos de espionaje

Protocolo MSI: Acciones de bus

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

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 29/37


Memoria compartida simétrica
Protocolos de espionaje

Complejidad del protocolo MSI


El protocolo asume que las operaciones son atómicas.
Ejemplo: Se asume que se puede detectar un fallo de
escritura, adquirir el bus y recibir una respuesta en una
única acción sin interrupción.

Si las operaciones no son atómicas:


Posibilidad de deadlock y/o carreras.

Solución:
El procesador que envía invalidación mantiene propiedad
del bus hasta que la invalidación llega al resto.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 30/37


Memoria compartida simétrica
Protocolos de espionaje

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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 31/37


Memoria compartida simétrica
Rendimiento en SMPs

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 32/37


Memoria compartida simétrica
Rendimiento en SMPs

Rendimiento
El uso de políticas de coherencia de caché tiene impacto
sobre tasa de fallos.

Aparecen fallos de coherencia:


Fallos de compartición verdadera (true sharing):
Un procesador escribe en bloque compartido en invalida.
Otro procesador lee de bloque compartido.
Fallos de compartición falsa (false sharing):
Un procesador escribe en bloque compartido e invalida.
Otro procesador lee una palabra distinta del mismo bloque.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 33/37


Memoria compartida simétrica
Conclusión

1 Introducción a las arquitecturas multiprocesador

2 Arquitecturas de memoria compartida centralizada

3 Alternativas de coherencia de caché

4 Protocolos de espionaje

5 Rendimiento en SMPs

6 Conclusión

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 34/37


Memoria compartida simétrica
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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 35/37


Memoria compartida simétrica
Conclusión

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.

cb e d – Arquitectura de Computadores – Grupo ARCOS – http://www.arcos.inf.uc3m.es 36/37


Memoria compartida simétrica
Conclusión

Memoria compartida simétrica


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 37/37

También podría gustarte