La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -

Presentaciones similares


Presentación del tema: "Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -"— Transcripción de la presentación:

1 Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC - Problemas: tráfico y atomicidad - Protocolo de coherencia Origin - Protocolo SCI (NUMA-Q)

2 Arquitecturas Paralelas IF - EHU CD-DSM 27 Coherencia de los datos en sistemas de memoria compartida SMP (red de comunicación, un bus) > Snoopy > Estados / estados transitorios... ¿Y en sistemas DSM (mallas...)? >La memoria es compartida, pero está físicamente distribuida entre los nodos del sistema. >La red no es un bus. Por tanto, snoopy ?? Introducción

3 Arquitecturas Paralelas IF - EHU CD-DSM 37 El hardware no asegura la coherencia de los datos (es responsabilidad del programador) : NUMA El hardware sí asegura la coherencia de los datos: cc-NUMA Introducción ¿Cómo se mantiene la coherencia de los datos en los sistemas DSM? ¿Cómo? Directorios de coherencia.

4 Arquitecturas Paralelas IF - EHU CD-DSM 47 El directorio de coherencia guarda información sobre los bloques de datos: - estado (estables o transitorios) - dónde están las copias Problemas: - tamaño del directorio. - tráfico generado para mantener la coherencia. - atomicidad de las operaciones. El directorio está repartido entre los procesadores (no es un dispositivo central). Introducción

5 Arquitecturas Paralelas IF - EHU CD-DSM 57 Lugar y estructura del directorio: -junto a la MP, una palabra de coherencia por cada bloque de datos: full bit vector limited bit vector - distribuido entre las MC (+MP), formando listas ligadas con la información de cada bloque: SCI, scalable coherent interface Introducción

6 Arquitecturas Paralelas IF - EHU CD-DSM 67 1. Full bit vector (MESI) Estructura del directorio -un bit por procesador (1/0) para indicar si tiene o no copia del bloque. -bits para indicar el estado del bloque (los habituales). Directorios de coher.: MP > E 1 0 0 0 - 0 > S 1 0 1 0 - 0 > M 0 0 0 1 - 1 > I 0 0 0 0 - 0 > no (MESI) 1 1 0 1 - 1 P 0 P 1 P 2 P 3 Es

7 Arquitecturas Paralelas IF - EHU CD-DSM 77 Problemas El tamaño del directorio crece linealmente con el número de procesadores. - bloques de 64 bytes: P = 64 65 bits(8 bytes) P = 256 257 bits (32 bytes) P = 1.024 1.025 bits(128 bytes) +200% ! Directorios de coher.: MP

8 Arquitecturas Paralelas IF - EHU CD-DSM 87 Para reducir el tamaño de la palabra de coherencia: -bloques de 128 bytes / 4 proc. por nodo: P = 1.024 (256x4) 257 bits (32 bytes) +25% 1.Usar bloques de datos más grandes 2.Reducir el número de nodos (estructura jerárquica: snoopy SMP + directorio) Directorios de coher.: MP

9 Arquitecturas Paralelas IF - EHU CD-DSM 97 2.Limited bit vector - se limita el número de copias de un bloque: sólo se admiten k copias. - se guardan en la palabra de coherencia de cada bloque las direcciones (log 2 P bits) de los procesadores que tienen una copia: k × log 2 P << P Directorios de coher.: MP @1, @2,..., @k, estado

10 Arquitecturas Paralelas IF - EHU CD-DSM 107 - 4 procesadores por nodo bloques de 128 bytes / 5 copias P = 256 (64x4) 5 x 6 + 1 = 31 bits 4 bytes + 3% P = 1.024 (256x4) 5 x 8 + 1 = 41 bits 5 bytes + 4% Directorios de coher.: MP

11 Arquitecturas Paralelas IF - EHU CD-DSM 117 1 bit por proc.estado 0... 1... 0 M L CC = controlador de comunic. D = directorio de coherencia L = local H = home R= remote H P C CC DMP R 2 3 4 5 1 LD A 1S Directorios de coher.: MP

12 Arquitecturas Paralelas IF - EHU CD-DSM 127 2 1 0… 1 …1 0 S otras dos copiasestado ST A 0 …0 0 M 4 4 3 3 1 L CC = controlador de comunic. D = directorio de coherencia L = local H = home R= remote H P C CC DMP Directorios de coher.: MP R1 R2

13 Arquitecturas Paralelas IF - EHU CD-DSM 137 Directorios en MC: e structura La información sobre cada bloque de datos no se concentra en una sola palabra en el directorio junto a MP, sino que reparte entre el directorio junto a MP y las caches, en los directorios de éstas. La información de coherencia de cada bloque se estructura en forma de listas ligadas. Directorios de coher.: MC

