ARQUITECTURAS MIMD

42
ARQUITECTURAS MIMD Introducción Docente: José Díaz Chow

description

ARQUITECTURAS MIMD. Introducción. Docente : José Díaz Chow. ARQUITECTURAS MIMD. FLYNN: Múltiple flujo de instrucciones , Multiples flujos de Datos . ¿ Qué significa para la arquitectura ? - PowerPoint PPT Presentation

Transcript of ARQUITECTURAS MIMD

Page 1: ARQUITECTURAS MIMD

ARQUITECTURAS MIMDIntroducción

Docente: José Díaz Chow

Page 2: ARQUITECTURAS MIMD

ARQUITECTURAS MIMD

FLYNN: Múltiple flujo de instrucciones, Multiples flujos de

Datos.

¿Qué significa para la arquitectura? Sistemas paralelos que se componen por varios

procesadores trabajando simultánea o concurrentemente.

Page 3: ARQUITECTURAS MIMD

Paralelismo ¿Qué significa que procesamiento sea paralelo?

Que existan al mismo tiempo (simultáneamente):• Múltiples ejecutores trabajando en conjunto y/o

• Ejecución de múltiples tareas.

Casos: Un ejecutor con múltiples tareas solapadas o a la vez:

— Segmentación y Supersegmentación.— Superescalaridad.

Varios ejecutores con una misma tarea. Varios ejecutores con múltiples tareas.

Page 4: ARQUITECTURAS MIMD

Paralelismo Dos componentes, de acuerdo a sus

formas de operación: Temporal:

Solapamiento de ejecución de múltiples tareas en el tiempo.

Espacial: Multiplicidad de ejecutores trabajando

simultáneamente en una o varias tareas.

Page 5: ARQUITECTURAS MIMD

Niveles de Paralelismo Nivel de tareas (Job Level): Diferentes

procesadores ejecutando diferentes procesos.

• Nivel de instrucciones (Instruction Level): Diferentes instrucciones ejecutándose en un procesador (Pipelining, Superpiplining, Scalar, Superescalar)

CPU

• Nivel de Programa (Program level): Diferentes procesadores ejecutando diferentes secciones de un mismo programa en paralelo.

• Nivel de Aritmética y bits. (Bit Level): Varios procesadores trabajando en paralelo sobre diferentes secciones de bits de los datos. (Bit slice processor)

Grano Grueso

Grano Fino

Page 6: ARQUITECTURAS MIMD

Arquitecturas MIMD Trabajan en nivel de paralelismo de grano

grueso

Clasificación (Según Salomon): Multiprocesadores: Memoria compartida Multicomputadoras: Memoria distribuida

Por nivel de Acoplamiento: Fuertemente acoplados (Thightly coupled): Débilmente acoplados (Loosely coupled)

Page 7: ARQUITECTURAS MIMD

Comparación Monoprocesador – Multiprocesador en procesamiento a job level

P

Pr

Pr

Pr

Pr

P1 P2 P3

Pr

Pr

Pr

Pr

SistemaMonoprocesador

S istemaMultiprocesador

Page 8: ARQUITECTURAS MIMD

Estructuras de Interconexión Deben proveer mecanismo para comunicación entre

diferentes entidades de procesamiento y entre ellas y memoria.

En dependencia de su tipología pueden demandar alto ancho de banda.

Suelen emplearse las mismas estructuras de los SIMD. Difieren en cuanto al tipo de MIMD, los

multiprocesadores requieren énfasis en acceso a memoria compartida y los multicomputadores en la comunicación interprocesador.

Page 9: ARQUITECTURAS MIMD

Clasificación MIMD por estructura de Interconexión

MIMD

Multiprocesadores Multicomputadoras

Basados en Buses

Basados en redes

conmutadas

Basados en redes inter-procesador

Basados en servicios de

red

Sequent, Encore

Ultracomputer,RP3

Hipercubo, Transputer

Sistemas Distribuidos

Page 10: ARQUITECTURAS MIMD

Estructura de Bus común Todos los CPUs comparten un mismo bus del sistema

para acceder a memoria compartida y opcionalmente a dispositivos o canales de Entrada – Salida.

P1 P2 P3 P4

M1 M2 IOP1 IOP2

MIMD con estructura de interconexión en Bus común.

Page 11: ARQUITECTURAS MIMD

Estructura de Bus común El acceso a memoria se convierte en cuello de botella. Necesidad de arbitraje para el control del bus del

sistema. El empleo de jerarquía de memoria puede reducir el

impacto de contención de acceso. Problema de coherencia de cachés. Diferentes esquemas de solución.

P1 P2 P3 P4

M 1 M 2 IOP IOP

MIMD con Estructura de interconexiónempleando Bus común

