CDC 6600

El CDC 6600. Detrás de la consola del sistema hay dos "brazos" de la carcasa en forma de cruz con paneles abiertos. Los módulos individuales se pueden ver en el interior. Los soportes de los módulos tienen bisagras para hacer accesibles los soportes detrás de ellos. Cada brazo de la máquina tenía hasta cuatro de estos soportes. El sistema de refrigeración se puede ver a la derecha.
Consola del sistema de un sistema CDC-6600. Con este diseño avanzado, las pantallas y los teclados reemplazaron los cientos de interruptores y luces indicadoras que se encontraban en las consolas del sistema de la época. Las pantallas controladas por software se utilizaron para mostrar texto en tres tamaños de fuente seleccionables y también pudieron dibujar gráficos simples. A diferencia de las modernas pantallas de gráficos de trama , la consola tenía dos pantallas vectoriales ; en su fuente , cada glifo constaba de una serie de vectores. La finalización automática de palabras clave permitió una entrada de comandos más rápida.

El CDC 6600 fue el buque insignia de los sistemas mainframe de la serie CDC-6000 de Control Data Corporation . Ampliamente considerado como el primer superordenador exitoso , superó al anterior poseedor del récord de la industria, el IBM 7030 Stretch , por un factor de tres. Con una salida de hasta tres  MegaFLOPS , la CDC 6600 fue la computadora más rápida del mundo desde 1964 hasta 1969, cuando perdió este estatus frente a su sucesora, la CDC 7600 .

Se entregaron muchas muestras a varios laboratorios de armas nucleares y algunas llegaron a los laboratorios informáticos de las universidades. Un CDC 6600 se exhibe en el Museo de Historia de la Computación en Mountain View, California . La única máquina que aún funciona de la serie CDC-6000 se restauró en Living Computers: Museum + Labs en Seattle y se puede utilizar en línea allí.

Historia e impacto

Los primeros productos de CDC se basaron en las máquinas desarrolladas en ERA , que Seymour Cray tuvo que actualizar después de pasar a CDC. Después de una máquina experimental llamada Little Character , la CDC 1604 se envió en 1960 , una de las primeras computadoras comerciales basadas en transistores y una de las máquinas más rápidas del mercado. La gerencia estaba encantada y planeó una nueva serie de máquinas que se adaptarían mejor al uso comercial. Por ejemplo, deben incluir instrucciones sobre cómo procesar caracteres y guardar registros. Cray no estaba interesado en un proyecto de este tipo y se propuso el objetivo de producir una nueva máquina que fuera 50 veces más rápida que la 1604. Cuando se le pidió que produjera un informe detallado de los planes para uno y cinco años en el futuro, respondió que su objetivo de cinco años era "hacer la mejor computadora del mundo", "la más grande" en ese momento, sinónimo de "la más rápida". ”- y su plan de un año era“ haber recorrido una quinta parte del camino ”.

Después de mudarse a una nueva oficina cerca de la sede original de los CDC, su equipo central comenzó a experimentar con versiones de alta calidad de los transistores "baratos" que Cray había usado en el 1604. Después de muchos intentos, se encontraron con que los transistores en germanio simplemente no permitían operar mucho más rápido que en 1604. La "máquina de negocios" que la gerencia quería originalmente y ahora como base se formó la serie CDC 3000 , la provocaron en la medida de lo posible. Como solución, Cray decidió trabajar con los entonces nuevos transistores basados ​​en silicio de Fairchild Semiconductor , que acababan de llegar al mercado y ofrecían un rendimiento de conmutación drásticamente mejorado.

Durante ese tiempo, CDC pasó de ser una startup a una gran corporación, y Cray se sintió cada vez más frustrado con lo que consideraba requisitos de gestión ridículos. La situación llegó a un punto crítico cuando el nuevo CDC 3600 se acercó a la preparación de producción en 1962 y pareció ser exactamente lo que la gerencia quería y cuando lo querían. Cray finalmente le dijo al director ejecutivo de los CDC, William Norris, que algo tenía que cambiar o dejaría la empresa. Norris sintió que era demasiado importante para perderlo y le dio luz verde a Cray para instalar un nuevo laboratorio donde quisiera.

Después de una búsqueda rápida, Cray decidió regresar a su ciudad natal de Chippewa Falls, Wisconsin , donde compró un terreno y abrió un nuevo laboratorio.

Aunque esto provocó un retraso prolongado en el diseño de su nueva máquina, el desarrollo en el nuevo laboratorio comenzó rápidamente sin ninguna intervención de la dirección. En ese momento, los nuevos transistores se estaban volviendo bastante confiables, y los módulos construidos con ellos en su mayoría funcionaron bien la primera vez. El 6600 tomó forma, con Cray trabajando con Jim Thornton, arquitecto de sistemas y "genio secreto" del 6600.

Los primeros CDC 6600 se entregaron a Livermore y Los Alamos en 1965 . Rápidamente se convirtieron en un sistema indispensable en los círculos de computación científica y matemática, con sistemas suministrados al Instituto Courant de Ciencias Matemáticas , CERN , el Laboratorio de Radiación Lawrence y muchos otros. Se entregaron en total unas 50 copias, según otras fuentes más de 100.

