UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP -...

39
UPV-EHU / ATC Arquitecturas Paralelas 12-13 1 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos de invalidación - Protocolos de actualización - Atomicidad

Transcript of UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP -...

Page 1: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 1

3. Coherencia de los datos en multiprocesadores SMP

- Introducción- Protocolos de tipo snoopy- Protocolos de invalidación- Protocolos de actualización- Atomicidad

Page 2: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 2

Introducción

La memoria de un computador está organizada jerárquicamente:

Reg. MC1 MC2... MPDisco

+ velocidad

+ capacidad

Los accesos a memoria no son aleatorios:

t → @A t + ∆t →@A

t → @A t + 1 → @A+1

Page 3: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 3

Introducción

Cada nivel de memoria es un subconjunto del anterior.

Reg. MC1 MC2... MPDisco

Objetivo: dado que no caben todos los datos, traeremos a la cache aquellos datos que, con mayor probabilidad, se vayan a utilizar.

La unidad de transferencia es el bloque (line): N palabras de direcciones contiguas.

bloquepalabra

Page 4: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 4

Introducción

Se trabaja con copias de los datos. ¿Cómo se mantienen iguales (coherentes) esas copias? Política de escritura.

write-through: los cambios se hacen en todas las copias, genera mucho tráfico en el bus.

write-back: los cambios se hacen solo en niveles inferiores; las copias se actualizan en memoria principal cuando hay que reemplazar los datos.

Reg. MC1 MC2... MPDisco

Page 5: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 5

Introducción

En multiprocesadores SMP, se utilizan memoria compartida y variables compartidas para comunicar procesos. Por lo tanto, el número de copias de los bloques de datos puede ser mayor (P+1) y las copias no dependen de una única unidad de control.

MP Disco

Reg. MC1 MC2...

Reg. MC1 MC2...

Reg. MC1 MC2...

Page 6: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 6

Introducción

Aparecen copias de un bloque de datos:

- porque se comparten variables (shared)- porque están en el mismo bloque, aunque no

se compartan los datos (falsa compartición)

¿Cómo se mantendrán todas esas copias coherentes cuando cambia una de ellas?

X Y ZT

bloque de datos

variables del procesador P1 variables del procesador P2

Page 7: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 7

Introducción

El sistema de memoria tiene que ser coherente: todos los procesos tienen que utilizar la misma información y actualizada.

Se dice que un sistema es coherente si:- al leer una variable, se obtiene el último valor escrito en esa variable (si ha transcurrido suficiente tiempo desde la escritura). - todas las escrituras sobre una variable se “ven” en el mismo orden en todos los procesadores.

Page 8: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 8

Introducción

Hay dos estrategias para mantener coherentes los sistemas de memoria compartida:

Sistemas SMP: pocos procesadores, memoria centralizada, bus

→ protocolos de tipo snoopy

Sistemas DSM: muchos procesadores, memoria distribuida, red

→ directorios de coherencia

Page 9: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 9

Protocolos snoopy

Para la comunicación entre los procesadores de un sistema SMP y su memoria se utiliza un bus. El bus es una red centralizada, y, por lo tanto, todas las transferencias de datos son “públicas”.

¿Cómo se puede saber que una variable que está en nuestra cache se necesita o cambia en otro procesador?

>> Espiando el bus para saber qué hacen los demás y enviando señales de control especiales a todos los procesadores por medio del bus.

Page 10: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 10

Protocolos snoopy

¿Qué hay que hacer con una copia de un bloque si cambia en otro procesador?

- Como la información ya no se puede utilizar las copias se invalidan.

A=4 A=4 A=4

mem. principal

cache

A=4

wr A,#3

INV A

A=3

protocolos de invalidación

Page 11: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 11

- La información de las copias se actualiza con el nuevo valor.

Protocolos snoopy

A=4 A=4 A=4

mem. principal

cache

A=4

