Sin t - PowerPoint PPT Presentation

About This Presentation
Title:

Sin t

Description:

Title: Sin t tulo de diapositiva Author: nacho Last modified by: nacho Created Date: 10/21/2000 3:37:59 PM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 27
Provided by: NAC145
Category:

less

Transcript and Presenter's Notes

Title: Sin t


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

2
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
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
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
Multiprocesadores Introducción
Arquitectura centralizada de memoria compartida
6
Multiprocesadores Introducción
Arquitectura de memoria distribuida
7
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
  • 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.

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

9
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
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
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
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
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). Cuando un procesador
realiza una escritura en una línea, envía la
nueva versión a las otras cachés.
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 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
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
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
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
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
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
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
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
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
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-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

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

26
Multiprocesadores Multicomputadores
Multicomputadores (II)
Modelo genérico de un multicomputador
Figura tomada del Kai Hwang Advanced Computer
Architecture
Write a Comment
User Comments (0)
About PowerShow.com