Cray recurrió de inmediato a su modelo sucesor, que se enviaría como CDC 7600 , y estableció una meta diez veces superior al rendimiento del 6600. Las últimas computadoras CDC Cyber 70 y 170 eran muy similares en diseño general al CDC 6600 y casi completamente compatibles con versiones anteriores.

El 6600 fue tres veces más rápido que el poseedor del récord anterior, el IBM 7030 Stretch ; esto alarmó a IBM . El entonces director ejecutivo Thomas J. Watson, Jr. escribió un memorando a su personal: “La semana pasada, Control Data anunció ... el sistema 6600. Entiendo que solo hay 34 personas trabajando en el laboratorio que está desarrollando el sistema, incluido el cuidador. 14 de ellos son ingenieros y 4 son programadores ... Si comparo estos modestos esfuerzos con nuestras extensas actividades de desarrollo, no puedo entender por qué perdimos nuestra posición como líderes de la industria al permitir que otra persona ofreciera la computadora más poderosa del mundo ”. La respuesta de Cray fue sarcástico: "Parece que el Sr. Watson respondió a su propia pregunta".

descripción

Las máquinas típicas de la época usaban una sola CPU para ejecutar todo el sistema. Un programa típico primero cargaría datos en la memoria principal (a menudo usando código de biblioteca preempaquetado), los procesaría y luego los volvería a escribir. Estas diversas tareas requerían un extenso conjunto de instrucciones y, por lo tanto, una CPU compleja. Esto a su vez implicó una gran CPU, lo que provocó retrasos en la señal mientras la información fluía entre sus módulos individuales. Estos retrasos limitaron el rendimiento de la máquina; solo podía funcionar con una frecuencia de reloj que permitiera que las señales llegaran al siguiente módulo a tiempo.

Cray adoptó un enfoque diferente. En ese momento, las CPU tendían a funcionar más lentamente que la memoria a la que estaban conectadas. Por ejemplo, un procesador necesitaba 15 ciclos para multiplicar dos números, mientras que solo se requerían uno o dos para cada acceso a la memoria. Esto significó que la memoria estuvo inactiva durante un período de tiempo significativo. Fue este tiempo de inactividad que aprovechó el 6600.

El CDC 6600 utilizó un procesador principal simplificado diseñado para realizar operaciones matemáticas y lógicas lo más rápido posible. Para hacer esto, tuvo que hacerse lo más pequeño posible para reducir la longitud del cableado y los retardos de señal asociados. Esto condujo a la carcasa principal (en su mayoría) en forma de cruz de la máquina, en la que las placas de circuito para la CPU estaban dispuestas cerca del centro. La CPU estaba respaldada por diez procesadores periféricos, que se usaban para entrada / salida y para la transferencia de datos a la CPU. El 6600 utilizó una palabra de 60 bits y una representación de números enteros en complemento a uno , que las máquinas CDC posteriores mantuvieron hasta finales de la década de 1980. Esto los convirtió en los últimos sistemas con una arquitectura de este tipo, junto con el UNIVAC 1100/2200 y algunos DSP .

En lugar de realizar todas las tareas informáticas y de control como otras CPU, las CPU 6600 solo realizaban operaciones aritméticas y lógicas. Esto permitió una CPU mucho más pequeña que podría funcionar a una velocidad de reloj más alta. En combinación con la mayor velocidad de conmutación de los transistores de silicio, el nuevo diseño de la CPU superó con creces todas las alternativas disponibles en ese momento. El nuevo diseño funcionó a 10 MHz (reloj de 100 ns) unas diez veces más rápido que otras máquinas del mercado. El procesador simple no solo era más rápido, sino que también ejecutaba instrucciones en menos ciclos de reloj. Por ejemplo, la CPU podría realizar una multiplicación en diez ciclos.

Procesadores periféricos (propiedades)

La CPU solo tenía un conjunto limitado de instrucciones simples: mientras que las CPU típicas de la época tenían un conjunto complejo de instrucciones que también incluían instrucciones para todas las tareas normales de "limpieza", como el acceso a la memoria y la entrada / salida , Cray implementó estos comandos en el 6600. en cambio, en “procesadores periféricos” (PP) separados y más simples que estaban destinados exclusivamente a tales tareas. Como resultado, la CPU se manejó con un conjunto de instrucciones mucho más pequeño. Esta fue la primera implementación de lo que más tarde se conoció como Computadora de conjunto de instrucciones reducido (RISC).

El funcionamiento en paralelo de la CPU, los procesadores periféricos (PP) y las E / S aumentó considerablemente el rendimiento de la máquina. Normalmente, una máquina con varios procesadores habría costado mucho más. La clave del diseño del 6600 fue hacer que los PP fueran lo más simples posible. Se basaron en el sencillo CDC 160-A de 12 bits , que corría mucho más lento que la CPU, recopilaba datos y los transfirió como ráfagas a la memoria principal a través de hardware dedicado a alta velocidad .