wr A,#3

BC A, 3

A=3 A=3 A=3

protocolos de actualización

¿Qué hay que hacer con una copia de un bloque si cambia en otro procesador?

Page 12: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 12

Protocolos snoopy

Para gestionar las copias de los bloques de datos, se añade información de control en el directorio de la cache. Se utilizan esos bits de control para definir los estados de los bloques. Se utilizan los 5 estados siguientes :

I inválido

E exclusivo: una sóla copia y coherente con MP

M modificado: una sóla copia y no coherente con MP

S compartido: varias copias, todas coherentes

O propietario: varias copias (una O, las otras S) no coherentes con MP

Page 13: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 13

Protocolos snoopy

Para definir esos 5 estados hacen falta 3 bits en el directorio de la cache:

valid dirtyshared0 - - I

1 0 0 E1 0 1 S

1 1 0 M1 1 1 O

Page 14: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 14

Protocolos snoopy

Para gestionar los estados de los bloques de datos y generar las señales de control el snoopy tiene que espiar dos fuentes de información:

snoopy

P

C

1. las acciones del procesador local

2. las acciones correspondientes al resto de procesadores que aparecen en el bus

Page 15: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 15

Protocolos snoopy

1. Acciones del procesador local:

PR @El procesador lee una palabra. Si no

está en cache habrá que pedir el bloque → BR @PW @,dat

El procesador escribe una palabra. Hay que invalidar o actualizar el

resto de las copias del sistema: INV @ o BC @,dat.

Además, si es fallo, habrá que pedir el bloque (BR + INV/BC).

Page 16: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 16

Protocolos snoopy

2. Acciones de otros procesadores:BR @

Otro procesador ha pedido un bloque. Si está en la cache local, actualizar el estado…INV @

Un procesador ha generado la señal para invalidar un bloque concreto. Si está en la cache, hay que invalidar el bloque.

BC @,datUn procesador ha generado la señal para actualizar una palabra. Si está en la

cache…

Page 17: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 17

Protocolos snoopy

3. Otras señales de control:

BW Escritura de un bloque en memoria principal (WB)

BW* Escritura de una palabra en memoria principal (WT)

En función de los estados, política de escritura, estrategia para gestión de copias, etc. Se obtienen distintos protocolos de tipo snoopy.

Page 18: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 18

Protocolos de invalidación (1)

Protocolo MSI (Silicon Graphics)

PR PW BR INV

I, -

S

M

S

S S

SM

M

M

M

I

I

BR

BW BW

INV

BR,INV

INV(BW)

INVPR(BR)

PR

PR

M

S

I

BR (BW)

-BR

PW (BR,INV

)

PW(INV)

- PW

aci

ert

o.

fallo

Page 19: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 19

Protocolos de invalidación (1)

Ojo: el protocolo de coherencia tiene que generar el menor tráfico posible.

M: MC1 → MP → MC2

MC1 → MP, MC2

En algunos casos hay más de una opción para traer un bloque.

S: MCi, MCj.... / MP → MCk

Page 20: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 20

Protocolo de invalidación (2)

Protocolo MESI (Illinois): estado E / línea de control sh

PR

PR

PR nsh(BR)

PR sh(BR)

PR

PR PW BR INV

I, -

E

S

M

S

M

M

nsh: Esh: S BR M BR,INV

E

M

INVM S

S

I

IBW BW

S I

M

S

I

E

INV(BW)

BR (BW

)

INV

-BRBR

INVPW

(BR,INV)

- PW

PW(INV)

PW

aci

ert

ofa

llo

Page 21: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 21

Protocolo de invalidación (3)

Protocolo MOSI (Berkeley): estado O

PR PW BR INV

I, -

S

M

O O

S BR M BR,INV

M

S

O

O

S

M INV

M

M

INV

I

I BW

I

BW

M

S

I

O

PR(BR)

PR

PR PR

