PDF de programación - tema 6 - Multiprocesadores: Coherencia, sincronización y consistencia

Imágen de pdf tema 6 - Multiprocesadores: Coherencia, sincronización y consistencia

tema 6 - Multiprocesadores: Coherencia, sincronización y consistenciagráfica de visualizaciones

Publicado el 3 de Junio del 2019
810 visualizaciones desde el 3 de Junio del 2019
1,4 MB
75 paginas
Creado hace 8a (18/01/2016)
Arquitectura de Computadores

TEMA 6

Multiprocesadores: Coherencia, sincronización y

consistencia

Curso 2015-2016

Contenidos

 Jerarquía de memoria extendida
 El problema de la coherencia cache
 Protocolos de coherencia “Snoopy”

o Protocolo Snoopy de dos estados
o Protocolo MSI: invalidación de tres estados
o Protocolo MESI: invalidación de cuatro estados

 Coherencia cache basada en directorio

o Directorio plano basado en memoria
o Directorio plano basado en cache

 Sincronización
 Consistencia de memoria
 Bibliografía

o Cap 5 y 8 de [CuSi99]
o Cap 5 de [HePa12]

(Nota.- En la elaboración de este material se han utilizado contenidos previamente desarrollados por los
profesores Manuel Prieto, Luis Piñuel e Ignacio Martín. También se han utilizado figuras de HePa12 y CuSi99)

AC — Tema 6

Curso 2015-16

2

Jerarquía de memoria extendida

Mem

Caches

CPU CPU

CPU

Jerarquía de

Memoria

 Las caches privadas permiten:

o Ocultar la latencia de los accesos
o Reducir la contención

Replicación:

Problema de coherencia

Variables Compartidas

AC — Tema 6

Curso 2015-16

3

Alternativas de implementación

Escalabilidad

P1

Pn

Switch

Primer Nivel $

Memoria
Principal

Cache Compartida

P1

$

Pn

$

• Bus Compartido
• Red punto a punto

Red de Interconexión

Mem

Mem

UMA, SMP

Mem

P1

$

Pn

$

Mem

Red de Interconexión

Escalable

NUMA: Memoria Distribuida

AC — Tema 6

Curso 2015-16

4

Alternativas de implementación

 Una alternativa ampliamente usada: SMP basado en

Bus Compartido

P1

$

Bus

Pn

$

Problemas

Memoria

E/S

 Servidores departamentales

 Estaciones de trabajo

 Bloques de construcción básicos

sistemas de gran escala

 Soporte en microprocesadores de

propósito general

Coherencia

Ancho de Banda limitado

AC — Tema 6

Curso 2015-16

5

Modelo intuitivo de memoria

 Programa secuencial

o Las posiciones de memoria se utilizan para “comunicar valores” entre
distintas puntos del programa. Cuando se lee una posición se devuelve
el último valor escrito en ella

 Espacio de direcciones compartido en sistemas con un único

procesador (Multiprogramación)
o Cuando se lee una posición se devuelve el último valor escrito en ella,
independientemente del proceso (thread) que realizó la última
escritura sobre dicha posición

o Las caches no interfieren con el uso de múltiples procesos (threads)
en un procesador, ya que todos ellos ven la memoria a través de la
misma jerarquía

 Multiprocesadores de Memoria Compartida

o Objetivo: Nos gustaría que el resultado de ejecutar un programa que
usa varios procesos (threads) sea el mismo independientemente de si
los procesos se ejecutan en paralelo (multiprocesadores) o de forma
entrelazada (uniprocesador multiprogramado).

o Problema: Cuando dos o más procesos acceden a la memoria a través
de caches diferentes existe el peligro de que vean valores
inconsistentes

AC — Tema 6

Curso 2015-16

6

Problema de la coherencia cache

Transacciones

(Proc) Operac

1. (P1) Load U

2. (P3) Load U

3. (P3) Store U

4. (P1) Load U

5. (P2) Load U

Load U

P

1

U = ?

4

$

$

U: 5

P
2

Load U

U = ?

5

P

3

3

U: 5

$

U: 7

Store U

2

Load U

Dispositivos

I/O

Load U

1

U: 5

Memoria

Protocolos de coherencia de cache

Siguen la pista del estado
de cualquier bloque de
datos compartido para
evitar incoherencias

AC — Tema 6

Curso 2015-16

7

Soluciones de “Grano Grueso”

 Problemas de coherencia cache en uniprocesadores:
operaciones de E/S a través de dispositivos DMA

o Dispositivo DMA escribe en memoria: El procesador puede seguir

viendo valores antiguos en la cache.

o Dispositivo DMA lee de memoria: El DMA puede leer un valor antiguo en

el caso de que se utilice write-back

 Alternativas (dado que las operaciones de E/S son mucho

menos frecuentes que las operaciones de acceso a memoria)

o Evitar usar la cache:

 Los segmentos de memoria involucrados en operaciones de E/S se

marcan como No-Cacheables o bien se utilizan operaciones
load/store no-cacheables

o Sacar de la cache antes de E/S (soporte del SO):

 Las páginas de memoria involucradas en cualquier operación de E/S

son eliminadas de la cache (flush) previamente por el SO

o Usar la cache para E/S:

 El tráfico de E/S pasa por todos los niveles de la jerarquía de

memoria

 Problema: el contenido de la cache puede “corromperse” con datos

que no son de interés (al menos inmediato) para el procesador

AC — Tema 6

Curso 2015-16

8

Soluciones de “Grano Grueso”

 En multiprocesadores

o La escritura o lectura de variables compartidas es un

evento frecuente.

