stringtranslate.com

CDC STAR-100

El CDC STAR-100 es un superordenador vectorial 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 el primer superordenador en utilizar circuitos integrados y el primero en estar equipado con un millón de palabras de memoria de ordenador . [5]

STAR es una mezcla de anillos ST (de dígitos binarios) y rayos AR . [6] El 100 alude a la velocidad máxima nominal de procesamiento de 100 millones de operaciones de punto flotante por segundo ( MFLOPS ); [5] el CDC 7600 anterior proporcionaba un rendimiento máximo de 36 MFLOPS, pero normalmente funcionaba a alrededor de 10 MFLOPS.

El diseño fue parte de una oferta presentada al Laboratorio Nacional Lawrence Livermore (LLNL) a mediados de la década de 1960. [5] Livermore estaba buscando un socio que construyera una máquina mucho más rápida con su propio presupuesto y luego alquilara 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, CDC anunció que General Motors había realizado el primer pedido comercial.

Una serie de características básicas de diseño de la máquina significaron que su rendimiento en el mundo real fue mucho menor de lo esperado cuando se utilizó comercialmente por primera vez en 1974, y fue una de las razones principales por las que CDC perdió su antiguo dominio en el mercado de supercomputadoras cuando se anunció el Cray-1 en 1975. Solo se entregaron tres sistemas STAR-100, dos al LLNL y otro al Centro de Investigación Langley de la NASA .

Descripción

El STAR tenía una arquitectura de 64 bits , compuesta por 195 instrucciones . [7] Su principal innovación fue la inclusión de 65 instrucciones vectoriales para el procesamiento de vectores . Las operaciones realizadas por estas instrucciones estaban fuertemente influenciadas por conceptos y operadores del lenguaje de programación APL ; en particular, el concepto de "vectores de control" (máscaras vectoriales en la terminología moderna), y varias instrucciones para la permutación de vectores con vectores de control, fueron transferidos directamente desde APL. [8] [9]

Las instrucciones vectoriales operaban sobre vectores que se almacenaban en ubicaciones consecutivas en la memoria principal; el direccionamiento de la memoria era virtual . Las instrucciones vectoriales alimentaban una secuencia aritmética ; una sola instrucción podía sumar dos vectores de longitud variable de hasta 65.535 elementos con una sola instrucción de búsqueda. El STAR también buscaba operandos vectoriales en unidades de 512 bits (superpalabras), lo que reducía la latencia promedio de la memoria.

Como se conoce la ubicación de memoria del operando "próximo", la CPU puede buscar los operandos siguientes mientras está trabajando en los anteriores. Como sucede con las secuencias de instrucciones en general, el tiempo necesario para completar cualquier instrucción no era mejor que antes, pero como la CPU está trabajando en varios puntos de datos a la vez, el rendimiento general mejora drásticamente.

Muchas de las instrucciones del STAR eran complejas, especialmente las macroinstrucciones vectoriales , que realizaban operaciones complejas que normalmente habrían requerido largas secuencias de instrucciones. Estas instrucciones, junto con la arquitectura generalmente compleja del STAR, se implementaron con microcódigo . [10]

La memoria principal tenía una capacidad de 65.536 palabras de 512 bits , llamadas superpalabras (SWORD). [11] La memoria principal estaba intercalada en 32 direcciones para canalizar los accesos a la memoria. Se construyó a partir de la memoria central con un tiempo de acceso de 1,28 μs. Se accedía 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 mediante tres buses de datos de 128 bits, dos para lecturas y uno para escrituras. También hay un bus de datos de 128 bits para la obtención 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. [11]

El STAR-100 tiene dos canales aritméticos. El primero tiene un sumador y multiplicador de punto flotante, y el segundo puede ejecutar todas las instrucciones escalares. También contiene un sumador, multiplicador y divisor de punto flotante. Ambos canales son de 64 bits para operaciones de punto flotante y están controlados por microcódigo. El STAR-100 puede dividir sus canales de punto flotante en cuatro canales de 32 bits, duplicando el rendimiento máximo del sistema a 100 MFLOPS a expensas de la mitad de la precisión. [11]

