La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 5: Multiprocesadores

Presentaciones similares


Presentación del tema: "Tema 5: Multiprocesadores"— Transcripción de la presentación:

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

2 Objetivos: Conocer las distintas maneras de organizar un sistema
Procesadores vectoriales Objetivos Objetivos: Conocer las distintas maneras de organizar un sistema con múltiples procesadores, y sus características diferenciadoras. Comprender los problemas que plantea la compartición de datos y sus posibles soluciones

3 Procesadores vectoriales 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

4 Tipos de multiprocesadores:
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 puede estar 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)

5 Arquitectura centralizada de memoria compartida
Multiprocesadores Introducción Arquitectura centralizada de memoria compartida Procesador caché bus Memoria E/S

6 Arquitectura de memoria distribuida
Multiprocesadores Introducción Arquitectura de memoria distribuida Procesador caché nodo mem e/s red de interconexión

7 Comunicación en multiprocesadores
Multiprocesadores Introducción Comunicación en multiprocesadores Si la memoria es compartida: Si es centralizada: todos los accesos se hacen a través del bus, y tardan más o menos lo mismo =>UMA (‘Uniform Memory Access’). Si es distribuida: los accesos se realizan a la memoria local o 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.

8 Comunicación en multiprocesadores (II)
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 del ancho 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.

9 Arquitecturas centralizadas de memoria compartida
Multiprocesadores Arquitecturas centralizadas de memoria compartida Arquitecturas centralizadas de memoria compartida Son máquinas que constan de varios procesadores (típicamente un número pequeño). Como son pocos, la comunicación a través de un bus es económica y eficiente. Cada procesador puede tener una memoria caché para reducir la cantidad de datos que viajan por el bus. La comunicación entre procesadores es a través de variables compartidas y zonas de memoria comunes

10 Coherencia de caché en memoria centralizada
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 datos con 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 datos que otros tienen en sus cachés.

11 Coherencia de caché en memoria centralizada (II)
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)

12 Coherencia de caché en memoria centralizada (III)
Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada (III) En un sistema de memoria centralizada, se suele usar la técnica de ‘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).

13 Coherencia de caché en memoria centralizada (IV)
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 invalidate protocol’). Cuando un procesador realiza una escritura en una línea, esta acción invalida las copias de esa línea en las otras cachés. Protocolo de actualización en escritura (‘write update protocol’, o ‘write broadcast protocol’). envía la nueva versión a las otras cachés.

14 Coherencia de caché en memoria centralizada (V)
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 el protocolo 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 suponen otros tantos envíos con actualización, por una única recarga por invalidación. La invalidación de una línea puede provocar retardos, ya que el 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.

15 Coherencia de caché en memoria distribuida
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 protocolo de 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.

16 Coherencia de caché en memoria distribuida (II)
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 único procesador, compartido entre varios, etc. Procesadores que tienen el bloque en su caché: para poderles avisar 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

17 Coherencia de caché en memoria distribuida (III)
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 directorio de 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

18 Coherencia de caché en memoria distribuida (IV)
Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (IV) Protocolos de directorios completos (II) Cuando un procesador pide una copia del bloque, se le envía y se activa su bit correspondiente. Cuando un procesador pide una escritura al bloque, se borran los bits de los otros procesadores (y se les avisa) y se activa el 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.

19 Coherencia de caché en memoria distribuida (VI)
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.

20 Coherencia de caché en memoria distribuida (VII)
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 una copia de un bloque está distribuida entre las cachés. El módulo de memoria que posee el bloque tiene los datos y el inicio 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 procesador que pide el bloque (que es el nuevo inicio de la lista).

21 Coherencia de caché en memoria distribuida (VIII)
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.

22 Coherencia de caché en memoria distribuida (VIII)
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ón distribuida. 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.

23 Multiprocesadores 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.

24 Multiprocesadores Sincronización
Sincronización (II) Los mecanismos que se utilizan pueden ser software (dentro del S.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

25 Multiprocesadores Multicomputadores
Son un tipo especial de sistemas con múltiples procesadores. Las características que les distinguen son: la memoria es privada (es decir, cada procesador tiene un mapa de direcciones propio que no es accesible directamente a los demá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.

26 Red de interconexión de
Multiprocesadores Multicomputadores Multicomputadores (II) Mem Proc Red de interconexión de paso de mensajes Modelo genérico de un multicomputador Figura tomada del Kai Hwang: Advanced Computer Architecture


Descargar ppt "Tema 5: Multiprocesadores"

Presentaciones similares


Anuncios Google