TEMA 16: MULTIPROCESADORES DE MEMORIA...

24
T EMA 16: M ULTIPROCESADORES DE MEMORIA COMPARTIDA . 1. Introducci´ on. 2. Interconexi´ on entre procesadores y memoria. Bus com ´ un. 3. Redes Crossbar. 4. ultiples buses. 5. Redes multietapa. 6. Coherencia entre las antememorias. 7. Soluciones din ´ amicas al problema de la coherencia. 8. Soluciones estaticas al problema de la coherencia. Bibliograf´ ıa: J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Ap- proach 2 a y3 a ed., Morgan Kauffman Publishers, 1996 y 2002. P. Stenstrom, “A survey of cache coherence schemes for multiprocessors,” IEEE Computer, Vol. 23, No. 6, pp. 12–24, June 1990. B. Wilkinson, Computer architecture: Design and performance,2 a ed., Prentice- Hall, 1996 Departamento de Inform´ atica de Sistemas y Computadores (DISCA) Facultad de Inform´ atica de Valencia 16-1

Transcript of TEMA 16: MULTIPROCESADORES DE MEMORIA...

Page 1: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA.

1. Introduccion.

2. Interconexion entre procesadores y memoria. Bus comun.

3. Redes Crossbar.

4. Multiples buses.

5. Redes multietapa.

6. Coherencia entre las antememorias.

7. Soluciones dinamicas al problema de la coherencia.

8. Soluciones estaticas al problema de la coherencia.

Bibliografıa:

J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Ap-proach 2a y 3a ed., Morgan Kauffman Publishers, 1996 y 2002.

P. Stenstrom, “A survey of cache coherence schemes for multiprocessors,”IEEE Computer, Vol. 23, No. 6, pp. 12–24, June 1990.

B. Wilkinson, Computer architecture: Design and performance, 2a ed., Prentice-Hall, 1996

Departamento de Informatica de Sistemas y Computadores (DISCA)Facultad de Informatica de Valencia

16-1

Page 2: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

1 INTRODUCCION

1. IntroduccionClasificacion de los MPs de memoria compartida

Multiprocesadores de memoria compartida centralizada: SMPs, maquinas UMA.

• Modelo de programacion de variables compartidas

• Memoria fısicamente compartida.

→ Red de interconexion entre procesadores y memorias.

→ Problema de la coherencia entre las antememorias.

Multiprocesadores de memoria compartida distribuida: multiprocesadores es-calables, maquinas NUMA

• Modelo de programacion de variables compartidas

• Memoria fıscamente distribuida.

→ Red de interconexion entre procesadores (proximo tema).

→ Gestion de accesos a memoria remotos.

→ Problema de la coherencia entre las antememorias.

16-2

Page 3: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

2 INTERCONEXION ENTRE PROC. Y MEM. BUS COMUN.

2. Interconexion entre proc. y mem. Bus comun.

AM0 AM0 AMn−1

Mm−1M1M0

P1 Pn−1P0

MEMORIA

DE

C

Ventajas

Simple y de bajo coste.

Totalmente pasivo → logica en las unidades conectadas.

Se pueden anadir facilmente mas procesadores.

Implicaciones

Solo se permite una transferencia simultanea entre procesadores y memorias→ Necesidad de anadir antememorias locales a cada procesador.

Gestion del bus comun:

• Mecanismo de cesion.

• Polıticas de arbitraje.

16-3

Page 4: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

2 INTERCONEXION ENTRE PROC. Y MEM. BUS COMUN.

Mecanismo basico de comparticion del bus

Si hay varios dispositivos solicitando el bus, hay que decidir que dispositivolo utilizara a continuacion → polıtica de arbitraje.

Pasar el control de bus del dispositivo que lo utiliza actualmente al siguiente.

BBSY

BGNT

BRQ

solicitaProcesador que

Maestro actual

BRQ

BGNT

BBSY

Liberacion

Utilizacion

Peticion

Reconocimiento

Polıticas de arbitraje

Centralizado vs. distribuido.

Paralelo vs. serie.

Prioridades fijas vs. dinamicas.

16-4

Page 5: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

2 INTERCONEXION ENTRE PROC. Y MEM. BUS COMUN.

Algunas posibilidades

Centralizado-paralelo.

P1 Pn-1P0

AR

BIT

RO

GNTREQ

BUSY

Centralizado-serie.

