IBM 704
La IBM 704 es una gran computadora central digital presentada por IBM en 1954. Fue la primera computadora producida en masa con hardware para aritmética de punto flotante. El IBM 704 Manual de operación establece:
El tipo 704 Electronic Data-Processing Machine es una calculadora electrónica de alta velocidad a gran escala controlada por un programa almacenado internamente del tipo de dirección.
Por lo tanto, el 704 en ese momento se consideraba "prácticamente la única computadora que podía manejar operaciones matemáticas complejas". El 704 fue una mejora significativa con respecto al anterior IBM 701 en términos de arquitectura e implementación. Al igual que el 701, el 704 utiliza un circuito lógico de tubo de vacío, pero aumentó el tamaño de las instrucciones de 18 bits a 36 bits, el mismo tamaño de palabra de la memoria. Los cambios del 701 incluyen el uso de memoria de núcleo magnético en lugar de tubos Williams, instrucciones aritméticas de coma flotante, direccionamiento de 15 bits y la adición de tres registros de índice. Para admitir estas nuevas funciones, las instrucciones se ampliaron para usar la palabra completa de 36 bits. El nuevo conjunto de instrucciones, que no es compatible con el 701, se convirtió en la base de la "arquitectura científica" subclase de las computadoras de la serie IBM 700/7000.
El 704 puede ejecutar hasta 12 000 adiciones de punto flotante por segundo. IBM produjo 123 sistemas tipo 704 entre 1955 y 1960.
Hitos
Los lenguajes de programación FORTRAN y LISP se desarrollaron por primera vez para el 704, al igual que el ensamblador SAP: Symbolic Assembly Program, más tarde distribuido por SHARE como SHARE Assembly Program.
MUSIC, el primer programa de música por computadora, fue desarrollado en el IBM 704 por Max Mathews.
En 1962, el físico John Larry Kelly, Jr. creó uno de los momentos más famosos en la historia de Bell Labs al usar una computadora IBM 704 para sintetizar el habla. El sintetizador de grabadora de voz vocoder de Kelly recreó la canción Daisy Bell, con acompañamiento musical de Max Mathews. Arthur C. Clarke estaba casualmente visitando a su amigo y colega John Pierce en las instalaciones de Bell Labs Murray Hill en el momento de esta demostración de síntesis de voz, y Clarke quedó tan impresionado que seis años después la usó en la escena culminante de su novela y guión para 2001: A Space Odyssey, donde la computadora HAL 9000 canta la misma canción.
Edward O. Thorp, profesor de matemáticas del MIT, utilizó el IBM 704 como herramienta de investigación para investigar las probabilidades de ganar mientras desarrollaba su teoría del juego de blackjack. Usó FORTRAN para formular las ecuaciones de su modelo de investigación.
El IBM 704 en el Centro de Cómputo del MIT se utilizó como rastreador oficial para la Operación Moonwatch del Observatorio Astrofísico Smithsonian en el otoño de 1957. IBM proporcionó cuatro científicos del personal para ayudar a los científicos y matemáticos del Observatorio Astrofísico Smithsonian en el cálculo de las órbitas de los satélites: Dr. Giampiero Rossoni, Dr. John Greenstadt, Thomas Apple y Richard Hatch.
El Laboratorio Científico de Los Álamos (LASL) desarrolló un monitor temprano llamado SLAM para permitir el procesamiento por lotes.
Registros
El IBM 704 tiene un acumulador de 38 bits, un registro de cociente multiplicador de 36 bits y tres registros de índice de 15 bits. El contenido de los registros de índice se resta de la dirección base, por lo que los registros de índice también se denominan "registros de decremento". Los tres registros de índice pueden participar en una instrucción: el campo etiqueta de 3 bits en la instrucción es un mapa de bits que especifica cuál de los registros participa en la operación. Sin embargo, cuando se selecciona más de un registro de índice, sus contenidos se ordenan con OR (no se suman) antes de que se produzca la disminución. Este comportamiento persistió en máquinas de arquitectura científica posteriores (como la IBM 709 y la IBM 7090) hasta la IBM 7094. La IBM 7094, introducida en 1962, aumentó el número de registros de índice a siete y solo seleccionaba uno a la vez; el "o" El comportamiento permanece disponible en un modo de compatibilidad de IBM 7094.
Formatos de instrucciones y datos
Hay dos formatos de instrucciones, denominados "Tipo A" y "Tipo B". La mayoría de las instrucciones eran de tipo B.
Las instrucciones de tipo A tienen, en secuencia, un prefijo de 3 bits (código de instrucción), un campo decremento de 15 bits, una etiqueta de 3 bits y un campo de dirección de 15 bits. Hay operaciones de salto condicional basadas en los valores de los registros de índice especificados en el campo etiqueta. Algunas instrucciones también restan el campo decremento del contenido de los registros de índice. La implementación requiere que los segundos 2 bits del código de instrucción no sean cero, dando un total de seis posibles instrucciones de tipo A. Uno (STR, código de instrucción binario 101) no se implementó hasta el IBM 709.
Las instrucciones de tipo B tienen, en secuencia, un código de instrucción de 12 bits (con los bits 2 y 3 establecidos en 0 para distinguirlos de las instrucciones de tipo A), un campo bandera de 2 bits, 4 bits no utilizados, un campo de etiqueta de 3 bits y un campo de dirección de 15 bits.
- Los números de punto fijo se almacenan en formato binario de señal/magnitud.
- Los números de puntos flotantes de una sola precisión tienen un signo de magnitud, un exceso de 8 bits-128 exponente y una magnitud de 27 bits.
- Los caracteres alfabéricos eran generalmente de 6 bits de BCD, empaquetados de seis a una palabra.
El conjunto de instrucciones subdivide implícitamente el formato de datos en los mismos campos que las instrucciones de tipo A: prefijo, decremento, etiqueta y dirección. Existen instrucciones para modificar cada uno de estos campos en una palabra de datos sin cambiar el resto de la palabra, aunque la instrucción Store Tag no se implementó en IBM 704.
La implementación original de Lisp usa los campos dirección y decremento para almacenar el principio y el final de una lista enlazada respectivamente. Las funciones primitivas car ("contenido de la parte de dirección del registro") y cdr ("contenido de la parte decremento del registro") recibieron el nombre de estos campos.
Memoria y periféricos
Los controles están incluidos en el 704 para: un lector de tarjetas perforadas 711, una impresora alfabética 716, una grabadora de tarjetas perforadas 721, cinco unidades de cinta magnética 727 y una unidad de control de cinta 753, un lector y grabador de tambor magnético 733 y un 737 Unidad de almacenamiento de núcleo magnético. La masa total fue de aproximadamente 19 466 libras (9,7 toneladas cortas; 8,8 t).
El 704 en sí venía con una consola de control que tenía 36 interruptores o botones de control variados y 36 interruptores de entrada de datos, uno para cada bit en un registro. La consola de control esencialmente solo permite configurar los valores binarios de los registros con interruptores y ver el estado binario de los registros que se muestran en el patrón de muchas pequeñas lámparas de neón, que se parecen mucho a los LED modernos. Para la interacción humana con la computadora, los programas se ingresarían inicialmente en tarjetas perforadas en lugar de en la consola, y la salida legible por humanos se dirigiría a la impresora.
También estaba disponible el registrador de salida de tubo de rayos catódicos IBM 740, que es una pantalla vectorial de 21 pulgadas con un tiempo de persistencia de fósforo muy largo de 20 segundos para visualización humana, junto con una pantalla de 7 pulgadas que recibe la misma señal que la pantalla más grande pero con un fósforo de descomposición rápida diseñado para ser fotografiado con una cámara adjunta.
La unidad de almacenamiento de núcleo magnético 737 funciona como RAM y proporciona 4096 palabras de 36 bits, el equivalente a 18 432 bytes. Las unidades de cinta magnética 727 almacenan más de 5 millones de caracteres de 6 bits por carrete.
Confiabilidad
En su día, la 704 fue una máquina excepcionalmente confiable. Sin embargo, al ser una máquina de tubo de vacío, la IBM 704 tenía una confiabilidad muy baja según los estándares actuales. En promedio, la máquina fallaba cada 8 horas, lo que limitaba el tamaño del programa que los primeros compiladores de Fortran podían traducir con éxito porque la máquina fallaba antes de una compilación exitosa de un programa grande.
Contenido relacionado
Mosaico (navegador web)
CDC 6600
PalabraEstrella