Los 10 PP se implementaron virtualmente; solo había un procesador como hardware. Esto funcionó con conjuntos de registros de 10 PP, que representaban las instancias de 10 PP (similares a los procesadores de subprocesos múltiples modernos ) y se denominaron barril . Hablando en sentido figurado, el barril “giró” paso a paso, con cada conjunto de registros PP asignado a una ranura en la CPU PP. La CPU llevó a cabo el comando del PP respectivo en su totalidad o en parte, después de lo cual el barril “giró” nuevamente y asignó el conjunto de registros (estado) del siguiente PP a la CPU. Fueron necesarios varios "giros" del cañón para procesar una instrucción. Un "giro" de barril completo tomó 1000 nanosegundos (100 nanosegundos por PP), y una instrucción tomó de uno a cinco "turnos", o más en el caso de un comando de transferencia de datos.

Set de instrucciones arquitectura

La CPU 6600 se llamaría hoy sistema RISC , en el que el procesador está diseñado para comandos comparativamente simples que solo tienen acceso a memoria limitado y definido con precisión. Muchas otras máquinas usan instrucciones complejas, por ejemplo, obtener un operando de la memoria y agregarlo a un registro mediante una sola instrucción de máquina. En el 6600, cargar el valor de la memoria requería un comando separado y agregar un segundo. En teoría, los accesos adicionales a la memoria hicieron que el procesamiento fuera más lento, pero esto se vio compensado por el hecho de que el código bien organizado podía procesar varios comandos al mismo tiempo. Esta simplificación también obligó a los programadores a ser muy conscientes de sus accesos a la memoria y, por tanto, a codificar con cuidado para reducirlos al máximo.

Modelos

La serie CDC-6000 constaba de cuatro modelos básicos: CDC 6400, CDC 6500, CDC 6600 y CDC 6700. Solo se diferenciaban en sus CPU, que eran de dos tipos, la CPU 6400 y la CPU 6600. La CPU 6400 tenía una única unidad aritmética completa y no tenía unidades aritméticas independientes . Por lo tanto, los tiempos de ejecución de las declaraciones no pudieron superponerse. Por ejemplo, si una instrucción de suma siguió inmediatamente a una instrucción de multiplicación en una CPU 6400, la suma no podría comenzar hasta que finalice la multiplicación, de modo que el tiempo total de ejecución de las dos instrucciones fuera la suma de sus tiempos de ejecución individuales. En contraste, la CPU 6600 tenía varias unidades aritméticas que podían funcionar al mismo tiempo, i. H. " Paralelo ", que permitió a la CPU superponer los tiempos de ejecución de los comandos. Por ejemplo, una CPU 6600 ya podría comenzar a ejecutar una instrucción de suma en el siguiente ciclo de CPU después del inicio de una instrucción de multiplicación (siempre que, por supuesto, el resultado de la multiplicación no sea un operando de la suma); por lo tanto, el tiempo de ejecución total de las dos instrucciones fue simplemente el tiempo de ejecución (más largo) de la instrucción de multiplicación. La CPU 6600 también tenía una pila de instrucciones , un tipo de caché de instrucciones , que ayudó a aumentar el rendimiento de la CPU al reducir el tiempo de inactividad de la CPU causado por esperar a que la memoria recargue las instrucciones. Los dos tipos de CPU eran compatibles con las instrucciones, por lo que un programa que pudiera ejecutarse en uno de los dos también se ejecutaría en el otro, pero más rápido en la CPU 6600. De hecho, todos los modelos de la serie 6000 eran totalmente compatibles entre sí. El CDC 6400 tenía una CPU (una CPU 6400), el CDC 6500 tenía dos CPU (ambas 6400 CPU), el CDC 6600 tenía una CPU (una CPU 6600) y el CDC 6700 tenía dos CPU (una CPU 6600 y una 6400 UPC).

Procesador central (CP)

Registro de los CDC 6 × 00
5 9 . . . 1 7 . . . 0 0 (Posición de bit)
Registro de operando (60 bits)
X0 Registro 0
X1 Registro 1
X2 Registro 2
X3 Registro 3
X4 Registro 4
X5 Registro 5
X6 Registro 6
X7 Registro 7
Registro de direcciones (18 bits)
  A0 Direccion 0
  A1 Dirección 1
  A2 Dirección 2
  A3 Direccion 3
  A4 Direccion 4
  A5 Direccion 5
  A6 Direccion 6
  A7 Direccion 7
Registro de incremento (18 bits)
  B0 (todos los bits cero) Incremento 0
  B1 Incremento 1
  B2 Incremento 2
  B3 Incremento 3
  B4 Incremento 4
  B5 Incremento 5
  B6 Incremento 6
  B7 Incremento 7

El procesador central (CP) y la memoria principal de las máquinas 6400, 6500 y 6600 tenían una longitud de palabra de 60 bits. El CP tenía ocho registros de 60 bits de propósito general X0 a X7, ocho registros de direcciones de 18 bits A0 a A7 y ocho registros de "incremento" de 18 bits B0 a B7. B0 se mantuvo permanentemente a cero por el hardware. Muchos programadores han encontrado útil establecer B1 en 1 y tratarlo de manera similar como un valor fijo.

