El CDC STAR-100 es un superordenador de vectores que fue diseñado, fabricado y comercializado por Control Data Corporation (CDC). Fue una de las primeras máquinas en utilizar un procesador vectorial para mejorar el rendimiento en aplicaciones científicas adecuadas. También fue la primera supercomputadora en utilizar circuitos integrados y la primera en estar equipada con un millón de palabras de memoria de computadora . [5]
CDC STAR-100 | |
---|---|
Diseño | |
Fabricante | Corporación de datos de control |
Diseñador | Jim Thornton |
Fecha de lanzamiento | 1974 [1] |
Unidades vendidas | 5 [1] |
Caja | |
Dimensiones | Computadora completa aprox .: Altura: 212 cm (83 pulgadas ) Longitud: 745 cm (293 pulgadas) Secciones internas: [2] Altura: 76 pulgadas (190 cm) Ancho: 28,5 pulgadas (72 cm) Profundidad: 30 pulgadas (76 cm) |
Peso | 2,200 libras (1,000 kg) |
Energía | 250 kW a 208 V 400 Hz [2] |
Sistema | |
Sistema operativo | HELIOS [2] |
UPC | Procesador de 64 bits a 25 MHz [1] |
Memoria | Hasta 8 megabytes (4 * 4 * 64 K x 64 bits) [3] |
Almacenamiento | - |
MIPS | 1 MIPS ( escalar ) [4] [2] |
FLOPS | 100 MFLOPS ( vector ) [1] |
Predecesor | - |
Sucesor | CDC Cyber 200 |
El nombre STAR fue una construcción de las palabras ST anillos de dígitos binarios que formaban rayos AR , [6] en referencia al concepto de vector. El 100 provino de 100 millones de operaciones de punto flotante por segundo ( MFLOPS ), la velocidad a la que la máquina fue diseñada para operar. [5] Esto se compara con su CDC 7600 anterior, que proporcionaba un rendimiento máximo de 36 MFLOPS, pero más típicamente corría alrededor de 10 MFLOPS.
El diseño fue parte de una oferta realizada al Laboratorio Nacional Lawrence Livermore a principios de la década de 1970. Livermore estaba buscando un socio que pudiera construir una máquina mucho más rápida con su propio presupuesto y luego arrendar el diseño resultante al laboratorio. Se anunció públicamente a principios de la década de 1970, y el 17 de agosto de 1971, los CDC anunciaron que General Motors había realizado el primer pedido comercial de un STAR-100.
Varias características de diseño básicas de la máquina significaron que su rendimiento en el mundo real fue mucho menor de lo esperado cuando se usó comercialmente por primera vez en 1974, y fue una de las razones principales por las que los CDC fueron empujados de su antiguo dominio en el mercado de supercomputadoras cuando el Cray-1 fue anunciado en 1975. Sólo se entregaron tres sistemas STAR-100, dos al Laboratorio Livermore y otro al Centro de Investigación Langley de la NASA .
Descripción
En la organización general, STAR era similar a las supercomputadoras anteriores de los CDC, donde una CPU simple era compatible con varios procesadores periféricos que descargaban las tareas de limpieza y permitían que la CPU procesara números lo más rápido posible. En STAR, tanto la CPU como los procesadores periféricos se simplificaron deliberadamente aún más para reducir el costo y la complejidad de la implementación. El STAR también se diferenciaba de los diseños anteriores por estar basado en una arquitectura de 64 bits en lugar de 60 bits, un efecto secundario del uso cada vez mayor del procesamiento ASCII de 8 bits . Además, a diferencia de las máquinas anteriores, STAR hizo un uso intensivo del microcódigo y también admitió una capacidad de memoria virtual .
La principal innovación del STAR fue la inclusión de instrucciones para el procesamiento de vectores. Estas nuevas y más complejas instrucciones se aproximaban a lo que estaba disponible para los usuarios del lenguaje de programación APL y operaban en enormes vectores que se almacenaban en ubicaciones consecutivas en la memoria principal. La CPU fue diseñada para usar estas instrucciones para configurar hardware adicional que alimentara datos desde la memoria principal lo más rápido posible. Por ejemplo, un programa podría usar una sola instrucción con unos pocos parámetros para agregar todos los elementos en dos vectores que podrían tener hasta 65.535 elementos.
Para comprender por qué las instrucciones vectoriales mejoran el rendimiento, considere la simple tarea de agregar dos matrices de 10,000 elementos. En un diseño tradicional, cada elemento requeriría que la computadora extraiga la ADD
instrucción de la memoria, la decodifique, extraiga los dos operandos de la memoria, realice la suma y escriba los resultados en la memoria. En una máquina vectorial, la ADD
instrucción se lee solo una vez, lo que ahorra inmediatamente 10.000 accesos a la memoria. Además, se conoce la ubicación de memoria del "siguiente" operando, es una palabra más alta en memoria que la última. Esto permite que la computadora busque los siguientes operandos mientras el circuito sumador aún está agregando los dos últimos valores, no tiene que esperar a que se decodifique la instrucción. Tan pronto como ADD
se complete, el sumador puede entregar el resultado para que se escriba e inmediatamente comenzar a trabajar en los dos valores siguientes. Al igual que con las canalizaciones de instrucciones en general, el tiempo necesario para completar cualquier instrucción no fue mejor que antes, pero dado que la CPU está trabajando en varios puntos de datos a la vez, el rendimiento general mejora drásticamente debido a la naturaleza de la línea de ensamblaje del tarea.
La memoria principal tenía una capacidad de 65.536 superpalabras (ESPADAS), que son palabras de 512 bits . [7] La memoria principal se entrelazó en 32 vías para acceder a la memoria de la canalización. Se construyó a partir de la memoria central con un tiempo de acceso de 1,28 μs. Se accedió a la memoria principal a través de un bus de 512 bits, controlado por el controlador de acceso al almacenamiento (SAC), que manejaba las solicitudes de la unidad de flujo . La unidad de flujo accede a la memoria principal a través del SAC a través de tres buses de datos de 128 bits, dos para lecturas y uno para escrituras. Además, hay un bus de datos de 128 bits para la búsqueda de instrucciones, E / S y acceso al vector de control. La unidad de flujo sirve como unidad de control, obteniendo y decodificando instrucciones, iniciando accesos a la memoria en nombre de las unidades funcionales canalizadas y controlando la ejecución de instrucciones, entre otras tareas. También contiene dos búferes de lectura y un búfer de escritura para transmitir datos a las unidades de ejecución. [7]
El STAR-100 tiene dos canales donde se realiza la aritmética. La primera canalización contiene un sumador y un multiplicador de punto flotante, mientras que la segunda canalización es multifuncional, capaz de ejecutar todas las instrucciones escalares. También contiene un sumador, un multiplicador y un divisor de punto flotante. Ambas canalizaciones son de 64 bits para operaciones de punto flotante y están controladas por microcódigo. El STAR-100 puede dividir sus tuberías de punto flotante en cuatro tuberías de 32 bits, duplicando el rendimiento máximo del sistema a 100 MFLOPS a expensas de la mitad de la precisión. [7]
El STAR-100 usa procesadores de E / S para descargar E / S de la CPU. Cada procesador de E / S es una minicomputadora de 16 bits con su propia memoria principal de 65.536 palabras de 16 bits cada una, que se implementa con memoria central. Todos los procesadores de E / S comparten un bus de datos de 128 bits con el SAC.
Rendimiento, usuarios e impacto en el mundo real
El rendimiento del STAR-100 en el mundo real fue una fracción de su rendimiento teórico. Esto se debió a varias razones. En primer lugar, las instrucciones vectoriales, que son de "memoria a memoria", tuvieron un tiempo de inicio relativamente largo, ya que el conducto desde la memoria a las unidades funcionales fue muy largo. En contraste con las unidades funcionales canalizadas basadas en registros del 7600, las canalizaciones STAR eran mucho más profundas. El problema se agravó por el hecho de que el STAR tenía un tiempo de ciclo más lento que el 7600 (40 ns frente a 27,5 ns). Entonces, la longitud del vector necesaria para que el STAR se ejecute más rápido que el 7600 se produjo en unos 50 elementos; si los bucles trabajaban en conjuntos de datos con menos elementos, el costo de tiempo de configurar la canalización vectorial era mayor que el ahorro de tiempo proporcionado por las instrucciones vectoriales.
Cuando se lanzó la máquina en 1974, rápidamente se hizo evidente que el rendimiento general no se acercaba a lo que la gente esperaba. Muy pocos programas se pueden vectorizar eficazmente en una serie de instrucciones únicas; Casi todos los cálculos se basarán en los resultados de alguna instrucción anterior, sin embargo, los resultados tuvieron que borrar las tuberías antes de que pudieran retroalimentarse. Esto obligó a la mayoría de los programas a alcanzar el alto costo de configuración de las unidades vectoriales y, en general, las que lo hicieron. "trabajo" fueron ejemplos extremos. Para empeorar las cosas, se sacrificó el rendimiento escalar básico para mejorar el rendimiento del vector. Cada vez que el programa tenía que ejecutar instrucciones escalares, el rendimiento general de la máquina se reducía drásticamente. (Ver Ley de Amdahl ).
Finalmente, se entregaron dos sistemas STAR-100 al Laboratorio Nacional Lawrence Livermore y uno al Centro de Investigación Langley de la NASA . [8] En preparación para las entregas de STAR, los programadores de LLNL desarrollaron una biblioteca de subrutinas , llamada STACKLIB , en el 7600 para emular las operaciones vectoriales de STAR. En el proceso de desarrollo de STACKLIB, descubrieron que los programas convertidos para usarlo funcionaban más rápido que antes, incluso en el 7600. Esto ejerció más presión sobre el rendimiento del STAR.
El STAR-100 fue una decepción para todos los involucrados. Jim Thornton , ex asistente cercano de Seymour Cray en los proyectos CDC 1604 y 6600 y el diseñador jefe de STAR, dejó CDC para formar Network Systems Corporation . Una versión actualizada de la arquitectura básica fue lanzada más tarde en 1979 como Cyber 203 , [8] seguida por Cyber 205 en 1980, pero en este punto los sistemas de Cray Research con un rendimiento considerablemente más alto estaban en el mercado. El fracaso de STAR llevó a que CDC abandonara su antiguo dominio en el mercado de las supercomputadoras, algo que intentaron abordar con la formación de ETA Systems en septiembre de 1983. [8]
Clientes
Se han entregado cinco CDC STAR-100 a partir de 1974:
- Laboratorio Lawrence Livermore. (2)
- NASA Langley
- Corporación de datos de control, Arden Hills, MN (2)
Referencias
- ^ a b c d GRANDES SISTEMAS DE COMPUTADORAS Y NUEVAS ARQUITECTURAS, T. Bloch, CERN, Ginebra, Suiza, noviembre de 1978
- ^ a b c d Una propuesta al Atlas Computer Laboratory para un sistema informático STAR, Michael Baylis, Control Data, abril de 1972
- ^ Manual de referencia de hardware Star-100
- ^ Historia y resultados de Whetstone Benchmark
- ↑ a b MacKenzie, Donald (1998). Conocer las máquinas: ensayos sobre el cambio técnico . Prensa del MIT. ISBN 9780262631884.
- ^ CJ PURCELL. "Los datos de control STAR-100". S2CID 43509695 . Cite journal requiere
|journal=
( ayuda ) - ^ a b c P.M. Kogge, The Architecture of Pipelined Computers , Taylor & Francis, 1981, págs. 162-164.
- ^ a b c R.W. Hockney y CR Jesshope, Computadoras paralelas 2: Arquitectura, programación y algoritmos , Adam Hilger, 1988, p. 21.
Otras lecturas
- RG Hintz y DP Tate, "Diseño del procesador Control Data STAR-100", Proc. Compcon , 1972, págs. 1–4.
- PB Schneck, Arquitectura de supercomputadoras , Kluwer Academic, 1987, págs. 99-118.
enlaces externos
- Neil R. Lincoln con 18 ingenieros de Control Data Corporation (CDC) en arquitectura y diseño de computadoras , Instituto Charles Babbage , Universidad de Minnesota. Los ingenieros incluyen a Robert Moe, Wayne Specker, Dennis Grinna, Tom Rowan, Maurice Hutson, Curt Alexander, Don Pagelkopf, Maris Bergmanis, Dolan Toth, Chuck Hawley, Larry Krueger, Mike Pavlov, Dave Resnick, Howard Krohn, Bill Bhend, Kent Steiner, Raymon Kort y Neil R. Lincoln. Los temas de discusión incluyen CDC 1604 , CDC 6600 , CDC 7600 , CDC 8600 , CDC STAR-100 y Seymour Cray .