14 Arquitecturas Paralelas IF - EHU CD-DSM 147 Información de coherencia (por bloque) Directorios de coher.: MC @cop 1 / estado MP @cop i-1 / @cop i+1 / estado MC

15 Arquitecturas Paralelas IF - EHU CD-DSM 157 ¿Cómo se organiza la información en colas ligadas? Home (memoria principal) Pj (cache)Pk (cache)Pi (cache) Directorios de coher.: MC Pk *, * bl. datos MPD bl. datos *,Pj *,Pk Pi,Pk Pj,* Pj Pi

16 Arquitecturas Paralelas IF - EHU CD-DSM 167 1.MP 5 copias, 3 bits de estado Palabra de coherencia:5 x 10 + 3 = 53 bits Directorio (nodo): 53 bit x 1 M bloque = 53 Mb 2. MC En MP: 10 + 3 = 13 bits En caches: 2 x 10 + 3 bit = 23 bits Total (nodo): 13 x 1 M + 23 x 4 k = 13,1 Mb Directorios de coher.: MC P = 1.024 / MP = 128 MB / MC = 512 kB / bl = 128 bytes

17 Arquitecturas Paralelas IF - EHU CD-DSM 177 Mantener la coherencia debe generar el menor tráfico posible, tanto de paquetes de control como de paquetes de datos. Las operaciones de coherencia deben tener la menor latencia posible. Para ello hay que - Minimizar el número de mensajes (tráfico). - Reducir el camino crítico (latencia) de la operación. Problemas: tráfico de coh.

18 Arquitecturas Paralelas IF - EHU CD-DSM 187 Ejemplo: el procesador L lee una variable que no está en su cache, y que corresponde a un bloque sito en la memoria del procesador H, bloque que está modificado en la cache del procesador R. Tres protocolos para efectuar las operaciones de coherencia: 1. Pregunta / Respuesta 2. Intervention Forwarding 3. Reply Forwarding Problemas: tráfico de coh.

19 Arquitecturas Paralelas IF - EHU CD-DSM 197 1. Pregunta / Respuesta L H I R 1. Petición 2. Respuesta 4a. Respuesta (Bloque) 4b. Bloque (actual.) 3. Petición mensajes: 5 camino crítico: 4 0100 / M M Problemas: tráfico de coh.

20 Arquitecturas Paralelas IF - EHU CD-DSM 207 2. Intervention Forwarding L H I R 1. Petición 4. Respuesta (Bloque) mensajes: 4 camino crítico: 4 2. Petición 3. Respuesta (Bloque) 0100 / M M Problemas: tráfico de coh.

21 Arquitecturas Paralelas IF - EHU CD-DSM 217 3. Reply Forwarding L H I R 1. Petición 3a. Respuesta (Bloque) 3b. Bloque (actual.) 2. Petición mensajes: 4 camino crítico: 3 0100 / M M Problemas: tráfico de coh.

22 Arquitecturas Paralelas IF - EHU CD-DSM 227 Las operaciones de coherencia tienen que realizarse de forma atómica, sin interferencias entre ellas. Problemas: atomicidad 1a. INV 2b. Respuesta 1b. INV ? R1 H S R2 S..1..1.. / S 2a..1..0.. / M M?? M

23 Arquitecturas Paralelas IF - EHU CD-DSM 237 Para asegurar la atomicidad Problemas: atomicidad +Hay que utilizar estados transitorios, busy, en las caches y en el directorio. +Si no se pueden procesar las peticiones o son incoherentes: -se rechazan mediante paquetes tipo NACK. -o se guardan en un búfer para procesarlas más tarde.

24 Arquitecturas Paralelas IF - EHU CD-DSM 247 Dos ejemplos: 1. Computadores Origin MP 2. Protocolo SCI (Numa-Q) MC Protocolos comerciales

25 Arquitecturas Paralelas IF - EHU CD-DSM 257 512 nodos / 1.024 procesadores / hipercubo Encaminamiento adaptativo / canales virtuales Invalidación / MESI (en cache) / write-back Full bit vector / 7 estados en MP I / S / E cuidado: E = E o M (una copia única) 3 estados busy 1 para otras cosas Reply forwarding / NACK Paquetes de control: Rd / INV / RdEx / ACK / NACK / Wr Origin 2000 Algunas características de los computadores Origin 2000