No había instrucciones CP para entrada y salida; estos se llevaron a cabo a través de procesadores periféricos (PP, ver más abajo). Tampoco había códigos de operación separados para cargar o guardar entre la memoria principal y los registros. Más bien, esto sucedió como un efecto secundario de la asignación a ciertos registros A: al configurar A1 en A5, la palabra en esta dirección de memoria se cargó en X1 a X5; al configurar A6 o A7, se guardó una palabra de X6 o X7. No se asociaron efectos secundarios con A0. Una unidad de almacenamiento / carga de hardware separada, la caja de trucos , realizaba el movimiento de datos real independientemente de la operación del flujo de instrucciones, de modo que se pudieran completar otras operaciones mientras aún se estaba accediendo a la memoria; esto requirió lo que, en el mejor de los casos, ocho ciclos.

El 6600-CP contenía diez unidades funcionales paralelas con las que se podían procesar varias instrucciones al mismo tiempo. Hoy en día, esto se conoce como un diseño de procesador súper escalar , pero era único en ese momento. A diferencia de la mayoría de los diseños de CPU modernos, las unidades funcionales no estaban conectadas por canalización. La unidad funcional estaba ocupada cuando se le dio una instrucción y permaneció así durante todo el tiempo que tardó en ejecutar esa instrucción. (Por el contrario, en las unidades aritméticas del CDC 7600 , se introdujo la canalización ). En el mejor de los casos, todos podrían recibir un comando de 100 ns para una calculadora. El sistema leyó y decodificó las instrucciones de la memoria lo más rápido posible, generalmente más rápido de lo que podrían ejecutarse, y las pasó a las unidades aritméticas y lógicas para su procesamiento. Éstas eran:

  • Multiplicación de coma flotante (dos instancias)
  • División de punto flotante
  • Suma de punto flotante
  • Suma de enteros "largos"
  • Incrementador (dos instancias; carga / guardado de memoria realizado)
  • cambiar
  • lógica booleana
  • rama

Las operaciones de punto flotante desempeñaron un papel importante en esta arquitectura: el CDC 6600 (y sus parientes) fueron prácticamente los únicos capaces de realizar una multiplicación de punto flotante de 60 bits en un tiempo comparable al de una rama.

Se realizaron sumas y restas de punto fijo de 60 bits en la unidad de suma larga , con números negativos representados por su complemento a uno . La multiplicación de coma fija se llevó a cabo como un caso especial en la unidad de multiplicación de coma flotante. Si el exponente era cero, la unidad FP realizó una multiplicación de punto flotante de precisión simple de 48 bits y eliminó la parte superior con el exponente, produciendo un resultado entero de 48 bits. La división de enteros se realizó mediante una macro que convirtió a números de punto flotante y viceversa.

Las instrucciones ejecutadas previamente se almacenaron en una caché de ocho palabras llamada pila . Los saltos dentro de la pila eran más rápidos que los saltos fuera de la pila porque no se requería recuperación de memoria. La pila se eliminó mediante una instrucción de salto incondicional, por lo que los saltos incondicionales en los extremos del bucle generalmente se escribían como saltos condicionales que siempre tenían éxito.

El sistema utilizó un reloj de 10 MHz con una señal de cuatro fases. La multiplicación de punto flotante tomó diez ciclos, la división 29 y el rendimiento total, incluidos los retrasos en la memoria y otros problemas, fue de aproximadamente 3  MFLOPS . Con los mejores compiladores disponibles, los programas FORTRAN podrían contar con una salida continua de alrededor de 0.55 MFLOPS hacia el final de la historia de la máquina.

Organización de almacenamiento

Los agentes de usuario solo pueden usar un área contigua de la memoria principal. La parte de la memoria a la que tenía acceso un programa en ejecución estaba determinada por los registros RA (Dirección relativa) y FL (Longitud de campo) a los que el programa de usuario no tenía acceso. Cuando un programa de usuario intentó leer o escribir una palabra en la memoria principal en la dirección a, el procesador primero verificó si a estaba entre 0 y FL-1. Si este fuera el caso, el procesador accedió a la palabra en la memoria principal en la dirección RA + a. Este proceso se conoció como reubicación con destino a la base . Cada programa de aplicación veía la memoria principal como un bloque contiguo de palabras de longitud FL, comenzando con la dirección 0; de hecho, el programa podría estar en cualquier lugar de la memoria física. Con esta técnica, el sistema operativo podría mover cualquier programa de aplicación a la memoria principal siempre que el registro RA refleje su posición en la memoria. Un programa de usuario que intentaba acceder a la memoria fuera del rango permitido (es decir, con una dirección no menor que FL) se interrumpió y fue terminado por el sistema operativo. En este caso, el sistema operativo pudo haber creado un volcado de memoria que registró el contenido de la memoria del programa y lo guardó en un archivo para que el desarrollador del programa pudiera saber qué había sucedido. Tenga en cuenta la diferencia con los sistemas de almacenamiento virtual ; en este caso, todo el espacio de memoria direccionable de un proceso debe estar en la memoria principal, debe ser contiguo y su tamaño no debe ser mayor que la capacidad de memoria real.

