stringtranslate.com

IBM 650

IBM 650 en la Universidad Texas A&M. La unidad de lectura y perforación de tarjetas IBM 533 se encuentra a la derecha.
Panel de consola IBM 650, que muestra indicadores biquinarios. [1] : pág. 47ff  Note las marcas de desgaste alrededor de los interruptores de uso frecuente, abajo a la derecha. Colección del Museo Nacional de Ciencia y Tecnología. A Coruña (Galicia, España).
Primer plano de los indicadores biquinarios
Tambor de memoria de un IBM 650
Vista lateral de una consola IBM 650. Primer ordenador de España (1959) actualmente en el Museo Nacional de Ciencia y Tecnología de A Coruña

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 2000 sistemas, el último en 1962, [6] [7] y fue la primera computadora en obtener una ganancia significativa. [7] La ​​primera se instaló a fines de 1954 y fue la computadora más popular de la década de 1950. [8]

El 650 se ofreció a usuarios comerciales, científicos y de ingeniería como una alternativa más lenta y menos costosa a las computadoras IBM 701 e IBM 702 , que eran para fines científicos y comerciales respectivamente. [7] También se comercializó para usuarios de máquinas de tarjetas perforadas que estaban actualizando sus perforadoras calculadoras , como la IBM 604 , a computadoras. [1] : 5  [9]

Debido a su costo relativamente bajo y facilidad de programación , el 650 se utilizó para una amplia variedad de aplicaciones, desde modelar el rendimiento de la tripulación de submarinos [10] hasta enseñar programación informática a estudiantes de secundaria y universitarios. El IBM 650 se volvió muy popular en las universidades, donde una generación de estudiantes aprendió programación por primera vez. [11]

Se anunció en 1953 y en 1956 se mejoró como IBM 650 RAMAC con la incorporación de hasta cuatro unidades de almacenamiento en disco. [12] El precio de compra de la consola IBM 650 básica, sin la unidad de perforación del lector, 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 modelo 650 era un ordenador decimal codificado biquinariamente con dos direcciones (tanto los datos como las direcciones eran decimales), con memoria en un tambor magnético giratorio . El soporte de caracteres lo proporcionaban las unidades de entrada/salida que convertían las codificaciones de caracteres especiales y alfabéticos de tarjetas perforadas en/desde un código decimal de dos dígitos.

El 650 funcionaba a una frecuencia de 125 kHz. [14] Podía sumar o restar en 1,63 milisegundos, multiplicar en 12,96 ms y dividir en 16,90 ms. Se estimó que la velocidad media del 650 era de unos 27,6 ms por instrucción, o aproximadamente 40 instrucciones por segundo. [15]

La serie de libros de Donald Knuth El arte de la programación informática está dedicada al 650. [15]

Historia

El primer 650 se instaló el 8 de diciembre de 1954 en el departamento de control de la John Hancock Mutual Life Insurance Company en Boston. [16]

Se esperaba que el IBM 7070 (palabras decimales con signo de 10 dígitos), anunciado en 1958, fuera un "sucesor común al menos del 650 y del [IBM] 705 ". [17] El IBM 1620 (decimal de longitud variable), presentado en 1959, estaba dirigido al segmento más bajo del mercado. El UNIVAC Solid State (una computadora de dos direcciones, palabras decimales con signo de 10 dígitos) fue anunciado por Sperry Rand 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: [18]

Peso: 5400–6263 libras (2,7–3,1 toneladas cortas; 2,4–2,8 t). [24] [25]

Unidades opcionales: [18]

Memoria principal