PW (BR,INV)

PW(INV)

- PWPW (INV)

INV(BW)

INV

-BRINV (BW)

-BR

BR

aci

ert

ofa

llo

Page 22: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 22

Protocolos de actualización (1)

Protocolo MSE(I) (Firefly): línea de control sh

PR PW BR BC

-

E

S

M

nsh: Esh: S BR

S

M

E M

M

BC S

S

S

SBW BW

S S

M

SEnsh: Esh: S

BRBR,BC

nsh: Msh: S

PR

PR

PR

PR nsh(BR)

PR sh(BR)

BR (BW)

-BR-BC

BR

PW

- PW

PW nsh (BC)

PW sh

(BC)

PW nsh(BR)

PW sh

(BR,BC)

aci

ert

ofa

llo

Page 23: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 23

Protocolos de actualización (2)

Protocolo MOES(I) (Dragon): sh línea de control

PR PW BR BC

-

E

S

M

O

O

O

S

S

BRnsh: Esh: S

O

M

S

E

S S

S S

BRBR,BC

nsh: Msh: O

-BC

-BC

nsh: Msh: O

nsh: Msh: O

M

M

aci

ert

ofa

llo

Page 24: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 24

Resumen

Resumen

El snoopy es hardware de control específico de las caches y se utiliza en sistemas SMP para mantener la coherencia de los datos. Espía las operaciones del procesador local y las del resto de procesadores (gracias al bus).

Actualiza los estados de los bloques de datos en la cache, y genera señales de control especiales para avisar al resto de los snoopy-s.

Cuando cambia el contenido de una copia (una escritura), hay dos opciones: invalidar el resto de las copias, o actualizarlas.

Page 25: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 25

Resumen

Resumen

Se pueden definir varios protocolos de coherencia en función de los estados, políticas de escritura etc. que se utilizan.

Hay que intentar minimizar el tráfico que se genera de datos y de control.

Importante: cuando un bloque pasa de estado M/O a estado E/S hay que actualizar la memoria principal (y, por supuesto, cuando se produce un remplazo de un bloque modificado).

Page 26: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 26

Controlador de coherencia

Controlador de coherenciaPara mantener la coherencia el hardware tiene que controlar tanto las acciones del procesador como del “bus”.

Las peticiones para trabajar con la cache pueden venir simultáneamente del procesador local y del “bus”.

snoopy

P

C

El snoopy es un algoritmo distribuido y por definición, no atómico; por tanto, pueden aparecer varios problemas. Veamos las características físicas de un determinado controlador de coherencia, para entender cómo se resuelven algunos problemas.

Page 27: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 27

Controlador de coherencia

system bus

Cache data RAMtags + state

snoopy

Bus side controller

compar

Processor side

controller

P

compar

Cmd Addr Addr Cmd

tags + state

proc.

Write-back buffer

Data buffer

tag

state

to controller

data

to controller

addr contrMC Replicar el directorio de la cache, uno para el procesador y el otro para las operaciónes del “bus”.Un bloque de datos puede estar también en el búfer de escritura: hay que replicar el hardware de búsqueda.

Page 28: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 28

Controlador de coherencia

system bus

Cache data RAMtags + state

snoopy

Bus side controller

compar

Processor side

controller

P

compar

Cmd Addr Addr Cmd

tags + state

proc.

Write-back buffer

Data buffer

tag

state

to controller

data

to controller

addr contrMC ¿Cuánto tiempo hay que esperar a la respuesta de los snoopys?

- tiempo fijo (max.)

- tiempo variable (el necesario)

Más líneas de control en el bus:

sh, dirty, inh...

Page 29: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 29

Controlador de coherencia

El problema principal es la falta de atomicidad: se pueden mezclar acciones de distintos procesadores sobre el mismo bloque de datos.

P.e., dos procesadores, a la vez, solicitan el mismo bloque de datos. Si en ese momento no hay ninguna copia en el sistema (sh = 0), ambos cargarán el bloque en estado E!