Con la excepción de las primeras siete copias de la serie CDC 6000 , todos los dispositivos se pueden configurar con un sistema de almacenamiento de núcleo extendido (ECS) opcional . ECS se hizo a partir de un tipo diferente de memoria central que la memoria principal, cableado con solo dos cables por núcleo en lugar de cinco cables para eso. Esto lo hacía más lento que la memoria principal, pero era más económico de fabricar. Dado que realizaba transferencias muy amplias, su tasa de transferencia secuencial era la misma que la de la memoria principal. Una CPU 6000 podría realizar transferencias de memoria en bloque directamente entre el programa de un usuario (o sistema operativo) y la unidad ECS. Se utilizaron rutas de datos amplias, por lo que esta fue una operación muy rápida. De manera similar a la memoria principal, los límites de memoria en el ECS fueron administrados por el sistema operativo con un mecanismo de longitud de campo / dirección relativa. ECS podría usarse para una variedad de propósitos, incluidos arreglos de datos de usuario que eran demasiado grandes para el almacenamiento central para almacenar archivos de uso frecuente, para descargar e incluso como una ruta de comunicación en un complejo de múltiples mainframe.

Procesadores periféricos (PP)

Para manejar las tareas de "limpieza" que se asignaron a la CPU en otros diseños, Cray agregó diez procesadores más, algunos de los cuales estaban basados ​​en su anterior computadora CDC 160-A. Estas computadoras, llamadas procesadores periféricos o PP, eran computadoras completas por derecho propio, pero estaban optimizadas para tareas de E / S y para ejecutar el sistema operativo. (Partes sustanciales del sistema operativo se ejecutaban en los PP, por lo que la mayor parte del rendimiento del procesador central permanecía disponible para los programas de usuario). Solo los PP tenían acceso a los canales de E / S. Uno de los PP estaba a cargo del control general de la máquina, incluido el control del programa que se ejecutaba en la CPU principal, mientras que al otro se le asignaban varias tareas de E / S. Si el programa CP tenía que ejecutar una función del sistema operativo, realizaba una solicitud a una ubicación de memoria específica (dirección de referencia + 1) que era monitoreada por PP0. Si es necesario, PP0 asignó otro PP para cargar el código requerido y procesar la solicitud. A continuación, el PP autorizó RA + 1 para informar al programa CP de la finalización de la tarea.

El papel especial del PP0 en el control de la máquina era un posible punto único de falla , ya que, en caso de mal funcionamiento, toda la máquina podría fallar, incluso si los otros nueve PP y la CPU todavía funcionaban correctamente. Cray solucionó este punto débil en el diseño del modelo sucesor 7600 permitiendo que cada PP sea el controlador y la CPU asigne este rol a otro.

Cada PP tenía su propia memoria con 4096 palabras de 12 bits; esta memoria se utilizó tanto para el búfer de E / S como para el almacenamiento de programas. Por el contrario, los diez PP utilizaron un procesador común en una configuración llamada barril y ranura . Esto significaba que la ranura (procesador) realizaba un ciclo de instrucción del primer PP, luego un ciclo de instrucción del segundo, y así sucesivamente en forma de turnos . Esto se hizo tanto por razones de costo como porque se requerían 10 ciclos de reloj PP para acceder a la memoria del CP: si un PP accedía a la memoria del CP, los datos estaban disponibles la próxima vez que el PP recibiera su tiempo de ranura.

Longitudes de palabras, caracteres

El procesador central tenía palabras de 60 bits, mientras que los procesadores periféricos tenían palabras de 12 bits. CDC utilizó el término byte para las unidades de 12 bits utilizadas por PP. La longitud del carácter era de 6 bits y las instrucciones del CP eran de 15 bits o de 30 bits con un campo de dirección firmado de 18 bits, permitiendo este último un espacio de almacenamiento directamente direccionable de 128 K palabras de la memoria central. (Expresado en bytes modernos de 8 bits, esto era 0.94 MB.) La naturaleza firmada de los registros de direcciones limitaba un solo programa a 128K palabras. (Las máquinas posteriores compatibles con CDC 6000 podrían tener 256 K palabras o más de memoria principal si el presupuesto lo permitiera, pero los agentes de usuario individuales todavía estaban limitados a 128 K palabras). Las instrucciones de la CPU tenían que comenzar en un límite de palabras cuando eran objetivo de una instrucción de salto o retorno de subrutina, que a veces requiere instrucciones de no operación para completar los últimos 15, 30 o 45 bits de una palabra. Los programadores ensambladores experimentados podían optimizar sus programas llenando estas áreas no operativas con otras instrucciones que fueran necesarias más adelante en el programa.

Los caracteres de 6 bits de una codificación denominada Código de visualización CDC se pueden utilizar para almacenar hasta 10 caracteres en una palabra. Permitieron un juego de caracteres de 64 caracteres, suficiente para todas las letras mayúsculas, dígitos y algunos signos de puntuación y en todo caso para escribir FORTRAN o imprimir informes financieros o científicos. De hecho, el código de visualización CDC se utilizó en dos variantes: 64 caracteres y 63 caracteres. El conjunto de caracteres de 64 dígitos tenía la desventaja de que dos caracteres de dos puntos consecutivos se interpretaban como el final de una línea si estaban al final de una palabra de 10 bytes. Una variante posterior, llamada Código de visualización 6/12 , también se utilizó en los sistemas de tiempo compartido KRONOS y NOS para utilizar el conjunto completo de caracteres ASCII en gran parte compatible con software más antiguo.

