Title: William%20Stallings%20Organizaci
1William Stallings Organización y Arquitectura de
Computadores
- Capítulo 16
- Procesamiento paralelo
2Organizaciones Con Varios Procesadores
- SISD una secuencia de instrucciones y una
secuencia de datos. - SIMD una secuencia de instrucciones y múltiples
secuencias de datos. - MISD múltiples secuencias de instrucciones y una
secuencia de datos. - MIMD múltiples secuencias de instrucciones y
múltiples secuencias de datos.
3Una secuencia de instrucciones y una secuencia de
datos (SISD)
- Un único procesador interpreta una única
secuencia de instrucciones. - Datos almacenados en una única memoria.
- Computadores monoprocesador.
4Una secuencia de instrucciones y múltiples
secuencias de datos (SIMD)
- Una única instrucción máquina controla paso a
paso la ejecución simultánea de un cierto número
de elementos de proceso. - Cada elemento de proceso tiene una memoria
asociada. - Cada instrucción es ejecutada por cada
procesador, con un conjunto de datos diferentes. - Procesadores vectoriales y matriciales.
5(No Transcript)
6Múltiples secuencias de instrucciones y una
secuencia de datos (MISD)
- Se transmite una secuencia de datos a un conjunto
de procesadores. - Cada procesador ejecuta una secuencia de
instrucciones diferente. - Esta estructura nunca ha sido implementada.
7Múltiples secuencias de instrucciones y múltiples
secuencias de datos (MIMD)
- Un conjunto de procesadores ejecuta
simultáneamente secuencias de instrucciones
diferentes. - Conjuntos de datos diferentes.
- Los SMP, los clusters, y los sistemas NUMA son
ejemplos de esta categoría.
8Taxonomía de las arquitecturas paralelas
Organizaciones de computadores
Una secuencia de instrucción, múltiples
secuencias de datos (SIMD)
Múltiples secuencias de instrucción, múltiples
secuencias de datos (MIMD)
Una secuencia de instrucción, una secuencia de
datos (SISD)
Múltiples secuencias de instrucción, una
secuencia de datos (MISD)
Monoprocesadores
Procesadores vectoriales
Procesadores matriciales
Memoria compartida (fuertemente acoplada)
Memoria distribuida (débilmente acoplada)
Clusters
Multiprocesador simétrico (SMP)
Acceso no uniforme a memoria (NUMA)
9 Organización MIMD
- Son procesadores de uso general.
- Cada uno es capaz de procesar todas las
instrucciones necesarias para realizar las
transformaciones apropiadas de los datos. - Se pueden subdividir, además, según la forma que
tienen los procesadores para comunicarse.
10SMP (fuertemente acoplado)(Symmetric
MultiProcessor)
- Varios procesadores comparten una única memoria.
- Los procesadores se comunican unos con otros a
través de esa memoria compartida. - Características del multiprocesador simétrico
(SMP) - Comparten la memoria principal.
- Comparten un bus para acceder a la memoria.
- El tiempo de acceso a memoria es aproximadamente
el mismo para todos los procesadores.
11NUMA (fuertemente acoplado)(NonUniform Memory
Access)
- Acceso no uniforme a memoria.
- El tiempo de acceso a zonas de memoria diferentes
puede diferir en un computador NUMA.
12Clusters (débilmente acoplados)
- Un conjunto de computadores monoprocesador
independientes, o de SMP, pueden interconectarse
para formar un cluster. - La comunicación entre los computadores se realiza
mediante conexiones fijas o mediante algún tipo
de red.
13Multiprocesadores simétricos
- Un SMP es un computador autónomo con las
siguientes características - Hay dos o más procesadores similares de
capacidades comparables. - Estos procesadores comparten la memoria principal
y las E/S. - Están interconectados mediante un bus u otro tipo
de sistema de interconexión. - El tiempo de acceso a memoria es aproximadamente
el mismo para todos los procesadores. - Todos los procesadores comparten los dispositivos
de E/S, bien a través de los mismos canales, o
bien mediante canales distintos que proporcionan
caminos de acceso al mismo dispositivo. - Todos los procesadores pueden desempeñar las
mismas funciones (de ahí el término simétrico). - El sistema está controlado por un sistema
operativo integrado, que proporciona la
interacción entre los procesadores y sus
programas en los niveles de trabajo, tarea,
archivo y datos.
14Ventajas de un SMP
- Prestaciones
- Cuando el trabajo a realizar por un computador
puede organizarse en paralelo. - Disponibilidad
- Debido a que todos los procesadores pueden
realizar las mismas funciones, un fallo en un
procesador no hará que el computador se detenga. - Crecimiento incremental
- Se pueden aumentar las prestaciones del sistema,
añadiendo más procesadores. - Escalado
- Los fabricantes pueden ofrecer una gama de
productos con precios y prestaciones diferentes,
en función del número de procesadores que
configuran el sistema.
15Diagrama de bloques genérico de un
multiprocesador fuertemente acoplado
Procesador
Procesador
Procesador
E/S
Red de interconexión
E/S
E/S
Memoria principal
16Organización de los multiprocesadores simétricos
- Bus de tiempo compartido o común.
- Memoria multipuerto.
- Unidad de control central.
17Bus de tiempo compartido
- Es el mecanismo más simple.
- La estructura y las interfaces son básicamente
las mismas que las de un sistema de un único
procesador. - Se proporcionan los siguientes elementos para el
- Direccionamiento distinción de los módulos del
bus (origen y destino) - Arbitraje cualquier módulo puede funcionar
temporalmente como maestro. - Tiempo compartido cuando un módulo está
controlando el bus, los otros módulos tienen que
esperar y, si es necesario, suspender su
operación. - Existen varios procesadores, además de varios
módulos de E/S.
18Ventajas del bus de tiempo compartido
- Simplicidad.
- Flexibilidad.
- Fiabilidad.
19Desventajas del bus de tiempo compartido
- La prestación está limitada por el tiempo de
ciclo del bus. - Cada procesador debería estar equipado con una
memoria cache para mejorar las prestaciones - Se reduciría el número de accesos.
- Se pueden producir problemas de coherencia de
cache - Este problema es resuelto por el hardware
20(No Transcript)
21Memoria multipuerto
- Permite el acceso directo e independiente a los
módulos de memoria desde cada uno de los
procesadores. - Se necesita una cierta lógica para resolver los
conflictos. - Se necesitan pocas o ninguna modificación en los
procesadores o en los módulos.
22M1
M2
Mk
P1
E/S 1
Pn
E/S m
Memorias multipuerto
23Ventajas y desventajas de la memoria multipuerto
- Más compleja
- Se precisa añadir al sistema de memoria una buena
cantidad de lógica. - Se consiguen mejores prestaciones.
- Cada procesador tiene un camino dedicado a cada
módulo de memoria. - Permite configurar partes de la memoria como
privadas para uno o más procesadores - Incremento de la seguridad.
- Se debe utilizar una estrategia de escritura
directa para controlar la cache.
24Unidad de control central
- Encauza las distintas secuencias de datos entre
los distintos módulos independientes. - Puede almacenar temporalmente peticiones.
- Puede realizar las funciones de arbitraje y
temporización. - Puede transmitir mensajes de estado y control
entre los procesadores. - Puede alertar sobre los cambios en las caches.
- Las interfaces de E/S, memoria y procesador no
sufren cambios esenciales. - Ejemplo mainframe tipo S/370 de IBM.
25Puntos clave de diseño de un sistema operativo
- Procesos concurrentes simultáneos.
- Planificación.
- Sincronización.
- Gestión de memoria.
- Fiabilidad y tolerancia ante los fallos.
26Soluciones software
- El compilador y el sistema operativo se encargan
del problema de la necesidad de circuitería y
lógica hardware adicional. - La sobrecarga se transfiere para compilar el
tiempo. - La complejidad del diseño se transfiere desde el
hardware al software. - Por otra parte, el software tiende a tomar
ciertas decisiones conservadoras - Utilización ineficiente de la cache.
- Analizan el código para determinar periodos
seguros para las variables compartidas.
27Soluciones hardware
- Generalmente se denominan protocolos de
coherencia de cache. - Permiten reconocer dinámicamente, en el momento
de la ejecución, problemas potenciales. - Permiten un uso más efectivo de las caches.
- Aproximaciones transparentes para el programador.
- Protocolos de directorio.
- Protocolos de sondeo.
28Protocolos de directorio
- Recogen y mantienen la información acerca de las
copias de las líneas en la cache. - El directorio se almacena en la memoria
principal. - Las peticiones se comprueban comparándose con el
directorio. - Se ejecutan las transferencias apropiadas.
- Los esquemas de directorio tienen un cuello de
botella central. - Son efectivos en sistemas a gran escala que
poseen esquemas complejos de interconexión.
29Protocolos de sondeo snoopy protocols
- Distribuyen la responsabilidad de mantener la
coherencia de cache entre todos los controladores
de cache. - Una cache reconoce cuándo una línea está
compartida con otras caches. - Las actualizaciones se anuncian a otras caches.
- Se adaptan bien a multiprocesadores basados en un
bus. - Incremento en el tráfico del bus.
30Invalidar-si-escritura
- Múltiples procesadores que leen, pero uno sólo
que escribe. - Cuando se quiere hacer una escritura, se
invalidan las otras caches de la línea. - El procesador que escribe tiene acceso exclusivo
hasta que la línea sea requerida por otro
procesador. - Se utiliza en los sistemas Pentium II y Power PC.
- El estado de cada línea se marca como modificado,
exclusivo, compartido, o no válido. - El protocolo de invalidar-si-escritura se llama
MESI.
31Actualizar-si-escritura
- Varios procesadores que escriben y leen.
- La palabra actualizada se distribuye a todos los
procesadores. - Algunos sistemas implementan un sistema
adaptativo con características de ambas
soluciones.
32Diagrama de transición de estados MESI
No válido
Compar- tido
No válido
Compar- tido
Modifi- cado
Exclu- sivo
Modifi- cado
Exclu- sivo
(a) Línea en el procesador que inicia la
transferencia
(a) Línea en una cache sondeando el bus
Escribir en memoria la línea de cache
modificada Invalidar transacción Lectura-para-mod
ificación (RWITM) Cargar línea de cache
Acierto de lectura Fallo de lectura,
compartida Fallo de lectura, exclusiva Acierto de
escritura Fallo de escritura Acierto de sondeo en
lectura Acierto de sondeo en escritura o
lectura-para-modificación
33Clusters
- Son la alternativa a los SMP.
- Prestaciones y disponibilidad elevadas.
- Aplicaciones propias de un servidor.
- Un grupo de computadores completos
interconectados que trabajan conjuntamente como
un único recurso de cómputo, creándose la ilusión
de que se trata de una sóla máquina. - Cada computador se denomina nodo.
34Beneficios del cluster
- Escalabilidad absoluta.
- Escalabilidad incremental.
- Alta disponibilidad.
- Mejor relación precio/prestaciones.
35Configuraciones de clusters servidor sin disco
compartido
Enlace de alta velocidad para mensajes
E/S
E/S
E/S
E/S
36Configuraciones de clusters disco compartido
Enlace de alta velocidad para mensajes
E/S
E/S
E/S
E/S
E/S
E/S