La serie CDC 160 fue una serie de minicomputadoras construidas por Control Data Corporation . La CDC 160 y la CDC 160-A eran minicomputadoras de 12 bits [1] [2] construidas entre 1960 y 1965; la CDC 160G era una minicomputadora de 13 bits, con una versión extendida del conjunto de instrucciones de la CDC 160-A y un modo de compatibilidad en el que no utilizaba el decimotercer bit. [3] La 160 fue diseñada por Seymour Cray , según se informa durante un largo fin de semana de tres días. [4] Encajaba en el escritorio donde se sentaba su operador.
La arquitectura 160 utiliza aritmética de complemento a uno con acarreo de extremo a extremo . [5]
NCR comercializó conjuntamente el 160-A bajo su propio nombre durante varios años en la década de 1960. [6]
Una editorial que compró una CDC 160-A la describió como "una máquina de un solo usuario sin capacidad de procesamiento por lotes. Los programadores y/o usuarios irían a la sala de ordenadores, se sentarían en la consola, cargarían la cinta de papel de arranque e iniciarían un programa". [7]
El CDC 160-A era un dispositivo de hardware sencillo, pero ofrecía una variedad de funciones que eran capacidades reducidas que solo se encontraban en sistemas más grandes. Por lo tanto, era una plataforma ideal para introducir a los programadores novatos a los conceptos sofisticados de los sistemas de entrada/salida (E/S) y de interrupción de bajo nivel .
Los 160 sistemas tenían un lector de cinta de papel y una perforadora, y la mayoría tenía una máquina de escribir IBM Electric modificada para que funcionara como terminal de computadora . [8] [9] [10] La memoria del 160 era de 4096 palabras de 12 bits. La CPU tenía un acumulador de complemento a uno de 12 bits , pero no multiplicación ni división. Había un complemento completo de instrucciones y varios modos de direccionamiento. El direccionamiento indirecto era casi tan bueno como los registros de índice. El conjunto de instrucciones admitía tanto el relativo (al registro P actual) como el absoluto. El conjunto de instrucciones original no tenía una instrucción de llamada a subrutina y solo podía direccionar un banco de memoria. [1]
En el modelo 160-A se agregó un "salto de retorno" y una instrucción de cambio de banco de memoria. El salto de retorno permitió llamadas de subrutinas simples y el cambio de banco permitió que se direccionaran otros bancos de memoria de 4K, aunque de manera torpe, hasta un total de 32.768 palabras. [2] La memoria adicional era costosa y tenía que estar contenida en una caja separada tan grande como el propio 160. El modelo 160-A también podía aceptar una unidad de multiplicación/división, que era otra caja periférica grande y costosa.
En los modelos 160 y 160-A, el tiempo de ciclo de memoria era de 6,4 microsegundos. Una suma tardaba dos ciclos. La instrucción promedio tardaba 15 microsegundos, lo que representaba una velocidad de procesamiento de 67.000 instrucciones por segundo. [1] [2]
El modelo 160G amplió los registros y las palabras de memoria a 13 bits; en el modo G, se utilizaban los 13 bits, mientras que en el modo A, solo se utilizaban los 12 bits inferiores, para lograr compatibilidad binaria con el 160-A. El 160G agregó algunas instrucciones, incluidas instrucciones de multiplicación y división integradas, y algunos modos de direccionamiento adicionales. [3] [11]
La E/S de bajo nivel permitía controlar dispositivos, establecer interfaces para determinar el estado de los dispositivos y leer y escribir datos como bytes individuales o como bloques. La E/S podía realizarse en un registro, en la memoria o a través de un canal de acceso directo a memoria (DMA). La distinción entre estos tipos de E/S era que la E/S normal "colgaba" la CPU hasta que se completaba la operación de E/S, pero la E/S DMA permitía que la CPU procediera con la ejecución de instrucciones simultáneamente con la transferencia de datos. El sistema de interrupciones se basaba exclusivamente en E/S, lo que significa que todas las interrupciones se generaban externamente. Las interrupciones se introdujeron para los neófitos como el mecanismo de alerta mediante el cual se podía informar a un programa de que se había completado una operación de E/S DMA iniciada previamente.
La arquitectura 160 se modificó para convertirse en la base de los procesadores periféricos (PP) en las computadoras mainframe de la serie CDC 6000 y sus sucesoras. [4] Grandes partes del conjunto de instrucciones 160 no se modificaron en los procesadores periféricos. Sin embargo, hubo cambios para incorporar la programación del canal de datos 6000 y el control del procesador central . En los primeros días de la década de 6000, casi todo el sistema operativo se ejecutaba en los PP. Esto dejaba al procesador central libre de las demandas del sistema operativo y disponible para los programas de usuario.
Se rumorea que el CDC 160 fue diseñado en un fin de semana por Cray y fue el primer ordenador
de escritorio
(no
de sobremesa
) de CDC de 60.000 dólares que se convirtió en el prototipo de procesador de E/S para los procesadores periféricos que rodeaban al CDC 6600 y 7600.