Como no había instrucciones para direccionar bytes, tenía que escribir código para empaquetar caracteres en palabras y moverlos. Las palabras muy grandes y la capacidad de memoria comparativamente pequeña significaban que los programadores a menudo ahorraban memoria al empaquetar datos en palabras a nivel de bits.

Debido a la gran longitud de las palabras y los 10 caracteres por palabra, a menudo era más rápido procesar varias palabras a la vez que descomprimirlas, procesarlas y volver a empaquetarlas. Por ejemplo, el compilador CDC- COBOL fue bastante bueno procesando campos decimales usando esta técnica. Estas técnicas se utilizan a menudo en la actualidad en las instrucciones "multimedia" de los procesadores actuales.

Diseño físico

Un módulo lógico CDC-6600 con 64 transistores de silicio en tecnología Cordwood . Los conectores coaxiales son conexiones de prueba. El módulo se enfrió por conducción a través del panel frontal. El CDC 6600 contenía casi 6.000 módulos de este tipo.

La máquina estaba alojada en una carcasa en forma de signo más, con una bomba y un intercambiador de calor en los 46 cm más externos de los cuatro brazos. El enfriamiento se realizó con freón , que circuló en la máquina y transfirió calor a un suministro externo de agua de enfriamiento. Cada brazo podía acomodar cuatro chasis, cada uno de 20 cm de grosor, con bisagras cerca del centro y abriéndose como un libro. La intersección del "más" estaba llena de cables que conectaban el chasis. Los chasis se numeraron desde uno (con los diez PP y sus memorias y los doce canales de E / S bastante mínimos) hasta 16. La memoria principal de la CPU se distribuyó en muchos chasis. En un sistema con sólo 64K palabras de memoria principal, se omitió uno de los brazos del "más".

La lógica de la máquina estaba empaquetada en módulos de aproximadamente 6,4 cm cuadrados y 2,5 cm de espesor. Cada módulo tenía un conector (30 pines, dos filas verticales de 15 cada una) en la parte posterior y seis puertos de prueba en la parte frontal. El módulo se colocó entre dos placas de enfriamiento de aluminio para disipar el calor. Consistía en dos placas de circuito en paralelo, con los componentes montados en una de las placas de circuito o entre las dos placas de circuito. Esto resultó en una densidad de empaquetamiento muy alta - generalmente no se repara, pero con buenas propiedades de transferencia de calor y como se conoce a la construcción de cordwood inglesa .

Sistema operativo y programación

Hubo un punto delicado en el desarrollo del sistema operativo 6600 : fechas límite incumplidas . Las máquinas tenían originalmente un sistema de control de secuencia muy simple llamado COS (Sistema Operativo Chippewa), que fue rápidamente "ensamblado" sobre la base del anterior sistema operativo CDC 3000 para tener algo listo para la prueba del sistema antes de la entrega. Sin embargo, las máquinas vendrían con un sistema mucho más poderoso llamado SIPROS (Sistema Operativo de Procesamiento Simultáneo), que fue desarrollado en la División de Ciencias de Sistemas de la compañía en Los Ángeles . Los clientes quedaron impresionados con la lista de funciones de SIPROS, y muchos habían incluido SIPROS en sus contratos de suministro.

SIPROS resultó ser un gran fiasco. Los programas de desarrollo continuaron deslizándose, lo que le costó a los CDC ganancias significativas en forma de multas por retrasos en las entregas. Después de unos meses de espera con máquinas que de otro modo estaban listas para su envío, el proyecto finalmente se canceló. Los programadores que habían trabajado en COS tenían poca confianza en SIPROS y habían continuado trabajando para mejorar COS.

El desarrollo del sistema operativo se dividió luego en dos campos. El desarrollo de COS aprobado por los CDC se llevó a cabo en el laboratorio de desarrollo de software de Sunnyvale, California . Muchos clientes terminaron recibiendo sus sistemas con este software, que entonces se conocía como SCOPE (Supervisory Control Of Program Execution). La versión 1 de SCOPE era esencialmente un COS desmontado; La versión 2 de SCOPE admitía nuevos dispositivos y sistemas de archivos. La versión 3 de SCOPE incluía soporte para archivos permanentes, soporte de lotes remotos EI / 200 y soporte de tiempo compartido INTERCOM . SCOPE siempre ha tenido importantes problemas de fiabilidad y mantenimiento.

CDC 6000 Series SCOPE 3.1 se crea a sí mismo mientras se ejecuta en el emulador CYBER de escritorio

