Multiprocesadores y Máquinas Paralelas

Anuncio
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Parte 2.- SISTEMAS PARALELOS
Tema 4.- INTRODUCCION A LAS ARQUITECTURAS PARALELAS.
Anexo 4.- Multiprocesadores y Máquinas Paralelas
INDICE
Capitulo 4.1.- Definiciones y conceptos básicos ................................................................................................................... 2
Conceptos de multiprocesamiento y de paralelismo explícito ........................................................................................... 2
Concepto de multiprocesamiento: los multiprocesadores. ............................................................................................. 2
Concepto de paralelismo explícito: las máquinas paralelas. .......................................................................................... 2
Relaciones entre diferentes conceptos ............................................................................................................................... 3
Paralelismo explícito y formas implícitas de paralelismo.............................................................................................. 3
Multiprocesamiento y multiprogramación. .................................................................................................................... 3
Multiprocesamiento y simultaneidad de entradas-salidas. ............................................................................................. 3
Multiprocesamiento y multiprocesadores. ..................................................................................................................... 3
Multiprocesadores y multioperadores............................................................................................................................ 3
Multiprocesadores y multicalculadores.......................................................................................................................... 4
Resumen sobre las estructuras de alta velocidad. .......................................................................................................... 4
Capitulo 4.2.- Multiprocesadores........................................................................................................................................... 5
Las diversas clases de multiprocesadores .......................................................................................................................... 5
Sistemas de procesadores idénticos. .............................................................................................................................. 5
Sistemas de procesadores periféricos especializados..................................................................................................... 5
Multiprocesadores modulares descompuestos. .............................................................................................................. 5
Problemas generales de los multiprocesadores .................................................................................................................. 6
Aumento de la eficacia................................................................................................................................................... 6
Aumento de la disponibilidad. ....................................................................................................................................... 6
Problemas de interconexiones........................................................................................................................................ 6
Comunicaciones entre procesadores. ............................................................................................................................. 6
Sistemas de multiunidades centrales.................................................................................................................................. 7
Interconexiones entre procesadores y memoria central. ................................................................................................ 7
Intercomunicaciones a través de la memoria. ................................................................................................................ 8
Interconexiones entre procesadores y canales. .............................................................................................................. 9
Los rendimientos.......................................................................................................................................................... 11
Partición y reconfiguración.......................................................................................................................................... 12
Multiprocesador por compartición de los circuitos de una unidad central ...................................................................... 12
Sistemas con procesadores especializados....................................................................................................................... 13
Multiprocesadores modulares. ......................................................................................................................................... 15
Multiprocesadores modulares descompuestos ................................................................................................................. 15
Sistemas de elevados rendimiento y disponibilidad..................................................................................................... 16
Sistemas de muy elevada disponibilidad...................................................................................................................... 18
Capitulo 4.3.- Máquinas de paralelismo explícito ............................................................................................................... 19
Máquinas de programas en malla..................................................................................................................................... 19
Máquinas celulares .......................................................................................................................................................... 20
La máquina de Solomon .............................................................................................................................................. 20
La máquina de Holland................................................................................................................................................ 20
La organización Solomon. ........................................................................................................................................... 20
ILLIAC IV. .................................................................................................................................................................. 21
El futuro de las máquinas celulares.................................................................................................................................. 23
ETSII – Dpto. Tecnología Electrónica.
Página: 1 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Capitulo 4.1.- Definiciones y conceptos básicos
Resulta muy difícil extraer, del movimiento de ideas concernientes a las máquinas con varios procesadores, una
visión de síntesis sucinta y organizada.
Por ello, no debe considerarse la siguiente clasificación como otra cosa que un ensayo de presentación, tan lógico
como es posible hoy día, de los elementos que creemos más importantes dentro de un tema tan vasto y en plena
evolución.
Conceptos de multiprocesamiento y de paralelismo explícito
Puede primeramente intentar definirse dos conceptos básicos, que permiten separar los computadores objeto de
este capítulo en dos categorías.
Son:
Concepto de multiprocesamiento: los multiprocesadores.
Se define generalmente el multiprocesamiento como el uso, en un mismo computador, de varias unidades
centrales operando simultáneamente sobre programas o trozos de programas diferentes.
Esta definición liga la noción de multiprocesamiento a la de multiprocesador.
Un multiprocesador es un sistema informático en el que varias unidades centrales funcionan en paralelo,
compartiendo un mismo conjunto de memorias y unidades periféricas.
El término "unidad central", mal adaptado a un contexto en el que hay varias, puede abandonarse aquí en
beneficio del término "procesador"
Concepto de paralelismo explícito: las máquinas paralelas.
Puede definirse el paralelismo explícito como la posibilidad dada al programador de hacer ejecutar explícitamente
en paralelo varios tratamientos dependientes unos de otros.
El desarrollo, bajo el gobierno de una única unidad de control, de un mismo programa en varios operadores
aritméticos, operando cada uno sobre un juego propio de datos, representa un caso típico de paralelismo explícito,
pero pueden exhibirse otros muchos ejemplos.
Designaremos con el nombre de máquinas paralelas a los ordenadores que, de una u otra forma, han sido
concebidos para responder a problemas de paralelismo explícito.
Los diferentes tratamientos, ejecutados simultáneamente en diferentes unidades de un multiprocesador o de una
máquina paralela, se suelen denominar procesos, definiéndose intuitivamente un proceso como un programa en
curso de ejecución.
Cuando un programa está siendo ejecutado simultáneamente en n unidades diferentes, por cuenta de distintos
usuarios, hay n procesos correspondientes a este solo programa.
ETSII – Dpto. Tecnología Electrónica.
Página: 2 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Relaciones entre diferentes conceptos
Con objeto de precisar estas definiciones, es necesario comparar estos nuevos conceptos entre sí, igual que con
ciertas nociones introducidas anteriormente.
Paralelismo explícito y formas implícitas de paralelismo.
Existe paralelismo explícito cuando el programador designa explícitamente qué tratamientos deben ejecutarse
en paralelo. Generalmente, el paralelismo explícito supone un cierto grado de sincronización entre los procesos en
simultaneidad de ejecución.
Puede denominarse con el término general de paralelismo implícito a todos los tipos de paralelismo que no son
explícitamente previstos por el programador.
Su causa puede, ser el azar, como sucede en el multiprocesamiento, donde los programas lanzados en diferentes
procesadores dependen de su orden de llegada a la cola de espera.
También podría deberse a una particularidad del hardware, como ocurre en las máquinas pipe-line o de
operadores aritméticos paralelos, donde el programador no tiene por qué saber que varias instrucciones de su
programa se ejecutan con una cierta simultaneidad.
Multiprocesamiento y multiprogramación.
Ambos conceptos se diferencian netamente entre sí:
• La multiprogramación consiste, recordémoslo, en hacer residir en memoria central varios programas que
son ejecutados de manera temporalmente imbricada por una misma unidad central, pasando de un
programa a otro gracias al mecanismo de las interrupciones.
•
El multiprocesamiento consiste en hacer trabajar simultáneamente a varias unidades centrales, que
comparten una memoria común.
•
Existen soluciones intermedias; tal es el caso de la compartición de los circuitos de una única unidad
central por varios procesadores reducidos a sus juegos de registros, donde la unidad central concede
sucesivamente a cada procesador un ciclo de máquina o el tiempo para ejecutar una instrucción.
Multiprocesamiento y simultaneidad de entradas-salidas.
Aunque en cierta manera los fenómenos sean de la misma naturaleza, el término "multiprocesamiento" no se
utiliza generalmente para designar la simultaneidad de funcionamiento entre unidad central y canal, salvo quizá en
determinados sistemas en que las entradas-salidas son gestionadas por procesadores programados.
Multiprocesamiento y multiprocesadores.
Nuestra primera definición ligaba el multiprocesamiento a la noción de multiprocesador.
Es importante hacer algunas reservas al respecto.
En primer lugar, las máquinas multiprocesadores no siempre han sido concebidas para trabajar en
multiprocesamiento. Tal es el caso de los ordenadores embarcados sobre satélites, para los que la organización
como multiprocesadores se debe absolutamente a la búsqueda de una excelente disponibilidad: los procesadores
se reemplazan al fallar uno de ellos, pero no trabajan en paralelo.
Opuestamente, el multiprocesamiento no implica a la fuerza sistemas de varias unidades centrales completas,
como prueba el ejemplo de la compartición de los circuitos de una unidad central por varios procesadores,
reducidos a sus juegos de registros.
Multiprocesadores y multioperadores.
Es importante no confundir los multiprocesadores, considerados como máquinas de multiprocesamiento, y los
multioperadores, término que puede designar a máquinas formadas por una única unidad de instrucción y por
varios operadores aritméticos, incluso por varias unidades aritméticas y lógicas completas, trabajando con un
cierto grado de paralelismo bajo su control.
En un sentido estricto, no hay multiprocesamiento y multiprocesador más que cuando varias unidades de
instrucción trabajan en paralelo.
ETSII – Dpto. Tecnología Electrónica.
Página: 3 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Multiprocesadores y multicalculadores.
Numerosos sistemas informáticos ponen en juego varios calculadores interconectados.
En el terreno del cálculo científico, por ejemplo, se utilizan, a menudo, sistemas de dos máquinas interconectadas,
una máquina potente para el procesamiento de los lotes de trabajos y otra, menos potente, llamada máquina
frontal, para gestionar las entradas-salidas y preparar las colas de espera de trabajos para la máquina potente.
El enlace entre ambos computadores se realiza por intermedio de discos conectados a la vez a dos canales o de
una conexión canal-canal, aunque cada uno posee su memoria central y sus propios canales.
Diremos que se trata de un sistema multicalculador, ya que el sistema multiprocesador implica la existencia de
una memoria central común, por lo menos.
Resumen sobre las estructuras de alta velocidad.
Las principales ideas recogidas acerca de la búsqueda de altas velocidades quedan resumidas en los esquemas.
Este intento de clasificación de los tipos de paralelismo no excluye su superposición en una misma máquina.
La estructura pipe-line del primer esquema puede construirse con ayuda de procesadores idénticos,
especializando a cada uno sucesivamente mediante microprogramas, el primero en la búsqueda de las
instrucciones, el segundo en su decodificación, el tercero en los cálculos de dirección, etc.
La estructura multiprocesador del tercer esquema puede componerse a base de procesadores pipe-Iine en
paralelo.
La estructura de paralelismo explícito del último esquema no excluye que ciertos procesadores que no son
utilizados por el programa concebido para dicho paralelismo, puedan trabajar en multiprocesamiento sobre otros
programas independientes.
ETSII – Dpto. Tecnología Electrónica.
Página: 4 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Capitulo 4.2.- Multiprocesadores
Agrupamos en este parágrafo, por un lado las máquinas operando en multiproceso, por otro, diversos
computadores cuyo esquema los emparienta con los multiprocesadores.
Las diversas clases de multiprocesadores
Sistemas de procesadores idénticos.
Algunos los designan bajo el término de multiunidad central, otros les reservan el de multiprocesador, en
exclusiva.
Están constituidos por varias unidades centrales completas del mismo tipo, compartiendo la memoria central y en
general, las unidades periféricas.
Corresponden perfectamente a la primera definición que se ha dado de multiprocesamiento.
Sistemas de procesadores periféricos especializados.
La memoria central se encuentra compartida por uno o varios procesadores principales encargados del
procesamiento de los lotes de trabajos y por un cierto número de procesadores especializados (por hardware, por
software o por firmware) en determinados trabajos:
¾ gestión del conjunto de la máquina (sistema operativo),
¾ gestión de las entradas-salidas, control de los periféricos,
¾ compilación ...
El ejemplo típico es el del CDC 6600, que ya hemos estudiado como potente monoprocesador.
Multiprocesadores modulares descompuestos.
Hasta aquí cada procesador del multiprocesador constituía un todo, con su unidad de instrucción y sus unidades
aritméticas y lógicas.
Es probable que en el futuro se desarrollen arquitecturas en las que un conjunto de procesadores aritméticos y
lógicos será puesto en común bajo distintas unidades de instrucción.
Tal tipo de estructura se denominará, a falta quizá de mejor fórmula, multiprocesador modular descompuesto, o
multiprocesador virtual.
ETSII – Dpto. Tecnología Electrónica.
Página: 5 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Problemas generales de los multiprocesadores
La elección de una solución multiprocesador puede responder a dos categorías de motivaciones:
•
aumento de la eficacia y
•
aumento de la disponibilidad.
Como contrapartida de estas ventajas, plantea dificultades de comunicación y de interconexión.
Aumento de la eficacia.
Se puede conseguir duplicando, triplicando, o cuadruplicando el procesador central, lo que conduce a una
solución del tipo de multiunidades centrales, o aliviando al procesador central de ciertos trabajos para los
que se adapta mal, lo que conduce a una solución con procesadores periféricos especializados.
Es de observar que la duplicación del procesador central no implica estrictamente una duplicación de la potencia,
habida cuenta de los conflictos de acceso a los elementos comunes.
Aumento de la disponibilidad.
Proviene de que en un sistema multiprocesador puede trabajarse con configuración reducida: si un
procesador se avería, se separa del servicio y se continúa operando, sobre el resto del sistema, con
eficacia degradada.
Dicha degradación será tanto menor cuanto menos importante sea la unidad separada, lo que representa un
punto a favor de los multiprocesadores modulares.
La propiedad de poder separar del servicio a una unidad supone la existencia de dispositivos de detección
de averías y de reconfiguración.
Esta última operación lleva a menudo a particionar el multiprocesador en dos elementos funcionalmente
completos (es decir, compuestos de una memoria, de un procesador central, de un elemento de entrada- salida),
el primero comprendiendo al módulo averiado y adoptando la configuración mínima necesaria para la reparación,
el segundo continuando el trabajo a rendimiento restringido.
Las aplicaciones que justifiquen una disponibilidad muy elevada, como la seguridad de instalaciones complejas o
peligrosas, el control de aeropuertos, etc., o que no permiten reparación manual, como ocurre en el dominio
espacial, exigen dispositivos automáticos de detección de averías y de reconfiguración.
Problemas de interconexiones.
Se presenta entre los procesadores de tratamiento o de entrada-salida, por un lado, y los bloques de memoria, por
otro.
Comunicaciones entre procesadores.
Responden a dos clases de necesidades:
•
los procesadores pueden necesitar prevenirse mutuamente de ciertos acontecimientos, en cuyo caso se
tendrán interrupciones de procesador a procesador;
•
los procesadores pueden necesitar transmitirse informaciones más elaboradas, lo que se materializará
generalmente a través de la memoria central común.
En los procesadores modulares, las transmisiones de órdenes o de operandos de los procesadores de
instrucciones a los aritméticos correrán a cargo de los buses de intercomunicación.
ETSII – Dpto. Tecnología Electrónica.
Página: 6 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Sistemas de multiunidades centrales
Con el fin de cubrir una gama suficiente de necesidades y adaptarse sin demasiadas dificultades a la evolución
siempre creciente de estas necesidades, los constructores de la tercera generación han respondido por dos tipos
de soluciones:
• la gama compatible de máquinas, adaptable mediante cambio estándar de la unidad central, y
• la solución multiprocesador, adaptable mediante adjunción de una o más unidades centrales.
Uno de los primeros parámetros por determinar es el número máximo de procesadores que es razonable prever
en un sistema. Además de las consideraciones técnicas que veremos a continuación, es posible hacerse una
primera idea comparando las soluciones "gama compatible" y "multiprocesador".
Grosso modo, las gamas compatibles existentes, del género IBM 360 o similar, admiten un factor de potencia
generalmente ligeramente por encima del doble, cuando se pasa al modelo de número inmediatamente superior.
Si se desea obtener una progresión parecida en solución multiprocesador, es necesario pasar de una máquina
monoprocesador a una máquina de dos procesadores, después de cuatro, después de ocho, después de
dieciséis, etc. Cuando n es elevado, parece más económico sustituir una unidad central por otra n veces más
potente, que alinear unidades centrales del primer tipo.
Por ello, en la práctica, se dan casos de dos o cuatro procesadores como configuración máxima
(excepcionalmente de ocho procesadores en el Burroughs B 7700, posibilidad que, además, tiene más bien
carácter teórico).
A fin de cubrir un amplío abanico de posibilidades, los constructores que optan por la solución multiprocesador le
superponen la solución gama compatible, con un número más reducido de modelos (como por ejemplo, la gama
GE 600 [615, 625, 635, 655 ] donde cada modelo existe en las versiones mono-, bi-, trio ó cuatriprocesador).
Un multiprocesador del tipo de multiunidad central consta de varios procesadores de tratamiento, de una memoria
central generalmente dividida en bloques independientes, de canales simples o multiplezados.
Vamos a analizar sucesivamente los diferentes problemas originados por la arquitectura de estos computadores.
Interconexiones entre procesadores y memoria central.
El objetivo es enlazar cada procesador y cada canal a cada bloque de memoria, de forma que, en cada instante,
pueda establecerse el mayor número posible de comunicaciones.
Se dan dos grandes tipos de soluciones.
Interconexión por líneas omnibus
Estas salen de los procesadores y transmiten las informaciones simultáneamente a cada uno de los bancos de
memoria, que se conectan cuando reconocen su propia dirección.
Cada banco posee tantos muelles de acceso como procesadores existan.
Cuando se produce conflicto los muelles memorizan las demandas hasta que puedan ser atendidas.
ETSII – Dpto. Tecnología Electrónica.
Página: 7 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Interconexión matricial
Una matriz celular de interconexión permite relacionar cada procesador con el bloque solicitado de memoria, en la
medida que esto no cause conflicto.
Las ramificaciones pertinentes son gobernadas por un circuito de control, que recibe las demandas y las
direcciones de bancos de memoria.
Intercomunicaciones a través de la memoria.
Los diferentes procesadores pueden, comunicarse entre sí por intermedio de la memoria central.
Debe utilizarse esta técnica con precaución, so pena de arriesgarse a bloquear el sistema, como lo prueba el
siguiente ejemplo de la figura:
La memoria contiene una tabla de las direcciones de los trabajos que deben ejecutar los distintos procesadores.
Cuando el procesador A ha concluido un trabajo, lee el puntero de tabla que le guiará hacia el primer trabajo,
rescribiéndolo tras haberlo incrementado en 1, de suerte que el procesador B acceda a continuación a un trabajo
sucesivo.
Normalmente, esta operación se realiza en tres instrucciones:
¾ lectura de puntero,
¾ incrementación de puntero,
¾ reescritura de puntero, lo que deja al procesador B la posibilidad de acudir eventualmente a leer el puntero
antes de que éste haya sido modificado.
En tal circunstancia ambos procesadores A y B ejecutarán simultáneamente el mismo trabajo ¡con todos los
conflictos que dicha situación pueda acarrear!
Para evitar esta, clase de circunstancia, poseen los multiprocesadores una instrucción especial, generalmente del
tipo lee y posiciona que, en un solo ciclo de memoria, efectúa una lectura con carga de registro y una escritura
poniendo a 1 la célula de memoria leída.
Añadiendo un indicador, normalmente puesto a cero.
Cuando el procesador A termine un trabajo, efectúa la instrucción lee y posiciona sobre el indicador, lo que da a
este último el valor 1, que será considerado por el resto de procesadores como un bloqueo.
A continuación, el procesador A analiza el valor leído.
ETSII – Dpto. Tecnología Electrónica.
Página: 8 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Si el indicador valía 1, es que otro procesador había bloqueado el acceso, por consiguiente se volverá a la
instrucción lee y posiciona.
Si el indicador valía 0, tiene todo su tiempo para leer el puntero de la tabla de trabajos e incrementarlo, puesto que
acaba de bloquear el acceso por parte de otros procesadores.
Terminadas estas operaciones, el procesador A desbloqueará poniendo el indicador de nuevo a cero.
Interconexiones entre procesadores y canales.
Este punto es capital pues condiciona todo el funcionamiento del sistema operativo.
Describiremos tres soluciones, muy significativas en cuanto a una evolución tendente a la banalización de las
funciones de los procesadores y de los canales.
•
En la primera, inspirada en el HoneyweIl H 632, cada procesador posee su canal en propiedad;
•
En la segunda, inspirada en la serie GE 600, los canales están banalizados, pero un solo procesador
gestiona las entradas-salidas de todos los programas;
•
En la tercera, basada en el IRIS 80 de CII, están banalizados tanto los procesadores como los canales.
Solución con procesadores y canales acoplados de dos en dos.
Cada procesador posee su propio canal, por lo cual ejecuta el sistema operativo para todo lo que le concierne.
No recibe interrupciones de entrada-salida más que de su canal y no envía informaciones de control más que a su
canal.
Estas últimas informaciones, así como las de estado de programa y de canal, son almacenadas en una memoria
local común.
Con esta disposición es posible cablear los dispositivos de interrupción de forma rigurosamente, idéntica en los
diferentes procesadores, ya que se refieren a memorias locales y no a diferentes direcciones de la memoria
central común.
En el plano de las entradas-salidas, un sistema de este estilo se parece más a un sistema multicalculador, pues el
aspecto multiprocesador se reduce a la compartición de la memoria central.
ETSII – Dpto. Tecnología Electrónica.
Página: 9 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Solución con un procesador maestro
Un procesador es maestro, los otros siervos.
Se quiere dar a entender con esto que el procesador maestro gestiona el sistema de explotación global en cuanto
al conjunto de la máquina, mientras que los procesadores siervos no gestionan más que los sistemas operativos
de nivel local.
Estos últimos se limitan prácticamente a encargarse de las desviaciones por causa de error (división por cero, por
ejemplo).
El sistema global se encarga de la gestión de las entradas-salidas y del encadenamiento de trabajos.
A este fin, el procesador maestro recibe todas las interrupciones procedentes de los procesadores siervos (y de sí
mismo), lanza las operaciones de entrada-salida en los canales de los que recibe asimismo todas las
interrupciones, gobierna los cambios de tarea en los procesadores siervos.
El sistema operativo no consume más que una parte del tiempo del procesador maestro.
El resto lo dedica éste a participar, como los demás procesadores, en la ejecución de trabajos.
Solución con procesadores y canales banalizados.
Los distintos procesadores están totalmente banalizados, pudiendo cada uno de ellos ejecutar todos los módulos
del sistema operativo.
ETSII – Dpto. Tecnología Electrónica.
Página: 10 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Se consigue tal nivel de banalización gracias a una unidad de interrupción que agrupa al conjunto de las
interrupciones provenientes de los procesadores y canales (a excepción de las desviaciones generadas ante
errores de programas, específicas de los diferentes procesadores).
Así, cuando sobreviene una interrupción, se compara su grado de prioridad con el del programa de menor
prioridad entre los que están ejecutándose en los procesadores. Si la prioridad de la interrupción es superior a la
de este programa, el procesador que ejecuta este último es interrumpido para tomar a su cargo el programa
asociado a la interrupción; en casó contrario, se mantiene a la interrupción en régimen de espera.
Entonces, un sistema de cuatro procesadores tiene siempre en activo a los cuatro programas más prioritarios.
Un mismo programa puede, mediante el mecanismo de las interrupciones, ver iniciada su ejecución en un
procesador, interrumpida después por un programa de mayor prioridad, reanudada más tarde en otro procesador
que acaba de concluir un trabajo.
El sistema operativo ya no es exclusivo dominio de un determinado procesador. Está escrito con técnica
reapelable y, excepto ciertos bloqueos, puede, cuando se presente la circunstancia, ser tratado simultáneamente
por varios procesadores.
Los rendimientos.
Si no se considera más que la potencia pura de cálculo, añadir un (n + 1)-simo procesador no aumenta la potencia
en la relación (n + 1) / n, sino menos aunque no sea más que por causa de las esperas en los conflictos de
acceso a memoria.
Se buscará obtener el mejor compromiso posible entre:
¾ el número de procesadores,
¾ la capacidad de memoria central,
¾ las capacidades, los tiempos de acceso y las velocidades de transferencia de las memorias auxiliares,
¾ los rendimientos de los periféricos de entrada-salida y
¾ el número de canales simples y multiplexados capaces de gestionar estas memorias auxiliares y estos
periféricos.
Es evidente que la adjunción de un procesador a un sistema cuyo cuello de botella se sitúa al nivel de las
unidades periféricas sería perfectamente inútil.
También, si se parte de un sistema correctamente equilibrado, la adjunción de un procesador debe ir acompañada
con una ampliación de la capacidad de memoria y de la eficacia en las entradas-salidas.
ETSII – Dpto. Tecnología Electrónica.
Página: 11 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Partición y reconfiguración.
Puede ser interesante particionar un sistema multiprocesador en dos subsistemas funcionalmente completos, para
responder a dos clases de necesidades:
(1) la guía y optimización de, procesos industriales, frente a los que una partición se ocupa de la escrutación
de las medidas y de los estados, de la supervisión de las informaciones adquiridas, de las acciones de
seguridad y de regulación, mientras que la otra ejecuta los cálculos de optimización, o, si fuera el caso,
trabaja como centro de cálculo, aunque siempre dispuesta a relevar a la primera si cae en, avería;
(2) en caso de avería, el funcionamiento en régimen reducido a través de una partición, mientras que la otra,
todo lo pequeña que sea posible, si bien funcionalmente completa, permite la reparación de la unidad
fallida que contiene.
La posibilidad de particionar un sistema supone duplicar los buses de interconexión entre las diferentes unidades
del sistema y, eventualmente, duplicar determinadas unidades, como por ejemplo la de interrupción.
Es de observar que reconfigurar es tanto más fácil cuanto más acentuada sea la banalización de los
componentes.
Multiprocesador por compartición de los circuitos de una unidad central
Los circuitos de una misma unidad central son compartidos por diferentes procesadores que, en la práctica, se
reducen a un conjunto de registros.
Los procesadores tienen rotativamente acceso a la unidad central, bien durante un ciclo de máquina, bien durante
el tiempo de una instrucción.
Un primer ejemplo nos lo brindan los 10 procesadores periféricos del CDC 6600, que comparten una unidad
central a razón de un ciclo menor de 100 ns cada 10 ciclos, por cada procesador.
Un segundo ejemplo lo encontramos en el HoneyweIl 8200, constituido por 16 procesadores reducidos a sus
registros, que comparten los circuitos de una única unidad central.
La memoria central puede contener hasta 16 programas distintos, cada uno asociado a un procesador.
Un registro de actividad de 16 bits, un bit por procesador, indica el estado de actividad de cada procesador.
La unidad central analiza circularmente este registro, bit por bit, y concede sucesivamente a cada procesador,
cuyo bit de actividad valga 1, el tiempo necesario a la ejecución de una instrucción.
Al sistema operativo incumbe gestionar el registro de actividad, teniendo en cuenta las respectivas prioridades de
los diferentes programas (solamente se activan los programas más prioritarios).
Estos esquemas evitan un cierto número de los problemas típicos en los multiprocesadores, puesto que en ellos
los procesadores no trabajan en auténtico paralelismo. Así es, por ejemplo, como la instrucción de interbloqueo
(lee y posiciona) puede ejecutarse sin inconveniente en varios ciclos, si la compartición del tiempo de la unidad
central se efectúa sobre la base de la instrucción.
ETSII – Dpto. Tecnología Electrónica.
Página: 12 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Sistemas con procesadores especializados
El caso típico es el del CDC 6600, compuesto por un procesador central y por diez procesadores periféricos, uno
asignado en exclusiva al sistema operativo y los otros a las entradas-salidas.
Además de la memoria central, a la que todos tienen acceso, cada procesador periférico posee una memoria de
uso propio.
Todas las comunicaciones entre procesadores se realizan por intermedio de las diferentes memorias, excluyendo
el salto con cambio, que se asemeja a una interrupción cuyo objetivo es permitir al procesador periférico asignado
al sistema operativo preservar el estado de programa del procesador central y activar un nuevo estado de
programa; es importante mencionar que el salto con cambio no presenta utilidad más que en multiprogramación.
Vamos a mostrar cómo se
ejecutan los intercambios de
informaciones
entre
procesadores
para
la
ejecución de una operación
de entrada-salida, sobre un
modelo
muy
simplificado
constituido por un sólo
procesador de entrada-salida
en
un
contexto
de
monoprogramación.
ETSII – Dpto. Tecnología Electrónica.
Página: 13 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
El programa principal lanza una instrucción de entrada-salida.
Para ello, posiciona en memoria central, en una posición conocida del sistema de explotación, un indicador IES
(instrucción de entrada-salida) asociado a un puntero que designa una zona donde se describe la operación por
realizar.
El sistema operativo, ejecutado en un procesador periférico escruta periódicamente este indicador, de suerte que,
cuando lo encuentra puesto, prepara la operación de entrada-salida un indicador DEJES (demanda de ejecución
de-entrada-salida) al que adjunta el puntero precedente.
El programa del procesador de entrada-salida escruta periódicamente este indicador, de suerte que, cuando lo
encuentra puesto, ejecuta efectivamente la operación de entrada-salida solicitada.
Terminada la operación, el procesador de entrada-salida posiciona el indicador FEJES (fin de ejecución de
entrada-salida).
Este, a su vez, es escrutado por el sistema operativo que, al encontrarlo puesto, transmite esta información
posicionando el indicador FES (fin de entrada-salida) en un emplazamiento de la memoria central conocido de]
programa en curso.
Cuando éste quiere utilizar los resultados de la operación de entrada-salida, probará el indicador FES para saber
si la operación ha terminado efectivamente.
La descripción muy esquematizada de este mecanismo de intercambio de informaciones exclusivamente por la
memoria es interesante por dos razones:
(1) No es posible más que gracias a que los procesadores periféricos no ejecutan cada uno sino un solo
programa que se bucla continuamente sobre sí mismo, lo que permite asegurar la correcta escrutación de
los indicadores en el transcurso del tiempo, sin necesidad de implicar a un sistema de interrupción.
(2) En ningún momento necesita una instrucción del tipo lee y posiciona ejecutándose en un ciclo, puesto que
cada uno de los indicadores no puede ser puesto y leído más que por un solo procesador.
Tal propiedad sigue siendo cierta cuando existen varios procesadores de entrada-salida, porque la
distribución de los trabajos de entrada-salida se debe al procesador del sistema, que posiciona
indicadores en las memorias propias de los procesadores de entrada-salida, no accediendo ninguno de
ellos a la memoria común sino después de probar el indicador que le concierne.
El empleo de procesadores especializados alrededor de máquinas muy potentes con organización pipe-Iine o
paralela parece interesante en la medida que los procesadores centrales se adapten mal a tareas del tipo de
sistema operativo, compilación, gestión de entradas-salidas, etc.
En particular, la integración de un procesador especializado, cuya única función consista en hacer "girar" al
sistema operativo (entendiendo con este término que el sistema de explotación se reduce a un bucle de programa
que escruta cíclicamente los diversos elementos de la máquina sin hacer intervenir interrupciones), debería:
(1) permitir ganar tiempo considerable en los ordenadores pipe-line descargándolos de los tratamientos de
interrupciones que provocan importantes perturbaciones en su funcionamiento, y
(2) simplificar notablemente las configuraciones de multiprocesamiento con varios grandes procesadores
centrales.
ETSII – Dpto. Tecnología Electrónica.
Página: 14 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Multiprocesadores modulares.
A diferencia de los multiprocesadores hasta aquí descritos, en los que las intervenciones entre procesadores,
memorias y canales, tenían una estructura definida a priori, es posible concebir un "meccano", constituido por
procesadores, bloques de memoria y unidades de entrada-salida, como "módulos" ensamblables sin limitación, a
gusto del usuario.
A este fin, cada módulo posee un cierto número de puntos de conexión, que le capacitan para ligarlo a otros
tantos módulos a través de interfases estándar.
Un ejemplo típico es el sistema Modular One de la Sociedad británica Computer Technology, con los siguientes
módulos distintos:
(1) procesadores análogos a las unidades centrales de los ordenadores utilizados en aplicaciones de control
industrial;
(2) bloques de memoria de núcleos, de diferentes capacidades o velocidades;
(3) órganos periféricos, sobre todo memorias auxiliares.
Cada procesador posee en exclusiva sus unidades periféricas de comunicación.
Toda pareja de módulos pertenecientes al sistema puede ser directamente interconectada a través de la interfase
estándar, practicándose los diálogos de acuerdo con el principio maestro-esclavo.
Por consiguiente, pueden componerse configuraciones muy diversas, donde, por ejemplo, un determinado bloque
de memoria se encuentre directamente conectado a este, ese o aquel procesador y a una memoria auxiliar,
mientras que otro bloque de memoria no esté enlazado más que a un solo procesador pero pueda, a través de
éste y por un sistema parecido al de robo de ciclo, intercambiar informaciones con una memoria auxiliar
conectada a dicho procesador, etc.
Cada procesador posee su propio sistema operativo, que gestiona sus propios trabajos y las relaciones con los
módulos a los que está directamente conectado.
Multiprocesadores modulares descompuestos
Bajo esta apelación incluimos a los multiprocesadores formados, no por varios procesadores completos
compartiendo una memoria y canales, sino por elementos de procesadores dialogando entre sí: unidades de
instrucción, unidades aritméticas fijas, unidades aritméticas flotantes, unidades de cálculo de dirección, bloques de
memoria, canales, etc.
Este tipo de organización presenta dos ventajas en relación a los multiprocesadores modulares tradicionales:
(1) mejor compromiso rendimiento-precio.
En un multiprocesador tradicional, cada procesador debe poseer al menos un ejemplar de cada tipo de
unidad, resultando alguno muy mal utilizado, mientras que en un sistema descompuesto, puede
modularse el número de cada tipo de unidad en función de las necesidades globales;
(2) mejor aptitud para funcionar en régimen de rendimiento reducido, ya que puede excluirse del servicio
la unidad averiada, mientras que la avería de una unidad cualquiera en un sistema multiprocesador
implica la del procesador que la contiene.
Es imaginable que en los años próximos aparezcan multiprocesadores orientados en dos sentidos: el cálculo
científico, donde se buscan, a la vez, rendimiento y disponibilidad, esta última considerada como un corolario de la
primera, y el control de determinados tipos de procesos, especialmente en aplicaciones espaciales, donde se
busca exclusivamente la más elevada disponibilidad.
ETSII – Dpto. Tecnología Electrónica.
Página: 15 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Sistemas de elevados rendimiento y disponibilidad.
En esta categoría de sistemas, un cierto número de unidades de control comparten un cierto número de unidades
aritméticas, pertenecientes a alguno de estos tipos: fija, flotante, doble longitud, etc.
La innovación consiste en que la unidad de control pide servicios que pueden ser prestados por cualquiera de las
unidades aritméticas del tipo solicitado, lo que no ocurría en la compartición de la memoria o de los canales,
puesto que un procesador referenciaba a una célula de memoria o a un órgano periférico determinados.
Por eso es preciso estudiar con particular atención el problema de las intercomunicaciones.
Tomaremos como modelo un sistema con dos tipos de unidades, unas solicitantes de servicios Q1, Q2 ... a las
que designaremos unidades interrogadoras y otras que pueden satisfacerlos R1, R2 ... a las que designaremos
unidades interrogadas.
Supondremos que, cuando una unidad interrogadora necesita un servicio, envía una pregunta a las unidades
interrogadas y espera la respuesta de una unidad libre para conectarse a ella. Este proceso no está exento de
problemas, puesto que se admite que varias unidades interrogadoras pueden emitir solicitudes simultáneamente.
Sobre el modelo de la figura nada permite afirmar que las unidades R1 y R2, al recibir simultáneamente las
demandas procedentes de Q1 y Q2, van a coordinarse para responder, una a Q1 la otra a Q2.
Sí no se autoriza más que una respuesta por unidad, se corre el riesgo de que escojan la misma; si se autoriza
varias respuestas por unidad, el problema de la elección cae sobre las unidades interrogadoras.
Puede resolverse esta dificultad de tres formas:
• bien interconectando las unidades interrogadoras de manera que no sea posible más que una pregunta a
la vez;
• bien interconectando las unidades interrogadas de suerte que sólo una entre todas reciba en cada
momento una determinada pregunta;
• bien instrumentando un dispositivo de control global que regule la asignación de las unidades interrogadas
a las interrogadoras.
Macnaughton ha propuesto una cuarta solución, interesante para exponerla aquí, porque proporciona un buen
ejemplo de señales analógicas en un sistema digital.
Cuando la unidad interrogada recibe varias solicitudes simultáneas no devuelve más que una respuesta.
ETSII – Dpto. Tecnología Electrónica.
Página: 16 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Esto puede ocasionar que una unidad interrogadora (Q1 reciba varias respuestas frente a una sola pregunta.
De entre ellas escogerá una, lo que comunicará a la unidad correspondiente (R1) mediante una señal de
aceptación, y emitirá una señal de rechazo dirigida a las otras unidades (R2) que respondieron, al objeto de
liberarlas para que sigan respondiendo a otras solicitudes.
Queda así resuelto el problema de atribuir una sola unidad interrogada a cada solicitud; sin embargo, queda
incompletamente determinado puesto que las unidades interrogadas tienen que efectuar una elección, y ello
puede ocasionar que una unidad interrogadora espera varias vueltas antes de verse atendida.
De ahí la idea de asociar una prioridad a las preguntas, bajo forma de nivel analógico, siendo el valor de la señal
analógica tanto mayor cuanto más elevada sea la prioridad.
Con el fin de evitar que una pregunta de baja prioridad sea demasiado demorada, se hará evolucionar su grado de
prioridad en el curso del tiempo.
A las unidades interrogadas se les dota de una lógica celular, representada en la figura, que les permite analizar
las señales y decidir en consecuencia la demanda que hay que servir prioritariamente.
Esta clase de solución resuelve bien los problemas de reconfiguración, en la hipótesis de que cada unidad sea
capaz de detectar sus propias averías. Cuando una unidad caiga en avería, automáticamente se pondrá fuera de
circuito, no respondiendo más a las solicitudes: así se puede pasar "suavemente" al régimen reducido de
funcionamiento, sin necesidad de mecanismo de reconfiguración.
ETSII – Dpto. Tecnología Electrónica.
Página: 17 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Sistemas de muy elevada disponibilidad.
Es posible conseguir grados muy fuertes de disponibilidad a través de esfuerzos conjugados en los terrenos de la
tecnología: fiabilidad, acondicionamiento, etc. y de la arquitectura lógica: introducción de materiales redundantes y
de métodos de uso de la redundancia. la redundancia más sencilla consiste en duplicar el calculador, con la idea
de que el segundo sustituya al primero si éste se averiase.
Tal solución implica que el calculador sea capaz, por un lado de detectar sus propios fallos y, por otro, de
señalarlos.
En cuanto se satisface a la primera de las dos hipótesis, puede pasarse sin la segunda si el calculador de reserva
ejecuta un programa que, periódicamente, pide al primer calculador de auscultarse y darle una respuesta: ante
una respuesta favorable o en ausencia de respuesta, el segundo sustituye al primero.
Queda el hecho de que un calculador pueda no detectar sus propios errores.
Esta dificultad se salva haciendo ejecutar a las dos máquinas estrictamente el mismo programa y comparar
periódicamente sus resultados.
Ante la imposibilidad lógica de determinar cual es el calculador fallido, en caso de discordancia, se añade un
tercero: es la técnica de control dos de tres.
La organización modular aporta un notable progreso a este concepto de redundancia, pues una avería provoca la
exclusión del servicio de un módulo y no de la totalidad de un calculador.
De entre los numerosos estudios dedicados a este tema, citemos el concerniente al calculador modular,
concebido por la NASA para misiones espaciales de larga duración.
El número de unidades de cada tipo depende de la fiabilidad del tipo de unidad, a su vez directamente ligada a su
grado de complejidad.
El sistema está previsto para poder funcionar como "multiprocesador", donde cada procesador se ocupa de la
misma tarea, con autocontrol de dos en tres, durante la fase de lanzamiento de la misión, fase durante la cual, los
cálculos deben ser realizados demasiado rápidamente como para entretenerse en un eventual proceso de
reconfiguración.
Después, pasa a funcionamiento en régimen de "monoprocesador", quedando varias unidades en reserva.
La unidad de reconfiguración prueba periódicamente el funcionamiento del monoprocesador activo.
En caso de detección de avería, actúa sobre los conmutadores de interconexión hasta qué obtiene un nuevo
procesador operativo. Dicha unidad contiene fundamentalmente el reloj central, los registros para los intercambios
entre unidades de control en funcionamiento multiprocesador y el sistema de interrupción.
Como en sí misma no se encuentra del todo al abrigo de averías, puede triplicarse su número, lo que permite un
control en dos de tres de su propio funcionamiento.
ETSII – Dpto. Tecnología Electrónica.
Página: 18 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Capitulo 4.3.- Máquinas de paralelismo explícito
Es posible citar numerosas publicaciones presentando ideas o incluso esquemas de máquinas paralelas, algunas
realizaciones prototípicas en universidades, y verdaderamente poquísimas máquinas comercializadas.
Hasta tal punto que nos vemos obligados, para ilustrar con un ejemplo esta última categoría, a resucitar el
venerable ordenador Gamma 60 de la Compagnie des Machines Bull.
Saltaremos después directamente sobre los ordenadores con muy alto grado de paralelismo que, con pocas
excepciones, pueden asimilarse a máquinas celulares. El ejemplo más caracterizado es el sistema ILLIAC IV, una
cuarta parte del cual está en curso de realización en la universidad de Illinois.
Parece abrir una de las raras vías por donde puede conseguirse, si bien para cierta clase de problemas, ganar un
orden de magnitud en rendimiento, con la misma tecnología, frente a los actuales ordenadores pipe-Iine.
Máquinas de programas en malla
El Gamma 60 era uno de los primerísimos grandes ordenadores de la segunda generación; permitía una forma de
paralelismo al nivel de un solo programa, provisto de una estructura en malla.
Por medio de las instrucciones especiales, podía el programador definir secuencias de instrucciones
independientes, denominadas mallas de programa, susceptibles de ejecutarse en paralelo en diferentes
procesadores especializados (aritmética fija, aritmética flotante, comparador y lógico, entrada- salida), así como
los puntos de agrupamiento de las mallas, cuyo lanzamiento no se permitía hasta que no se habían concluido las
distintas mallas ya lanzadas en paralelo.
El distribuidor de instrucciones efectuaba una predecodificación para ramificar las instrucciones, pues algunas
secuencias podían necesitar varios procesadores diferentes.
La simultaneidad de las entradas-salidas se regía por el mismo principio.
Este tipo de paralelismo se ha abandonado hoy día, al parecer por la razón fundamental de que es difícil definir,
en un contexto de lenguajes evolucionados, procesos paralelos independientes que impliquen a procesadores
diferentes.
ETSII – Dpto. Tecnología Electrónica.
Página: 19 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Máquinas celulares
Permiten dar un paso importante dentro de la búsqueda de un elevado grado de paralelismo y, por tanto, de
rendimiento.
Se distinguen dos categorías de máquinas celulares:
• las máquinas con control centralizado y
• las máquinas con control distribuido.
La máquina de Solomon
Es el ejemplo típico de la primera categoría: una unidad centralizada de control decodifica toda instrucción que
es ejecutada en paralelo y sobre datos diferentes en un gran número de procesadores aritméticos idénticos.
Dicho con otras palabras, un solo flujo de instrucciones gobierna en paralelo a varios flujos de datos.
La organización de Solomon parece llamada a un cierto porvenir, por lo cual nos extenderemos sobre ella en esta
última parte del capítulo.
La máquina de Holland
Es el ejemplo típico de las máquinas con control distribuido.
Cada célula consta de un procesador con sus elementos de control y sus elementos de cálculo.
Se han estudiado varias formas de utilización: una línea de células contiene, por ejemplo, las diferentes
instrucciones de una secuencia; las células pertinentes se activan sucesivamente unas a otras en el transcurso de
la ejecución del programa, yendo a buscar los operandos o encargando operaciones aritméticas a otras células.
La organización de Holland se ha propuesto con una finalidad más teórica que práctica, que consiste en ayudar a
formalizar determinados conceptos de las teorías de autómatas, de la calculabilidad y de los procesos paralelos.
Su utilización efectiva tropieza con grandes problemas: se necesita una cantidad muy fuerte de material que,
incluso con un buen nivel de paralelismo, es pobremente empleada; además, resulta difícil definirle un lenguaje
eficaz de mando. No insistiremos más sobre esta categoría de máquinas.
La organización Solomon.
Parte de dos ideas:
(1) Una sola unidad de control decodifica las instrucciones que son ejecutadas simultáneamente por un gran
número de unidades aritméticas, llamadas procesadores elementales (P.E.), sobre datos eventualmente
distintos. Así, una sola corriente de instrucciones controla varias corrientes de datos.
(2) Los procesadores elementales están interconectados según una organización matricial de dos
dimensiones, al objeto de permitir ciertos intercambios de datos.
Un ejemplo sencillo ilustrará mejor que largas explicaciones el interés de esta organización en lo que se refiere a
los problemas de tipo matricial.
ETSII – Dpto. Tecnología Electrónica.
Página: 20 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Dados unos valores Ai , j asignados a los diferentes puntos de una matriz, se trata de calcular en cada punto la
media M i , j de los valores asignados a los cuatro puntos que lo rodean.
Suponiendo que cada procesador elemental
trate un punto y que los valores Ai , j se
encuentren inicialmente en un registro R1 el
programa que calcula en el registro Ro la
media buscada se escribe así:
La instrucción 3., por ejemplo, se lee: para todos los procesadores elementales, añadir el contenido del registro
R1 del procesador elemental sur al contenido del registro Ro y almacenar el resultado en el registro Ro.
Por consiguiente, este programa se resuelve en cinco instrucciones, esto es, en el tiempo de cinco ciclos de
memoria.
Dejamos al lector el cuidado de escribir el mismo programa para ejecutarlo en Superabacus.
Comprenderá que se necesitan unos cincuenta ciclos de memoria a cada pasada por el bucle de programa de
cálculo de la media en un punto y, consecuentemente, del orden de 10.000 ciclos de memoria para una matriz de
16 x 16. Con ello es fácil de imaginar la potencia de la organización Solomon respecto a todos los problemas de
tipo matricial, que son prácticamente todos aquellos que ponen en juego sistemas importantes de ecuaciones en
derivadas parciales, en especial los modelos meteorológicos, ecológicos, económicos, sociológicos, etc.
ILLIAC IV.
Es una máquina del tipo Solomon.
A los dos principios de base enunciados a propósito de las máquinas de este tipo, se añaden los dos siguientes:
(1) las direcciones y datos comunes al conjunto de los procesadores elementales son gestionados por el
control central;
(2) un embrión de lógica local permite personalizar la ejecución de las instrucciones comunes en función
de tests locales.
Presentación general
ETSII – Dpto. Tecnología Electrónica.
Página: 21 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
El sistema consta, por un lado, de un calculador tradicional (un B6500) para gestionar las entradas-salidas,
compilar, preparar los trabajos al ILLIAC IV, almacenarlos después en una memoria de masa, muy rápida y de
gran eficacia y por otro lado, del ILLIAC IV propiamente dicho, formado por cuatro unidades de control,
gobernando cada una 1 matriz de 8 X 8 procesadores elementales.
Cada procesador elemental posee una memoria de 2048 palabras de 64 bits y realiza la suma y la multiplicación,
respectivamente, en 240 ns y 400 ns con operandos de 64 bits, gracias a una estructura pipe-Iine de los
operadores.
Instrucciones y direccionamiento.
La unidad de control busca las instrucciones, las decodifica y distribuye las microórdenes correspondientes, así
como las señales de reloj, al conjunto de los procesadores elementales.
El direccionamiento comprende dos indexaciones, una indexación global, que se efectúa al nivel de la unidad de
control y una indexación local que permite personalizar el dato para cada procesador elemental.
Cuando no hay indexación local, es la unidad de control quien va a buscar el dato a memoria y quien lo distribuye
a los procesadores elementales. Esta técnica de doble indexación facilita el direccionamiento de las estructuras
rnatriciales.
Control local.
Cada procesador elemental posee un biestable de estado, que puede adoptar dos posiciones: activo o inactivo.
En estado inactivo, el procesador no ejecuta ninguna instrucción salida de la unidad de control (salvo una
instrucción especial de reactivación).
El biestable puede ser posicionado a partir de pruebas efectuadas al nivel del procesador elemental.
Partición de los procesadores.
Cada procesador elemental puede funcionar, bien como un procesador sobre 64 bits, bien como dos
procesadores sobre 32 bits, bien como 8 procesadores sobre 8 bits.
En caso de partición, los subprocesadores no son totalmente independientes porque poseen el mismo índice
local.
Partición de la matriz..
Existen 256 procesadores elementales, agrupados en cuatro sub-matrices de 64 procesadores.
El sistema puede trabajar, o en 4 sub-matrices de 64 procesadores, o en 2 sub-matrices de 128 procesadores, o
en una matriz de 256 procesadores.
Esta forma de partición permite, de una parte, acomodarse a las dimensiones de los problemas por tratar, de otra
continuar trabajando en caso de avería de una submatriz.
ETSII – Dpto. Tecnología Electrónica.
Página: 22 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Organización de la memoria
No existe más que una sola memoria para una matriz de ILLIAC IV; es referenciada secuencialmente en el sentido
horizontal desde las unidades de control y por zonas verticales desde los procesadores elementales, aunque cada
uno sólo tiene acceso a su bloque de 2048 palabras.
Esta estructura de memoria permite fácilmente el direccionamiento simultáneo de los sucesivos elementos de una
matriz desde los procesadores elementales sucesivos, habida cuenta de la técnica de doble indexación
mencionada más arriba.
Interconexiones.
Se interconectan los procesadores siguiendo una estructura matricial, cada uno de ellos comunicado con los
cuatro que lo rodean.
Pueden definirse las interconexiones al borde de las matrices mediante programa, de manera a adaptarse a la
geometría del problema por resolver.
Nótese que, una vez establecidas dichas interconexiones, es posible transmitir una información de un procesador
cualquiera a otro a través, como máximo, de siete intercambios en una matriz 8 x 8.
El futuro de las máquinas celulares.
Parece que los futuros sistemas de muy elevada potencia se inspirarán, en parte de la arquitectura pipe-Iine, en
parte de la arquitectura celular y quizá de una mezcla de ambas.
Hemos visto el alto rendimiento que puede conseguirse con una organización celular de tipo Solomon en la
solución de problemas muy específicos, que posibilitan utilizar óptimamente los intercambios de información entre
procesadores. Aparte este caso muy particular, el ordenador puede funcionar como máquina paralela simple
cuando sea necesario ejecutar una serie de operaciones idénticas, independientes unas de otras, sobre
operandos organizados como vector, de suerte que los sucesivos operandos se encuentren todos en la misma
dirección de las memorias, asociados a los diferentes procesadores elementales. Se observa que ésta es, con
ligeras variantes de matiz, la condición para conseguir un funcionamiento muy bueno de las máquinas pipe-Iine,
con la única diferencia que entonces los operandos sucesivos deben ser almacenados en bancos de memoria
sucesivos.
Prácticamente, estos géneros de tratamiento no se dan más que en los problemas de tipo matricial.
Pero los problemas reales no siempre son de tipo matricial puro y no siempre es posible definir un algoritmo de
este tipo para determinadas partes del problema que no lo son a priori.
La consecuencia es que a lo largo de los correspondientes tratamientos, sólo uno de los procesadores
elementales es utilizado (en una máquina pipe-Iine la mayoría de las secciones permanecerían inactivas).
Por lo demás, tampoco siempre las estructuras matriciales por procesar presentan la dimensión exacta de la
matriz de procesadores elementales, lo que lleva también a desperdiciar procesadores.
ETSII – Dpto. Tecnología Electrónica.
Página: 23 / 25
MSA
Sistemas de Multiprocesamiento
MULTIPROCESADORES Y MAQUINAS PARALELAS
Se han propuesto diversas soluciones para mejor utilizar la potencia de una máquina celular.
Citemos, esquematizándolo, algunas ideas basadas en el "Distributed Processor", propuesto por Koczela para
las misiones de la NASA en los años 1980, pero que parecen asimismo muy interesantes para un ordenador
científico de gran potencia, siempre que se fuera capaz de escribir su sistema operativo.
Este multiprocesador distribuido se caracteriza porque reúne el control centralizado, según la organización
Solomon y el control distribuído, no según la organización de Holland, sino al modo multiprocesador tradicional.
Es también una máquina celular con interconexiones de vecindad para los intercambios de operandos entre
células vecinas (la organización general no es ya matricial como en la máquina de Solomon).
A este tipo de intercomunicación al nivel de los intercambios de datos se superpone otro tipo de
intercomunicación: el bus intercelular, que transporta instrucciones, datos e informaciones de control.
Contrariamente a la máquina de Solomon, no existe aquí unidad de control centralizada; cada célula dispone de
su propia unidad de control, además de su unidad aritmética y de su memoria, y puede presentar varios estados
de funcionamiento:
(1) Estado de avería: la célula no responde a ninguna demanda.
(2) Estado independiente: la célula funciona como un calculador autónomo, que va a buscar sus instrucciones
a su memoria local.
(3) Estado de control: en él, la célula desempeña el papel de unidad de control de la máquina de Solomon.
Acude a buscar instrucciones a la memoria y las distribuye a las otras células a través del bus intercelular.
(4) Estado dependiente: en primera aproximación, una célula en estado dependiente desempeña el papel de
un procesador elemental de la máquina Solomon: recibe y ejecuta las instrucciones provenientes de la
célula de control por el bus intercelular.
La célula de control puede direccionar las células de dos maneras diferentes: por un direccionamiento global, que
comprende varios niveles y al que responden todas las células en estado dependiente, correspondientes a cada
nivel; por un direccionamiento personalizado, que permite acceder individualmente a cada célula, lo mismo si está
en estado dependiente o independiente.
Este último tipo de direccionamiento permite modificar el estado de las células.
Una célula dependiente puede, por consiguiente, presentar dos estados:
(1) un estado dependiente global, en el que la célula está al mismo nivel de direccionamiento que la
secuencia de instrucciones enviada por la célula de control: ejecuta las instrucciones así recibidas.
(2) un estado dependiente local, en el que la célula no está al mismo nivel de direccionamiento que la
secuencia de instrucciones enviada por la célula de control. Puede trabajar con control local, como una
célula independiente, pero comprobando continuamente que la célula de control no pasa a su propio nivel
de direccionamiento, o que no la direcciona individualmente.
El repertorio de instrucciones varía de acuerdo con el estado de la célula.
La figura representa, de manera muy esquemática, la organización general de un multiprocesador distribuido.
Consta de cuatro grupos de células, cada grupo con un máximo de una célula en el estado de control.
Gracias al bus de intergrupos, varios grupos pueden trabajar con la misma célula de control.
Parece que la transposición de estas ideas al diseño de potentes computadores científicos celulares debería
permitir un buen uso del conjunto de los procesadores, puesto que aquellos que no trabajen en paralelismo
explícito (estados de control o independiente) no quedarían inactivos, sino trabajando en paralelismo implícito
(estado dependiente). Queda por saber si se será capaz de utilizar estas posibilidades.
ETSII – Dpto. Tecnología Electrónica.
Página: 24 / 25
MSA
Sistemas de Multiprocesamiento
ETSII – Dpto. Tecnología Electrónica.
MULTIPROCESADORES Y MAQUINAS PARALELAS
Página: 25 / 25
MSA
Descargar