P1 Pn-1P0

BUSY

REQ

GNT

16-5

Page 6: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

3 REDES CROSSBAR

3. Redes CrossbarHay tantos buses como modulos de memoria.

Todos los procesadores estan conectados a cada bus.

→Hay posibilidad de conectar sin conflicto cualquier procesador con cualquiermodulo de memoria libre.

P1

P2

Pn

M1 MmM2

Para conectar n procesadores con m modulos de memoria se necesitan m ∗ n ele-mentos de conmutacion. Un crossbar de n entradas y n salidas tiene un coste O(n2).

16-6

Page 7: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

3 REDES CROSSBAR

Implementacion: memorias multipuerto

A nivel de palabra → muy caras.

A nivel de modulo → hay que anadir la logica de arbitraje.

P1

P2

Pn

M1 MmM2

MU

X/

DE

MU

XA

RB

ITR

O ME

MO

RIA

REQ1

P1P2

Pn

REQ2ACK1

ACK2

ACKn

REQn

DEC

DEC

DEC

Arbitraje:

Puede aplicarse cualquier estrategia de prioridad.

Solucion aceptable y de bajo coste: prioridad estatica que favorezca la conexionde un procesador distinto en cada modulo de memoria.

16-7

Page 8: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

4 MULTIPLES BUSES

4. Multiples busesHay menos buses que modulos de memoria.

Todos los procesadores y todos los modulos de memoria estan conectados acada bus.

Hay que hacer un doble arbitraje:

1. A nivel de bus.

2. A nivel de modulo de memoria.

Mm-1M1M0

P1P0 Pn-1

MEMORIA

DE

C

16-8

Page 9: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

5 REDES MULTIETAPA

5. Redes multietapaTienen varias etapas de elementos de conmutacion.

No de etapas=log2(n) (n bits controlan 2n salidas)

El retardo es mayor.

Coste menor.

Coste=O(n log2(n))

Cada etapa se construye habitualmente a base de crossbar.

Por ejemplo, con crossbar 2 × 2:

10

Ejemplo: Red omega.

1

23

45

67

0

c0 c1 c2

1

23

45

67

0

16-9

Page 10: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

6 COHERENCIA ENTRE LAS ANTEMEMORIAS.

6. Coherencia entre las antememorias.Descripcion del problema

Ejemplo: 3 procesadores.

P1 P2 P3

Red de Interconexion

M

Secuencia:

1. P1 lee el bloque x

2. P2 lee el bloque x

3. P1 escribe el bloque x

4. P3 lee el bloque x

Problemas:

1. P2 se queda con un bloque anticuado

2. P3 obtiene un bloque anticuado

En general, si un mismo bloque puede estar en distintas antememorias:

Si todos leen, no hay problema.

Si alguno escribe, solo modifica su copia.

→ los procesadores que tengan copia del bloque se quedan con la copia an-ticuada.

→ los procesadores que lean el bloque obtendran una copia anticuada.

Una polıtica Write through no es suficiente.

Soluciones

1. Soluciones dinamicas (hardware). Detectan el problema en tiempo de ejecu-cion, resolviendolo.

2. Soluciones estaticas (software). Evitan la aparicion del problema, reorgani-zando el codigo en tiempo de compilacion.

16-10

Page 11: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

7. Sol. dinamicas al problema de la coherencia.Protocolos de invalidacion

Cuando un procesador escribe sobre un bloque, se invalidan todas las demascopias de las otras antememorias.

Los accesos posteriores originaran un fallo de bloque. Tras gestionarlo, seobtendra una copia actualizada.

P1 P2 P3

Red de Interconexion

M

P1 P2 P3

Red de Interconexion

M

FalloInv

Protocolos de actualizacionCuando un procesador escribe sobre un bloque, se actualizan todas las demascopias de las otras antememorias.

Los accesos posteriores obtendran una copia actualizada.

P1 P2 P3

Red de Interconexion

M

Act

16-11

Page 12: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Comparacion invalidacion – actualizacionInvalidacion:

• Mas rapido y sencillo de implementar: Solo hay que indicar el numerode bloque al resto de antememorias.

• Una vez invalidado un bloque, nuevas modificaciones por parte del mis-mo procesador no originan nuevas invalidaciones→ bueno cuando hay multiples escrituras consecutivas por parte delmismo procesador.

Actualizacion:

