Sistema informático de tubo de vacío de los años 50
La máquina de procesamiento de datos de tambor magnético IBM 650 es una de las primeras computadoras digitales producidas por IBM a mediados de la década de 1950. [2] [3] Fue la primera computadora producida en masa en el mundo. [4] [5] Se produjeron casi 2.000 sistemas, el último en 1962, [6] [7] y fue la primera computadora que obtuvo un beneficio significativo. [7] El primero se instaló a finales de 1954 y fue el ordenador más popular de la década de 1950. [8]
El 650 se ofreció a usuarios empresariales, científicos y de ingeniería como una alternativa más lenta y menos costosa a las computadoras IBM 701 e IBM 702 , que tenían fines científicos y comerciales respectivamente. [7] También se comercializó para usuarios de máquinas de tarjetas perforadas que estaban actualizando desde máquinas de cálculo , como la IBM 604 , a computadoras. [1] : 5 [9]
Debido a su costo relativamente bajo y su facilidad de programación , el 650 se utilizó para ser pionero en una amplia variedad de aplicaciones, desde modelar el rendimiento de la tripulación de un submarino [10] hasta enseñar programación informática a estudiantes de secundaria y universitarios. El IBM 650 se hizo muy popular en las universidades, donde una generación de estudiantes aprendió programación por primera vez. [11]
Fue anunciado en 1953 y en 1956 mejorado como IBM 650 RAMAC con la adición de hasta cuatro unidades de almacenamiento en disco. [12] El precio de compra de la consola IBM 650 básica, sin la unidad lectora perforadora, fue de 150.000 dólares en 1959, [13] o aproximadamente 1.500.000 dólares a partir de 2023. El soporte para el 650 y sus unidades componentes se retiró en 1969.
El 650 tenía una frecuencia de 125 kHz. [14] Podría sumar o restar en 1,63 milisegundos, multiplicar en 12,96 ms y dividir en 16,90 ms. Se estimó que la velocidad promedio del 650 era de alrededor de 27,6 ms por instrucción, o aproximadamente 40 instrucciones por segundo. [15]
El sistema básico 650 constaba de tres unidades: [18]
La unidad de consola IBM 650 [19] albergaba el almacenamiento del tambor magnético, el dispositivo aritmético (que utiliza tubos de vacío) y la consola del operador.
Unidad de potencia IBM 655 [20]
Unidad de perforación y lectura de tarjetas IBM 533 o IBM 537 [21] [22] [23] El IBM 533 tenía alimentaciones separadas para lectura y perforación; el IBM 537 tenía una alimentación, por lo que podía leer y luego perforar la misma tarjeta.
Peso: 5400 a 6263 libras (2,7 a 3,1 toneladas cortas; 2,4 a 2,8 t). [24] [25]
Unidades opcionales: [18]
Perforadora de cinta a tarjeta IBM 46, modelo 3 [18]
Perforadora de impresión de cinta a tarjeta IBM 47, modelo 3 [18]
Unidad de almacenamiento en disco IBM 355 [26] Los sistemas con una unidad de disco se conocían como sistemas de procesamiento de datos RAMAC IBM 650
La memoria del tambor giratorio proporcionaba 1000, 2000 o 4000 palabras de memoria en las direcciones 0000 a 0999, 1999 o 3999 respectivamente. Cada palabra tenía 10 dígitos decimales codificados biquinarios , que representaban un número de 10 dígitos con signo o cinco caracteres. (Contando un dígito codificado biquinario como siete bits, 4000 palabras equivaldrían a 35 kilobytes.) [31] [32] Las palabras en los tambores se organizaron en bandas alrededor del tambor, cincuenta palabras por banda, y 20, 40, u 80 bandas para los respectivos modelos. Se podía acceder a una palabra cuando su ubicación en la superficie del tambor pasaba debajo de los cabezales de lectura/escritura durante la rotación (girando a 12.500 rpm , el tiempo de acceso promedio no optimizado fue de 2,5 ms ). Debido a este momento, la segunda dirección en cada instrucción era la dirección de la siguiente instrucción. Luego, los programas podrían optimizarse colocando instrucciones en direcciones a las que se pudiera acceder inmediatamente cuando se completara la ejecución de la instrucción anterior. IBM proporcionó un formulario con diez columnas y 200 filas para permitir a los programadores realizar un seguimiento de dónde colocan las instrucciones y los datos. Posteriormente se proporcionó un ensamblador , SOAP (Programa de ensamblaje óptimo simbólico), que realizaba una optimización aproximada. [33] [34]
Las computadoras LGP-30 , Bendix G-15 e IBM 305 RAMAC también usaban válvulas de vacío y memoria de tambor, pero eran bastante diferentes de la IBM 650.
Las instrucciones leídas desde el tambor iban a un registro de programa (en la terminología actual, un registro de instrucciones ). Los datos leídos del tambor pasaron por un distribuidor de 10 dígitos. El 650 tenía un acumulador de 20 dígitos , dividido en acumuladores inferior y superior de 10 dígitos con un signo común. La aritmética se realizó mediante un sumador de un dígito. La consola (interruptores de 10 dígitos, un interruptor de señal y 10 luces de pantalla biquinarias), el distribuidor y los acumuladores inferiores y superiores eran todos direccionables; 8000, 8001, 8002, 8003 respectivamente.
Unidad de almacenamiento IBM 653
La unidad de almacenamiento IBM 653 opcional se introdujo el 3 de mayo de 1955 y finalmente proporcionó hasta cinco funciones: [35]
Controlador de cinta magnética (para unidades de cinta magnética IBM 727) (10 códigos de operación adicionales)
Controlador de almacenamiento en disco (mejora de 1956 para la entonces nueva unidad de almacenamiento en disco IBM 355) (cinco códigos de operación adicionales)
Sesenta palabras de 10 dígitos de memoria de núcleo magnético en las direcciones 9000 a 9059. Esta pequeña memoria rápida tenía un tiempo de acceso de 96 μs , una mejora 26 veces mayor en relación con el tambor giratorio. Esta característica agregó cinco códigos de operación y era necesaria como búfer para E/S de cinta y disco. Los programas también podrían utilizar las 60 palabras para acelerar los bucles internos y las búsquedas en tablas.
Tres registros índice de cuatro dígitos en las direcciones 8005 a 8007; las direcciones del tambor se indexaron agregándoles 2000, 4000 o 6000, las direcciones centrales se indexaron agregándoles 0200, 0400 o 0600. Si el sistema tenía el tambor de 4000 palabras, entonces la indexación se hacía agregando 4000 a la primera dirección para el registro de índice A, agregando 4000 a la segunda dirección para el registro de índice B y agregando 4000 a cada una de las dos direcciones para el registro de índice C (el la indexación para sistemas de 4000 palabras solo se aplica a la primera dirección). Los sistemas de 4000 palabras requerían circuitos transistorizados de lectura/escritura para la memoria del tambor y estaban disponibles antes de 1963 (18 códigos de operación adicionales).
Punto flotante : las instrucciones aritméticas admitían una mantisa de ocho dígitos y una característica de dos dígitos (exponente de compensación): MMMMMMMMCC , lo que proporciona un rango de ±0,00000001E-50 a ±0,99999999E+49. (siete códigos de operación adicionales)
Conjunto de instrucciones
Las 650 instrucciones constaban de un código de operación de dos dígitos , una dirección de datos de cuatro dígitos y la dirección de cuatro dígitos de la siguiente instrucción. El letrero se ignoró en la máquina básica, pero se utilizó en máquinas con características opcionales. La máquina base tenía 44 códigos de operación. Se proporcionaron códigos de operación adicionales para opciones, como punto flotante, almacenamiento central, registros de índice y dispositivos de E/S adicionales. Con todas las opciones instaladas, había 97 códigos de operación. [35]
La instrucción de búsqueda de tabla (TLU) podría comparar en alto nivel una palabra de 10 dígitos referenciada con 48 palabras consecutivas en la misma banda de batería en una revolución de 5 ms y luego cambiar a la siguiente banda a tiempo para las siguientes 48 palabras. Esta hazaña fue aproximadamente un tercio de la velocidad de una máquina binaria mil veces más rápida en 1963 (1.500 microsegundos en el IBM 7040 a 5.000 microsegundos en el 650) para buscar 46 entradas, siempre que ambas estuvieran programadas en ensamblador. Había una instrucción igual de búsqueda de tabla opcional, con el mismo rendimiento.
La instrucción Leer (RD) lee una tarjeta de 80 columnas de datos numéricos en diez palabras de memoria; la distribución de dígitos a palabras determinada por el cableado del panel de control del lector de tarjetas . Cuando se utiliza con el dispositivo alfabético de la unidad 533 Reader Punch, se puede leer una combinación de columnas numéricas y alfanuméricas (máximo de 30 columnas alfanuméricas). [1] Una función de expansión permitía más columnas alfanuméricas, pero ciertamente no más de 50, ya que solo se almacenaban diez palabras (cinco caracteres por palabra) en el tambor mediante una operación de lectura de tarjeta. [ cita necesaria ]
Los códigos de operación de la máquina base fueron: [36]
^ Se utiliza para permitir que el panel de control 533 envíe señales a la CPU.
^ Cuenta ceros de orden superior en el acumulador superior.
^ El valor almacenado toma el signo del acumulador, excepto después de una operación de división; luego se almacena el signo del resto.
Notas:
Las opciones de IBM 653 podrían implementar códigos de instrucción adicionales. [35]
Programa de muestra
Este programa de una tarjeta, tomado del 650 Programming Bulletin 5, IBM, 1956, 22-6314-0 , establecerá la mayor parte del almacenamiento del tambor en ceros negativos. El programa incluye ejemplos de instrucciones que se ejecutan desde los conmutadores de consola y desde un acumulador.
Para comenzar, se marca una tarjeta de carga con 80 dígitos consecutivos (la segunda columna a continuación) de modo que, cuando se lea, los contenidos de las ubicaciones del tambor 0001 a 0008 serán como se muestra. [37]
8000 RD 70 0004 xxxx Leer la tarjeta de carga en el área de lectura de la primera banda
Cada banda de tambores tiene un área de lectura; estas áreas de lectura están en las ubicaciones 0001-0010, 0051-0060, 0101-0110, etc. Cualquier dirección en una banda se puede utilizar para identificar esa banda para una instrucción de lectura; la dirección 0004 identifica la primera banda. Comienza entonces la ejecución, desde la consola con la lectura de las ocho palabras de la tarjeta de carga en las ubicaciones 0001-0008 de la primera banda de memoria. En el caso de leer una tarjeta de carga, la "siguiente dirección de instrucción" se toma del campo de dirección de datos, no del campo de dirección de siguiente instrucción (que se muestra arriba como xxxx). Por lo tanto, la ejecución continúa en 0004.
0004 RSU 61 0008 0007 Restablecer todo el acumulador, restar al superior (8003) el valor 2019990003 0007 LD 69 0006 0005 Distribuidor de carga con 0100008000 0005 STD 24 0000 8003 Almacene el distribuidor en la ubicación 0000, la siguiente instrucción está en 8003 (el acumulador superior) Nota: el movimiento de datos o instrucciones de una ubicación del tambor a otra Requiere dos instrucciones: LD, STD.
Ahora se ejecuta un bucle de dos instrucciones:
8003 STL 20 1999 0003 Almacenar el acumulador inferior (ese acumulador se restableció a 0 mediante la instrucción RSU anterior) La dirección de datos "1999" disminuye, a continuación, en cada iteración. Esta instrucción fue colocada en el acumulador superior mediante la instrucción RSU anterior. Nota: esta instrucción, ahora en el acumulador superior, irá disminuyendo y luego ejecutado de nuevo mientras todavía está en el acumulador.
0003 AU 10 0001 8003 Disminuir en 1 la dirección de datos de la instrucción en el acumulador (sumando 10000 a un número negativo)
La dirección de datos del STL eventualmente se reducirá a 0003 y la instrucción AU... en 0003 se sobrescribirá con ceros. Cuando eso ocurre (la siguiente dirección de instrucción del STL sigue siendo 0003), la ejecución continúa de la siguiente manera:
0003 NOOP 00 0000 0000 Instrucción sin operación, la siguiente dirección de instrucción es 0000 0000 HALT 01 0000 8000 Detener, la siguiente dirección de instrucción es la consola (Esta instrucción de detención fue almacenada en 0000 por la instrucción STD anterior)
Software
El conjunto de instrucciones 650 es lo suficientemente simple como para que se puedan escribir pequeños programas en lenguaje de máquina y esto era común en los ejercicios de los estudiantes. [38] Había un formato de una sola instrucción por tarjeta que podía cargarse directamente en la máquina y ejecutarse.
El lenguaje de máquina era incómodo para programas grandes y, con el tiempo, se escribieron una variedad de lenguajes y herramientas de programación para el IBM 650. Estos incluían:
Un paquete de máquina virtual de aplicación interpretativa publicado originalmente como "Sistema interpretativo decimal flotante completo para la calculadora de tambor magnético IBM 650". Este fue conocido por varios nombres:
el intérprete Wolontis-Bell Labs, el sistema Bell, el intérprete Bell, el sistema interpretativo Bell, [39] o BLIS: el sistema interpretativo Bell Lab [40]
L1 y (posteriormente) L2 [41] [42] - conocidos fuera de Bell Labs como "Bell 1" y "Bell 2", entre otros nombres (ver arriba)
Sistema de programación sintética para aplicaciones comerciales [43]
Lenguajes algebraicos / compiladores
Traductor interno (IT): un compilador [44]
Nuevo compilador unificado revisado Lenguaje básico de TI extendido (RUNCIBLE): una extensión de TI en Case [45]
PARA TRÁNSITO : una versión de Fortran que se compiló en TI y que a su vez se compiló en SOAP [46]
UNIVAC Solid State anunciado por Sperry Rand en diciembre de 1958 como respuesta al IBM 650. En junio de 1959, Remington Rand anunció que había escrito un programa emulador de IBM 650 para facilitar la conversión. [48]
notas y referencias
^ abc Máquina de procesamiento de datos de tambor magnético IBM 650: Manual de funcionamiento (PDF) . IBM. 1955. 22-6060-1.
^ "Archivos de IBM: instalación de IBM 650 con unidad de cinta magnética IBM 727 y almacenamiento en disco IBM 355". IBM . A NOSOTROS. Archivado desde el original el 9 de abril de 2023 . Consultado el 5 de septiembre de 2019 .
^ "Archivos de IBM: ensamblaje de IBM 650 en la planta de Endicott". IBM . A NOSOTROS. Archivado desde el original el 23 de octubre de 2023 . Consultado el 5 de septiembre de 2019 .
^ "Historia de las computadoras 1937-2011". Universidad Old Dominion . Consultado el 22 de junio de 2021 .
^ "IBM en la era de la informática". El Proyecto de Historia de la Computación de Minnesota . 28 de junio de 2018 . Consultado el 21 de junio de 2021 .
^ Pugh, Emerson W. (1995). Construyendo IBM: dando forma a una industria y su tecnología . Prensa del MIT. pag. 182.ISBN978-0-262-16147-3.
^ abc "La calculadora de tambor magnético IBM 650". Columbia.edu .
^ Davis, Gordon B. (1971). Introducción a las computadoras electrónicas (Segunda ed.). Nueva York: McGraw-Hill. pag. 10.ISBN978-0-070-15821-4.
^ "Archivos de IBM: 650 clientes". IBM . Archivado desde el original el 25 de julio de 2023.
^ Gris, Wayne D. (2007). Modelos Integrados de Sistemas Cognitivos . Nueva York: Oxford University Press. pag. 36.ISBN978-0-19-518919-3.
^ "Presentación de la calculadora de tambor magnético IBM 650". Historia de la informática .
^ "Archivos de IBM: comunicado de prensa del anuncio de 650 RAMAC". IBM . Archivado desde el original el 9 de junio de 2023.
^ "Archivos de IBM: comunicado de prensa del anuncio de IBM 650 Modelo 4". IBM . 2003-01-23. Archivado desde el original el 23 de octubre de 2023 . Consultado el 25 de julio de 2023 .
^ Royse, David (1957). "La operación de almacenamiento en disco del sistema IBM 650 RAMAC". Artículos presentados en la conferencia informática conjunta occidental del 26 al 28 de febrero de 1957: Técnicas de confiabilidad en - IRE-AIEE-ACM '57 (occidental) . Prensa ACM. págs. 43–49. doi : 10.1145/1455567.1455576 .
^ ab "Notas biográficas de Knuth". softpanorama.org . Consultado el 25 de julio de 2023 .
^ "Archivos de IBM: 650 cronología". Archivado desde el original el 17 de abril de 2023.
^ Bashe, Charles J.; Johnson, Lyle R; Palmer, John H.; Pugh, Emerson W. (1986). Las primeras computadoras de IBM . MIT. pag. 473.ISBN0-262-02225-7.
^ abcd "Archivos de IBM: 650 componentes". Archivado desde el original el 25 de julio de 2023.
^ "Archivos de IBM: Unidad de consola IBM 650". IBM . Archivado desde el original el 23 de octubre de 2023.
^ "Archivos de IBM: unidad de potencia IBM 655". IBM . Archivado desde el original el 8 de abril de 2023.
^ Otros nombres de IBM para el 533 incluyeron Unidad de entrada-salida y Unidad de lectura-perforación .
^ "Archivos de IBM: Perforación de lectura de tarjeta IBM 533". IBM . Archivado desde el original el 8 de abril de 2023.
^ "Archivos de IBM: Perforación de lectura de tarjeta IBM 537". IBM . Archivado desde el original el 9 de abril de 2023.
^ Manual de instalación de planificación física del sistema 650 (PDF) . IBM. 1 de octubre de 1957. pág. 32 . Consultado el 31 de mayo de 2018 a través de Bitsavers.
^ Manual de instrucciones de ingeniería del cliente (PDF) . IBM. 1956. pág. I-17 . Consultado el 31 de mayo de 2018 a través de Bitsavers.
^ "Archivos de IBM: almacenamiento en disco IBM 355". IBM . Archivado desde el original el 9 de abril de 2023.
^ "Archivos de IBM: máquina de contabilidad IBM 407". IBM . Archivado desde el original el 3 de julio de 2023.
^ "Archivos de IBM: Unidad de control IBM 652". IBM . Archivado desde el original el 8 de abril de 2023.
^ "Archivos de IBM: Unidad auxiliar IBM 653". IBM . Archivado desde el original el 9 de abril de 2023.
^ "Archivos de IBM: estación de consulta IBM 838". IBM . Archivado desde el original el 8 de abril de 2023.
^ "Archivos de IBM: tambor magnético IBM 650". IBM . Archivado desde el original el 7 de febrero de 2023.
^ "Archivos de IBM: anuncio de IBM 650 Modelo 4". IBM . Archivado desde el original el 23 de octubre de 2023.
^ Kugel, Herb (22 de octubre de 2001). "El IBM 650". Del doctor Dobb.
^ ab IBM (1957). SOAP II para IBM 650 (PDF) . C24-4000-0.
^ Extensiones de CPU IBM 650 abc
^ Boletín del sistema IBM 650, códigos de operación básica, optimización de programas, carga de programas (PDF) . IBM. 1958.
^ Se puede utilizar una perforadora de 12 para identificar tarjetas como tarjetas de carga . Las tarjetas de carga se leen directamente en las palabras 1 a 8 de la banda de almacenamiento especificada
^ ab Andree, Richard V. (1958). Programación de la máquina de procesamiento de datos y computadora de tambor magnético IBM 650 (PDF) .
^ Knuth, Donald E. (enero-marzo de 1986). "El IBM 650: una apreciación desde el campo". Anales IEEE de la historia de la informática . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID 34595049.
^ Manual de referencia de IBM: Sistema interpretativo decimal flotante para IBM 650 (PDF) . IBM. 1959, págs. 63, xxi. 28-4024. Esta es una reimpresión del Boletín Técnico IBM 650 No. 11, marzo de 1956, formulario 31-6822.. Este manual de referencia contiene el siguiente informe, señalando que en sus características externas, el sistema interpretativo descrito en este informe le debe mucho al IBM Speedcoding System para el 701. Wolontis, VM Complete Floating Decimal Interpretive System para la IBM 650 Magnetic Drum Calculator . Bell Laboratories, Inc, Murray Hill, Nueva Jersey.
^ Holbrook, Bernard D.; Marrón, W. Stanley. "Informe técnico n.º 99 de ciencias de la computación: una historia de la investigación en computación en los laboratorios Bell (1937-1975)". Laboratorios Bell . Archivado desde el original el 2 de septiembre de 2014 . Consultado el 27 de agosto de 2020 .
^ Wolontis, VM "Un completo sistema interpretativo de decimales flotantes para la calculadora de tambor magnético IBM 650" (PDF) . EE. UU.: IBM, a través de bitsavers.
^ 650 Boletín de programación 2 . IBM. 1956. pág. 40. 22-6294-0. La rutina interpretativa que se describe aquí es un sistema de tres direcciones decimales fijas que proporciona operaciones matemáticas, lógicas y de entrada y salida. La lógica de este sistema se obtuvo del Sistema Interpretativo Decimal Flotante Completo para el 650 que fue desarrollado por Bell Laboratories, Murray Hill, Nueva Jersey.
^ Perlis, AJ ; Smith, JW; VanZoeren, recursos humanos (18 de abril de 1958). Traductor interno; IT, un compilador para el 650 (PDF) . 650 Programa Biblioteca 2.1.001.
^ Donald Knuth publicó el diagrama de flujo del compilador en 1959; Knuth, DE (1959). "RUNCIBLE: traducción algebraica en una computadora limitada". Comunicaciones de la ACM . 2 (11): 18-21. doi : 10.1145/368481.368507 . S2CID 8224014.; este fue su primer trabajo académico.
^ IBM (1959). FOR TRANSIT Sistema de codificación automática para el IBM 650 (PDF) . 28-4028.
^ IBM (1960). Sistema de codificación automática FORTRAN para IBM 650 (PDF) . 29-4047.
^ Gris, George. "La computadora de estado sólido UNIVAC". Boletín de historia de Unisys, volumen 1.2, diciembre de 1992 (revisado en 1999) . Archivado desde el original el 4 de marzo de 2016.
Otras lecturas
Andrée, Richard V. (1958). Programación de la máquina de procesamiento de datos y computadora de tambor magnético IBM 650 (PDF) .
IBM (1955). Manual de funcionamiento de la máquina de procesamiento de datos de tambor magnético IBM 650 (PDF) . 22-6060.
IBM (1956). Sistema de procesamiento de datos IBM 650, manual de instrucciones de ingeniería del cliente (PDF) . 22-6284-1.
IBM (1955). IBM presenta la máquina de procesamiento de datos de tambor magnético 650 (PDF) . 32-6770. Archivado desde el original (PDF) el 5 de febrero de 2012 . Consultado el 24 de septiembre de 2006 .
Knuth, Donald E. (enero-marzo de 1986). "El IBM 650: una apreciación desde el campo" (PDF) . Anales IEEE de la historia de la informática . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID 34595049.
enlaces externos
Wikimedia Commons tiene medios relacionados con IBM 650 .
Bitsavers.org: documentos IBM 650 (archivos PDF)
Universidad de Columbia: El IBM 650 en la Universidad de Columbia
IBM - Archivos - Recursos valiosos sobre la historia de IBM - Estados Unidos en Wayback Machine (archivado el 12 de julio de 2023)
El IBM 650: caballo de batalla de la industria moderna en Wayback Machine (archivado el 3 de julio de 2023) Incluye una cronología, especificaciones técnicas, fotografías, clientes representativos y aplicaciones para las que se utilizó el 650.
Videoclip de IBM 650 y RAMAC en funcionamiento, versión alternativa
Weik, Martin H. (marzo de 1961). Una tercera encuesta sobre los sistemas informáticos digitales electrónicos nacionales. Laboratorios de Investigación Balística (BRL). Informe No. 1115.Incluye alrededor de 40 páginas de detalles de la encuesta IBM 650: clientes, aplicaciones, especificaciones y costos.
IBM 650 "Máquina de procesamiento de datos de tambor magnético"