El 'desarrollo subterráneo' de COS se llevó a cabo en la planta de ensamblaje en Arden Hills, Minnesota . MACE ([Greg] Mansfield y [Dave] Cahlander Executive) fue escrito en gran parte por un solo programador fuera del horario comercial cuando las máquinas estaban disponibles. La funcionalidad era esencialmente la misma que la COS y SCOPE 1. Se mantuvo el sistema de archivos COS anterior, pero la modularidad del código se mejoró significativamente para mejorar la confiabilidad del sistema y la adaptabilidad a los nuevos dispositivos de almacenamiento. MACE nunca fue un producto oficial, pero muchos clientes pudieron obtenerlo de CDC.

El software no oficial MACE se seleccionó posteriormente en lugar del producto oficial SCOPE como base para el próximo sistema operativo de los CDC, KRONOS , que recibió su nombre del dios griego del tiempo . Se dice que Dave Mansfield llamó a la biblioteca de la Universidad de Minnesota y pidió una palabra antigua que significa "tiempo". Escribió "Kronos" en lugar de "Chronos". La principal razón de marketing fue el desarrollo de la función de tiempo compartido TELEX y la función de lote remoto BATCHIO. Kronos continuó usando el sistema de archivos COS / SCOPE-1 y agregó una función de archivo permanente.

NOS (Network Operating System) se desarrolló como un intento de estandarizar los productos del sistema operativo SCOPE y Kronos . NOS debería ser el único sistema operativo para todas las máquinas CDC, un hecho que CDC promovió fuertemente. Muchos clientes de SCOPE seguían dependiendo del software de la arquitectura SCOPE, por lo que CDC simplemente lo renombró a NOS / BE (Batch Environment) y podría afirmar que todos los usuarios estaban ejecutando NOS. En la práctica, fue mucho más fácil cambiar el código base de Kronos para agregar funciones SCOPE que al revés.

Otros sistemas operativos que nunca fueron pensados ​​para el cliente también se fabricaron en las cercanías de la planta de ensamblaje. Esto incluyó las herramientas de ingeniería SMM para pruebas de hardware y KALEIDOSCOPE para las “pruebas de humo” de software. Otra herramienta que los técnicos de campo de los CDC usaban con frecuencia para las pruebas era MALET (Lenguaje de aplicación de mantenimiento para pruebas de equipos), que se usaba para probar componentes y dispositivos después de reparaciones o trabajos de servicio por parte de ingenieros. Las condiciones de prueba a menudo utilizaron paquetes de disco duro y cintas magnéticas que tenían fallas deliberadamente para determinar si las fallas fueron reconocidas por MALET y el técnico.

NOS 1.3

Los CDC utilizaron los nombres SCOPE y COMPASS para las series CDC-6000, incluidas las series 6600 y CDC-3000 :

  • COMPASS era el nombre de los lenguajes ensambladores en ambas familias.
  • Los sistemas operativos de las series 3000 y 6000 se denominaron SCOPE.

CDC 7600

El CDC 7600 fue pensado originalmente para ser totalmente compatible con las máquinas existentes de la serie 6000. Originalmente se llamó CDC 6800. Sin embargo, durante el desarrollo, los desarrolladores se dieron cuenta de que mantener la compatibilidad total con las máquinas existentes de la serie 6000 limitaría el aumento potencial en el rendimiento y decidieron sacrificar la compatibilidad por el rendimiento. Mientras que la CPU del CDC 7600 era esencialmente compatible con las instrucciones de las CPU 6400 y 6600 y habilitaba la portabilidad del código en el nivel de código fuente del lenguaje de programación de nivel superior , el hardware del CDC 7600, especialmente el de sus unidades de procesamiento periférico ( PPU), fue completamente diferente. El CDC 7600 requería un sistema operativo diferente. Esto resultó ser una bendición, ya que los diseñadores pudieron mejorar algunas de las características del diseño 6000, como la dependencia total de este último de los procesadores periféricos (PP), particularmente el primero (llamado PP0), para controlar el funcionamiento del sistema. todo el sistema informático, incluida la CPU. A diferencia de la CPU 6600, la CPU del CDC 7600 podría controlar su propia operación. De hecho, las máquinas de la serie 6000 se han actualizado con esta función .

literatura

enlaces web