• Hay que indicar la modificacion al resto de antememorias: Numero debloque y valor actualizado.

• Una vez actualizado un bloque, las operaciones de lectura por parte deotros procesadores no originan fallos de bloque→ bueno cuando hay escrituras por parte de un procesador seguidas porlecturas de otros procesadores.

Envıo de las ordenes de invalidacion o actualizacion al resto deantememorias

1. A todas las antememorias del sistema (tengan o no tengan copia del bloque)

→ protocolos snoopy: las antememorias tienen que descubrir por sı mismassi una orden les afecta o no.

2. Solo a las antememorias que tengan una copia del bloque implicado

→ protocolos basados en directorios.

Depende del tipo de maquina y tipo de red de interconexion empleada:

Si la red permite facilmente la operacion de difusion (MPs. de memoria com-partida centralizada, bus comun)

→ protocolos snoopy.

Si la red no permite facilmente la operacion de difusion (MPs. de memoriacompartida distribuida)

→ protocolos basados en directorio.

16-12

Page 13: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Protocolos de coherencia

Mantienen la coherencia entre las antememorias del sistema, tratando de minimizarel envıo de ordenes de coherencia.Para ello:

asignan un estado a cada bloque almacenado en la antememora.

definen las acciones a realizar ante las posibles operaciones sobre el bloque,

ası como las transiciones entre estados.

Definicion de un protocolo de coherencia

1. Definir los estados asociados a cada bloque de las antememorias (hara faltaanadir los bits necesarios para codificarlos)

2. Definir las transiciones de estado y acciones a tomar frente a las operacionesde lectura y escritura, con acierto y fallo.

3. Definir las acciones a realizar en caso de reemplazamiento de un bloque.

4. Definir las acciones a realizar en caso de recibir una orden de coherenciasobre un bloque.

5. Cuando hay mas de una copia del mismo en el sistema, ¿quien suministra elbloque?

16-13

Page 14: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Ejemplo de protocolo snoopy de invalidacion

Definicion de estados:

Valido: Copia coherente con las demas posibles copias, tanto en memoriacentral como en otras antememorias.

Invalido: Copia no coherente.

Sucio: Unica copia valida en el sistema, no coherente con memoria principal.

Acciones

Tipo de acceso Estado inicial Acciones Nuevo estado Estado copiasLectura-acierto Valido/Sucio Lectura local El mismo —Lectura-fallo — Si hay copia en estado Sucio

— ent Transferir desde la AM— Actualizar MP Valido Valido— sino Transferir desde la MP Valido —

Escritura-acierto Valido Orden de invalidacionEscritura local Sucio Invalido

Sucio Escritura local Sucio —Escritura-fallo — Si hay copia en estado Sucio

— ent Transferir desde la AM— Orden de Invalidacion— Escritura local Sucio Invalido— sino Transferir desde la MP— Orden de Invalidacion— Escritura local Sucio Invalido

Reemplazamiento Valido — —Sucio Actualizar MP — —

16-14

Page 15: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Ejemplo de protocolo snoopy de actualizacion

Definicion de estados

(Valido) exclusivo: Unica copia valida en las antememorias, coherente conmemoria principal.

(Valido) compartido: Hay multiples copias compartidas, todas ellas coher-entes entre sı y con la memoria principal.

Sucio: Unica copia valida en el sistema, no coherente con memoria principal.

Acciones

Tipo de acceso Estado inicial Acciones Nuevo estado Estado copiasLectura-acierto Cualquiera Lectura local El mismo —Lectura-fallo — Si hay copia Excl/Compart

— ent Transferir desde la AM Compartido Compartido— Si hay copia Sucio— ent Transferir desde la AM— Actualizar MP Compartido Compartido— Si no hay otra copia— ent Transferir desde la MP Exclusivo —

Escritura-acierto Excl/Sucio Escritura local Sucio —Compartido Escritura local

Orden de actualizacion(incluyendo MP) Compartido Compartido

Fin comparticion Compartido — Exclusivo —Escritura-fallo — Si hay copia en otra AM

— ent Transferir desde la AM— Escritura local— Orden de actualizacion Compartido Compartido— sino Transferir desde la MP— Escritura local Sucio —

Reemplazamiento Excl/Compart — — —Sucio Actualizar MP — —

16-15

Page 16: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Aspectos de implementacion de los protocolos snoopy.

