# IBM 709

El IBM 709 fue unos de los primeros sistemas de computadoras introducidos por IBM en agosto de 1958. Era una versión mejorada del IBM 704 y un miembro de la familia de computadores científicos IBM 700/7000.

## Características

El IBM 709 agregaba entrada/salida superpuesta, direccionamiento indirecto, y tres instrucciones de "conversión" (las cuales proveían soporte de aritmética decimal, indicador de supresión de cero, y muchas otras operaciones). El 709 tenía una memoria de 32.768 palabras de 36 bit y podía ejecutar 42.000 instrucciones de suma o resta por segundo o 5.000 multiplicaciones por segundo.
Un hardware emulador opcional permitía ejecutar programas nativos de IBM 704 en el IBM 709. Fue el primer emulador comercialmente disponible antes de 1960. Los registros y las instrucciones de 704 usadas frecuentemente eran emuladas en el hardware del 709. Las instrucciones del 704 complejas eran emuladas por software.
El 709 fue construido usando válvulas. En noviembre de 1959 IBM introdujo la versión transistorizada del 709, llamado IBM 7090.
El FORTRAN Assembly Program fue creado inicialmente para el 709.

## Formato de Datos e Instrucciones

El formato básico de las instrucciones tenía 3 bits de prefijo, 15 bits de decremento, 3 bits de etiqueta, y 15 bit de dirección. El campo de prefijo especificaba la clase de instrucción. El campo de decremento a menudo contenía un operando inmediato para modificar el resultado de la operación, o era usado para definir con más precisión el tipo de instrucción. Los 3 bits de la etiqueta especificaban tres índices de registro, de los cuales el contenido era restado de la dirección para producir una dirección efectiva. El campo de dirección contenía tanto una dirección como un operando inmediato.
* Número de coma fija eran almacenados en formato binario.
* Número de coma flotante de precisión simple tenían signo, 8 bit de exceso, 128 de exponente y 29 bits de magnitud.
* Caracteres alfanuméricos eran BCD de 6 bits, se empaquetaban seis para formar una palabra.
El IBM 709 no incluía instrucciones decimales, per se. Sólo aceptaba instrucciones binarias, principalmente en los formatos de enteros de 36 bits con signo y de 36 bits con coma flotante. PAra enteros grandes, el Acumulador y los registros M-Q podían combinarse mediante el programa para representar enteros de 71 bits más 1 bit para el signo (representaba el doble). Las funciones de índice de registro proveían adicionalmente aritmética sin signo de 15 bits (sólo suma y resta). Los datos decimales requerían ser convertidos a binario antes de ser procesados.

## Canal de E/S

Las principales mejoras del 709 sobre el modelo anterior, el 704, incluían una memoria de núcleos magnéticos y el que aparentemente fue el primer uso de canales de E/S independientes. Mientras que la E/S en el 704 era programada como una función en el procesador central (las palabras eran transferidas a o desde el registro de E/S, una por vez, usando una instrucción "copy"), el 709 tenía el Sincronizador de Datos IBM-766, el cual proveía canales de E/S independientes "programables". Hasta tres Sincronizador de Datos podían conectarse al 709, cada uno tenía capacidad para controlar hasta 20 unidades de cinta y un conjunto de impresora/lectora de tarjetas/perforadora de tarjetas. Esto permitía conectar en el 709 una cantidad de dispositivos seis veces mayor a la que era posible en el 704, pudiendo realizar, además, E/S en varios dispositivos al mismo tiempo mientras la ejecución del programa continuaba en paralelo.
El Almacenamiento de Núcleo Magnético IBM-738 usado en el 709 fue también un hito en la tecnología híbrida. Aunque los controladores de la matriz de la memoria de núcleo eran con tubos de vacío, los amplificadores de los sensores de lectura se utilizaron transistores, siendo este uno de los primeros usos de los mismos en computación.