82
02/12/2008 1 Tema 08: Multiprocesadores y Arquitectura Alternativas MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN E S P G E S P G [email protected], [email protected], [email protected] Prof: Alberto E. Cohaila Barrios

Prof : Alberto E. Cohaila Barrios Arquitectura

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 1

Tema 08: Multiprocesadores y Arquitectura Alternativas

MAESTRÍA EN INGENIERIA DE SISTEMAS E INFORMÁTICA ADMINISTRACIÓN DE TECNOLOGÍAS DE INFORMACIÓN

E S P GE S P G

[email protected], [email protected], [email protected]

Prof: Alberto E. Cohaila Barrios

Page 2: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 2

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 3: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 3

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 4: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 4

[ Multiprocesadores ] SIMD, MIMD, …

Paralelismo:

Prof. Alberto E. Cohaila Barrios

Page 5: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 5

[ Multiprocesadores ] SIMD, MIMD, …

Paralelismo:

Esta multiplicación es “paralelizable” fácilmente empleando m procesadores, cada uno se ocupa de multiplicar una fila de la matriz A con el vector x.

Prof. Alberto E. Cohaila Barrios

mnmnmm

n

n

b

bb

x

xx

aaa

aaaaaa

2

1

2

1

21

22221

11211

Page 6: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 6

Clasificación de Arquitecturas

• Taxonomía de Flynn

Page 7: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 7

...Clasificación de Arquitecturas• En el grafico anterior tenemos la clasificación de la

sposibles arquitecturas de un computador según Flynn.

Page 8: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 8

…Clasificación de Arquitecturas

Page 9: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 9

[ Multiprocesadores ] SIMD, MIMD, …

SISD:

Single Instruction Single Data, es una secuencia de instrucciones y una secuencia de datos.

Un único procesador interpreta una única secuencia de instrucciones, para operar con los datos almacenados en una única memoria. Los computadores monoprocesadorcaen en esta categoría.

Prof. Alberto E. Cohaila Barrios

Page 10: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 10

[ Multiprocesadores ] SIMD, MIMD, …

SISD:

SIUnidad de control

Unidad de proceso

Unidad de memoria

SD

Prof. Alberto E. Cohaila Barrios

Page 11: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 11

[ Multiprocesadores ] SIMD, MIMD, …

SISD:

ProcessorProcessorData Input Data Output

Instructions

Prof. Alberto E. Cohaila Barrios

Page 12: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 12

[ Multiprocesadores ] SIMD, MIMD, …

SIMD:

Single Instruction Multiple Data, es una secuencia de instrucciones y múltiples secuencias de datos.

Una única instrucción de máquina controla paso a paso la ejecución simultánea y sincronizada de un cierto número de elementos de proceso. Cada elemento de proceso tiene una memoria asociada, de forma que cada instrucción es ejecutada por cada procesador, con un conjunto de datos diferentes. Los procesadores matriciales y vectoriales pertenecen a esta categoría.

Prof. Alberto E. Cohaila Barrios

Page 13: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 13

[ Multiprocesadores ] SIMD, MIMD, …

SIMD:

SIUnidad de control

Elemento de proceso 2

MemoriaLocal 2

SD

Elemento de proceso 1

MemoriaLocal 1

SD

Elemento de proceso n

MemoriaLocal n

SD

Prof. Alberto E. Cohaila Barrios

Page 14: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 14

[ Multiprocesadores ] SIMD, MIMD, …

SIMD: Instruction

Stream

ProcessorA

ProcessorB

ProcessorC

Data Inputstream A

Data Inputstream B

Data Inputstream C

Data Outputstream A

Data Outputstream B

Data Outputstream C

Prof. Alberto E. Cohaila Barrios

Page 15: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 15

[ Multiprocesadores ] SIMD, MIMD, …

MISD:

Multiple Instruction Single Data, son múltiples secuencias de instrucciones y una secuencia de datos.

Se transmite una secuencia de datos a un conjunto de procesadores, cada uno de los cuales ejecuta una secuencia de instrucciones diferente. Esta estructura ha sido implementada sólo con fines de investigación.

Prof. Alberto E. Cohaila Barrios

Page 16: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 16

[ Multiprocesadores ] SIMD, MIMD, …

MISD:

Data InputStream

Data OutputStream

ProcessorA

ProcessorB

ProcessorC

InstructionStream A

InstructionStream B

Instruction Stream C

Esto es más un ejercicio intelectual que un ejercicio práctico.Prof. Alberto E. Cohaila Barrios

Page 17: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 17

[ Multiprocesadores ] SIMD, MIMD, …

MIMD:

Multiple Instruction Multiple Data, son múltiples secuencias de instrucciones y múltiples secuencias de datos.

Un conjunto de procesadores ejecuta simultáneamente secuencias de instrucciones diferentes con conjuntos de datos diferentes. Los clusters son ejemplos de esta categoría.

Prof. Alberto E. Cohaila Barrios

Page 18: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 18

[ Multiprocesadores ] SIMD, MIMD, …MIMD:

ProcessorA

ProcessorB

ProcessorC

Data Inputstream A

Data Inputstream B

Data Inputstream C

Data Outputstream A

Data Outputstream B

Data Outputstream C

InstructionStream A

InstructionStream B

InstructionStream C

Prof. Alberto E. Cohaila Barrios

Page 19: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 19

[ Multiprocesadores ] SIMD, MIMD, …MIMD (con memoria compartida):

SIUnidad de Control 2

Elemento de proceso 2

MemoriaCompartida

SD

Elemento de proceso 1

SD

Elemento de proceso n

SD

SIUnidad de Control 1

SIUnidad de Control n

Prof. Alberto E. Cohaila Barrios

Page 20: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 20

[ Multiprocesadores ] SIMD, MIMD, …MIMD (con memoria distribuida):

SIUnidad de Control 2

Elemento de proceso 2

SD

Elemento de proceso 1

SD

Elemento de proceso n

SD

SIUnidad de Control 1

SIUnidad de Control n

Red deInterco-nexión

MemoriaLocal 2

MemoriaLocal 1

MemoriaLocal n

Prof. Alberto E. Cohaila Barrios

Page 21: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 21

[ Multiprocesadores ] SIMD, MIMD, …MIMD (con memoria compartida y caché):

Los datos pueden ser modificados y guardadadosen la caché

Prof. Alberto E. Cohaila Barrios

Page 22: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 22

[ Multiprocesadores ] SIMD, MIMD, …VLIW:

Very Long Instruction Word,

La idea es que el compilador empaquete muchas instrucciones (de 4 a 8) en una sola palabra de instrucción muy larga. Esta palabra corresponde a un conjunto de unidades funcionales (FU). VLIW corresponde a una arquitectura superescalar.

operation 1 operation 2 operation 3 operation 4 operation 5

instrucción

Prof. Alberto E. Cohaila Barrios

Page 23: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 23

[ Multiprocesadores ] SIMD, MIMD, …VLIW:

IF DC

RF1 EX1 WB1

RF2 EX2 WB2

RFk EXk WBk

Prof. Alberto E. Cohaila Barrios

Page 24: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 24

[ Multiprocesadores ] SIMD, MIMD, …VLIW:

Prof. Alberto E. Cohaila Barrios

Page 25: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 25

[ Multiprocesadores ] SIMD, MIMD, …Tradicional vs. VLIW:

En VLIW, la decisión del orden de las ejecuciones la toma el compilador. En el superescalar la decisión la toma el hardware.

Prof. Alberto E. Cohaila Barrios

Page 26: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 26

[ Multiprocesadores ] SIMD, MIMD, …

EPIC: (Es el nombre que Intel le puso a VLIW):

Explicitly Parallel Instruction Computing, se basa en innovaciones como predicción, especulación y paralelismo explícito. Es un método para ordenar las instrucciones de tal forma que puedan ejecutarse de manera paralela.

Prof. Alberto E. Cohaila Barrios

Page 27: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 27

[ Multiprocesadores ] SIMD, MIMD, …

Paralelismo explícito:

Ejemplo de un banco con recibidor que envía al cliente a hacer cola a cualquier ventanilla (el cliente no es atendido correctamente) vs. un recibidor inteligente que envía al cliente a la ventanilla adecuada.

Prof. Alberto E. Cohaila Barrios

Page 28: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 28

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 29: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 29

[ Multiprocesadores ] Arquitectura sistólica

Un arreglo sistólico es un conjunto de procesadores dispuestos de una manera regular (por lo general rectangular) donde los datos fluyen sincrónicamente a través del arreglo entre sus vecinos.

Cada procesador toma en cada paso toma datos de sus vecinos (por lo general Norte y Oeste), los procesa y se los entrega a sus procesadores vecinos (por lo general Sur y Este).

Prof. Alberto E. Cohaila Barrios

Page 30: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 30

[ Multiprocesadores ] Arquitectura sistólica

Prof. Alberto E. Cohaila Barrios

Page 31: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 31

[ Multiprocesadores ] Arquitectura sistólica

Ejemplos: procesamiento digital de señales,procesamiento digital de imágenes,multiplicación de matrices,evaluación de polinomiosetc.

Rápidos en estas operaciones, sin embargo están limitados a estas aplicaciones, para otras operaciones no son prácticos.

Prof. Alberto E. Cohaila Barrios

Page 32: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 32

[ Multiprocesadores ] Arquitectura sistólica

• Arreglo lineal de procesadores

• La comunicación fluye a la derecha y a la izquierda.

Prof. Alberto E. Cohaila Barrios

Page 33: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 33

[ Multiprocesadores ] Arquitectura sistólica• La evaluación polinomial es simple

– Se usa la regla de Horner:

– Los elementos de proceso (PE) se colocan en pareja• Se multiplica una entrada por ,• El resultado se pasa a la derecha• Se suma aj al resultado de la izquierda• Se pasa el resultado a la derecha

y = ((((anx + an-1)*x + an-2)*x + an-3)*x …… a1)*x + a0

Prof. Alberto E. Cohaila Barrios

Page 34: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 34

[ Multiprocesadores ] Arquitectura sistólica

TOPOLOGÍAS:• 1D, 2D, 3D y 4D

Prof. Alberto E. Cohaila Barrios

Page 35: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 35

[ Multiprocesadores ] Arquitectura sistólica

Procesadores vectoriales y matriciales: diseñados para operaciones con vectores y matrices.

Prof. Alberto E. Cohaila Barrios

Page 36: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 36

• Ejemplo:– Producto punto

• Se hace fetch a cada elemento del vector.

[ Multiprocesadores ] Arquitectura sistólica

Prof. Alberto E. Cohaila Barrios

Page 37: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 37

• Ejemplo:– Producto matricial

[ Multiprocesadores ] Arquitectura sistólica

Prof. Alberto E. Cohaila Barrios

Page 38: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 38

[ Multiprocesadores ] Arquitectura sistólica

El resultado (A*B)se realimenta en un

registro vectorial

Operación:

A*B+ C

Prof. Alberto E. Cohaila Barrios

Page 39: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 39

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 40: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 40

[ Multiprocesadores ] Memoria compartida

• Memoria distribuida

P

M

P

M

Accesos a la memoria:

Prof. Alberto E. Cohaila Barrios

Page 41: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 41

[ Multiprocesadores ] Memoria compartida

• Memoria compartida

M PP

Accesos a la memoria:

Prof. Alberto E. Cohaila Barrios

Page 42: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 42

[ Multiprocesadores ] Memoria compartidaSistema con memoria compartida:

SIUnidad de Control 2

Elemento de proceso 2

MemoriaCompartida

SD

Elemento de proceso 1

SD

Elemento de proceso n

SD

SIUnidad de Control 1

SIUnidad de Control n

Prof. Alberto E. Cohaila Barrios

Page 43: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 43

[ Multiprocesadores ] Memoria compartida

Memoria

Red de interconexión

Procesadores

El principal problema es cuando todos los procesadores intentan acceder a la memoria global al mismo tiempo (cuello de botella)

Prof. Alberto E. Cohaila Barrios

Page 44: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 44

[ Multiprocesadores ] Memoria compartida

Procesadores

Red de interconexiónMemoria

Solución: •Dividir la Memoria en Módulos• Cada módulo conectado a los procesadores por una red de switching de alta performance• Este enfoque tiende a trasladar el cuello de botella a la red

Prof. Alberto E. Cohaila Barrios

Page 45: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 45

[ Multiprocesadores ] Memoria compartida

Características:

• Un espacio de direcciones único y común.

• Comunicación vía read & write

• Sincronización vía bloqueos (locks).

Prof. Alberto E. Cohaila Barrios

Page 46: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 46

[ Multiprocesadores ] Memoria compartida

Sección crítica

Prof. Alberto E. Cohaila Barrios

Page 47: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 47

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 48: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 48

[ Multiprocesadores ] Coherencia de caché

En los sistemas multiprocesador se disponen de varios niveles de caché asociados a cada procesador. Esta organización es esencial para obtener un buen desempeño.

Sin embargo, esto ocasiona el problema conocido como coherencia de caché…

Prof. Alberto E. Cohaila Barrios

Page 49: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 49

[ Multiprocesadores ] Coherencia de caché

coherencia de caché…

Pueden existir varias copias del mismo dato simultáneamente en cachés diferentes y, si los procesadores actualizan sus copias, puede producirse una visión inconsistente de la memoria.

Prof. Alberto E. Cohaila Barrios

Page 50: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 50

[ Multiprocesadores ] Coherencia de caché

Los datos pueden ser modificados y guardadadosen la caché

Qué pasa si otroprocesador quiere esosdatos?

El procesadorlee los datos antiguos!

Prof. Alberto E. Cohaila Barrios

Page 51: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 51

[ Multiprocesadores ] Coherencia de caché

Existen dos técnicas principales

1. Escritura directa

2. Post-escritura

Prof. Alberto E. Cohaila Barrios

Page 52: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 52

[ Multiprocesadores ] Coherencia de caché

Escritura directa:

Todas las operaciones de escritura se hacen tanto en la caché como en la memoria principal inmediatamente. Así se asegura que el contenido de la memoria sea siempre válido.

Desventaja: se genera un gran tráfico a la memoria principal que puede disminuir el desempeño.

Prof. Alberto E. Cohaila Barrios

Page 53: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 53

[ Multiprocesadores ] Coherencia de cachéPost-escritura:

Cada bloque de la caché posee un bit de actualización que se inicializa en ‘0’ cuando se carga un bloque nuevo en la caché.

Cada vez que se escriba en el bloque el bit de actualización se pone en ‘1’.

Cuando se desee reemplazar el bloque, el bloque se copia a la memoria principal sólo si el bit de actualización es ‘1’.

Desventaja: muchas veces hay porciones de la memoria principal que no son válidos.

Prof. Alberto E. Cohaila Barrios

Page 54: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 54

[ Multiprocesadores ] Coherencia de caché

Soluciones por Software

Intentan evitar la necesidad de circuitería y lógica hardware adicional, dejando que el compilador y el sistema operativo se encarguen del problema.

Ventaja: transfiere el costo de la detección de posibles problemas desde el hardware al software.

Desventaja: el compilador toma a veces decisiones conservadoras que pueden ocasionar una utilización ineficiente de la caché.

Prof. Alberto E. Cohaila Barrios

Page 55: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 55

[ Multiprocesadores ] Coherencia de caché

Soluciones por Software

El compilador realiza un análisis del código para determinar qué datos puedan dar problemas al pasar a la caché y los marca como “non-cachable”. Luego, el sistema operativo (o el hardware) impide que se pasen a la caché estos datos marcados.

Prof. Alberto E. Cohaila Barrios

Page 56: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 56

[ Multiprocesadores ] Coherencia de caché

Soluciones por Software

El enfoque más simple consiste en impedir que cualquier dato compartido pase a la caché!!

Otras soluciones analizan el código y determinan periodos seguros para las variables compartidas, es decir, se detectan las regiones críticas de los programas (en los cuales los programas acceden a variables compartidas) y no se permite que dos programas estén simultáneamente en la misma región crítica.

Prof. Alberto E. Cohaila Barrios

Page 57: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 57

[ Multiprocesadores ] Coherencia de caché

Soluciones por Hardware

Permiten reconocer en el momento de la ejecución las situaciones de inconsistencias potenciales.

Puesto que el problema se considera sólo en el momento en que aparece, existe un uso más efectivo de las cachés, mejorándose el desempeño en relación a las soluciones por software.

Además, estas soluciones son transparentes para el programador y el compilador, reduciendo la complejidad en el desarrollo del software.

Prof. Alberto E. Cohaila Barrios

Page 58: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 58

[ Multiprocesadores ] Coherencia de cachéProtocolos de directorio (Soluciones por Hardware):

Recogen y mantienen la información acerca de dónde residen las copias de las líneas de la memoria. Por lo general, existe un controlador centralizado que es parte del controlador de memoria principal y un directorio que se almacena en la memoria principal.

El directorio contiene información de estado global en relación con los contenidos de las diferentes cachés locales.

Cuando el controlador individual de una caché hace una petición, el controlador centralizado comprueba y emite las órdenes precisas para la transferencia entre memoria y caché(o entre distintas cachés).

Prof. Alberto E. Cohaila Barrios

Page 59: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 59

[ Multiprocesadores ] Coherencia de caché

Protocolos de directorio (Soluciones por Hardware):

Antes de que un procesador pueda escribir en una copia local de una línea, debe solicitar al controlador acceso exclusivo a dicha línea. Antes de ceder este acceso exclusivo, el controlador envía un mensaje a todos los procesadores. Después de recibir el reconocimiento de cada unos de esos procesadores el controlador cede el acceso exclusivo al procesador que lo solicitó.

Prof. Alberto E. Cohaila Barrios

Page 60: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 60

[ Multiprocesadores ] Coherencia de caché

Protocolos de directorio (Soluciones por Hardware):

Cuando otro procesador intenta leer una línea cedida para acceso exclusivo de otro procesador, enviará una notificación de fallo de caché al controlador. Entonces, el controlador manda una orden al procesador que posee la línea requerida, para que lo vuelva a escribir en memoria principal. Ahora, la línea puede compartirse para lectura por el procesador original y el que solicita el acceso.

Prof. Alberto E. Cohaila Barrios

Page 61: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 61

[ Multiprocesadores ] Coherencia de caché

Protocolos de directorio (Soluciones por Hardware):

Desventaja de este método: se puede generar un cuello de botella ya que puede haber un exceso de comunicación entre los controladores locales y el controlador de la memoria principal.

Prof. Alberto E. Cohaila Barrios

Page 62: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 62

[ Multiprocesadores ] Coherencia de caché

Protocolos de sondeo o “Snoopy” (Soluciones por Hardware):

Distribuyen la responsabilidad de mantener coherencia de caché entre todos los controladores de caché multiprocesador.

Una caché debe reconocer cuándo una línea de las que tiene está siendo compartida con otras cachés. Cuando se realiza una actualización en una línea de caché compartida, debe anunciarse a todas las otras cachés mediante un mecanismo de difusión (broadcast). Cada controlador de caché es capaz de sondear la red para observar las notificaciones que se difunden y reaccionar adecuadamente.

Prof. Alberto E. Cohaila Barrios

Page 63: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 63

[ Multiprocesadores ] Coherencia de cachéProtocolos de sondeo MESI (Soluciones por Hardware):

La caché de datos incluye dos bits de estado que indican uno de los cuatro siguientes estados:

• Modified: la línea de caché ha sido modificada (es distinta a su valor en memoria prinicipal), y está disponible sólo en esta caché.

• Exclusive: la línea de caché tiene el mismo contenido que en memoria principal, y no está presente en ninguna otra caché.

• Shared: la línea caché tiene el mismo contenido que en memoria principal, y puede estar presente en otra caché.

• Invalid: la línea de caché no contiene datos validos.

Prof. Alberto E. Cohaila Barrios

Page 64: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 64

[ Multiprocesadores ] Coherencia de caché

Línea de caché en procesador que inicia transferencia

RH Acierto de lectura

RMS Fallo de lectura, compartida

RME Fallo de lectura, exclusiva

WH Acierto de escritura

WM Fallo de escritura

Escribir en memoria la línea de caché modificada

Invalida transacción

Lectura para modificación

Cargar línea de caché

Prof. Alberto E. Cohaila Barrios

Page 65: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 65

[ Índice ]

7.1 SIMD, MIMD, VLIW, EPIC

7.2 Arquitectura sistólica

7.3 Sistemas de memoria compartida

7.4 Coherencia de caché

7.5 Modelos de memoria y consistencia

Prof. Alberto E. Cohaila Barrios

Page 66: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 66

[ Multiprocesadores ] Modelo de memoria

Modelo de Memoria:

Especifica cómo se resuelven los conflictos de acceso a la memoria. Estos conflictos suceden sólo cuando la memoriaes compartida.

Prof. Alberto E. Cohaila Barrios

Page 67: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 67

[ Multiprocesadores ] Modelo de memoria

El acceso a la memoria compartida puede ser visto como un contrato entre el hardware y el software de memoria. Si el software acepta cumplir con ciertas reglas, la memoria conviene en entregar ciertos resultados. La discusión se centra en la naturaleza de las reglas. Estas reglas se denomina “modelos de consistencia”.

Prof. Alberto E. Cohaila Barrios

Page 68: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 68

[ Multiprocesadores ] Modelo de memoriaEjemplo:

CPU-0 escribe ‘1’ en la posición X de la memoria.

luego…

CPU-1 escribe ‘2’ en la posición X.

luego...

CPU-2 lee la posición X y obtiene ‘1’

¿algo falló??? Todo depende de lo que la memoria prometió en su contrato!

Prof. Alberto E. Cohaila Barrios

Page 69: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 69

[ Multiprocesadores ] Modelo de memoriaModelos posibles:

• Consistencia estricta

• Consistencia secuencial

• Consistencia de procesador

• Consistencia débil

• Consistencia de liberación

Prof. Alberto E. Cohaila Barrios

Page 70: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 70

[ Multiprocesadores ] Modelo de memoriaConsistencia estricta:

Cualquier lectura de una posición X siempre devuelve el valor de la escritura más reciente de X.

En la práctica este modelo es imposible de implementar de otra manera que no sea tener un solo módulo de memoria que atiende todas las solicitudes bajo el régimen de primero llega-primero se atiende, sin uso de cachés ni repetición de datos.

Una implementación así convertiría a la memoria en un enorme cuello de botella y por ello este modelo no es recomendable.

Prof. Alberto E. Cohaila Barrios

Page 71: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 71

[ Multiprocesadores ] Modelo de memoria

Consistencia secuencial:

En presencia de múltiples solicitudes de lectura y escritura, el hardware escoge (de forma no determinista) cierta intercalación de todas las solicitudes, pero todas las CPU perciben el mismo orden.

Prof. Alberto E. Cohaila Barrios

Page 72: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 72

[ Multiprocesadores ] Modelo de memoriaConsistencia secuencial:

Ejemplo:

1. CPU-1 escribe 100 en posición X

2. 1 ns después: CPU-2 escribe 200 en X

3. 1 ns después: CPU-3 y CPU-4 leen dos veces posición X

CPU 1 2 3 y 4(X)100 (X)200 lee X, lee X

(dos veces)Prof. Alberto E. Cohaila Barrios

Page 73: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 73

[ Multiprocesadores ] Modelo de memoriaConsistencia secuencial:

Secuencias posibles:

E100 E100 E200E200 L3 = 100 L4 = 200L3 = 200 E200 E100L3 = 200 L4 = 200 L3 = 100L4 = 200 L3 = 200 L4 = 100L4 = 200 L4 = 200 L3 = 100

CPU 1 2 3 y 4(X)100 (X)200 lee X, lee X

(dos veces)Prof. Alberto E. Cohaila Barrios

Page 74: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 74

[ Multiprocesadores ] Modelo de memoriaConsistencia secuencial:

Secuencias posibles:

E100 E100 E200E200 L3 = 100 L4 = 200L3 = 200 E200 E100L3 = 200 L4 = 200 L3 = 100L4 = 200 L3 = 200 L4 = 100L4 = 200 L4 = 200 L3 = 100

Pase lo que pase, una memoria secuencialmenteconsistente nunca permitirá que la CPU-3 obtenga (100,200) mientras la CPU-4 obtiene (200,100).

Prof. Alberto E. Cohaila Barrios

Page 75: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 75

[ Multiprocesadores ] Modelo de memoria

Consistencia secuencial:

Se garantiza que hay un solo ordenamiento global de todas las escrituras que todas las CPU ven igual.

Cuando suceden varias cosas al mismo tiempo, existe un orden verdadero en el que ocurren, tal vez determinados por los tiempos y la casualidad, pero todos los procesadores observan este mismo orden.

Prof. Alberto E. Cohaila Barrios

Page 76: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 76

[ Multiprocesadores ] Modelo de memoriaConsistencia del procesador:

Este modelo tiene dos propiedades:

1. Todas las CPU ven las escrituras de cualquier CPU en el orden que se emitieron.

2. Para cada palabra de memoria, todas las CPU ven todas las escrituras en ella en el mismo orden.

Prof. Alberto E. Cohaila Barrios

Page 77: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 77

[ Multiprocesadores ] Modelo de memoriaConsistencia del procesador:

Este modelo tiene dos propiedades:

1. Todas las CPU ven las escrituras de cualquier CPU en el orden que se emitieron.

Ejemplo: si la CPU-1 emite escrituras con los valores 1A, 1B y 1C a la posición X en ese orden, entonces todos los demás procesadores las verán en ese orden también. Esto es, una CPU no verá en la posición X el valor 1B y luego el 1A.

Prof. Alberto E. Cohaila Barrios

Page 78: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 78

[ Multiprocesadores ] Modelo de memoriaConsistencia del procesador:

Este modelo tiene dos propiedades:

2. Para cada palabra de memoria, todas las CPU ven todas las escrituras en ella en el mismo orden.

Este punto asegura que cada localidad de memoria tendráun valor inequívoco después de que varias CPU escriben en ella y después se detienen. Todos deben estar de acuerdo en quién fue el último.

Prof. Alberto E. Cohaila Barrios

Page 79: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 79

[ Multiprocesadores ] Modelo de memoriaConsistencia del procesador:

Ejemplo:

CPU-1 escribe 1A, 1B, 1C en XCPU-2 escribe 2A, 2B, 2C en XCPU-3 lee continuamente X como:

1A, 1B, 2A, 2B, 1C, 2C ó2A, 1A, 2B, 2C, 1B, 1C ó etc.

No se garantiza que toda CPU verá el mismo ordenamiento (esto es consistencia secuencial). PERO sí se garantiza verá una secuencia en la que 1B ocurra antes que 1B (el orden en que cada CPU realiza sus escrituras se observa en todas las otras CPU.Prof. Alberto E. Cohaila Barrios

Page 80: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 80

[ Multiprocesadores ] Modelo de memoriaConsistencia débil:

No se garantiza que las escrituras de una sola CPU se verán en orden. En el ejemplo anterior pudiera ser que una CPU lea 1B antes que 1A.

Sin embargo, existen algunas variables de sincronización o una operación de sincronización, con la que todas las escrituras pendientes de terminan y no se inicia ninguna nueva hasta que todas las viejas se lleven a cabo y la sincronización termina. El vaciado si es secuencialmenteconsistente.

Prof. Alberto E. Cohaila Barrios

Page 81: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 81

[ Multiprocesadores ] Modelo de memoriaConsistencia de liberación:

La consistencia débil tiene el problema de que es muy ineficiente porque debe terminar todas las operaciones de memoria pendiente y detener las nuevas hasta que terminen las actuales.

La idea de la consistencia de liberación se basa en que cuando un proceso sale de una sección crítica no es necesario hacer que todas las escrituras se lleven a cabo independientemente; sólo es necesario asegurarse de que terminen antes de que cualquier programa ingrese otra vez a esa sección crítica.

Prof. Alberto E. Cohaila Barrios

Page 82: Prof : Alberto E. Cohaila Barrios Arquitectura

02/12/2008 82

FIN…