# CDC 6600

El CDC 6600 fue el buque insignia de la serie 6000 de mainframes fabricados por Control Data Corporation. Se la considera como la primera supercomputadora exitosa, superando a la IBM 7030, que mantenía el título la más potente hasta ese momento, por un factor de tres. Con un rendimiento de hasta tres megaFLOPS, la 6600 fue la computadora más rápida del mundo desde 1964 a 1969, cuando cedió el título a su sucesora, la CDC 7600. El CDC 6600 fue una versión mejorada del ordenador CDC 6400.
El CDC 6600 poseía una CPU de 60 bits y 10 unidades periféricas de procesamiento (PPU) y utilizaba un marcador para el plotting de las órdenes.
Los primeros CDC 6600 fueron entregados en 1965 al Lawrence Livermore National Laboratory y al Los Alamos National Laboratory. Rápidamente se convirtieron en un sistema imprescindible en la informática científica y matemática de alta gama, con sistemas entregados al Courant Institute of Mathematical Sciences, CERN, el Lawrence Radiation Laboratory, y muchos otros. Al menos 100 equipos fueron entregados en total.
En un principio, el CDC 7600 se diseñó para ser compatible con el 6600, siendo incluso nombrado en un principio como el CDC 6800. Pero se tuvo que abandonar dicha idea, en favor de mejorar el rendimiento. Mientras que la CPU de la 7600 se mantuvo compatible con el del 6600, las unidades de procesadores periféricos (PPU) eran diferentes, lo que requería el uso de un sistema operativo distinto.
Un CDC 6600 está en exhibición en el Computer History Museum in Mountain View. El único CDC serie 6000 en funcionamiento ha sido restaurado por el Living Computers: Museum + Labs.

## Historia

Después de una máquina experimental conocida como el Pequeño Personaje, Control Data Corporation entregó el CDC 1604, uno de los primeros computadores basados en transistores y que fue de las máquinas más rápidas en el mercado.
El Consejo de Administración estaba encantado con esta nueva máquina, y realizaron planes para una nueva serie de máquinas que estuvieran más adaptadas al uso comercial. Cray no estaba interesado en ese proyecto, y se puso como meta crear una nueva máquina, que fuera 40 veces más rápida que el CDC 1604.
Durante esta etapa, CDC y Cray no se pusieron de acuerdo en la dirección que la empresa debería tomar. Finalmente, Cray habló con William Norris, directivo de CDC y le dejó claro que si las cosas no cambiaban, él se marcharía de la empresa. Norris sabía lo importante que era Cray, así que le dio luz verde para montar un laboratorio donde él quisiera. Seymour Cray trabajó junto a Tim Thornton, el arquitecto del sistema y el “genio oculto” de la 6600.

## Descripción

Las máquinas de la época, usaban una CPU que generalmente, iba más lenta que la memoria principal. Por ejemplo, un procesador podría tomar 15 ciclos para multiplicar dos números, mientras que cada acceso a la memoria solo tomaba uno o dos. Esto significó que hubo un tiempo considerable en que la memoria principal estaba ociosa. Fue ese el tiempo de inactividad lo que el 6600 explotaba. En lugar de tratar que la CPU se encargara de todas las tareas, la CPU de la 6600 solo se encargaba de la aritmética y la unidad lógica. Esto dio lugar a una CPU más pequeña que podría funcionar a una velocidad de reloj más alta. Junto con las velocidades más rápidas de conmutación de los transistores de silicio, la nueva CPU de la 6600 era superior a las demás. La base de la CPU 6600 es lo que hoy se conoce como sistema RISC, que se basada en realizar operaciones sencillas de forma paralela, para dejar antes la memoria libre.

### Procesador central

El procesador central del 6600 incluye 10 unidades funcionales paralelas, permitiendo múltiples instrucciones. En la actualidad, se conoce como un diseño superescalar, pero en aquellos tiempos era único. A diferencia de los diseños más modernos, las unidades funcionales aún no habían sido canalizadas. Dicha unidad se quedaba ocupada cuando se le emitía una instrucción y se mantenía ocupada hasta que la instrucción terminara. En el mejor de los casos, una instrucción podía ser emitida a una unidad funcional cada ciclo de reloj de 100 ns.

### Organización de la memoria

Los programas de usuario se limitan a usar solo una zona contigua de la memoria principal. La parte de la memoria de un programa que está en ejecución, es controlado por el RA (Dirección Relativa) y FL (longitud del campo). Menos los primeros CDC 6600, las máquinas podían ser configuradas con un almacenamiento opcional de extensión del núcleo (ECS). El ECS podía ser utilizado para una variedad de propósitos, incluyendo el guardar matrices de datos que eran demasiados grandes para la memoria principal, intercambio de archivos o la comunicación en un completo multi-ordenador central.

## El sistema operativo y su programación

Las máquinas funcionaron al principio con un sistema llamado COS (Chippewa Operating System) que se basaba más en el modelo anterior, el CDC 3000, pero necesitaban tener algo funcionando para poder realizar tests al nuevo CDC 6600. Sin embargo, las máquinas estaba destinadas a ser entregadas con un sistema más potente, el SIPROS (Simultaneous Processing Operating System), que estaba en desarrollo en la División de Ciencias de la compañía, en Los Ángeles. Los clientes se quedaron impresionados con las características de SIPROS, y muchos de ellos tenían escritos en sus contratos que el sistema que habían contratado era el SIPROS.
Pero SIPROS fue todo un fracaso. Los plazos de entrega no se cumplían y los costes de su realización eran cada vez más altos. Meses más tarde, con las máquinas ya listas para ser entregadas, el proyecto fue cancelado. Los programadores tuvieron que seguir trabajando con las mejoras del COS. En ese momento, el desarrollo de sistemas operativos se dividió en dos grupos. El grupo que estaba trabajando antes en SIPROS, realizaron un nuevo sistema llamado SCOPE (Supervisory Control Of Program Execution), que era muy distinto a COS y tuvieron bastantes problemas de fiabilidad.
Por otro lado, el sistema COS empezó a mejorarse y evolucionó a MACE, aunque nunca fue un producto oficial. Más adelante, MACE sería la base del sistema Kronos. Pero CDC prefirió seguir la línea del sistema SCOPE. Por los años 70, consiguieron unificar SCOPE y Kronos, dando lugar al nuevo sistema NOS (Network Operating System). Para darle mejor imagen a NOS, CDC renombró el sistema de SCOPE a NOS, ya que muchos clientes preferían mantener el anterior sistema.