Page 12: ARQUITECTURAS MIMD

Red de conmutación de barras cruzadas. Un bus común genera contención, varios buses

pueden distribuir el tráfico entre los CPUs y Memoria

M0 M1 M2 M3

P1

P2

P3

P4

Page 13: ARQUITECTURAS MIMD

Red de conmutación de barras cruzadas. El conmutador se encarga de controlar el tráfico en los

buses de procesadores y memorias. Direcciones y son pueden soportarse

concurrentemente. La dirección tiene mayor prioridad y bloquea a la dirección .

Cualquier procesador puede acceder a cualquier módulo de memoria que no esté ocupado por un procesador de mayor prioridad.

Las prioridades establecidas por la posición.

Page 14: ARQUITECTURAS MIMD

Memorias Multipuerto Las memorias multipuerto permiten atender n

procesadores de forma concurrente.

M0 M1

P1

P2

P1

P2

Page 15: ARQUITECTURAS MIMD

Memorias Multipuerto Esquema de interconexión ideal para sistemas de

memoria compartida. Muy ventajoso en caso de pocos CPUs y alto

requerimiento de ancho de banda en transferencias CPU-Memoria.

No son escalables. La cantidad de CPUs está limitada a los puertos disponibles en las Memorias.

Costo muy elevado.

Page 16: ARQUITECTURAS MIMD

Redes de conmutación Para permitir mayor cantidad de procesadores, se

proponen estructuras de interconexión basadas en redes de conmutación multietapa.

Page 17: ARQUITECTURAS MIMD

Redes multietapa Basadas en conmutadores de intercambio que tienen

n entradas y m salidas. Cada entrada puede conmutar hacia cualquiera de las

salidas que no esté ocupada. Esquema de prioridades de entradas.

Page 18: ARQUITECTURAS MIMD

Ejemplo de red: Red Delta Comunica p procesadores a m módulos de memoria,

tal que m es potencia de 2 de p. La interconexión se establece en base a la dirección de

memoria a acceder

Page 19: ARQUITECTURAS MIMD

Ejemplo de red: Red Omega Comunica p procesadores a m módulos de memoria,

tal que p <= m. Otros escenarios y usos.

Page 20: ARQUITECTURAS MIMD

Redes de intercambio de mensajes Habilitan comunicación entre procesadores (nodos de

la red) mediante paso de mensajes. Empleo prevalece en sistemas débilmente acoplados.

Page 21: ARQUITECTURAS MIMD

Ejemplo de Red: Hipercubo Proceso recursivo. Parte de una red 1D para formar una 2D duplicando

la red anterior e interconectando los nodos homólogos. Asigna a cada nodo de la red 1D una dirección 0 , 1. Al ampliarse la

red, se antepone 0 a los nodos de la primera red y 1 a los de la réplica.

Page 22: ARQUITECTURAS MIMD

Ejemplo de Red: Hipercubo Asignación de direcciones también puede seguir

coordenadas cartesianas. Direcciones de nodos adyacentes solo difiere en 1 bit.

Page 23: ARQUITECTURAS MIMD

Ejemplo de Red: Hipercubo Algritmo de ruteo para el paso de mensajes:

Ruta = Direccion_Fuente Direccion_Destino.

Ruta describe trayectoria del paquete en los ejes coodenados.

Page 24: ARQUITECTURAS MIMD

Acceso a recursos compartidos En Multiprocesadores Dos áreas de recursos son críticas:

Memoria: Requerida protección de memoria (como en cualquier SO multiprogramado).

Acceso a regiones y estructuras de memoria compartidas.

Es necesario sincronización de regiones críticas: Acceso exclusivo de los recursos.

Necesario soporte de hardware para implementación de mecanismos de exclusión mútua: gates, pinlocks y semáforos.

Estructura de Interconexión:Se convierte en recurso compartido total o parcialmente en dependencia del tipo.

Bus común es el más crítico.

Se requieren mecanismos de control de flujo o métodos de arbitraje

Page 25: ARQUITECTURAS MIMD

Arbitraje del bus

La Arquitectura de bus común es muy sencilla y de bajo costo. Obliga a acceso exclusivo durante la transacción. Los procesadores lo emplean para acceder a Memoria (y a Entrada

Salida en caso de SMPs). Se requiere implementar mecanismos de arbitraje: lógica y controlador

que concede el bus a un dispositivo específico. Tipos de árbitro:

Arbitrio fijo: Árbitro paralelo: Codificador/Decodificador de prioridades

Árbitro serial: Cadena de margaritas

Arbitrio dinámico: Árbitro paralelo: Estructura dinámica y/o algoritmo de prioridades dinámicas

Árbitro serie: Cadena circular de margaritas.

Page 26: ARQUITECTURAS MIMD