O, dos procesadores escriben a la vez en su cache en un bloque que está en estado S, por lo que se anulan mutuamente sus copias!

Page 30: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 30

Controlador de coherencia

Una simplificación: la utilización del bus es atómica. Para ello, dos señales de control:

BRQ (bus request): quiero utilizar el bus.

BGR (bus grant): el bus es para ti. A pesar de todo, la atomicidad no está

garantizada, y por lo tanto, pueden ocurrir carreras (races):

llegar, siguiendo un algoritmo, a un estado incorrecto, debido a que el algoritmo no se ha ejecutado de manera atómica.

Page 31: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 31

Carreras

Solución:

Además de la atomicidad de las operaciones del bus (BRQ, BGR), añadir estados transitorios al protocolo de coherencia.

Los estados transitorios no se introducen en el directorio (a nivel de bloque) sino que son estados del controlador.

Page 32: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 32

system bus

Cache data RAMtags + state

snoopy

Bus side controller

compar

Processor side

controller

P

compar

Cmd Addr Addr Cmd

tags + state

proc.

Write-back buffer

Data buffer

tag

state

to controller

data

to controller

addr contr

Controlador de coherencia

MC

Page 33: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 33

Carreras

Protocolo MESI

IM / SM / ISE

BRQ / BGR

M

S

I

E

PW (BRQ)

BGR (BR,INV)

PW (BRQ)BR

PW

PR

PW/PR

PR/BR

INV

BR (BW)

INV (BW)

INV

INV

BGR (INV)

PR (BRQ)

BGR (BR) nsh

BGR (BR) sh

IMSM

ISE

Page 34: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 34

Carreras

Otros problemas que suelen aparecer en algoritmos distribuidos:

Deadlock: el sistema se bloquea para siempre no puede ni continuar ni retroceder. Livelock: el sistema no esta bloqueado pero repite lo mismo una y otra vez, y no puede continuar.

Starvation: ciertos snoopy-s no consiguen nunca llevar a cabo las operaciones correspondientes porque siempre se adelantan los demás.

Page 35: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 35

Jerarquía de buses

En sistemas SMP, el bus se utiliza para la comunicación entre memoria y procesos.

Que el acceso a memoria sea centralizado supone muchos problemas porque el bus se satura fácil → el número de procesadores es limitado.

La solución general es dividir la memoria y así se obtienen sistemas DSM, donde se utilizan redes de comunicación.En esos sistemas no se utilizan los snoopy-s.

Page 36: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 36

Jerarquía de buses

Como adelanto, veamos un caso en el que la red de comunicaciones es una jerarquía de buses y se puede utilizar el snoopy.

K K

Hardware para coherencia global

snoopy local

MP

SMP

B1

B2

P

C

MP

Page 37: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 37

Jerarquía de buses

Los controladores de coherencia son un estilo de “directorios” que almacenan información sobre los bloques. Se dividen en dos partes:

KL: información de bloques locales que se han llevado a caches remotas (estados)

KR: información de bloques remotos traídos a caches locales (estados/datos)

Page 38: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 38

KL KR

KL KR

Jerarquía de buses

B2

B1MP

MC MC

B1 MP

MC MCrd, fallo

BR @

S

S

E

E

ES

S

S

S

M

M

M

@

S S

Page 39: UPV-EHU / ATC Arquitecturas Paralelas 12-131 3. Coherencia de los datos en multiprocesadores SMP - Introducción - Protocolos de tipo snoopy - Protocolos.

UPV-EHU / ATC Arquitecturas Paralelas 12-13 39

KL KR

KL KR KL KR

B1MP

MC MC

MP

MC MC

MP

MC MC

SS

SS

S

S

S

Jerarquía de buses

B2

INV @

M

INV @

II

INV @

I

wr M

M

I

INV @