El ILLIAC IV fue el primer ordenador masivamente paralelo . [1] El sistema fue diseñado originalmente para tener 256 unidades de punto flotante (FPU) de 64 bits y cuatro unidades de procesamiento central (CPU) capaces de procesar mil millones de operaciones por segundo. [2] Debido a restricciones presupuestarias, solo se construyó un único "cuadrante" con 64 FPU y una sola CPU. Dado que todas las FPU tenían que procesar la misma instrucción , etc., en la terminología moderna, el diseño se consideraría como instrucción única, datos múltiples o SIMD. [3]ADD
SUB
El concepto de construir una computadora usando una variedad de procesadores se le ocurrió a Daniel Slotnick mientras trabajaba como programador en la máquina IAS en 1952. Un diseño formal no comenzó hasta 1960, cuando Slotnick trabajaba en Westinghouse Electric y arregló la financiación para el desarrollo bajo un programa de EE. UU. Contrato de la Fuerza Aérea . Cuando esa financiación terminó en 1964, Slotnick se mudó a la Universidad de Illinois y se unió al equipo de Computadoras Automáticas de Illinois (ILLIAC). Con fondos de la Agencia de Proyectos de Investigación Avanzada (ARPA), comenzaron el diseño de un concepto más nuevo con 256 procesadores de 64 bits en lugar del concepto original con 1024 procesadores de 1 bit.
Mientras se construía la máquina en Burroughs , la universidad comenzó a construir una nueva instalación para albergarla. La tensión política sobre la financiación del Departamento de Defensa de Estados Unidos llevó a la ARPA y la Universidad a temer por la seguridad de la máquina. Cuando se completó el primer cuadrante de 64 procesadores de la máquina en 1972, se envió al Centro de Investigación Ames de la NASA en California. Después de tres años de modificaciones exhaustivas para corregir varias fallas, ILLIAC IV se conectó a ARPANet para uso distribuido en noviembre de 1975, convirtiéndose en la primera supercomputadora disponible en red, superando al Cray-1 por casi 12 meses.
Funcionando a la mitad de su velocidad de diseño, el ILLIAC IV de un cuadrante entregó un pico de 50 MFLOP, [4] convirtiéndolo en la computadora más rápida del mundo en ese momento. También se le atribuye ser la primera computadora grande en usar memoria de estado sólido , así como la computadora más compleja construida hasta la fecha, con más de 1 millón de puertas. [5] Generalmente considerado un fracaso debido a excesos presupuestarios, [5] [6] el diseño fue fundamental en el desarrollo de nuevas técnicas y sistemas para la programación de sistemas paralelos. En la década de 1980, se entregaron con éxito varias máquinas basadas en conceptos de ILLIAC IV.
Historia
Orígenes
En junio de 1952, Daniel Slotnick comenzó a trabajar en la máquina IAS en el Instituto de Estudios Avanzados (IAS) de la Universidad de Princeton . [7] La máquina IAS presentaba una unidad matemática de bits paralelos que operaba con palabras de 40 bits . [8] Originalmente equipado con memoria de tubo Williams , más tarde se añadió un tambor magnético de Engineering Research Associates . Este tambor tenía 80 pistas, por lo que se podían leer dos palabras a la vez, y cada pista almacenaba 1.024 bits. [9]
Mientras contemplaba el mecanismo del tambor, Slotnik comenzó a preguntarse si esa era la forma correcta de construir una computadora. Si los bits de una palabra se escribieran en serie en una sola pista, en lugar de en paralelo en 40 pistas, entonces los datos podrían introducirse en una computadora en serie de bits directamente desde la batería bit a bit. El tambor todavía tendría múltiples pistas y parches, pero en lugar de recopilar una palabra y enviarla a una sola ALU, en este concepto, los datos de cada pista se leerían un poco a la vez y se enviarían a ALU paralelas. Esta sería una computadora de serie de bits en paralelo de palabras. [7]
Slotnick planteó la idea en la IAS, pero John von Neumann la descartó por requerir "demasiados tubos". [7] Slotnick dejó la IAS en febrero de 1954 para regresar a la escuela para su doctorado y el asunto fue olvidado. [7]
Salomón
Después de completar su doctorado y algunos trabajos de posdoctorado, Slotnick terminó en IBM . Para entonces, al menos para la informática científica, los tubos y las baterías habían sido reemplazados por transistores y memoria central . La idea de procesadores paralelos trabajando en diferentes flujos de datos de un tambor ya no tenía el mismo atractivo obvio. No obstante, un examen más detenido mostró que las máquinas paralelas aún podían ofrecer un rendimiento significativo en algunas aplicaciones; Slotnick y un colega, John Cocke, escribieron un artículo sobre el concepto en 1958. [10]
Después de un corto tiempo en IBM y luego otro en Aeronca Aircraft , Slotnick terminó en la división Air Arm de Westinghouse , que trabajaba en radares y sistemas similares. [11] En virtud de un contrato de la Fuerza Aérea de los EE.UU. 's RADC , Slotnik fue capaz de construir un equipo para diseñar un sistema con 1024 ALU bits en serie, conocida como 'elementos de procesado' o PE de. A este diseño se le dio el nombre de SALOMÓN, en honor al rey Salomón , que era muy sabio y tenía 1.000 esposas. [12]
Los PE recibirían instrucciones de una única unidad central de procesamiento (CPU), la "unidad de control" o CU. El CU de SOLOMON leería las instrucciones de la memoria, las decodificaría y luego las entregaría a los PE para su procesamiento. Cada PE tenía su propia memoria para almacenar operandos y resultados, el módulo de memoria PE o PEM. La CU podía acceder a toda la memoria a través de un bus de memoria dedicado , mientras que los PE solo podían acceder a su propio PEM. [13] Para permitir que los resultados de un PE se utilicen como entradas en otro, una red separada conectó cada PE a sus ocho vecinos más cercanos. [14]
Se construyeron varios sistemas de banco de pruebas, incluido un sistema de 3 por 3 (9 PE) y un modelo de 10 por 10 con PE simplificados. Durante este período, se prestó atención a diseños de PE más complejos, convirtiéndose en un sistema paralelo de 24 bits que se organizaría en una disposición de 256 por 32. En 1963 se construyó un solo PE con este diseño. A medida que continuaba el trabajo de diseño, el patrocinador principal del Departamento de Defensa de EE. UU. Murió en un accidente y no se recibieron más fondos. [15]
Buscando continuar con el desarrollo, Slotnik se acercó a Livermore, quien en ese momento había estado a la vanguardia de las compras de supercomputadoras. Estaban muy interesados en el diseño, pero lo convencieron de actualizar las unidades matemáticas de punto fijo del diseño actual a un punto flotante verdadero , lo que resultó en el diseño SOLOMON.2. [dieciséis]
Livermore no financiaría el desarrollo, en cambio, ofrecieron un contrato en el que arrendarían la máquina una vez que estuviera terminada. La dirección de Westinghouse lo consideró demasiado arriesgado y cerró el equipo. Slotnik dejó Westinghouse tratando de encontrar capital de riesgo para continuar el proyecto, pero fracasó. Más tarde, Livermore seleccionaría al CDC STAR-100 para este rol, ya que los CDC estaban dispuestos a asumir los costos de desarrollo. [17]
ILÍACO IV
Cuando SOLOMON terminó, Slotnick se unió al equipo de diseño de computadoras automáticas de Illinois (ILLIAC) en la Universidad de Illinois en Urbana-Champaign. Illinois había estado diseñando y construyendo grandes computadoras para el Departamento de Defensa de los Estados Unidos y la Agencia de Proyectos de Investigación Avanzada (ARPA) desde 1949. En 1964, la Universidad firmó un contrato con ARPA para financiar el esfuerzo, que se conoció como ILLIAC IV, ya que fue la cuarta computadora diseñada y creada en la Universidad. El desarrollo comenzó en 1965 y un diseño de primera pasada se completó en 1966. [18]
En contraste con el concepto de serie de bits de SOLOMON, en ILLIAC IV los PE se actualizaron para ser procesadores completos de 64 bits (bits en paralelo), utilizando 12.000 puertas y 2048 palabras de memoria de película delgada . [19] Los PE tenían cinco registros de 64 bits, cada uno con un propósito especial. Uno de estos, RGR, se utilizó para comunicar datos a los PE vecinos, moviéndose un "salto" por ciclo de reloj. Otro registro, RGD, indicó si el PE estaba activo en ese momento. Los PE "inactivos" no podían acceder a la memoria, pero pasarían los resultados a los PE vecinos utilizando el RGR. [14] Los PE fueron diseñados para funcionar como una única FPU de 64 bits, dos FPU de media precisión de 32 bits u ocho procesadores de punto fijo de 8 bits. [19]
En lugar de 1.024 PE y una única CU, el nuevo diseño tenía un total de 256 PE organizados en cuatro "cuadrantes" de 64 PE, cada uno con su propia CU. Las CU también eran diseños de 64 bits, con sesenta y cuatro registros de 64 bits y otros cuatro acumuladores de 64 bits. El sistema podría funcionar como cuatro máquinas independientes de 64 PE, dos máquinas de 128 PE o una sola máquina de 256 PE. Esto permitió que el sistema trabajara en diferentes problemas cuando los datos eran demasiado pequeños para demandar toda la matriz de 256 PE. [19]
Basado en un reloj de 25 MHz, con todos los 256-PE ejecutándose en un solo programa, la máquina fue diseñada para entregar mil millones de operaciones de punto flotante por segundo, o en la terminología actual, 1 GFLOPS . [20] Esto lo hizo mucho más rápido que cualquier máquina en el mundo; el CDC 7600 contemporáneo tenía un ciclo de reloj de 27,5 nanosegundos, o 36 MIPS, [21] aunque por una variedad de razones generalmente ofrecía un rendimiento más cercano a 10 MIPS. [22] [a]
Para apoyar la máquina, se construyó una extensión a los edificios del Laboratorio de Computación Digital. [23] [24] El trabajo de muestra en la Universidad estaba dirigido principalmente a formas de llenar de manera eficiente los PE con datos, realizando así la primera "prueba de esfuerzo" en el desarrollo de computadoras. Para hacer esto lo más fácil posible, se crearon varios lenguajes de computadora nuevos ; IVTRAN y TRANQUIL eran versiones paralelizadas de FORTRAN , y Glypnir era una conversión similar de ALGOL . En general, estos lenguajes brindan soporte para cargar matrices de datos "a través" de los PE para que se ejecuten en paralelo, y algunos incluso admitían el desenrollado de bucles en operaciones de matriz. [25]
Construcción, problemas
A principios de 1966, la Universidad envió una Solicitud de propuestas en busca de socios industriales interesados en construir el diseño. En julio se recibieron diecisiete respuestas, siete respondieron y de estas tres se seleccionaron. [26] Varias de las respuestas, incluidos los datos de control , intentaron interesarlos en un diseño de procesador vectorial , pero como ya se estaban diseñando, el equipo no estaba interesado en construir otro. En agosto de 1966, [b] se ofrecieron contratos de ocho meses a RCA , Burroughs y Univac para licitar por la construcción de la máquina. [19]
Burroughs finalmente ganó el contrato, después de haberse asociado con Texas Instruments (TI). Ambos ofrecieron nuevos avances técnicos que hicieron que su oferta fuera la más interesante. Burroughs estaba ofreciendo construir una versión nueva y mucho más rápida de memoria de película delgada que mejoraría el rendimiento. TI estaba ofreciendo construir circuitos integrados (IC) de lógica acoplada a emisor (ECL) de 64 pines con 20 puertas lógicas cada uno. [c] En ese momento, la mayoría de los circuitos integrados usaban paquetes de 16 pines y tenían entre 4 y 7 puertas. El uso de circuitos integrados de TI haría que el sistema fuera mucho más pequeño. [19]
Burroughs también suministró las unidades de disco especializadas , que presentaban un cabezal estacionario separado para cada pista y podían ofrecer velocidades de hasta 500 Mbit / sy almacenar alrededor de 80 MB por disco de 36 ". También proporcionarían un mainframe Burroughs B6500 para actuar como un frente -controlador final, cargando datos del almacenamiento secundario y realizando otras tareas de limpieza. Conectado al B6500 había un medio de grabación óptica láser de terceros, un sistema de una sola escritura que almacenaba hasta 1 Tbit en una película de metal delgada recubierta en una tira de lámina de poliéster transportado por un tambor giratorio. La construcción del nuevo diseño comenzó en el laboratorio del Gran Valle de Burroughs. [13] En ese momento, se estimó que la máquina se entregaría a principios de 1970. [27]
Después de un año de trabajar en los circuitos integrados, TI anunció que no habían podido construir los diseños de 64 pines. El cableado interno más complejo estaba causando diafonía en los circuitos y pidieron otro año para solucionar los problemas. En cambio, el equipo de ILLIAC decidió rediseñar la máquina basándose en los circuitos integrados de 16 pines disponibles. Esto requería que el sistema funcionara más lento, usando un reloj de 16 MHz en lugar de los 25 MHz originales. [28] El cambio de 64 pines a 16 pines le costó al proyecto alrededor de dos años y millones de dólares. TI pudo hacer funcionar el diseño de 64 pines después de poco más de un año y comenzó a ofrecerlos en el mercado antes de que se completara ILLIAC. [28]
Como resultado de este cambio, las placas de circuito impreso individuales crecieron aproximadamente 1 pulgada (2,5 cm) en un cuadrado hasta aproximadamente 6 por 10 pulgadas (15 cm × 25 cm). Esto condenó los esfuerzos de Burroughs por producir una memoria de película delgada para la máquina, porque ahora ya no había suficiente espacio para que la memoria quepa dentro de los gabinetes del diseño. Los intentos de aumentar el tamaño de los gabinetes para dejar espacio para la memoria causaron serios problemas con la propagación de la señal. [29] Slotnick examinó los posibles reemplazos y eligió una memoria de semiconductores de Fairchild Semiconductor , una decisión a la que Burroughs se opuso tanto que siguió una revisión completa por parte de ARPA. [19]
En 1969, estos problemas, combinados con los sobrecostos resultantes de los retrasos, llevaron a la decisión de construir un solo cuadrante de 64 PE, [19] limitando así la velocidad de la máquina a unos 200 MFLOPS. [30] Juntos, estos cambios le costaron al proyecto tres años y $ 6 millones. [19] Para 1969, el proyecto estaba gastando $ 1 millón al mes, y tuvo que separarse del equipo original de ILLIAC que se estaba volviendo cada vez más vocal en su oposición al proyecto. [31]
Múdate a Ames
En 1970, la máquina finalmente se estaba construyendo a un ritmo razonable y se estaba preparando para su entrega en aproximadamente un año. El 6 de enero de 1970, The Daily Illini , el periódico estudiantil, afirmó que la computadora se usaría para diseñar armas nucleares. [32] En mayo, se produjeron los tiroteos en Kent State y estalló la violencia contra la guerra en los campus universitarios. [31]
Slotnick se opuso al uso de la máquina en investigaciones clasificadas y anunció que, siempre que fuera en los terrenos de la universidad, todo el procesamiento que tuviera lugar en la máquina se divulgaría públicamente. También le preocupaba cada vez más que la máquina pudiera ser atacada por los grupos de estudiantes más radicales. [31] una posición que parecía prudente después de que los estudiantes locales se unieron a la huelga estudiantil nacional del 9 de mayo de 1970 declarando un "día de acción", [33] y especialmente el bombardeo del edificio de matemáticas del 24 de agosto en la Universidad de Wisconsin-Madison . [34]
Con la ayuda de Hans Mark , director del Centro de Investigación Ames de la NASA en lo que se estaba convirtiendo en Silicon Valley , en enero de 1971 se tomó la decisión de entregar la máquina a Ames en lugar de a la universidad. Ubicado en una base activa de la Marina de los EE. UU. Y protegido por los Marines de EE. UU. , La seguridad ya no sería una preocupación. La máquina se entregó finalmente a Ames en abril de 1972 y se instaló en la Central Computer Facility en el edificio N-233. [35] En este punto, tenía varios años de retraso y superó el presupuesto a un precio total de $ 31 millones, casi cuatro veces la estimación original de $ 8 millones para la máquina completa de 256-PE. [31] [2] [d] [e]
La NASA también decidió reemplazar la máquina frontal B6500 con un PDP-10 , que eran de uso común en Ames y facilitarían mucho la conexión a ARPAnet. [36] Esto requirió el desarrollo de nuevo software, especialmente compiladores, en el PDP-10. Esto provocó más retrasos en la puesta en línea de la máquina. [31]
El Illiac IV fue contratado para ser administrado por ACTS Computing Corporation con sede en Southfield, MI, una empresa de tiempo compartido y entrada de trabajo remoto (RJE) que había sido recientemente adquirida por el conglomerado Lear Siegler Corporation. El DoD contrató a ACTS bajo un costo más el 10% de contrato. Este arreglo inusual se debió a la restricción de que a ningún empleado del gobierno se le podía pagar más que a un miembro del Congreso y muchos miembros del personal de Illiac IV ganaban más que ese límite. El Dr. Mel Pirtle, con experiencia en la Universidad de Berkley y Berkley Computer Corporation (BCC), fue contratado como director del Illiac IV.
Haciendo que funcione
Cuando llegó la máquina por primera vez, no se pudo hacer funcionar. Sufría de todo tipo de problemas, desde roturas de PCB, resistencias defectuosas , hasta que el empaque de los CI de TI es muy sensible a la humedad. Estos problemas se abordaron lentamente y, para el verano de 1973, los primeros programas pudieron ejecutarse en el sistema, aunque los resultados fueron muy cuestionables. A partir de junio de 1975, comenzó un esfuerzo concertado de cuatro meses que requirió, entre otros cambios, reemplazar 110,000 resistencias, recablear piezas para solucionar problemas de retardo de propagación, mejorar el filtrado en las fuentes de alimentación y una reducción adicional en la velocidad del reloj a 13 MHz. Al final de este proceso, el sistema finalmente estaba funcionando correctamente. [31] [2]
A partir de entonces, el sistema funcionó de lunes por la mañana a viernes por la tarde, proporcionando 60 horas de tiempo de actividad para los usuarios, pero requiriendo 44 horas de tiempo de inactividad programado. [2] Sin embargo, se utilizó cada vez más a medida que los programadores de la NASA aprendían formas de obtener rendimiento del complejo sistema. Al principio, el rendimiento fue pésimo, con la mayoría de los programas ejecutándose a aproximadamente 15 MFLOPS, aproximadamente tres veces el promedio del CDC 7600 . [37] Con el tiempo esto mejoró, notablemente después de que los programadores de Ames escribieron su propia versión de FORTRAN , CFD, y aprendieron cómo conectar E / S en paralelo en los PEM limitados. En los problemas que podrían ser paralelizados, la máquina seguía siendo la más rápida del mundo, superando a la CDC 7600 de dos a seis veces, y generalmente se le atribuye el mérito de ser la máquina más rápida del mundo hasta 1981. [31]
El 7 de septiembre de 1981, después de casi 10 años de funcionamiento, el ILLIAC IV fue apagado. [38] La máquina fue oficialmente desmantelada en 1982, y la división de computación avanzada de la NASA terminó con ella. Una unidad de control y un chasis de elemento de procesamiento de la máquina están ahora en exhibición en el Museo de Historia de la Computación en Mountain View, a menos de una milla de su sitio operativo. [39]
Secuelas
ILLIAC llegó muy tarde, fue muy costoso y nunca alcanzó su objetivo de producir 1 GFLOP. En general, fue considerado un fracaso incluso por quienes trabajaron en él; uno dijo simplemente que "cualquier observador imparcial tiene que considerar Illiac IV como un fracaso en un sentido técnico". [40] En términos de gestión de proyectos, se considera en general un fracaso, ya que supera sus estimaciones de costes cuatro veces y requiere años de esfuerzos de reparación para que funcione. Como dijo el propio Slotnik más tarde:
Estoy amargamente decepcionado y muy complacido ... encantado y consternado. Encantado de que los objetivos generales salieran bien al final. Consternado porque costó demasiado, tomó demasiado tiempo, no es suficiente y no hay suficientes personas que lo estén usando. [41]
Sin embargo, análisis posteriores señalan que el proyecto tuvo varios efectos duraderos en el mercado de las computadoras en su conjunto, tanto de forma intencionada como no intencionada. [42]
Entre los efectos indirectos se encuentra la rápida actualización de la memoria de los semiconductores después del proyecto ILLIAC. Slotnick recibió muchas críticas cuando eligió Fairchild Semiconductor para producir los circuitos integrados de memoria, ya que en ese momento la línea de producción era una habitación vacía y el diseño existía solo en papel. [43] Sin embargo, después de tres meses de intenso esfuerzo, Fairchild hizo que un diseño funcional se produjera en masa . Como comentaría más tarde Slotnick, "Fairchild hizo un trabajo magnífico al sacar nuestras castañas del fuego. Los recuerdos de Fairchild eran magníficos y su fiabilidad hasta el día de hoy es increíblemente buena". [29] Se considera que ILLIAC ha asestado un golpe mortal a la memoria central y sistemas relacionados como la película delgada. [29]
Otro efecto indirecto fue causado por la complejidad de las placas de circuito impreso (PCB) o módulos. A la velocidad de diseño original de 25 MHz, la impedancia en el cableado de tierra resultó ser un problema serio, exigiendo que los PCB fueran lo más pequeños posible. A medida que su complejidad crecía, los PCB tenían que agregar más y más capas para evitar crecer más. Finalmente, alcanzaron las 15 capas de profundidad, lo que resultó estar mucho más allá de las capacidades de los dibujantes. El diseño finalmente se completó utilizando nuevas herramientas de diseño automatizadas proporcionadas por un subcontratista, y el diseño completo requirió dos años de tiempo de computadora en un mainframe de Burroughs. Este fue un gran paso adelante en el diseño asistido por computadora y, a mediados de la década de 1970, tales herramientas eran comunes. [44]
ILLIAC también condujo a una importante investigación sobre el tema del procesamiento paralelo que tuvo efectos de amplio alcance. Durante la década de 1980, con la caída del precio de los microprocesadores de acuerdo con la Ley de Moore, varias empresas crearon MIMD (instrucción múltiple, datos múltiples) para construir aún más máquinas paralelas, con compiladores que podrían hacer un mejor uso del paralelismo. El pensamiento Máquinas CM-5 es un excelente ejemplo del concepto MIMD. Fue la mejor comprensión del paralelismo en ILLIAC lo que llevó a los compiladores y programas mejorados que podían aprovechar estos diseños. Como dijo un programador de ILLIAC, "Si alguien construye una computadora rápida con muchos microprocesadores, Illiac IV habrá hecho su parte en el esquema general de las cosas". [45]
La mayoría de las supercomputadoras de la época adoptaron otro enfoque para lograr un mayor rendimiento, utilizando un solo procesador vectorial de muy alta velocidad . Similar al ILLIAC en algunos aspectos, estos diseños de procesadores cargaron muchos elementos de datos en un solo procesador personalizado en lugar de una gran cantidad de especializados. El ejemplo clásico de este diseño es el Cray-1 , que tuvo un rendimiento similar al ILLIAC. Como resultado, hubo más que una pequeña reacción contra el diseño ILLIAC, y durante algún tiempo el mercado de las supercomputadoras miró con desdén los diseños masivamente paralelos, incluso cuando tenían éxito. Como dijo Seymour Cray : "Si estuvieras arando un campo, ¿cuál preferirías usar? ¿Dos bueyes fuertes o 1024 gallinas?" [46]
Descripción
Disposición física
Cada cuadrante de la máquina tenía 10 pies (3 m) de alto, 8 pies (2,4 m) de profundidad y 50 pies (15 m) de largo. [47] Junto al cuadrante estaba su sistema de entrada / salida (E / S), cuyo sistema de disco almacenaba 2,5 GiB y podía leer y escribir datos a mil millones de bits por segundo , junto con la computadora B6700 que se conectaba a la máquina a través del misma interfaz de 1.024 bits de ancho que el sistema de disco. [48]
La máquina constaba de una serie de chasis portadores que contenían varios módulos pequeños. La mayoría de ellos eran las Unidades de Procesamiento (PU), que contenían los módulos para un solo PE, su PEM y la Unidad Lógica de Memoria que manejaba la traducción de direcciones y E / S. Las PU eran idénticas, por lo que podían reemplazarse o reordenarse según fuera necesario. [49]
Detalles del procesador
Cada UC tenía alrededor de 30 a 40.000 puertas. [50] La CU tenía dieciséis registros de 64 bits y un "bloc de notas" de 64 bits de sesenta y cuatro ranuras, LDB. Había cuatro acumuladores, AC0 a AC3, un contador de programa ILR y varios registros de control. El sistema tenía una breve secuencia de instrucciones y las instrucciones implementadas anticipaban el futuro . [51]
Los PE tenían alrededor de 12.000 puertas. [50] Incluía cuatro registros de 64 bits, usando un acumulador A, un búfer de operando B y un scratchpad secundario S. El cuarto, R, se usó para transmitir o recibir datos de los otros PE. [52] Los PE utilizaron un sumador de acarreo anticipado , un detector de avance para operaciones booleanas y un cambiador de barril . Las adiciones de 64 bits tomaron alrededor de 200 ns y las multiplicaciones alrededor de 400 ns. Los PE estaban conectados a un banco de memoria privado, el PEM, que contenía 2.048 palabras de 64 bits. El tiempo de acceso fue del orden de 250 ns [53] Los PE utilizaron una arquitectura de carga / almacenamiento . [54]
El conjunto de instrucciones (ISA) contenía dos conjuntos de instrucciones separados, uno para la CU (o una unidad dentro de él, ADVAST) y otro para los PE. Las instrucciones para los PE no se decodificaron, sino que se enviaron directamente al registro FINST para ser enviadas a los PE para su procesamiento. Las instrucciones ADVAST se decodificaron y entraron en la tubería de procesamiento de CU. [55]
Arreglo lógico
Cada cuadrante contenía 64 PE y una CU. La CU tenía acceso a todo el bus de E / S y podía direccionar toda la memoria de la máquina. Los PE solo podían acceder a su propia tienda local, el PEM, de 2.048 palabras de 64 bits. Tanto las PE como las CU podrían utilizar operaciones de carga y almacenamiento para acceder al sistema de disco. [48]
Los gabinetes eran tan grandes que se necesitaban 240 ns para que las señales viajaran de un extremo al otro. Por esta razón, la CU no se podía usar para coordinar acciones, en cambio, todo el sistema estaba sincronizado con el reloj y todas las operaciones en los PE se garantizaban para tomar la misma cantidad de tiempo sin importar cuáles fueran los operandos. De esa manera, la CU podría estar segura de que las operaciones se completaron sin tener que esperar resultados o códigos de estado. [47]
Para mejorar el rendimiento de las operaciones que requerían que la salida de los resultados de un PE se utilizara como entrada a otro PE, los PE se conectaron directamente a sus vecinos, así como a los que estaban a ocho pasos; por ejemplo, PE1 se conectó directamente. a PE0 y PE2, así como a PE9 y PE45. Las conexiones a ocho distancias permitieron un transporte más rápido cuando los datos necesitaban viajar entre PE más distantes. [48] Cada desplazamiento de datos movió 64 palabras en un solo ciclo de reloj de 125 ns. [47]
El sistema utilizó un formato de una dirección, en el que las instrucciones incluían la dirección de uno de los operandos y el otro operando estaba en el acumulador del PE (el registro A). La dirección se envió a los PE a través de un bus de "transmisión" separado. Dependiendo de la instrucción, el valor en el bus puede referirse a una ubicación de memoria en el PEM del PE, un valor en uno de los registros del PE o una constante numérica. [56]
Dado que cada PE tenía su propia memoria, mientras que el formato de instrucción y las CU veían todo el espacio de direcciones, el sistema incluía un registro de índice (X) para compensar la dirección base. Esto permitió, por ejemplo, que el mismo flujo de instrucciones funcionara con datos que no estaban alineados en las mismas ubicaciones en diferentes PE. El ejemplo común sería una matriz de datos que se cargó en diferentes ubicaciones en los PEM, que luego podrían uniformarse estableciendo el índice en los diferentes PE. [56]
Sucursales
En los diseños de computadora tradicionales, las instrucciones se cargan en la CPU una a la vez a medida que se leen de la memoria. Normalmente, cuando la CPU completa el procesamiento de una instrucción, el contador de programa (PC) se incrementa en una palabra y se lee la siguiente instrucción. Este proceso es interrumpido por ramas , lo que hace que la PC salte a una de dos ubicaciones dependiendo de una prueba, como si una dirección de memoria determinada tiene un valor distinto de cero. En el diseño ILLIAC, cada EP estaría aplicando esta prueba a diferentes valores y, por lo tanto, tendría diferentes resultados. Dado que esos valores son privados para el PE, las siguientes instrucciones deberían cargarse en función de un valor que solo el PE conozca. [57]
Para evitar los retrasos que causaría la recarga de las instrucciones de PE, ILLIAC cargó los PEM con las instrucciones en ambos lados de la rama. Las pruebas lógicas no cambiaron la PC, sino que establecieron "bits de modo" que le dijeron al PE si debía ejecutar o no la siguiente instrucción aritmética. Para usar este sistema, el programa se escribiría de modo que uno de los dos posibles flujos de instrucciones siguiera la prueba y terminara con una instrucción para invertir los bits. A continuación, seguiría el código para la segunda rama, que terminaría con una instrucción para establecer todos los bits en 1. [57]
Si la prueba seleccionó la "primera" rama, ese PE continuaría con normalidad. Cuando llegaba al final de ese código, la instrucción del operador de modo cambiaba los bits de modo y, a partir de ese momento, el PE ignoraba las instrucciones adicionales. Esto continuaría hasta que llegara al final del código para la segunda rama, donde la instrucción de restablecimiento de modo volvería a encender el PE. Si la prueba de un PE en particular dio como resultado que se tomara la segunda rama, en su lugar, establecería los bits de modo para ignorar más instrucciones hasta que llegara al final de la primera rama, donde el operador de modo invertiría los bits y haría que la segunda rama comenzara a procesar , una vez más encendiéndolos todos al final de esa rama. [57]
Dado que los PE pueden operar en modos de 64, 32 y 8 bits, los indicadores de modo tenían varios bits para que las palabras individuales pudieran activarse o desactivarse. Por ejemplo, en el caso de que el PE estuviera funcionando en modo de 32 bits, un "lado" del PE podría hacer que la prueba resulte verdadera mientras que el otro lado era falso. [57]
Terminología
- CU: unidad de control
- CPU: unidad central de procesamiento
- ISA: arquitectura de conjunto de instrucciones
- MAC: multiplicar y acumular
- PC: contador de programa
- PE: elemento de procesamiento
- PEM: módulo de memoria del elemento de procesamiento
- PU: unidad de procesamiento
Ver también
- Ley de Amdahl , que sugiere que existen límites para el aumento del rendimiento de las computadoras paralelas.
- ILLIAC III , una máquina SIMD de propósito especial construida aproximadamente al mismo tiempo que ILLIAC IV
- Conjunto de procesamiento de elementos paralelos , otra máquina Burroughs masivamente paralela, esta es un diseño de Bell Labs
Notas
- ^ Tenga en cuenta que el término "FLOP" no se usaba ampliamente en este momento, MIPS y FLOPS eran sinónimos.
- ^ Chen dice julio. [26]
- ^ Más tarde conocido como integración de escala media .
- ^ Slotnick, y otros, han afirmado que la estimación original de $ 8 millones era unnúmero ad hoc que era el mismo que el monedero en la pelea Clay-Liston . [2]
- ^ Se estaba desarrollando durante un período de tasas de inflación históricamente altas, y al menos parte del aumento en el precio es atribuible a esos aumentos. [2]
Referencias
Citas
- ^ Hord , 1982 , p. 1.
- ↑ a b c d e f Hord , 1982 , pág. 14.
- ^ Hord , 1982 , p. 5.
- ^ Hockney y Jesshope , 1988 , p. 24.
- ↑ a b Hord , 1982 , p. 8.
- ^ Hockney y Jesshope , 1988 , p. 25.
- ↑ a b c d Slotnick , 1982 , p. 20.
- ^ Ware, WH (10 de marzo de 1953). Historia y desarrollo de la computadora IAS (PDF) (Informe técnico). Rand.
- ^ MacKenzie 1998 , p. 295.
- ^ Slotnick 1982 , p. 21.
- ^ Slotnick 1982 , págs. 21-22.
- ^ MacKenzie 1998 , p. 105.
- ^ a b Bouknight y col. 1972 , pág. 371.
- ↑ a b Slotnick , 1982 , p. 23.
- ^ Slotnick 1982 , p. 24.
- ^ MacKenzie 1998 , p. 118.
- ^ MacKenzie 1998 , p. 119.
- ^ Slotnick 1982 , p. 25.
- ↑ a b c d e f g h Slotnick , 1982 , p. 26.
- ^ Barnes y col. 1968 , pág. 746.
- ^ Levesque, John; Williamson, Joel (2014). Una guía de Fortran sobre supercomputadoras . Prensa académica. pag. 14.
- ^ Parkinson, Dennis (17 de junio de 1976). "Ordenadores por mil". Nuevo científico . pag. 626.
- ^ Hord , 1982 , p. 9.
- ^ Leetaru, Kalev (2010). "Laboratorio de Computación Digital". Historias de UI / Universidad de Illinois . Falta o vacío
|url=
( ayuda ) - ^ Hord , 1982 , p. 15.
- ↑ a b Chen , 1967 , p. 3.
- ^ Barnes y col. 1968 , pág. 747.
- ↑ a b Hord , 1982 , p. 11.
- ↑ a b c Falk , 1976 , pág. 67.
- ^ Burroughs 1974 , p. 3.
- ↑ a b c d e f g Slotnick , 1982 , p. 27.
- ^ Falk 1976 , p. sesenta y cinco.
- ^ "Byte de historia: informática en la Universidad de Illinois" . Universidad de Illinois . Marzo de 1997. Archivado desde el original el 10 de junio de 2007.
- ^ "Bombardeo de Sterling Hall de 1970" . Universidad de Wisconsin – Madison .
- ^ "Boletín de información científica" (PDF) . Oficina de Investigación Naval Oficina Asiática. Diciembre de 1993. p. 51 . Consultado el 25 de septiembre de 2014 .
- ^ Hord , 1982 , p. 7.
- ^ Falk 1976 , p. 69.
- ^ 'Este día en la historia: 7 de septiembre', Museo de Historia de la Computación
- ^ "Centralita ILLIAC IV" . Museo de Historia de la Computación .
- ^ Falk 1976 , p. 68.
- ^ Hord 1990 , p. 9.
- ^ Hord 1990 , p. 10.
- ^ Hord 1990 , p. 12.
- ^ Hord 1990 , p. 13.
- ^ Falk 1976 , p. 66.
- ^ Robbins, Kay; Robbins, Steven (2003). Programación de sistemas UNIX: comunicación, concurrencia e hilos . Prentice Hall. pag. 582 . ISBN 9780130424112.
- ↑ a b c Burroughs , 1974 , p. 5.
- ↑ a b c Burroughs , 1974 , p. 4.
- ^ Burroughs 1974 , págs. 11-12.
- ↑ a b Chen , 1967 , p. 9.
- ^ Técnico 1968 , p. 2.10.
- ^ Técnico 1968 , p. 2.7.
- ^ Técnico 1968 , p. 2.8.
- ^ Técnico 1968 , p. 2.11.
- ^ Técnico 1968 , p. 2.12.
- ↑ a b Burroughs , 1974 , p. 7.
- ↑ a b c d Burroughs , 1974 , p. 6.
Bibliografía
- MacKenzie, Donald (1998). Conocer las máquinas: ensayos sobre el cambio técnico . MIT Press. Bibcode : 1998kmet.book ..... M .
- Slotnick, Daniel (enero de 1982). "La concepción y el desarrollo de procesadores paralelos - una memoria personal". Anales de la Historia de la Computación . 4 (1): 20–30. doi : 10.1109 / mahc.1982.10003 . S2CID 16500220 .
- Barnes, George; Brown, Richard; Kato, Maso; Kuck, David; Slotnick, Daniel; Stokes, Richard (agosto de 1968). "La computadora ILLIAC IV" (PDF) . Transacciones IEEE en computadoras . C.17 (8): 746–757. doi : 10.1109 / tc.1968.229158 . S2CID 206617237 .
- Hockney, RW; Jesshope, CR (1988). Computadoras paralelas 2: Arquitectura, Programación y Algoritmos . Prensa CRC. pag. 25. ISBN 9780852748114.
- Bouknight, WJ; Denenberg, Stewart; McIntyre, David; Randall, JM; Sameh, Amed; Slotnick, Daniel (abril de 1972). "El sistema Illiac IV" (PDF) . Actas del IEEE . 60 (4): 369–388. doi : 10.1109 / proc.1972.8647 .
- ILLIAC IV (PDF) . Burroughs. 1974.
- Chen, Tie Chi (1 de mayo de 1967). Una descripción del ILLIAC IV (PDF) (Informe técnico). IBM.
- Resumen técnico de ILLIAC IV (PDF) (Informe técnico). Burroughs. 22 de abril de 1968.
- Falk, Howard (octubre de 1976). "Alcanzando un gigaflop". Espectro IEEE . 13 (10): 65–70. doi : 10.1109 / mspec.1976.6367550 . S2CID 6451271 .
- Hord, R. Michael (1990). Supercomputación paralela en arquitecturas SIMD . Prensa CRC.
- Hord, R. Michael (1982). El Illiac IV: el primer superordenador . Springer-Verlag. ISBN 9783662103456.
Otras lecturas
- ILLIAC IV CFD
- ILÍACO IV
enlaces externos
- Documentación de ILLIAC IV en bitsavers.org
- Entrevista de historia oral con Ivan Sutherland , Instituto Charles Babbage , Universidad de Minnesota. Sutherland describe su mandato de 1963 a 1965 como jefe de la Oficina de Técnicas de Procesamiento de la Información (IPTO) y nuevas iniciativas como ILLIAC IV.
- El panel de discusión de The Legacy of Illiac IV en el Computer History Museum , 24 de junio de 1997.