El STAR-100 utiliza procesadores de E/S para descargar las 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 real del STAR-100 fue una fracción de su rendimiento teórico por varias razones. En primer lugar, las instrucciones vectoriales, al ser "de memoria a memoria", tenían un tiempo de arranque relativamente largo, ya que la tubería desde la memoria hasta las unidades funcionales era muy larga. A diferencia de las unidades funcionales canalizadas basadas en registros del 7600, las tuberías 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). Por lo tanto, la longitud del vector necesaria para que el STAR se ejecutara más rápido que el 7600 se producía en unos 50 elementos; si los bucles trabajaban en conjuntos de datos con menos elementos, el coste de tiempo de configuración de la tubería vectorial era mayor que el ahorro de tiempo proporcionado por la(s) instrucción(es) vectorial(es).

Cuando la máquina se lanzó en 1974, rápidamente se hizo evidente que el rendimiento general era decepcionante. Muy pocos programas pueden ser vectorizados efectivamente en una serie de instrucciones individuales; casi todos los cálculos se basarán en los resultados de alguna instrucción anterior, pero los resultados tuvieron que pasar por las tuberías antes de poder ser devueltos. Esto obligó a la mayoría de los programas a pagar el alto costo de configuración de las unidades vectoriales, y generalmente los que sí "funcionaban" eran ejemplos extremos. Peor aún, el rendimiento escalar básico se sacrificó para mejorar el rendimiento vectorial. Cada vez que el programa tuvo que ejecutar instrucciones escalares, el rendimiento general de la máquina disminuyó drásticamente. (Véase la 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 . [12] 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 del STAR. En el proceso de desarrollo de STACKLIB, descubrieron que los programas convertidos para usarlo se ejecutaban 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 , [12] seguida por Cyber ​​205 en 1980, pero en este punto los sistemas de Cray Research con un rendimiento considerablemente mayor estaban en el mercado. El fracaso de STAR llevó a que CDC fuera desplazada de su anterior dominio en el mercado de supercomputadoras, algo que intentaron abordar con la formación de ETA Systems en septiembre de 1983. [12]

Instalaciones

Se construyeron cinco CDC STAR-100. Las entregas comenzaron a partir de 1974: [1]

Referencias

  1. ^ abcd SISTEMAS DE COMPUTACIÓN DE GRANDES DIMENSIONES Y NUEVAS ARQUITECTURAS, T. Bloch, CERN, Ginebra, Suiza, noviembre de 1978
  2. ^ abcd Propuesta al Laboratorio de Computación Atlas para un sistema informático STAR, Michael Baylis, Control Data, abril de 1972
  3. ^ Manual de referencia del hardware de Star-100
  4. ^ Historial y resultados del benchmark Whetstone
  5. ^ abc MacKenzie, Donald (1998). Máquinas que saben: ensayos sobre el cambio técnico. MIT Press. ISBN 978-0-262-63188-4.
  6. ^ CJ Purcell (1974). "Control Data STAR-100 - Medidas de rendimiento". Taller internacional sobre gestión de conocimientos de requisitos de la AFIPS de 1974. pág. 385. doi :10.1109/AFIPS.1974.113. S2CID  43509695.
  7. ^ Hwang, Kai; Briggs, Fayé Alayé (1984). Arquitectura informática y procesamiento paralelo . McGraw-Hill. págs. 234–249.
  8. ^ Hockney, RW; Jesshope, CR (1981). Computadoras paralelas: arquitectura, programación y algoritmos . Adam Hilger. pág. 15.
  9. ^ Ibbett, RN; Topham, NP (1989). Arquitectura de computadoras de alto rendimiento, volumen I: procesadores mono y procesadores vectoriales . Springer-Verlag . pág. 159.
  10. ^ Schneck, PB (1987). Arquitectura de supercomputadoras . Académico Kluwer. págs. 99-118.
  11. ^ abc PM Kogge, La arquitectura de las computadoras segmentadas , Taylor & Francis, 1981, págs. 162-164.
  12. ^ abc RW Hockney y CR Jesshope, Computadoras paralelas 2: Arquitectura, programación y algoritmos , Adam Hilger, 1988, pág. 21.

Lectura adicional

Enlaces externos