o No es práctico:

 Deshabilitar la cache para datos compartidos
 Invocar al SO en cada referencia a una variable compartida
 Todos los Procesadores actuales proporcionan

mecanismos para soportar la coherencia

o Transparente al software

AC — Tema 6

Curso 2015-16

9

Coherencia

 ¿Qué significa que un sistema de memoria es coherente?

o Una operación de lectura retorna siempre el último valor que fue
correspondiente,
escrito
independientemente del procesador que efectúa la lectura o
escritura

de memoria

posición

en

la

o Dos aspectos clave:

 1) Qué valor debe ser devuelto en una lectura Coherencia.
 2) Cuándo un valor escrito debe ser devuelto por una operación de

lectura Consistencia

 ¿Cuando un sistema de memoria es coherente?

o Una lectura del procesador P a la posición X de memoria, que sigue a una

escritura de P en X, sin ninguna otra escritura debe retornar el valor
escrito por P

o Una lectura por un procesador a la posición X que sigue a una escritura de

otro procesador en X, retorna el valor escrito si no hay ninguna otra
escritura y están suficientemente separadas en el tiempo.

o Serialización de escrituras. Todas las escrituras a la misma posición

deben verse en el orden correcto.

 Dos escrituras hechas por dos procesadores sobre la misma posición, X, son

vistas por todos los procesadores en el mismo orden.

AC — Tema 6

Curso 2015-16

10

Coherencia

 Serialización de escrituras: ejemplo

Si P1 ejecuta:
o LD R1, X

 y se obtiene en R1 el valor V1 escrito por el procesador P2 en

la posición de memoria X

Y después P1 ejecuta:

o LD R2, X

 y se obtiene en R2 el valor V2 escrito por el procesador P3 en

la posición de memoria X

…entonces es imposible que cualquier otro procesador,
Pi, que lea la posición de memoria X obtenga primero el
valor V2 y después el valor V1.

AC — Tema 6

Curso 2015-16

11

Políticas (o protocolos) para mantener la coherencia

 Invalidación en Escritura / Coherencia Dinámica

o Al escribir en un bloque se invalidan todas las otras copias

(Múltiples lectores , un solo escritor)

o Escrituras consecutivas al mismo bloque (no

necesariamente a la misma palabra) efectuadas desde el
mismo procesador se realizan localmente (No hay copias).
Sólo es necesario una transacción en el medio de
comunicaciones en múltiples escrituras al mismo dato

o ¿Qué ocurre en un fallo de lectura?

 Con write-through: la memoria esta siempre actualizada
 Con write-back: es necesario búsqueda (snoop) en caches

remotas para encontrar el último valor.

– La cache dueña del último valor lo proporciona al solicitante

(y a la Mp)

 Actualización en Escritura

o Al escribir en un bloque se actualizan todas las copias
o Típicamente con write-through, pocos procesadores
o Escrituras consecutivas a la misma palabra requiere

múltiples actualizaciones

o ¿Qué ocurre en un fallo de lectura?

 Se busca en la memoria. Siempre esta actualizada

AC — Tema 6

Curso 2015-16

12

Políticas (o protocolos) para mantener la coherencia

 Los protocolos usados para la invalidación o actualización

dependen de la red de interconexión utilizada

 Si la red de interconexión permite broadcast eficiente las
operaciones de invalidación o actualización se pueden enviar
de forma simultanea a todos los controladores.

o Protocolo Snoopy (buses): Observación del bus

 Cada controlador de cache está observando los eventos que

suceden en el bus y toma decisiones en consecuencia.

 Un controlador de cache envía eventos al bus en función de las
peticiones de acceso a memoria que recibe de su procesador 
Envía órdenes de invalidación o actualización de forma simultánea
a todos los demás controladores.

 Si

la red de interconexión no permite broadcast (o el
broadcast no es eficiente), la invalidación o la actualización
se envía únicamente a aquellas caches que tienen una copia
del bloque.

o Protocolos Basados en Directorio: Se utiliza un directorio
(centralizado o distribuido) con una entrada por cada bloque
en la que se indica en qué caches existe copia y en qué estado.

AC — Tema 6

Curso 2015-16

13

Protocolos Snoopy

 El Arbitraje del bus Impone un Orden.

o Las Transacciones del Bus son visibles en el mismo

orden por todos los controladores de cache.

 Observar/Espiar el bus

CPU

St

Ld

Directorio
de la cache

State Tag Datos

° ° °

Controlador de Cache

Transacciones

observadas

Transacciones

ordenadas

Bus

Sólo es necesario extender la funcionalidad del controlador de cache

• El estado de cada bloque mapeado en la cache sigue estando en el directorio
• Los cambios de estado son provocados por:

a) operaciones Ld/St del procesador
b) Transacciones relevantes observadas en el bus

AC — Tema 6

Curso 2015-16

14

Procolos Snoopy

 Diagrama de estados de un bloque de cache: convenio

de representación

o Cada transición es disparada por la observación de un

evento en el procesador o el bus

o Una transición puede implicar que el controlador ejecute

alguna acción sobre su cache, u ordene una cierta acción al
bus

Notación:

Op del Procesador/ Acción a realizar

o bien

Evento en BUS / Acción a realizar

S1

S2

AC — Tema 6

Curso 2015-16

15

Protocolo Snoopy de 2 Estados

 Aplicado a: Política de invalidación en escritura + Escritura

directa (write through).

o Sin Asignación en Escritura (no writeall
  • Links de descarga
http://lwp-l.com/pdf16031

Comentarios de: tema 6 - Multiprocesadores: Coherencia, sincronización y consistencia (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad