1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de...

26
1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria compartida. Sincronización. Multicomputadores.

Transcript of 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de...

Page 1: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

1

Tema 5: Multiprocesadores

•Objetivos.•Referencias.•Introducción.•Arquitecturas centralizadas de memoria compartida.•Arquitecturas distribuidas de memoria compartida.•Sincronización.•Multicomputadores.

Page 2: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

2

Procesadores vectoriales Objetivos

Objetivos:

•Conocer las distintas maneras de organizar un sistemacon múltiples procesadores, y sus características diferenciadoras.

•Comprender los problemas que plantea la compartición de datos y sus posibles soluciones

Page 3: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

3

Referencias:

•Para máquinas de memoria compartida, el Hennessy-Patterson, 2ª edición (muchas figuras y ejemplos están tomadas de él)

•La información sobre la coherencia por directorios, la sincronización y los multicomputadores está sacada del Kai Hwang, Advanced Computer Architecture

Procesadores vectoriales Referencias

Page 4: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

4

Multiprocesadores Introducción

Tipos de multiprocesadores:

•Arquitecturas centralizadas de memoria compartida•Arquitecturas de memoria distribuida

–con memoria compartida–con memoria privada (multicomputadores)

Las máquinas con memoria compartida tienen un único mapa de memoria común a todos los procesadores. Esta memoria puedeestar centralizada o repartida (distribuida) entre los procesadores.

Las máquinas con memoria privada tienen un mapa de memoria por cada procesador. Esta memoria está distribuida (cada procesador tiene la suya)

Page 5: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

5

Multiprocesadores Introducción

Procesador Procesador ProcesadorProcesador

caché caché caché caché

busbus

Memoria E/S

Arquitectura centralizada de memoria compartida

Page 6: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

6

Multiprocesadores Introducción

Procesador

caché

nodo

mem e/s

Procesador

caché

nodo

mem e/s

Procesador

caché

nodo

mem e/s

Procesador

caché

nodo

mem e/s

red de interconexión

Arquitectura de memoria distribuida

Page 7: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

7

Multiprocesadores Introducción

Comunicación en multiprocesadores

Si la memoria es compartida:•Si es centralizada: todos los accesos se hacen a través delbus, y tardan más o menos lo mismo =>UMA (‘Uniform Memory Access’).•Si es distribuida: los accesos se realizan a la memoria localo a memoria remota, según el dato. Los accesos remotos tardan más que los locales.=> NUMA (‘Non-Uniform Memory Access’).

Si la memoria es privada:•Como los mapas de memoria son sólo locales, la comunicación es por medio de paso de mensajes.

Page 8: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

8

Multiprocesadores Introducción

Comunicación en multiprocesadores (II)

Ventajas de la memoria compartida:•Está más estudiada.•Sencillez de programación.•Poco recargo de comunicación, mejor aprovechamiento delancho de banda en datos pequeños.•Posibilidad de usar cachés (mejor tiempo medio de acceso y•menor flujo de datos en la red).

Ventajas de la memoria privada:•Sencillez del hardware•La comunicación es explícita (no es transparente) =>se ve claro lo que cuesta tiempo y lo que no.

Page 9: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

9

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Arquitecturas centralizadas de memoria compartida

•Son máquinas que constan de varios procesadores (típicamenteun número pequeño).

•Como son pocos, la comunicación a través de un bus es económicay eficiente.

•Cada procesador puede tener una memoria caché para reducir lacantidad de datos que viajan por el bus.

•La comunicación entre procesadores es a través de variables compartidas y zonas de memoria comunes

Page 10: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

10

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Coherencia de caché en memoria centralizada

El problema de la coherencia:•Los procesadores del sistema guardan en caché los datoscon los que trabajan.•Los datos se dividen en:

–privados: sólo los necesita un procesador.–compartidos: los necesitan varios procesadores.

•Los datos compartidos son, por lo tanto, utilizados por varios procesadores.•El problema surge cuando un procesador modifica datosque otros tienen en sus cachés.

Page 11: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

11

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Coherencia de caché en memoria centralizada (II)

Ejemplo:•el dato X (valor inicial 0) es compartido•el procesador A carga el dato X (0) en su caché•el procesador B carga el dato X (0) en su caché•el procesador A modifica el dato X (toma el valor 1)•el procesador B lee el dato X (0, valor que había cargado en su caché

El problema de utilizar cachés es que los datos pueden no ser coherentes (tener el mismo valor en todas las cachés)

Page 12: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

12

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Coherencia de caché en memoria centralizada (III)

En un sistema de memoria centralizada, se suele usar la técnicade ‘snooping’ (fisgonear).

Las cachés observan las transmisiones que se realizan en el bus,para saber cuándo alguna de las otras cargue una línea que tienen ellas.

En el caso de que una de las cachés que tiene una copia de una línea compartida la modifique, es necesario que el resto se entere(porque sus versiones se han quedado anticuadas).

Page 13: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

13

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Coherencia de caché en memoria centralizada (IV)

Existen dos maneras de notificar las modificaciones en las líneas:

Protocolo de invalidación por escritura (‘write invalidateprotocol’).

Cuando un procesador realiza una escritura en una línea,esta acción invalida las copias de esa línea en las otrascachés.

Protocolo de actualización en escritura (‘write update protocol’,o ‘write broadcast protocol’).

Cuando un procesador realiza una escritura en una línea,envía la nueva versión a las otras cachés.

Page 14: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

14

Multiprocesadores Arquitecturas centralizadas de memoria compartida

Coherencia de caché en memoria centralizada (V)

Diferencias entre ambas opciones:•Modificaciones sucesivas de un dato provocan el correspondiente envío de líneas a través del bus si se usa elprotocolo de actualización. Si no hay lecturas entre medias,el protocolo de invalidación no supone tráfico adicional.

•Modificaciones de varios datos en una misma línea suponenotros tantos envíos con actualización, por una única recargapor invalidación.

•La invalidación de una línea puede provocar retardos, ya queel fallo de lectura en la caché destino se detecta (por la invalidación) en el momento de realizar el acceso. Con actualización no se produce el fallo.

Page 15: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

15

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida

En una máquina de memoria distribuida un nodo no puede observar todas las transferencias entre los restantes nodos (en general, la topología de la red no se lo va a permitir).

Por ello, si la memoria está distribuida se suele utilizar el protocolode directorios.

En este protocolo, existe una estructura de datos, el directorio, que contiene información sobre el estado de cada bloque.

Esta estructura también puede estar distribuida.

Page 16: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

16

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (II)

•El protocolo de directorios necesita que de cada bloque de memoria se tenga la siguiente información:

–Estado del bloque: si está sin usar, usado por un únicoprocesador, compartido entre varios, etc.–Procesadores que tienen el bloque en su caché: para poderlesavisar en caso de modificaciones o invalidaciones.

•Como el tamaño del directorio puede llegar a ser muy grande, se suele encontrar distribuido. Cada módulo de memoria tiene la información de los bloques que están ubicados en él.

•Según la cantidad de información que se almacene en el directorio, existen tres tipos de protocolos de directorios: completos, limitados y encadenados

Page 17: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

17

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (III)

Protocolos de directorios completos

•En este protocolo, cada módulo de memoria tiene el directoriode los bloques que contiene.

•Para cada bloque, la entrada del directorio contiene:–un bit por cada procesador en el sistema–un bit de ‘sucio’, para escrituras

•Además, las cachés tienen 2 bits por bloque:–uno para indicar si el bloque es válido–otro para indicar si se puede escribir en él

Page 18: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

18

•Cuando un procesador pide una copia del bloque, se le envía yse activa su bit correspondiente.

•Cuando un procesador pide una escritura al bloque, se borranlos bits de los otros procesadores (y se les avisa) y se activael bit de sucio.

•El bit de sucio “da permiso” o no para realizar una escritura.

•Con el bit de sucio activado, sólo uno de los bits de los procesadores puede estar activado.

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (IV)

Protocolos de directorios completos (II)

Page 19: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

19

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (VI)

Protocolos de directorios limitados

•De nuevo, cada módulo tiene el directorio de sus bloques.

•Pero ahora cada entrada no tiene un bit por cada procesador: sólo pueden tener una copia de cada bloque un número limitado (p) de procesadores.

•Para ello, cada entrada tiene espacio para p identificadores.

•Si llega una petición de lectura y todos los espacios están ocupados,se elimina uno (y se avisa al procesador). Es un mecanismo parecido al de una caché asociativa por conjuntos.

Page 20: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

20

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (VII)

Protocolos de directorios encadenados

•En este esquema, la lista de los procesadores que tienen unacopia de un bloque está distribuida entre las cachés.

•El módulo de memoria que posee el bloque tiene los datos y elinicio de la lista de punteros a procesadores.

•Cada procesador que pide una copia del bloque recibe el puntero a la lista (en su estado actual).

•El módulo de memoria se queda con la dirección del procesadorque pide el bloque (que es el nuevo inicio de la lista).

Page 21: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

21

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (VIII)

Comparación de los tres protocolos de directorios

•El protocolo de directorio completo tiene toda la información centralizada, lo que hace eficiente su gestión.

–Añadir o eliminar procesadores a la lista es activar o desactivar un bit.–Pero requiere espacio para todos los procesadores en cada una de las entradas (y la mayoría de los bits va a estar a 0 casi siempre).

•El protocolo limitado también tiene la información centralizada.–Añadir y eliminar procesadores a la lista es sencillo.–Puede haber dificultades si el número de espacios para identificadores es pequeño.

Page 22: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

22

Multiprocesadores Arquitecturas distribuidas de memoria compartida

Coherencia de caché en memoria distribuida (VIII)

Comparación de los tres protocolos de directorios (II)

•El protocolo de directorios encadenados tiene la informacióndistribuida.

–El espacio que ocupa la lista es proporcional al número de procesadores que tiene una copia del bloque.–Añadir y eliminar procesadores es un proceso largo.

Page 23: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

23

Multiprocesadores Sincronización

Sincronización

•Es una forma especial de comunicación en la que se intercambia información de control en lugar de datos

•Se utiliza para conseguir el secuenciamiento correcto de los procesos y los procesadores.

•También permite el acceso correcto (con exclusión mutua) a los datos compartidos.

•No es un asunto exclusivo de los multiprocesadores. También se trata en el diseño de los sistemas operativos.

Page 24: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

24

Multiprocesadores Sincronización

Sincronización (II)

•Los mecanismos que se utilizan pueden ser software (dentro delS.O. o en el lenguaje de programación) o hardware.

•Mecanismos software son los semáforos o los monitores.

•Mecanismos hardware son las operaciones atómicas de lectura-escritura o de lectura-modificación-escritura (primitivas).

•Ejemplo: la instrucción test-set/reset:–lee una variable y comprueba si su valor es 0;–mientras el valor no sea 0, se queda ahí;–cuando el valor sea 1, lo vuelve a poner a 0 y continúa la ejecución

Page 25: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

25

Multiprocesadores Multicomputadores

Multicomputadores

•Son un tipo especial de sistemas con múltiples procesadores. Lascaracterísticas que les distinguen son:

–la memoria es privada (es decir, cada procesador tiene un mapade direcciones propio que no es accesible directamente a losdemás)–la comunicación entre procesadores es por paso de mensajes a través de una red de interconexión.

•En un multicomputador, cada nodo es una computadora clásica.•Los nodos colaboran para resolver juntos un mismo problema (ejecutar la misma aplicación).•La compartición de datos es explícita, ya que el acceso a datos comunes es por paso de mensajes.

Page 26: 1 Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria.

26

Multiprocesadores Multicomputadores

Multicomputadores (II)

Mem

Proc

Mem

Proc

Mem

Proc

Mem

Proc

Mem

Proc

Mem

Proc

Red de interconexión de paso de mensajes

Proc Mem

Proc Mem

Mem Proc

Mem Proc

Modelo genérico de un multicomputadorFigura tomada del Kai Hwang: Advanced Computer Architecture