El CDC 7600 fue el sucesor diseñado por Seymour Cray del CDC 6600 , extendiendo el dominio de Control Data en el campo de las supercomputadoras hasta la década de 1970. [6] El 7600 funcionaba a 36,4 MHz (ciclo de reloj de 27,5 ns) y tenía una memoria primaria de 65 Kword (con un tamaño de palabra de 60 bits) utilizando un núcleo magnético y una memoria secundaria de tamaño variable (hasta 512 Kword) (según el sitio ). En general, era unas diez veces más rápido que el CDC 6600 y podía entregar alrededor de 10 MFLOPS en código compilado a mano, con un pico de 36 MFLOPS. [7] Además, en las pruebas de referencia a principios de 1970 se demostró que era un poco más rápido que su IBMrival, el IBM System / 360 , Modelo 195. [8] Cuando el sistema fue lanzado en 1967, se vendió por alrededor de $ 5 millones en configuraciones básicas, [9] y considerablemente más a medida que se agregaron opciones y características.
CDC 7600 | |
---|---|
Diseño | |
Fabricante | Corporación de datos de control |
Diseñador | Seymour Cray |
Fecha de lanzamiento | Junio de 1967 [1] |
Unidades vendidas | +75 [2] |
Precio | $ 62 - $ 155 miles (alquiler mensual en 1968) [1] |
Caja | |
Dimensiones | Alto: 188 cm (74 pulgadas ) Ancho: 302 cm (119 pulgadas) [3] |
Energía | 95 kW [3] a 208 V 400 Hz [3] |
Sistema | |
Sistema operativo | Chippewa, SCOPE, KRONOS |
UPC | Procesador de 60 bits a 36 MHz [4] |
Memoria | 3,84 megabytes (hasta 512000 palabras de 60 bits) [4] |
MIPS | 15 MIPS |
FLOPS | 36 MFLOPS [5] |
Predecesor | CDC 6600 |
Sucesor | CDC Cyber |
Entre las contribuciones de vanguardia notables del 7600, más allá de la extensa canalización , estaba la forma física en C, que redujo el espacio en el piso y aumentó drásticamente [10] el rendimiento al reducir la distancia que las señales necesitaban viajar. [11]
Diseño
CDC 7600 con escala
Representación 3D de una descripción completa de dos CDC 7600
A medida que el 6600 se acercaba a la calidad de producción, Cray perdió interés en él y se dedicó a diseñar su reemplazo. Hacer una máquina "algo" más rápida no sería demasiado difícil a fines de la década de 1960; la introducción de circuitos integrados permitió un empaquetado más denso de componentes y, a su vez, una mayor velocidad de reloj. Los transistores en general también se estaban volviendo algo más rápidos [12] a medida que mejoraban los procesos de producción y la calidad. Se puede esperar que este tipo de mejoras hagan que una máquina sea dos veces más rápida, quizás hasta cinco veces. Sin embargo, al igual que con el diseño 6600, Cray se propuso el objetivo de producir una máquina con un rendimiento diez veces superior.
Una de las razones por las que el 6600 era mucho más rápido que sus contemporáneos es que tenía varias unidades funcionales que podían funcionar en paralelo. [13] Por ejemplo, la máquina podría realizar una suma de dos números y multiplicar simultáneamente otros dos. Sin embargo, cualquier instrucción dada tenía que completar su recorrido a través de la unidad antes de que la siguiente pudiera ingresar, lo que provocó un cuello de botella cuando el sistema de programación se quedó sin instrucciones. Agregar más unidades funcionales no mejoraría el rendimiento a menos que el programador también se mejorara en gran medida, especialmente en términos de permitirle tener más memoria, por lo que podría buscar más instrucciones para las que podrían alimentarse en las unidades paralelas. Eso parecía ser un problema importante.
Para resolver este problema, Cray recurrió al concepto de canalización de instrucciones . Cada unidad funcional constaba de varias secciones que operaban a su vez, por ejemplo, una unidad de adición podía tener circuitos dedicados a recuperar los operandos de la memoria, luego la unidad matemática real y finalmente otra para enviar los resultados a la memoria. En cualquier momento dado, solo una parte de la unidad estaba activa, mientras que el resto esperaba su turno. Una canalización mejora esto al introducir la siguiente instrucción antes de que se complete la primera, consumiendo ese tiempo de inactividad. Por ejemplo, mientras se suma una instrucción, se pueden obtener los operandos de la siguiente instrucción de adición. De esa manera, tan pronto como la instrucción actual se complete y se mueva al circuito de salida, los operandos para la siguiente adición ya están esperando ser agregados. De esta forma, cada unidad funcional trabaja en "paralelo", [14] así como la máquina en su conjunto. La mejora en el rendimiento generalmente depende de la cantidad de pasos que realiza la unidad para completar. Por ejemplo, la unidad de multiplicación del 6600 tardó 10 ciclos en completar una instrucción, por lo que al canalizar las unidades se podría esperar que ganara aproximadamente 10 veces la velocidad.
Sin embargo, las cosas nunca son tan simples. La canalización requiere que las partes internas de la unidad se puedan separar de manera efectiva hasta el punto en que cada paso de la operación se ejecute en circuitos completamente separados. Esto rara vez se puede lograr en el mundo real. Sin embargo, el uso de tuberías en el 7600 mejoró el rendimiento sobre el 6600 en un factor de aproximadamente 3. Para lograr el resto del objetivo, la máquina tendría que funcionar a una velocidad más rápida, ahora posible utilizando nuevos diseños de transistores. Sin embargo, existe un límite físico para el rendimiento debido al tiempo que tardan las señales en moverse entre las partes de la máquina, que a su vez se define por su tamaño físico. Como siempre, el trabajo de diseño de Cray dedicó un esfuerzo considerable a este problema y, por lo tanto, permite frecuencias de funcionamiento más altas. Para el 7600, cada módulo de circuito en realidad constaba de hasta seis placas de circuito impreso , cada una llena de resistencias subminiatura, diodos y transistores. Las seis tablas se apilaron y luego se interconectaron a lo largo de sus bordes, formando un módulo muy compacto, pero básicamente irreparable.
Sin embargo, el mismo empaque denso también provocó el mayor problema de la máquina: el calor. Para el 7600, Cray volvió a recurrir a su ingeniero de refrigeración, Dean Roush, anteriormente de la empresa Amana . Roush agregó una placa de aluminio a la parte posterior de cada lado de la pila de leña , que a su vez se enfrió mediante un sistema de freón líquido [15] que atraviesa el núcleo de la máquina. Dado que este sistema era mecánico y, por lo tanto, propenso a fallar, el 7600 se rediseñó en forma de "C" grande para permitir el acceso a los módulos a ambos lados de la tubería de enfriamiento al entrar en el interior de la "C" y abrir el gabinete. . [11]
Arquitectura
El 7600 fue un hito arquitectónico y la mayoría de sus características siguen siendo partes estándar del diseño informático. Es una computadora con un conjunto de instrucciones reducido con una palabra de instrucción de 15 bits que contiene un código de operación de 6 bits. Solo hay 64 códigos de máquina, incluido un código de no operación , sin operaciones de multiplicación o división de punto fijo en el procesador central.
El 7600 tiene dos memorias centrales principales. La memoria de núcleo pequeño contiene las instrucciones que se están ejecutando actualmente y los datos que se están procesando actualmente. Tiene un tiempo de acceso de 10 de los ciclos menores de 27,5 ns y una longitud de palabra de 60 bits. La memoria de núcleo grande contiene datos listos para transferir a la memoria de núcleo pequeño. Tiene un tiempo de acceso de 60 de los ciclos menores de 27,5 ns y una longitud de palabra de 480 bits (512 bits con paridad). [4] Los accesos están completamente canalizados y almacenados en búfer, por lo que los dos tienen la misma tasa de transferencia secuencial de 60 bits cada 27,5 ns. Los dos funcionan en paralelo, por lo que la tasa de transferencia secuencial de uno a otro es de 60 bits por ciclo menor de 27,5 ns. En una llamada al sistema operativo, el contenido de la memoria del núcleo pequeño se intercambia y el sistema operativo lo reemplaza de la memoria del núcleo grande, y luego se restaura.
Existe una canalización de instrucciones de 12 palabras, denominada pila de palabras de instrucción en la documentación de los CDC. [4] Se obtienen todas las direcciones de la pila, sin esperar a que se procese el campo de instrucción. Por tanto, la recuperación de la instrucción de destino de una bifurcación condicional precede a la evaluación de la condición de bifurcación. Durante la ejecución de un bucle de 10 palabras (hasta 40 instrucciones), todas las instrucciones necesarias permanecen en la pila, por lo que no se obtienen instrucciones, lo que deja una pequeña memoria central libre para transferencias de datos.
Hay ocho registros de 60 bits, cada uno con un registro de direcciones. [4] Al mover una dirección a un registro de direcciones, se inicia una lectura o escritura de una pequeña memoria central. Las instrucciones aritméticas y lógicas tienen estos registros como fuentes y destinos. El programador o compilador intenta obtener datos a tiempo para usarlos y almacenarlos antes de que más datos necesiten el mismo registro, pero si no está listo, el procesador entra en un estado de espera hasta que lo esté. También espera si una de las cuatro unidades aritméticas de punto flotante no está lista cuando se solicita, pero debido a la canalización, esto no suele suceder. [dieciséis]
Relación con el CDC 6600
El CDC 7600 "fue diseñado para ser compatible con el código de máquina hacia arriba con el 6600, pero para proporcionar un aumento sustancial en el rendimiento". [17] [18] Un usuario dijo: "La mayoría de los usuarios pueden ejecutar cualquier sistema sin cambios". [8]
Aunque el 7600 compartía muchas características del 6600, incluido el hardware, las instrucciones y su tamaño de palabra de 60 bits, no era un código objeto compatible con el CDC 6600. [19] [8] Además, no era completamente fuente- compatible con el código ( COMPASS ), ya que algunas instrucciones en el 7600 no existían en el 6600, y viceversa. Originalmente se llamaba CDC 6800, [20] pero se cambió a 7600 cuando Cray decidió que no podía ser completamente compatible. Sin embargo, debido al diseño del sistema operativo del 7600, el 6600 y el 7600 compartían un "entorno de software uniforme" a pesar de las diferencias de bajo nivel. [8]
De hecho, desde una perspectiva de alto nivel, el 7600 era bastante similar al 6600. En ese momento, la memoria de la computadora podía organizarse en bloques con rutas de acceso independientes, y los diseños de Cray aprovecharon esto para su ventaja. Si bien la mayoría de las máquinas usarían una sola CPU para ejecutar toda la funcionalidad del sistema, Cray se dio cuenta de que esto significaba que cada bloque de memoria pasaba una cantidad considerable de tiempo inactivo mientras la CPU procesaba instrucciones y accedía a otros bloques. Para aprovechar esto, el 6600 y el 7600 dejaron tareas de limpieza mundanas, como imprimir resultados o leer tarjetas perforadas , por ejemplo, en una serie de diez máquinas más pequeñas de 12 bits basadas en el CDC 160A conocidas como "Unidades de procesador periférico", o PPU. [21] Para cualquier ciclo dado de la máquina, una de las PPU estaba en control, alimentando datos en la memoria mientras el procesador principal procesaba números. Cuando se completó el ciclo, se le dio control a la siguiente PPU. De esta manera, la memoria siempre mantuvo información actualizada para que el procesador principal trabajara (salvo retrasos en los dispositivos externos), eliminando retrasos en los datos y permitiendo que la CPU se construya para un rendimiento matemático y nada más. . El PPU podría haber sido llamado un "canal de comunicaciones" muy inteligente.
Al igual que el 6600, el 7600 usaba palabras de 60 bits con instrucciones que generalmente tenían una longitud de 15 bits, aunque también había instrucciones de 30 bits. Las instrucciones estaban empaquetadas en palabras de 60 bits, pero una instrucción de 30 bits no podía abarcar dos palabras y el control solo podía transferirse a la primera instrucción de una palabra. Sin embargo, el conjunto de instrucciones en sí había cambiado para reflejar el nuevo diseño de la memoria interna, haciéndolo incompatible con el 6600 anterior. Las máquinas eran lo suficientemente similares como para hacer posible la migración de compiladores y sistemas operativos sin demasiados problemas. La máquina inicialmente no venía con software; los sitios tenían que estar dispuestos a escribir su propio sistema operativo, como LTSS, NCAROS y otros; y compiladores como LRLTRAN (la versión de Fortran de Livermore con administración de memoria dinámica y otras características no estándar).
CDC también fabricó dos computadoras multiprocesador basadas en la 7600, con el número de modelo 7700. [22] Consistían en dos máquinas 7600 en una configuración asimétrica: una central y una adjunta. Se utilizaron para el lanzamiento de misiles y el seguimiento de entrada de misiles balísticos intercontinentales de la URSS . El simulador de radar era un simulador en tiempo real con un CDC 6400 para el front-end de entrada / salida. Estos sistemas iban a utilizarse en el Pacific Missile Range . Se instaló una computadora en TRW en Redondo Beach CA (luego se trasladó a Kwajalein Atoll, South Pacific), y la segunda se instaló en McDonnell Douglas en Huntington Beach, California . Eran 7600 reales conectados por chasis 25 para convertirlos en 7600 MP.
Recepción y uso
Aproximadamente desde 1969 hasta 1975, el CDC 7600 fue considerado en general como el ordenador más rápido del mundo, [7] a excepción de las unidades especializadas. Sin embargo, incluso con la mecánica y el enfriamiento avanzados, el 7600 era propenso a fallar. Tanto LLNL como NCAR informaron que la máquina se avería al menos una vez al día y, a menudo, cuatro o cinco veces. La aceptación en los sitios de instalación tomó años mientras se resolvieron los errores, y aunque la máquina se vendió bastante bien dado su nicho de "gama alta", es poco probable que la máquina generara algún tipo de beneficio real para CDC. El sucesor CDC 8600 nunca se completó, y Seymour Cray pasó a formar su propia empresa, Cray Research . [7]
Un 7600 superviviente se exhibe parcialmente en el Museo de Historia de la Computación . [9] Su gran tamaño permite mostrar solo dos unidades de esquina. El resto está almacenado. Otro 7600 se exhibe en el Museo de Industria y Tecnología de Chippewa Falls , junto con su consola y un controlador de cinta.
Referencias
- ^ a b Encuesta Adams 1968 , págs. 12, leyenda - 3
- ^ En 1978, la revista Science informó que CDC vendió "400 de sus modelos CDC 6600 y 75 de sus modelos CDC 7600".
- ^ a b c Preparación del sitio CDC 7600, mayo 76
- ^ a b c d e CDC 7600 Manual de referencia, 71 de febrero
- ^ Presentación de CDC 7600 por Gordon Bell de Microsoft Research
- ^ "CDC 7600" . Archivado desde el original el 15 de mayo de 2016 . Consultado el 8 de abril de 2010 .
- ^ a b c Gordon Bell. Una perspectiva de Seymour Cray Archivado el 15 de mayo de 2016 en la Wayback Machine .
- ^ a b c d "Control Data Corporation (CDC) 7600: 1971-1983" . Laboratorio de Sistemas Computacionales y de Información . Corporación Universitaria de Investigaciones Atmosféricas. Archivado desde el original el 20 de julio de 2011 . Consultado el 25 de septiembre de 2011 .
- ^ a b "Superordenador 7600" . Colecciones . Museo de Historia de la Computación. Archivado desde el original el 3 de octubre de 2012 . Consultado el 25 de septiembre de 2011 .
- ^ Multiplique por un factor de diez.
- ^ a b "7600 en Livermore" .
- ^ "También eran más de diez veces más rápidos que los primeros transistores MOS" "Operación en paralelo en el Control Data 6600" (PDF) .
- ^ JE Thornton (1980). "El Proyecto CDC 6600". IEEE Annals of the History of Computing . 2 (4): 338–348. doi : 10.1109 / MAHC.1980.10044 .
- ^ "unidades funcionales paralelas" "La historia de las supercomputadoras" . 10 de abril de 2012.
- ^ Edwin D. Reilly (2003). Hitos en informática y tecnologías de la información . ISBN 978-1573565219.
- ^ Una conferencia dada por un representante de los CDC en el centro de computación de UCLA, alrededor de 1970.
- ^ La arquitectura de las computadoras de alto rendimiento . IBBETT. 2013. ISBN 978-1475767155.
- ^ "Almacenamiento en búfer de instrucciones en el CDC 7600" .
- ^ Esto no quiere decir que no haya compatibilidad con versiones anteriores , que es cuando algo de lo antiguo se ejecuta en el nuevo.
- ^ Pugh, Emerson W .; Johnson, Lyle R .; Palmer, John H. (1991). Sistemas 360 y Early 370 de IBM . Prensa del MIT. pag. 388 . ISBN 978-0-262-16123-7.
- ^ "Control Data 7600 Computer System" (PDF) .
- ^ Finalmente, se pusieron a la venta: 2 CDC 7700, 1 CDC 6400; También se vendieron 6 IBM 3033. "En venta" . InfoWorld . 27 de julio de 1981. p. 49.
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 .
- Presentación del CDC 7600 y otras máquinas diseñadas por Seymour Cray - por C. Gordon Bell de Microsoft Research (antes de DEC)
- Galería de computadoras SCD
- Museo de Historia de la Computación
- Museo de Industria y Tecnología de Chippewa Falls
- Muchos enlaces sobre CDC 7600
Fotos
- Dentro del 7600
Registros | ||
---|---|---|
Precedido por CDC 6600 3 megaflops | La supercomputadora más poderosa del mundo 1969-1975 | Sucedido por Cray- 1136 megaflops |