La memoria de tambor rotatorio proporcionaba 1.000, 2.000 o 4.000 palabras de memoria en las direcciones 0000 a 0999, 1999 o 3999 respectivamente. Cada palabra tenía 10 dígitos decimales codificados biquinariamente , que representaban un número de 10 dígitos con signo o cinco caracteres. (Contando un dígito codificado biquinariamente como siete bits, 4000 palabras equivaldrían a 35 kilobytes). [31] [32] Las palabras en los tambores se organizaban 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 por debajo de los cabezales de lectura/escritura durante la rotación (girando a 12.500 rpm , el tiempo de acceso promedio no optimizado era de 2,5 ms ). Debido a esta sincronización, la segunda dirección en cada instrucción era la dirección de la siguiente instrucción. Los programas se podían optimizar colocando instrucciones en direcciones que serían inmediatamente accesibles 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 colocaban las instrucciones y los datos. Más tarde se proporcionó un ensamblador , SOAP (Symbolic Optimal Assembly Program), que realizaba una optimización aproximada. [33] [34]

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 pasaban 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 realizaba mediante un sumador de un dígito. La consola (interruptores de 10 dígitos, un interruptor de signo y 10 luces de visualización 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 opcional IBM 653 se introdujo el 3 de mayo de 1955 y llegó a ofrecer hasta cinco funciones: [35]

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 signo se ignoraba en la máquina básica, pero se usaba en máquinas con características opcionales. La máquina base tenía 44 códigos de operación. Se proporcionaban 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 Table lookup (TLU) podía comparar con igualdad alta una palabra de 10 dígitos referenciada con 48 palabras consecutivas en la misma banda de tambor en una revolución de 5 ms y luego cambiar a la siguiente banda a tiempo para las siguientes 48 palabras. Esta hazaña era aproximadamente un tercio de la velocidad de una máquina binaria mil veces más rápida en 1963 (1500 microsegundos en el IBM 7040 a 5000 microsegundos en el 650) para buscar 46 entradas siempre que ambas estuvieran programadas en ensamblador. Había una instrucción Table lookup Equal opcional, con el mismo rendimiento.

La instrucción Read (RD) leía una tarjeta de 80 columnas de datos numéricos en diez palabras de memoria; la distribución de dígitos a palabras estaba determinada por el cableado del panel de control del lector de tarjetas . Cuando se utilizaba con el dispositivo alfabético de la unidad 533 Reader Punch, se podía leer una combinación de columnas numéricas y alfanuméricas (un 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 requerida ]

IBM 650 en Texas A&M, abierto para mostrar la parte trasera del panel frontal, los módulos de tubos de vacío y el tambor de almacenamiento
Módulo de circuito de tubo de vacío del tipo utilizado en el 650
Un aula en 1960 en la Escuela Secundaria de Ciencias del Bronx con un cuadro de instrucciones del IBM 650 sobre la pizarra, arriba a la derecha

Los códigos de operación de la máquina base fueron: [36]

  1. ^ Se utiliza para permitir que el panel de control 533 envíe señales a la CPU.
  2. ^ Cuenta ceros de orden alto en el acumulador superior.
  3. ^ El valor almacenado toma el signo del acumulador, excepto después de una operación de división; en ese caso, se almacena el signo del resto.

Notas:

Las opciones del IBM 653 podrían implementar códigos de instrucciones adicionales. [35]

Programa de muestra

Este programa de una sola 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 conmutadores 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) de modo que, al leerla, los contenidos de las ubicaciones del tambor 0001 a 0008 sean como se muestra. [37]

 0001 0000010000 0002 0000000000- 0003 1000018003 0004 6100080007 0005 2400008003 0006 0100008000 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 dirección de datos 0004.

 loc- op|datos|siguiente ación |addr|instrucción | |dirección
 8000 RD 70 0004 xxxx Leer la tarjeta de carga en el área de lectura de la primera banda

Cada banda de batería tiene un área de lectura; estas áreas de lectura están en las posiciones 0001-0010, 0051-0060, 0101-0110, etc. Cualquier dirección en una banda puede usarse para identificar esa banda para una instrucción de lectura; la dirección 0004 identifica la primera banda. La ejecución comienza entonces, desde la consola con la lectura de las ocho palabras en la tarjeta de carga en las posiciones 0001-0008 de la primera banda de memoria. En el caso de leer una tarjeta de carga, la "dirección de instrucción siguiente" se toma del campo de dirección de datos, no del campo de dirección de instrucción siguiente (mostrado arriba como xxxx). Por lo tanto, la ejecución continúa en 0004.

 0004 RSU 61 0008 0007 Reiniciar todo el acumulador, restar en el 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 desde 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 acumulador inferior (ese acumulador se restableció a 0- mediante la instrucción RSU anterior) La dirección de datos "1999" se decrementa, a continuación, en cada iteración. Esta instrucción fue colocada en el acumulador superior por la instrucción RSU anterior. Nota: esta instrucción, ahora en el acumulador superior, se decrementará y luego ejecutado nuevamente mientras aún está en el acumulador.
 0003 AU 10 0001 8003 Decrementa la dirección de datos de la instrucción en el acumulador en 1 (sumando 10000 a un número negativo)

