Title: Sin t
1Tema 5 Multiprocesadores
- Objetivos.
- Referencias.
- Introducción.
- Arquitecturas centralizadas de memoria
compartida. - Arquitecturas distribuidas de memoria compartida.
- Sincronización.
- Multicomputadores.
2Procesadores 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
3Procesadores vectoriales Referencias
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
4Multiprocesadores 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)
5Multiprocesadores Introducción
Arquitectura centralizada de memoria compartida
6Multiprocesadores Introducción
Arquitectura de memoria distribuida
7Multiprocesadores 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
- gtUMA (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.
- gt 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.
8Multiprocesadores 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)
gtse ve - claro lo que cuesta tiempo y lo que no.
9Multiprocesadores 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
10Multiprocesadores 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.
11Multiprocesadores 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)
12Multiprocesadores 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).
13Multiprocesadores 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). Cuando un procesador
realiza una escritura en una línea, envía la
nueva versión a las otras cachés.
14Multiprocesadores 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.
15Multiprocesadores 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.
16Multiprocesadores 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
17Multiprocesadores 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
18Multiprocesadores 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.
19Multiprocesadores 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.
20Multiprocesadores 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).
21Multiprocesadores 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.
22Multiprocesadores 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.
23Multiprocesadores 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.
24Multiprocesadores 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-escrit
ura (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
25Multiprocesadores Multicomputadores
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.
26Multiprocesadores Multicomputadores
Multicomputadores (II)
Modelo genérico de un multicomputador
Figura tomada del Kai Hwang Advanced Computer
Architecture