Directorio de la antememoria. Debe almacenar el estado de cada bloque (ademasdel estado “convencional”).

Controlador de antememoria. Debe implementar el protocolo correspondiente(ademas de la funcion “convencional”).

Controlador de acceso al bus. Debe implementar el mecanismo de monitor-izacion continua del bus para interceptar las ordenes de invalidacion/actualizacion.

Diseno del bus. Hay que dotar al bus de lıneas especıficas para dar soporte alprotocolo: “hay copia en estado sucio”, “fin de comparticion”,. . .

16-16

Page 17: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Protocolos hıbridos invalidacion–actualizacion.

Protocolo Read-Broadcast

Problema tıpico de los protocolos de invalidacion: Aumenta la tasa de fallos porinvalidaciones.

Solucion:Cuando hay un fallo de bloque, el bloque se carga en la antememoria que lo solic-ito y en todas aquellas que tengan el bloque en estado Invalido → se aprovecha elpaso del bloque por el bus para actualizarlo.

→ Muy util cuando un bloque es continuamente escrito por un solo procesador yleıdo por el resto. Ejemplo:

Proc. Operacion Protocolo convencional Read-BroadcastP1 Escribe (x) Invalidacion (x) Invalidacion (x)P2 Lee (x) Fallo de bloque (x) Fallo de bloque (x)

— Actualizacion en todosP3 Lee (x) Fallo de bloque (x) Acierto (x)

Pn Lee (x) Fallo de bloque (x) Acierto (x)

Protocolo Competitive-Snooping

Problema tıpico de los protocolos de actualizacion: Aumenta el trafico debido a lasactualizaciones.

En ocasiones, los bloques que se actualizan no se estan utilizando activamente (cam-bio de contexto, bloque no reemplazado pero ya no empleado, . . . ).

Solucion:

Relacionar los costes de efectuar una actualizacion (A) y de gestionar un fallode bloque por invalidacion (I).

Cuando se hagan I

Aactualizaciones sin accesos locales, el bloque se invalida.

16-17

Page 18: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Protocolos basados en directorios.

Si la red de interconexion no permite facilmente la operacion de difusion, es masinteresante enviar las ordenes de coherencia solo a las antememorias con una copiadel bloque implicado.

⇒ Directorio: Estructura de datos que indica que antememorias tienen una copiadel bloque.

Clasificacion

Ubicacion del directorio:

• Memoria principal.

• Antememorias.

Informacion contenida en el directorio:

• Mapa completo.

• Mapa limitado.

• Mapa encadenado.

Hipotesis

N : Numero de procesadores o antememorias.M : Numero de bloques de la memoria principal.C : Numero de bloques de las antememorias (en todas).

16-18

Page 19: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Mapa completo ubicado en memoria principal

Cada bloque de memoria principal . . .

Tiene asociado un vector de bits (vector de presencia), de tamano igual alnumero de procesadores.

El procesador i tiene una copia del bloque si el bit i es “1”.

P1 P2 P3P0

MP

Vectoresde bits

Bloques

Comentarios:

Necesidad de acceder a MP para enviar ordenes de coherencia.

Esquema centralizado:

• Las lecturas/modificaciones en el vector de presencia solo se realizan enun punto, la memoria principal.

• La memoria esta dividida en modulos → Puede accederse simultanea-mente el vector de presencia de bloques que esten en distinto modulo.

Esquema decodificado.

Coste= MN bits

16-19

Page 20: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Mapa completo ubicado en las antememorias

Cada bloque de las antememorias . . .

Tiene asociado el vector presencia.

Cada bloque de memoria principal tiene un puntero a una de las antememoriasque tienen copia del bloque.

P0 P1 P2 P3

MP

Punteros Bloques02

Comentarios:

Acceso directo al vector de presencia, sin necesidad de acceder a la memoriaprincipal.

Coste= CN + M log2(N) bits.

El fallo de bloque o reemplazamiento conlleva muchas operaciones:

1. Acceso al bloque en memoria principal

2. Acceso al vector de presencia

3. Modificacion del vector de presencia en todas las antememorias.

16-20

Page 21: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Mapa limitadoA menudo, el numero de copias de un mismo bloque no es muy elevado →

Es un derroche almacenar un vector de presencia de tamano igual al numerode antememorias.

Esquemas limitados: Se pueden tener hasta i, i ≤ N copias del mismo bloqueen las antememorias.