Exclusión mutua Concurrencia de la ejecución en multiprocesadores

Necesidad de acceso a estructuras de datos y del SO que son compartidas. Requerido garantizar la coherencia Acceso debe ser mutuamente excluyente. Se requiere soporte por SO y por hardware:

Gate o puerta: Puerto de acceso a una estructura compartida.

Semáforo: Indicador de acceso.

Pinlock o seguro: Componente hardware que garantiza TEST&SET atómico.

Page 27: ARQUITECTURAS MIMD

Comunicación entre Procesadores Es necesario definir formas de comunicación y

sincronización de procesadores en un sistema MIMD. Coordinaciones del Sistema Operativo Cooperación en ejecución de una tarea común

Page 28: ARQUITECTURAS MIMD

Comunicación Interprocesador

Multiprocesadores:

1. Uso de sistema de Entrada Salida Los procesadores se ven entre sí como periféricos Uso de puertos de E/S para intercambio de datos Uso de Interrupciones para sincronización.

2. Área de memoria para intercambio de mensajes. Cada procesador tiene su buzón. Cada procesador puede poner mensajes o solicitudes a otros. Sincronización mediante Polling o Interrupciones.

3. Uso de un bus de comunicación interprocesador dedicado. Bus alternativo al bus del sistema, frecuentemente serial. Controlador de bus auxiliar gestiona la comunicación al procesador.

Page 29: ARQUITECTURAS MIMD

Comunicación Interprocesador Multicomputadoras:

Por defecto se comunican mediante paso de mensajes. Forma de comunicación es obligatoria para todos los efectos, inclusive

datos. Mensajes son enrutados del procesador fuente al destino. Más o menos desacoplado, en dependencia de la arquitectura:

MMPs: Uso de buses diseñados especialmente para la comunicación.

Sistemas Distribuidos: Uso de los mecanismos de redes.

Page 30: ARQUITECTURAS MIMD

Coherencia de Cachés La Jerarquía de Memoria: solución al problema de

bajo desempeño por cuello de botella en multiprocesadores de bus común. Uso de cachés locales reducer significativamente el tráfico a la memoria

central. Política de escritura: Write through vs Write Back

Concurrencia: variables o estructuras en memoria compartidas Varios procesadores tienen el mismo bloque de memoria en caché local

Page 31: ARQUITECTURAS MIMD

Coherencia de Cachés Riesgo de pérdida de coherencia de caché:

Varios procesadores tienen misma variable en su caché local. Un procesador escribe la variable compartida dejando inconsistente las

otras copias.

P1

MemoriaA = 5

P2 P3 P4

A = 5 A = 5 A = 5 A = 5X = 7 X X X

X

Page 32: ARQUITECTURAS MIMD

Coherencia de Cachés Requerido mantener la coherencia del dato en

todas las cachés y la memoria central.

¿Cómo lograr que los procesadores se enteren cuando su copia no es válida?: Protocolo. Snoopy protocols (protocolos de sondeo). Protocolos basados en Directorios.

Page 33: ARQUITECTURAS MIMD

Coherencia de Cachés Protocolos de Sondeo (Snoopy protocols)

Apropiado para sistemas basados en buses. Desempeño limitado a pocos procesadores. Se sondean las transacciones de memoria en el bus. Controlador de caché además del operaciones de procesador y estado

de bloques lleva control de transacciones. Se agregan bits a cada línea de caché para saber su estado. Se agregan líneas especiales al bus para transmitir información entre

caches. Política Write Back dificulta esta tarea: Controladores deben anunciar

cuando escriben en un bloque mediante líneas adicionales o simulando transacciones en el bus.

Page 34: ARQUITECTURAS MIMD

Coherencia de Cachés Protocolos basados en Directorio

Recolecta y mantiene la información de todas las copias de los bloques en las cachés.

Emplea un directorio central en memoria que almacena el estado de cada bloque de caché.

Todas las solicitudes son verificadas en el directorio central Requiere alto ancho de banda para chequeo. Crea cuello de botella en el bus pero más ligero que el de transacciones

a Memoria Apropiado para sistemas a gran escala con complejos esquemas de

interconexión.

Page 35: ARQUITECTURAS MIMD

Protocol Valid-Invalid Protocolo de sondeo con política Write-Through:

Cada bloque en dos estados posibles: V, I. Se carga el bloque y se pone en V. Cuando un procesador escribe en un bloque, el controlador mantiene el

estado V y manda a actualizar la memoria central mediante transacción de escritura del bloque.

Todos los controladores sensan la escritura en el bus, e invalidan el estado del bloque en su caché.

Cuando Procesador va a leer, el controlador carga el bloque si el estado es Inválido.

Page 36: ARQUITECTURAS MIMD