26 Arquitecturas Paralelas IF - EHU CD-DSM 267 Hay que analizar tres operaciones para ver cómo mantener la coherencia de los datos: Lectura de una variable (fallo) Escritura de una variable (acierto / fallo) Reemplazo de un bloque (actualizar MP) Origin 2000

27 Arquitecturas Paralelas IF - EHU CD-DSM 277 Lectura (fallo) Dir. = I/S L H 1b. Rd A 0000 / I I E/S 3 1100 / S 2b. Bloque 1a busy 2a 0001 / E 1101 / S Origin 2000

28 Arquitecturas Paralelas IF - EHU CD-DSM 287 LH 1000 / E I S 4 E/M 1a busy 2a 1001 / busy R 1b. Rd A 2c. Rd A (+@L) 3b. ACK / Bloque 3c. ACK / Wr (Bl.) 1001 / S 4 3a S 2b. Bloque (espec.) Origin 2000 Lectura (fallo) Dir. = E

29 Arquitecturas Paralelas IF - EHU CD-DSM 297 Lectura (fallo) Dir. = busy L H 1b. Rd A xxxx / busy I 2. NACK 1a busy Origin 2000

30 Arquitecturas Paralelas IF - EHU CD-DSM 307 Escritura (acierto-INV / fallo-RdEx) Dir.: busy L H 1b. INV A / RdEx A xxxx / busy S/I 2. NACK 1a busy Origin 2000

31 Arquitecturas Paralelas IF - EHU CD-DSM 317 L H S/I M 5 1a busy 2a 0001 / E R1 1b. INV A / RdEx A 2b. n.cop. / +Bloque 2c. INV A (+@L) 3b. ACK 4a S I 1101 / S 1100 / S R2 4b. ACK 2d. INV A (+@L) 3a S I eficiencia ¡cuidado carreras! Origin 2000 Escritura (acierto-INV / fallo-RdEx) Dir.: S

32 Arquitecturas Paralelas IF - EHU CD-DSM 327 L H S/I 1a busy 2a 0001 / E R1 1b. INV A / RdEx A 2b. n.cop. / +Bloque 2c. INV A (+@L) 1101 / S 1100 / S R2 2d. INV A (+@L) ¡Ojo! carreras R3 R4 NACK eficiencia: guardar, no rechazar Rd A (@R3) ? 0011 / busy Origin 2000 Escritura (acierto-INV / fallo-RdEx) Dir.: S

33 Arquitecturas Paralelas IF - EHU CD-DSM 337 L H 1000 / E I M 4 E/M 1a busy 2a 0001 / busy R 1b. RdEx A 2c. RdEx A (+@L) 3b. ACK / Bloque 3c. ACK / Wr (Bloque) 0001 / E 4 3a I 2b. n.cop. + Bloque (espec.) Origin 2000 Escritura (fallo-RdEx) Dir.: E

34 Arquitecturas Paralelas IF - EHU CD-DSM 347 L H 1b. INV A 1000 / E S 2. NACK 1a busy Origin 2000 Escritura (acierto-INV) Dir.: E

35 Arquitecturas Paralelas IF - EHU CD-DSM 357 L H 1b. RdEx A 0000 / I I M 3 2b. Bloque 1a busy 2a 0001 / E Origin 2000 Escritura (fallo-RdEx) Dir.: I

36 Arquitecturas Paralelas IF - EHU CD-DSM 367 L H 1b. INV A 0000 / I S 2. NACK 1a busy Origin 2000 Escritura (acierto-INV) Dir.: I

37 Arquitecturas Paralelas IF - EHU CD-DSM 377 L H 1b. Wr (Bloque) 0001 / E M x 3 2b. ACK 1a busy 2a 0000 / I Origin 2000 Reemplazo – actualizar MP Dir.: E

38 Arquitecturas Paralelas IF - EHU CD-DSM 387 L H 0001 / E x 4 I 2a 1001 / busy R 3c. ACK 1b. Rd A 2b. Bloque (espec) 1000 / E 3a 1a busy 4 E 2c. Rd A M 2 busy 2d. Wr (Bloque) 3b. Bloque Origin 2000 Reemplazo – actualizar MP Dir.: busy

39 Arquitecturas Paralelas IF - EHU CD-DSM 397 Numa-Q Estructura del multiprocesador NUMA-Q PCPC M S/I PCI S/I IQ link D PCPC PCPC PCPC 4P

40 Arquitecturas Paralelas IF - EHU CD-DSM 407 8 x 4 procesadores / bus (snoopy) IQ-link remote access cache Invalidación / MOESI / write-back / encolado de peticiones Listas doblemente ligadas en las caches: directorio (MP):estado / @c 1 directorio MC: estado / @c i-1 / @c i+1 SCI scalable coherent interface Numa-Q Estructura del multiprocesador NUMA-Q

