IBM 650
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. Fue la primera computadora producida en masa en el mundo. Se produjeron casi 2000 sistemas, el último en 1962, y fue la primera computadora en obtener una ganancia significativa. El primero se instaló a fines de 1954 y fue la computadora más popular de la década de 1950.
El 650 se comercializó para usuarios comerciales, científicos y de ingeniería como una versión de propósito general de las computadoras IBM 701 e IBM 702 que tenían fines científicos y comerciales, respectivamente. También se comercializó entre los usuarios de máquinas de tarjetas perforadas que estaban pasando de calcular perforaciones, como la IBM 604, a computadoras.
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 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.
Se anunció en 1953 y en 1956 se mejoró como IBM 650 RAMAC con la adición de hasta cuatro unidades de almacenamiento en disco. El soporte para el 650 y sus unidades componentes se retiró en 1969.
La 650 era una computadora decimal con codificación biquinaria de dos direcciones (tanto los datos como las direcciones eran decimales), con memoria en un tambor magnético giratorio. El soporte de caracteres fue proporcionado por las unidades de entrada/salida al convertir codificaciones alfabéticas y de caracteres especiales de tarjetas perforadas a/desde un código decimal de dos dígitos.
Historia
El primer 650 se instaló el 8 de diciembre de 1954 en el departamento de control de John Hancock Mutual Life Insurance Company en Boston.
Se esperaba que el IBM 7070 (palabras decimales de 10 dígitos con signo), anunciado en 1958, fuera un "sucesor común de al menos el 650 y el [IBM] 705". El IBM 1620 (decimal de longitud variable), introducido en 1959, se dirigió al extremo inferior del mercado. Sperry Rand anunció el estado sólido UNIVAC (una computadora de dos direcciones, palabras decimales de 10 dígitos firmadas) en diciembre de 1958 como respuesta al 650. Ninguno de estos tenía un conjunto de instrucciones que fuera compatible con el 650.
Hardware
El sistema básico 650 constaba de tres unidades:
- Consola IBM 650 Unidad alojada el almacenamiento de tambor magnético, dispositivo aritmético (utilizando tubos de vacío) y la consola del operador.
- IBM 655 Power Unit
- IBM 533 o IBM 537 Card Read Punch Unit El IBM 533 tenía alimentos separados para leer y golpear; el IBM 537 tenía una alimentación, por lo tanto podía leer y luego golpear en la misma tarjeta.
Peso: 5400–6263 libras (2,7–3,1 toneladas cortas; 2,4–2,8 t).
Unidades opcionales:
- IBM 46 Tape To Card Punch, Modelo 3
- IBM 47 Tape To Card Printing Punch, Modelo 3
- Almacenamiento de discos IBM 355 Sistemas de unidad con unidad de disco fueron conocidos como IBM 650 RAMAC Sistemas de procesamiento de datos
- IBM 407 Accounting Machine
- Unidad de lectura de tarjetas IBM 543
- IBM 544 Card Punch Unit
- Unidad de Control IBM 652 (cinta magnética, disco)
- Unidad de almacenamiento IBM 653 (cinta magnética, disco, almacenamiento básico, registros de índices, aritmética de punto flotante)
- IBM 654 Unidad Alfabética Auxiliar
- IBM 727 Magnetic Tape Unit
- Estación de investigación IBM 838
Memoria principal
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 biquinariamente, lo que representa un número de 10 dígitos con signo o cinco caracteres. (Contando un dígito codificado biquinario como 7 bits, 4000 palabras equivaldrían a 35 kilobytes). Las palabras en los tambores se organizaron en bandas alrededor del tambor, cincuenta palabras por banda y 20, 40 u 80 bandas para el respectivo modelos Se podía acceder a una palabra cuando su ubicación en la superficie del tambor pasaba por 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 tiempo, la segunda dirección de 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 podría 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 realizó una optimización aproximada.
Las computadoras LGP-30, Bendix G-15 e IBM 305 RAMAC también usaban tubos de vacío y memoria de tambor, pero eran bastante diferentes de la IBM 650.
Las instrucciones leídas del 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, los acumuladores inferior y superior eran todos direccionables; 8000, 8001, 8002, 8003 respectivamente.
Unidad de almacenamiento IBM 653
La unidad de almacenamiento IBM 653 opcional se presentó el 3 de mayo de 1955 y finalmente proporcionó hasta cinco funciones:
- Controlador de cinta magnética (para unidades de cinta magnética IBM 727) (10 códigos de operación adicionales)
- Controlador de almacenamiento de discos (1956 mejora para la nueva unidad de almacenamiento de discos IBM 355) (5 códigos de operación adicionales)
- 60 palabras de 10 dígitos de memoria de núcleo magnético en direcciones 9000 a 9059; un pequeño memoria rápida (Este dispositivo dio un tiempo de acceso a la memoria de 96μs, una mejora en bruto de 26 veces en relación con el tambor giratorio), necesaria para un búfer de cinta y disco I/O. (5 códigos de operación adicionales)
- Tres registros de índices de cuatro dígitos en direcciones 8005 a 8007; las direcciones de tambor fueron indexadas añadiendo 2000, 4000 o 6000 a ellos, las direcciones centrales fueron indexadas añadiendo 0200, 0400 o 0600 a ellos. Si el sistema tenía el tambor de 4000 palabras, entonces la indexación fue añadiendo 4000 a la primera dirección para el registro de índices A, añadiendo 4000 a la segunda dirección para el registro de índices B, y añadiendo 4000 a cada una de las dos direcciones para el registro de índice C (la indexación de sistemas de 4000 palabras sólo se aplica a la primera dirección). Los sistemas de 4000 palabras requerían circuitos de lectura/escritura transistorizados para la memoria del tambor y estaban disponibles antes de 1963. (18 códigos de operación adicionales)
- Punto de inundación – las instrucciones aritméticas apoyaron una mantissa de ocho dígitos y dos dígitos característicos (ex exponente de apertura) – MMMMMMCC, proporcionando una gama de ±0.00000001E-50 a ±0.99999999E+49. (siete códigos de operación adicionales)
Conjunto de instrucciones
Las 650 instrucciones consistían en 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 usó 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, hubo 97 códigos de operación.
La instrucción de búsqueda en tabla (TLU) podría comparar una palabra de 10 dígitos a la que se hace referencia 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 Read (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 usa 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). Una función de expansión permitió más columnas alfanuméricas, pero ciertamente no más de 50, ya que solo se almacenaron diez palabras (cinco caracteres por palabra) en el tambor mediante una operación de lectura de tarjeta.
Los códigos básicos de funcionamiento de la máquina eran:
17 | AABL | Añadir absoluto a un acumulador inferior |
15 | AL | Añadir al acumulador inferior |
10 | AU | Añadir al acumulador superior |
45 | BRNZ | Branch on accumulator non-zero |
46 | BRMIN | Branch on minus accumulator |
44 | BRNZU | Subdivisión sobre no cero en el acumulador superior |
47 | BROV | Branch on overflow |
90-99 | BRD | Rama en 8 posiciones de distribuidor 1-10 |
14 | DIV | Divide |
64 | DIVRU | Divide y reinicia el acumulador superior |
69 | LD | Distribuidor de carga |
19 | MULT | Multiply |
00 | NO-OP | Sin operación |
71 | PCH | Punch una tarjeta |
70 | RD | Leer una tarjeta |
67 | RAABL | Reiniciar acumulador y añadir absoluto al acumulador inferior |
65 | RAL | Reiniciar acumulador y añadir a un acumulador inferior |
60 | RAU | Reiniciar acumulador y añadir al acumulador superior |
68 | RSABL | Reiniciar acumulador y restar absoluto del acumulador inferior |
66 | RSL | Reiniciar acumulador y restar del acumulador inferior |
61 | RSU | Reiniciar acumulador y restar del acumulador superior |
35 | SLT | Desplazado acumulador izquierdo |
36 | SCT | Acumulador de turno izquierda y cuenta |
30 | SRT | Derecho de acumulación de robo |
31 | SRD | Acumulador de derecha y redonda |
01 | STOP | Parar si el interruptor de consola está listo para parar, de lo contrario continuar como NO-OP |
24 | STD | Distribuidor de tiendas en memoria |
22 | STDA | Almacene la dirección de datos inferior acumulador en distribuidor
Luego almacena el distribuidor en memoria |
23 | STIA | Almacene la dirección de instrucción del acumulador inferior en distribuidor
Luego almacena el distribuidor en memoria |
20 | STL | Almacene el acumulador inferior en memoria |
21 | STU | Almacene el acumulador superior en memoria. |
18 | SABL | Extracto absoluto del acumulador inferior |
16 | SL | Subtract from lower accumulator |
11 | Seguro. | Subtract from upper accumulator |
84 | TLU | Cuadro |
- ^ Se utiliza para permitir que el panel de control 533 señale CPU.
- ^ Cuenta con ceros de alto orden en el acumulador superior.
- ^ El valor almacenado toma 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 instrucciones adicionales.
Programa de muestra
Este programa de una tarjeta, tomado del Boletín de programación 650 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 interruptores de la consola y desde un acumulador.
Para comenzar, se perfora una tarjeta de carga con 80 dígitos consecutivos (la segunda columna a continuación) para que, cuando se lea, el contenido de las ubicaciones de tambor 0001 a 0008 sea como se muestra.
0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0007 6900060005 0008 2019990003
Los interruptores de dígitos de la consola (dirección 8000) se configuran manualmente en una instrucción de lectura con la dirección de datos 0004.
loc- op sometidadata sometida ation remainaddr Silencio
8000 RD 70 0004 xxxxx Leer la tarjeta de carga en el área de lectura de la primera banda
Cada banda de percusión 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 usar para identificar esa banda para una instrucción de lectura; la dirección 0004 identifica la 1ra banda. La ejecución comienza entonces, desde la consola con la lectura de las ocho palabras en 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 siguiente campo de dirección de instrucción (que se muestra arriba como xxxx). Por lo tanto, la ejecución continúa en 0004
0004 RSU 61 0008 0007 Reiniciar el acumulador completo, restar en la parte superior (8003) el valor 2019990003 0007 LD 69 0006 0005 Distribuidor de carga con 0100008000 0005 ETS 24 0000 8003 Distribuidor de tiendas en ubicación 0000, la siguiente instrucción es en 8003 (el acumulador superior) Nota: el traslado de datos o instrucciones de una ubicación de tambor a otra requiere dos instrucciones: LD, STD.
Ahora se ejecuta un ciclo de dos instrucciones:
8003 STL 20 1999 0003 Almacene el acumulador inferior (que el acumulador fue reajustado a 0- por la instrucción RSU arriba) La dirección de datos "1999" es decrementada, a continuación, en cada iteración. Esta instrucción fue colocada en el acumulador superior por la instrucción RSU arriba. Nota: esta instrucción, ahora en el acumulador superior, será decrementada y luego ejecutado de nuevo mientras aún en el acumulador.
0003 UA 10 0001 8003 Dirección de datos de decremento de la instrucción en el acumulador por 1 (añadiendo 10000 a un número negativo)
La dirección de datos de STL, finalmente, 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 de STL sigue siendo 0003), la ejecución continúa de la siguiente manera:
0003 NOOP 00 0000 0000 Instrucciones de no-operación, siguiente dirección de instrucción es 0000 0000 HALT 01 0000 8000 Halt, la siguiente dirección de instrucción es la consola (Esta instrucción Halt fue almacenada en 0000 por la instrucción STD arriba)
La serie de libros El arte de la programación de computadoras de Donald Knuth está famosamente dedicada a un 650.
Software
Software escrito para IBM 650 incluido:
- Assemblers
- Programa de Asamblea Optimal Simbólica (SOAP) — Un montador
- Sistema de Asamblea Técnica (TASS) — Un montador macro.
- Sistemas interpretativos
- Un paquete de máquina virtual de aplicación interpretativa publicado originalmente como "Sistema de interpretación decimal flotante completo para la calculadora de dro magnético IBM 650". Esto fue conocido por varios nombres:
- the Wolontis–Bell Labs Interpreter, the Bell System, the Bell interpreter, the Bell interpretive system, o BLIS — the Bell Lab Interpretive System
- L1 y (más tarde) L2 – conocidos fuera de Bell Labs como "Bell 1" y "Bell 2", entre otros nombres (ver arriba)
- Sistema de Programación Sintético para Aplicaciones Comerciales
- Idiomas algebraicos / compiladores
- Traductor interno (IT) - Un compilador
- Nuevo Compilador revisado Lengua Básica de TI extendida (RUNCIBLE) - Una extensión de TI en caso
- PARA TRANSIT — Una versión de Fortran que compiló a TI que a su vez se compiló a SOAP
- FORTRAN
- GATE — Un compilador simple con un nombre variable de caracteres
- IPL — El idioma de procesamiento de la primera lista. La versión más conocida fue IPL-V.
- SPACE (Programación simplificada Cualquier persona puede disfrutar) — Un compilador de dos pasos orientado al negocio a través de SOAP
Notas y referencias
- ^ "Instalación IBM 650 con IBM 727 Magnetic Tape Unit y IBM 355 Disk Storage". IBM Archives. EE.UU.. Retrieved 5 de septiembre, 2019.
- ^ "IBM 650 Assembly at Endicott plant". IBM Archives. EE.UU.. Retrieved 5 de septiembre, 2019.
- ^ "Historia de ordenadores 1937-2011". Old Dominion University. Retrieved 22 de junio, 2021.
- ^ "IBM in the Computer Era". The Minnesota Computing History Project. Retrieved 21 de junio 2021.
- ^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology. MIT Press. p. 182. ISBN 978-0-262-16147-3.
- ^ a b c "La calculadora magnética de dúo IBM 650". Columbia.edu.
{{cite web}}
: CS1 maint: url-status (link) - ^ Davis, Gordon B. (1971). Introducción a las computadoras electrónicas (Segunda edición). Nueva York: McGraw-Hill. p. 10. ISBN 978-0-070-15821-4.
- ^ a b IBM 650 Magnetic Drum Data-Processing Machine: Manual of Operation (PDF). IBM. 1955. 22-6060-1.
- ^ IBM Archivos: 650 Clientes
- ^ Gray, Wayne D. (2007). Modelos integrados de sistemas de cognición. Nueva York: Oxford University Press. p. 36. ISBN 978-0-19-518919-3.
- ^ "IBM 650 calculadora de tambor magnético introducida". Computerhistory.
{{cite web}}
: CS1 maint: url-status (link) - ^ Comunicado de prensa del anuncio de la RAMAC IBM 650
- ^ "IBM Archived: 650 Chronology".
- ^ Bashe, Charles J.; Johnson, Lyle R; Palmer, John H.; Pugh, Emerson W. (1986). Computadoras tempranas de IBM. MIT. p. 473. ISBN 0-262-02225-7.
- ^ a b IBM Archivos: 650 Componentes
- ^ IBM Archives: IBM 650 Console Unit
- ^ IBM Archives: IBM 655 Power Unit
- ^ Otros nombres de IBM para los 533 incluidos Input-Output Unit y Unidad Read-Punch.
- ^ IBM Archives: IBM 533 Card Read Punch
- ^ IBM Archives: IBM 537 Card Read Punch
- ^ Manual de instalación de planificación física 650 (PDF). IBM. 1o de octubre de 1957. Retrieved 31 de mayo, 2018 – a través de Bitsavers.
- ^ Manual de Ingeniería de Clientes de Instrucción (PDF). IBM. 1956. p. I-17. Retrieved 31 de mayo, 2018 – a través de Bitsavers.
- ^ a b Sin conexión
- ^ IBM Archives: almacenamiento de discos IBM 355
- ^ IBM Archivos: Máquina contable IBM 407
- ^ IBM Archives: IBM 652 Control Unit
- ^ IBM Archives: IBM 653 Auxiliary Unit
- ^ IBM Archives: IBM 838 Inquiry Station
- ^ IBM Archives: IBM 650 Magnetic Drum
- ^ IBM Archives: IBM 650 Model 4 announcement
- ^ Kugel, Herb (22 de octubre de 2001). "El IBM 650". Dr. Dobb's.
- ^ a b IBM (1957). SOAP II for the IBM 650 (PDF)C24-4000-0.
- ^ a b c Extensiones de la CPU IBM 650
- ^ IBM 650 System Bulletin, Basic Operation Codes, Program Optimizing, Program Loading (PDF). IBM. 1958.
- ^ Un golpe de 12 se puede utilizar para identificar las tarjetas como Carga de tarjetas. Las tarjetas de carga se leen directamente en las palabras 1-8 del grupo de almacenamiento especificado
- ^ Knuth, Donald E. (enero a marzo de 1986). "El IBM 650: Una apreciación del Campo". IEEE Annals of the History of Computing. 8 (1): 50–55. doi:10.1109/MAHC.1986.10010. S2CID 34595049.
- ^ IBM Manual de referencia: Floating-Decimal Interpretive System for the IBM 650 (PDF)IBM. 1959. pp. 63, xxi. 28-4024.
Esta es una reimpresión del Boletín Técnico IBM 650 No. 11, Marzo 1956, formulario 31-6822
. Este manual de referencia contiene el siguiente informe, señalando que En sus características externas, el sistema de interpretación descrito en el presente informe debe mucho al Sistema IBM Speedcoding para el 701. Wolontis, V.M. Sistema de Interpretación Decimal de Flotación completo para la calculadora de dro magnético IBM 650. Bell Laboratories, Inc, Murray Hill, New Jersey. - ^ Holbrook, Bernard D.; Brown, W. Stanley. "Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937-1975)". Laboratorios Bell. Archivado desde el original el 2 de septiembre de 2014. Retrieved 27 de agosto, 2020.
- ^ Wolontis, V. M. "A Complete Floating-Decimal Interpretive System For The IBM 650 Magnetic Drum Calculator" (PDF). EE.UU.: IBM – via bitsavers.
- ^ 650 Boletín de Programación 2. IBM. 1956. p. 40. 22-6294-0.
La rutina interpretativa descrita aquí es un sistema de tres direcciones decimal fijo que proporciona operaciones matemáticas, lógicas y de salida de entrada. La lógica de este sistema se obtuvo de la Sistema de interpretación decimal flotante completo para el 650 que fue desarrollado por los Laboratorios Bell, Murray Hill, Nueva Jersey.
- ^ Perlis, A.J.; Smith, J.W.; VanZoeren, H.R. (1958-04-18). Traductor interno; IT, Compilador para el 650 (PDF). Programa de bibliotecas 650 2.1.001.
- ^ Donald Knuth publicó el diagrama de flujo del compilador en 1959;Knuth, D. E. (1959). "RUNCIBLE—traducción algebraica en un ordenador limitado". Comunicaciones de la ACM. 2 (11): 18–21. doi:10.1145/368481.368507. S2CID 8224014.; este fue su primer documento académico.
- ^ IBM (1959). DE TRANSICIÓN Sistema de codificación automático para el IBM 650 (PDF)28-4028.
- ^ IBM (1960). FORTRAN Automatic Coding System for the IBM 650 (PDF)29-4047.
- ^ Gray, George. "El Computador de Estado sólido de UNIVAC". Boletín de Historia de Unisys, Volumen 1.2 Diciembre 1992 (revisado 1999). Archivado desde el original el 4 de marzo de 2016.
Contenido relacionado
Amperímetro
Método czochralski
Camion de bomberos