La dirección de datos de la STL se reducirá a 0003 y la instrucción AU... en 0003 se sobrescribirá con ceros. Cuando esto ocurre (la siguiente dirección de instrucción de la 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 Halt, la siguiente dirección de instrucción es la consola (Esta instrucción Halt fue almacenada en 0000 por la instrucción STD anterior)

Software

Programa de estudiante de 1961 escrito en lenguaje de máquina IBM 650, basado en un ejercicio del libro de Andree [38]

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 para 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 complicado para programas grandes y, con el tiempo, se escribieron diversos lenguajes y herramientas de programación para el IBM 650, entre ellos:

Ensambladores
Sistemas interpretativos
Lenguajes algebraicos / compiladores

Véase también

Notas y referencias

  1. ^ abc IBM 650 Magnetic Drum Data-Processing Machine: Manual de operación (PDF) . IBM. 1955. 22-6060-1.
  2. ^ "Archivos de IBM: Instalación de IBM 650 con unidad de cinta magnética IBM 727 y almacenamiento en disco IBM 355". IBM . Estados Unidos. Archivado desde el original el 9 de abril de 2023 . Consultado el 5 de septiembre de 2019 .
  3. ^ "Archivos de IBM: ensamblaje del IBM 650 en la planta de Endicott". IBM . Estados Unidos. Archivado desde el original el 23 de octubre de 2023 . Consultado el 5 de septiembre de 2019 .
  4. ^ "Historia de las computadoras 1937-2011". Universidad Old Dominion . Consultado el 22 de junio de 2021 .
  5. ^ "IBM en la era de la informática". The Minnesota Computing History Project . 28 de junio de 2018. Consultado el 21 de junio de 2021 .
  6. ^ Pugh, Emerson W. (1995). La creación de IBM: la configuración de una industria y su tecnología . MIT Press. pág. 182. ISBN 978-0-262-16147-3.
  7. ^ abc "La calculadora de tambor magnético IBM 650". Columbia.edu .
  8. ^ Davis, Gordon B. (1971). Introducción a las computadoras electrónicas (segunda edición). Nueva York: McGraw-Hill. pág. 10. ISBN 978-0-070-15821-4.
  9. ^ "Archivos de IBM: 650 clientes". IBM . Archivado desde el original el 25 de julio de 2023.
  10. ^ Gray, Wayne D. (2007). Modelos integrados de sistemas cognitivos . Nueva York: Oxford University Press. p. 36. ISBN 978-0-19-518919-3.
  11. ^ "Se presenta la calculadora de tambor magnético IBM 650". Computerhistory .
  12. ^ "IBM Archives: comunicado de prensa sobre el anuncio de RAMAC 650". IBM . Archivado desde el original el 9 de junio de 2023.
  13. ^ "Archivos de IBM: comunicado de prensa sobre el anuncio del IBM 650 Model 4". IBM . 23 de enero de 2003. Archivado desde el original el 23 de octubre de 2023. Consultado el 25 de julio de 2023 .
  14. ^ Royse, David (1957). "La operación de almacenamiento en disco del sistema IBM 650 RAMAC". Documentos presentados en la conferencia conjunta de informática occidental del 26 al 28 de febrero de 1957: Técnicas para la fiabilidad en - IRE-AIEE-ACM '57 (Occidental) . ACM Press. págs. 43–49. doi : 10.1145/1455567.1455576 .
  15. ^ ab "Notas biográficas de Knuth". softpanorama.org . Consultado el 25 de julio de 2023 .
  16. ^ "Archivos IBM: Cronología 650". Archivado desde el original el 17 de abril de 2023.
  17. ^ Bashe, Charles J.; Johnson, Lyle R.; Palmer, John H.; Pugh, Emerson W. (1986). Las primeras computadoras de IBM . MIT. pág. 473. ISBN 0-262-02225-7.
  18. ^ abcd «Archivos IBM: 650 componentes». Archivado desde el original el 25 de julio de 2023.
  19. ^ "Archivos de IBM: Unidad de consola IBM 650". IBM . Archivado desde el original el 23 de octubre de 2023.
  20. ^ "Archivos de IBM: Unidad de potencia IBM 655". IBM . Archivado desde el original el 8 de abril de 2023.
  21. ^ Otros nombres de IBM para el 533 incluían Unidad de entrada-salida y Unidad de lectura-perforación .
  22. ^ "Archivos de IBM: IBM 533 Card Read Punch". IBM . Archivado desde el original el 8 de abril de 2023.
  23. ^ "Archivos de IBM: IBM 537 Card Read Punch". IBM . Archivado desde el original el 9 de abril de 2023.
  24. ^ Manual de instalación y 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.
  25. ^ 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.
  26. ^ "Archivos de IBM: IBM 355 Disk Storage". IBM . Archivado desde el original el 9 de abril de 2023.
  27. ^ "Archivos de IBM: máquina de contabilidad IBM 407". IBM . Archivado desde el original el 3 de julio de 2023.
  28. ^ "Archivos de IBM: Unidad de control IBM 652". IBM . Archivado desde el original el 8 de abril de 2023.
  29. ^ "Archivos de IBM: Unidad auxiliar IBM 653". IBM . Archivado desde el original el 9 de abril de 2023.
  30. ^ "Archivos de IBM: IBM 838 Inquiry Station". IBM . Archivado desde el original el 8 de abril de 2023.
  31. ^ "Archivos de IBM: Tambor magnético IBM 650". IBM . Archivado desde el original el 7 de febrero de 2023.
  32. ^ "Archivos de IBM: anuncio del IBM 650 Model 4". IBM . Archivado desde el original el 23 de octubre de 2023.
  33. ^ Kugel, Herb (22 de octubre de 2001). "El IBM 650". Del doctor Dobb.
  34. ^ ab IBM (1957). SOAP II para IBM 650 (PDF) . C24-4000-0.
  35. ^ abc Extensiones de CPU IBM 650
  36. ^ Boletín del sistema IBM 650, Códigos básicos de operación, optimización de programas, carga de programas (PDF) . IBM. 1958.
  37. ^ Se puede utilizar un punzón de 12 para identificar las tarjetas como tarjetas de carga . Las tarjetas de carga se leen directamente en las palabras 1 a 8 de la banda de almacenamiento especificada
  38. ^ ab Andree, Richard V. (1958). Programación de la computadora de tambor magnético y máquina de procesamiento de datos IBM 650 (PDF) .
  39. ^ Knuth, Donald E. (enero-marzo de 1986). "El IBM 650: una apreciación desde el campo". IEEE Annals of the History of Computing . 8 (1): 50–55. doi :10.1109/MAHC.1986.10010. S2CID  34595049.
  40. ^ 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 n.º 11, marzo de 1956, formulario 31-6822Este manual de referencia contiene el siguiente informe, en el que se destaca que, en sus características externas, el sistema interpretativo descrito en este informe debe mucho al sistema de codificación rápida IBM para la calculadora de tambor magnético 701. Wolontis, VM Sistema interpretativo decimal flotante completo para la calculadora de tambor magnético IBM 650. Bell Laboratories, Inc., Murray Hill, Nueva Jersey.
  41. ^ Holbrook, Bernard D.; Brown, W. Stanley. «Informe técnico sobre ciencias de la computación n.º 99: una historia de la investigación en computación en los Laboratorios Bell (1937-1975)». Bell Labs . Archivado desde el original el 2 de septiembre de 2014. Consultado el 27 de agosto de 2020 .
  42. ^ Wolontis, VM "Un sistema interpretativo decimal flotante completo para la calculadora de tambor magnético IBM 650" (PDF) . EE. UU.: IBM – vía bitsavers.
  43. ^ 650 Programming Bulletin 2 . IBM. 1956. p. 40. 22-6294-0. La rutina interpretativa que se describe aquí es un sistema fijo de tres direcciones decimales que permite realizar operaciones matemáticas, lógicas y de entrada-salida. La lógica de este sistema se obtuvo del Sistema interpretativo decimal flotante completo para el 650 que fue desarrollado por los Laboratorios Bell, Murray Hill, Nueva Jersey.
  44. ^ Perlis, AJ ; Smith, JW; VanZoeren, HR (18 de abril de 1958). Traductor interno; IT, un compilador para el 650 (PDF) . Programa de biblioteca 650 2.1.001.
  45. ^ 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 artículo académico.
  46. ^ IBM (1959). Sistema de codificación automática FOR TRANSIT para el IBM 650 (PDF) . 28-4028.
  47. ^ IBM (1960). Sistema de codificación automática FORTRAN para el IBM 650 (PDF) . 29-4047.
  48. ^ Gray, George. "The UNIVAC Solid State Computer". 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.

Lectura adicional

Enlaces externos