41 Arquitecturas Paralelas IF - EHU CD-DSM 417 Estados de los bloques: En MC: - posición:Only, Head, Mid, Tail - estado:Dirty (M), Fresh (S), Valid (S), Exclusive (E) Ej.: Only-Fresh, Head-Fresh, Head-Dirty, Mid-Valid... - y estados busy En MP: Home (I), Fresh (E, S), Gone (M, O) Protocolo de coh. SCI

42 Arquitecturas Paralelas IF - EHU CD-DSM 427 Tres funciones para mantener la coherencia de los datos: List Construction Para cargar un bloque de datos en la cache (Rd) y ponerlo en cabeza de la lista de copias. Roll-out Para eliminar un bloque de la cache (reemplazo), y quitarlo de la lista de copias. Purge Para modificar una variable (Wr), y, por tanto, invalidar el resto de copias y actualizar la lista. Protocolo de coh. SCI

43 Arquitecturas Paralelas IF - EHU CD-DSM 437 Lectura: List Construction (Home) L H 1b. LC (Rd A) 2b. Bloque 1a busy 2a F | @L I Dir (MC) H | * Dir (MP) O-F|*-* 3 Protocolo de coh. SCI

44 Arquitecturas Paralelas IF - EHU CD-DSM 447 ¿qué cambiaría si estuviera en Gone? L H 1b. LC (Rd A) I H-F | *-@R 5 2b. Bloque + @R 1a busy 2a F | @L Dir (MC) F | @R Dir (MP) R 3. New Head (@L) 4b. ACK T-V | @L-* 4a Dir (MC) O-F | *-* H-F | *-@R2 M-V | @L-@R2 Protocolo de coh. SCI Lectura: List Construction (Fresh/Gone)

45 Arquitecturas Paralelas IF - EHU CD-DSM 457 Escrituras: ¡sólo en la copia de la cabecera! acierto / head Purge fallo List Construction + Purge acierto / no head Roll-Out + L. Const. + Purge Protocolo de coh. SCI

46 Arquitecturas Paralelas IF - EHU CD-DSM 467 Purge (Only-Fresh) L H 1b. Wr (est. A) 2b. ACK 1a busy 2a G | @L O-F | *-* Dir (MC) F | @L Dir (MP) O-D | *-* 3 Protocolo de coh. SCI

47 Arquitecturas Paralelas IF - EHU CD-DSM 477 L H R1 1b. Wr (est. A) 2b. ACK 3. INV A 4b. ACK + @R2 R2 6b. ACK + * 5. INV A Purge (Head-Fresh) F | @L Dir (MP) G | @L 2a 1a busy H-F | *-@R1 Dir (MC) O-D | *-* 7 M-V |@L-@R2 Dir (MC) I | *-* 4a T-V |@R1-* I | *-* 6a Protocolo de coh. SCI

48 Arquitecturas Paralelas IF - EHU CD-DSM 487 Roll-Out (Wr / reempl.) L R2 1c. RO A + @R1 3b. ACK 3a T-V | @R1-* T-V | @L-* Dir (MC) R1 1b. RO A + @R2 2b. ACK 2a H-D | *-@R2 H-D | *-@L Dir (MC) 1a busy M-V | @R1-@R2 Dir (MC) 4 busy / I | *-* Protocolo de coh. SCI

49 Arquitecturas Paralelas IF - EHU CD-DSM 497 Protocolo de coh. SCI Problemas: atomicidad (i) Dir (MP) G | @R1 H-D|*-@R2 H R1R2 T-V | @R1-* busy L1 Dir (MP) G | @L1 H L1 NewHead H L2 busy Dir (MP) G | @L2 HH L1 H L2 NewHead HH H M-V|@L1-@R2 R1 L1 Ack + bl H-D | *-@R1 L1 M-V|@L2-@R1 L2 Ack + bl H-D | *-@L1 R1

50 Arquitecturas Paralelas IF - EHU CD-DSM 507 Protocolo de coh. SCI Problemas: atomicidad (ii) R Dir (MP) F | @L H O-F | *-* L busy LC busy Wr Dir (MP) F | @R ?? NACK

51 any questions? Arquitecuras Paralelas IF - EHU CD - DSM | Protocolo de coh. SCI R H O-F | *-* L busy LC busy Wr Dir (MP) F | @R ?? NACK Problemas: atomicidad (ii)


Descargar ppt "Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -"

Presentaciones similares


Anuncios Google