Protocol Valid-Invalid Estados:

V: Válido (Valid) I: Inválido (Invalid)

Eventos generados por el procesador: PrRd (Procesor Read) PrWr(Procesor Write)

Operaciones detectadas en el bus: BusWr BusRd

Page 37: ARQUITECTURAS MIMD

Protocol Valid-Invalid Al emplear política Write-Through:

Requerimiento de elevado ancho de banda. Todas las escrituras de todos los procesadores se realiza a

través del bus. Ejemplo: procesador de 200MHz, 1 CPI y 15% instrucciones

STORE de 8 bytes:Cada procesador genera 30M stores o 240MB datos por segundo

Un bus de 1GB/s puede soportar sólo 4 procesadores sin saturarse

Write-through resulta ser muy ineficiente para SMPs

Page 38: ARQUITECTURAS MIMD

Protocolo MSI Denominado así por los estados en que puede estar un

bloque o línea de cahe: Modificado-Shared-Invalid Modificado (M): Solo un procesador tiene una copia válida del

bloque en su cache. Bloque en memoria principal esta anticuada y ninguna otra cache tiene copia válida. Las demás copias potenciales son invalidadas vía una transacción de bus.

Shared o Compartido(S): Bloque no ha sido modificado. Memoria principal y cero o más caches tienen copia actualizada.

Inválido (I): El bloque no se ha cargado en caché o no tiene la información actualizada.

Page 39: ARQUITECTURAS MIMD

Protocolo MSI Política Write-Back:

Estados:Invalid (I): No usado/invalidado.

Shared(S): en varias cachés.

Modified (M): uno sólo.

Eventos generados por el procesador:

PrRd(read)

PrWr(write)

Operaciones detectadas en el busBusRd: Lee copia.

BusRdX: Notifica modificación de copia.

BusWB: actualiza memoria.

Page 40: ARQUITECTURAS MIMD

Protocolo MESI Llamado también protocolo “Illinois”, agrega el estado Exclusive al protocolo MSI,

mejorando la precisión del mismo. Se puede leer de caché en cualquier estado excepto en Inválidos. Una línea inválida

puede ser cogida (de los estados Compartido o Exclusivo) para satisfacer una lectura. Una escritura sólo puede ser llevada a cabo si la línea de caché está en estado

Modificado o Exclusivo. Si está en estado Compartido todas las otras copias en otras cachés deben ser puestas en estado Inválido antes. Esto se hace habitualmente con una operación broadcast.

Una caché puede cambiar el estado de una línea en cualquier momento, pasándolo a estado Inválido. Una línea Modificada debe ser escrita antes.

Una caché que contenga una línea en estado Modificado debe sondear (interceptar) todos los intentos de lectura (de todas las CPUs del sistema) a la memoria principal y copiar los datos que tiene. Esto se hace habitualmente forzando la lectura back off (cancelar el bus de transferencia a memoria), para luego escribir los datos en memoria principal y cambiar la línea de caché a estado Compartido.

Page 41: ARQUITECTURAS MIMD

Protocolo MESI Una caché que contenga una línea en estado Compartido debe también sondear

todas las operaciones broadcast inválidas de otras CPUs, y descartar la línea (cambiándola a estado Inválido) una vez hecho.

Una caché que contenga una línea en estado Exclusivo también debe sondear todas las peticiones de lecturas del resto de CPUs y cambiar la línea a estado Compartido una vez hecho.

Los estados Modificado y Exclusivo son siempre precisos: corresponden a los poseedores de la línea correcta en el sistema. El estado Compartido puede ser impreciso: si alguna otra CPU descarga una línea Compartida, y esta CPU es la única que tiene una copia, la línea no será cambiada a estado Exclusivo. (porque cambiar todas las líneas de caché de todas las CPUs no es práctico en un bus de sondeo broadcast)

En ese sentido el estado Exclusivo es una optimización oportunista: si la CPU quiere modificar la línea de caché a estado Compartido, es necesario un intercambio por el bus para invalidar cualquier otra copia en caché. El estado Compartido permite modificar una línea de caché sin ningún intercambio por el bus.

Page 42: ARQUITECTURAS MIMD

Protocolo MESI Estados:

M - Modified: Bloque sólo en la caché actual e incoherente con M. Es necesario WB a M antes de cualquier otra lectura.

E - Exclusive: Bloque sólo en la caché actual y coherente con M.

S – Shared: Bloque duplicado en otras cachés.

I - Invalid (Inválido): Bloque de caché no es válida (otra caché lo tiene y ha escrito).

Eventos generados por el procesador:PrRd(read)

PrWr(write)

Operaciones detectadas en el busBusRd: Lee copia.

BusRdX: Notifica modificación de copia.

BusWB: actualiza memoria.