El vector de presencia se compone ahora de i campos.

Cada campo debe poder identificar una antememoria en el sistema → log2(N)bits.

P1 P2 P3P0

MP

Vectoresde punteros

Bloques

Comentarios:

Esquema codificado: se complica el acceso al vector de presencia.

¿Que pasa si el numero de copias de un bloque pretende ser mayor que i?

• No permitir mas de i copias simultaneas, impidiendo que el bloque secargue en la nueva antememoria o eliminando alguna de las copias ac-tualmente cargadas.

• Hacer difusiones, como en los protocolos snoopy.

El directorio puede ubicarse en memoria principal o en las antememorias.Coste:

• Memoria principal: Mi log2(N) bits.• Antememorias: Ci log2(N) + M log2(N) bits.

16-21

Page 22: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

7 SOL. DINAMICAS AL PROBLEMA DE LA COHERENCIA.

Mapa encadenado

Hay una lista enlazada de las antememorias que tienen una copia del bloque.

La cabeza de la lista esta en el bloque de memoria principal.

MP

Punteros Bloques02

P0 P1 P2 P3

Comentarios:

Se complica notablemente el acceso al vector de presencia: Operaciones deinsercion, eliminacion en una lista.

Las ordenes de invalidacion/actualizacion deben realizarse secuencialmente.

Coste: M log2(N) + C log2(N) bits.

16-22

Page 23: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

8 SOLUCIONES ESTATICAS AL PROBLEMA DE LA COHERENCIA.

8. Soluciones estaticas al problema de la coherencia.Pretenden evitar que aparezca el problema de la coherencia, analizando los datosrequeridos por los procesos en tiempo de compilacion.

Primera solucion

Clasificacion de los datos requeridos por los procesos:

1. Privados: Solo son utilizados por un proceso.

2. Compartidos: Son utilizados por mas de un proceso.

→ marcar los datos compartidos de lectura/escritura como noncacheables: No sepueden copiar a las antememorias.

Refinamiento

El compilador analiza el codigo dividiendolo en bloques. En cada bloque, lasvariables compartidas se acceden segun un patron distinto.

Ejemplo: Codigo para resolver xi+1 = Axi + b

repeat(* Bloque A *)par for j:= 1 to N do

xtemp[j] := b[j];for k:= 1 to N doxtemp[j] := xtemp[j] + a[j,k]*x[k];

(* Fin bloque A *)barrier_sync;(* Bloque B *)par for j:= 1 to N do

x[j] := xtemp[j];(* Fin bloque B *)barrier_sync;

until ...

16-23

Page 24: TEMA 16: MULTIPROCESADORES DE MEMORIA ...cgi.di.uoa.gr/~halatsis/Advanced_Comp_Arch/UPoValencia/t...TEMA 16: MULTIPROCESADORES DE MEMORIA COMPARTIDA. 1. Introduccion.· 2. Interconexion·

8 SOLUCIONES ESTATICAS AL PROBLEMA DE LA COHERENCIA.

Las variables compartidas de cada bloque se clasifican en las siguientes cate-gorıas:

1. Datos compartidos que solo se leen.2. Datos compartidos que leen varios procesadores y lee/escribe 1 proceso.3. Datos compartidos que lee/escribe solo 1 (regiones crıticas, . . . ).4. Datos compartidos que leen/escriben muchos procesadores.

Ejemplo:

Bloque Axtemp 3

b 1A 1x 1

Bloque Bxtemp 1

x 3

Tratamiento de cada categorıa:

1. Cacheables2. Cacheables para el que escribe, teniendo siempre consistente la memo-

ria principal (Write through).3. Cacheable, reescribiendo la memoria principal al final (Write back).4. Noncacheables.

Al final de cada bloque hay una “barrera de sincronizacion” (barrier sync)que invalida las variables compartidas presentes en las antememorias, y actu-aliza la memoria principal, en su caso.

Estrategias de invalidacion:

• Invalidacion indiscriminada. Elimina todo el contenido de la antememo-ria.

• Invalidacion selectiva. Elimina solo aquellos bloques que puedan origi-nar un problema de coherencia.Ejemplo:◦ Bloque A: Elimina xtemp → el bloque B tendra que leer xtemp de

la memoria principal.◦ Bloque B: Elimina x → el bloque A tendra que leer x de la memoria

principal.

16-24