Evidencia individual

  1. Se puede encontrar una muestra de este tipo de letra peculiar en la portada de James E. Thornton: Design of a Computer - The Control Data 6600 . Scott, Foresman and Co, Glenview, IL 1970, LCCN  74-096462 ( bitsavers.org [PDF; consultado el 7 de octubre de 2019]).
  2. ^ Andrew RL Cayton , Richard Sisson, Chris Zacher: El medio oeste estadounidense: una enciclopedia interpretativa . 2006, ISBN 0-253-00349-0 .
  3. Alexander Smith: CDC 6600 - Interludio histórico: del mainframe al miniordenador Parte 2, IBM y los siete enanitos: crean mundos . Consultado el 7 de octubre de 2019.
  4. ^ Haciendo un mundo de diferencia: ingeniería de ideas en realidad . Academia Nacional de Ingeniería, 2014, ISBN 0-309-31265-5 : "Diseñada por Seymour Cray, la CDC 6600 era casi tres veces más rápida que la siguiente máquina más rápida de su época, la IBM 7030 Stretch".
  5. ^ Andreas Sofroniou: sistemas expertos, ingeniería del conocimiento para la replicación humana . 2013, ISBN 1-291-59509-0 : "En 1964, el CDC 6600 de Cray reemplazó a Stretch como la computadora más rápida de la Tierra".
  6. ^ Sebastian Anthony: La historia de las supercomputadoras . 10 de abril de 2012. Consultado el 7 de octubre de 2019.
  7. Computadora CDC 6600 . Encyclopædia Britannica. Consultado el 7 de octubre de 2019.
  8. Gordon Bell: Una perspectiva de Seymour Cray . En: Serie de conferencias Seymour Cray . Universidad de Minnesota . 10 de noviembre de 1997. Consultado el 7 de octubre de 2019: “El diseño del 7600 duró más que cualquier otro diseño de supercomputadora. Tuvo el rendimiento más alto de cualquier computadora desde su introducción en 1969 hasta la introducción del Cray 1 en 1976. "
  9. CDC 6500 . Computadoras Vivas: Museo + Laboratorios. Consultado el 7 de octubre de 2019.
  10. ^ Control Data Corporation, prototipo de "pequeño personaje" . Museo de Historia de la Computación. Consultado el 7 de octubre de 2019.
  11. Llega el CDC 6600 al CERN . 14 de enero de 1965. Consultado el 7 de octubre de 2019.
  12. Lawrence y su laboratorio, cap. 6: Cultivo de parachoques . Laboratorio Lawrence Berkeley . 1996. Consultado el 7 de octubre de 2019.
  13. CDC 6600 . 16 de enero de 1998. Archivado desde el original el 4 de enero de 2001. Consultado el 7 de octubre de 2019.
  14. Mark D. Hill, Norman P. Jouppi, Gurindar S. Sohi (Eds.): Lecturas en arquitectura de computadoras . Morgan Kaufmann, 1999, ISBN 1-55860-539-8 , págs. 11 .
  15. Aparece una imagen exacta del memorando en: Thomas J. Watson: Memorando . 28 de agosto de 1963. Consultado el 7 de octubre de 2019.
  16. Mark Smotherman, Dag Spicer: Esfuerzos de supercomputadora de un solo procesador de IBM . En: CACM . cinta 53 , no. 12 de diciembre de 2010, ISSN  0001-0782 , pág. 28–30 ( acm.org [consultado el 7 de octubre de 2019]).
  17. Manual de referencia de hardware . Revisión M. In: Control Data 6000 Series Computer Systems . No. 60100000 . Control Data Corporation , St. Paul, MN 20 de junio de 1971 p. 4-3, 4-4 ( trailing-edge.com [PDF; consultado el 7 de octubre de 2019]).
  18. Control Data 6400/6500/6600 Computer Systems Reference Manual . Revisión H. Control Data Corporation, St. Paul, MN, 21 de febrero de 1969 ( archive.org [consultado el 7 de octubre de 2019]).
  19. Esta descripción se aplica a las primeras versiones del software CDC; las versiones posteriores utilizaron el comando Central Exchange Jump (XJ) para reducir la sobrecarga administrativa de las funciones que podrían ejecutarse por completo en el CP.
  20. El término código de visualización se asoció con CDC de manera similar a como EBCDIC se asoció originalmente con IBM. Otros términos utilizados en la industria informática fueron BCD y SIXBIT , este último preferido por DEC .
  21. Códigos de caracteres DEC / PDP . Universidad de Miami . Archivado desde el original el 11 de marzo de 2019. Consultado el 7 de octubre de 2019.
  22. Manual de referencia del usuario de tiempo compartido de KRONOS 2.1 . Revisión B. En: Datos de control Cyber ​​70 Series Modelos 72/73/74, Sistemas informáticos de la serie 6000 . No. 60407600 . Control Data Corporation , St. Paul, MN 1 de mayo de 1974 ( bitsavers.org [PDF; consultado el 7 de octubre de 2019]).
  23. Velocidad y potencia (Comprensión de las computadoras) . Time Life Education, 1990, ISBN 0-8094-7587-1 , págs. 17 .
  24. ^ HD Pridmore: Manual de formación de programación de COMPASS . En: 3100 3200 3300 3500 Computer Systems . No. 60184200 . Control Data Corporation , St. Paul, MN 1967 ( archive.org [PDF; consultado el 7 de octubre de 2019]).
  25. Manual de referencia de COMPASS . Revisión C. En: 3600 Computer Systems . No. 60184200 . Control Data Corporation , St. Paul, MN, diciembre de 1967 ( bitsavers.org [PDF; consultado el 7 de octubre de 2019]).
  26. ^ "Los CDC entregaron una versión temprana de su sistema operativo SCOPE para el 3600" Ernest J. Henley, Jeffery Lewins (Ed.): Avances en ciencia y tecnología nucleares . Volumen 9. Academic Press , Nueva York 1976, ISBN 0-12-029309-9 , págs. 309 ( vista previa limitada en la búsqueda de libros de Google).
predecesor Oficina sucesor
IBM 7030 Stretch La computadora más poderosa del mundo
1964-1968
CDC 7600