stringtranslate.com

EDSAC

La calculadora automática de almacenamiento con retardo electrónico ( EDSAC ) fue una de las primeras computadoras británicas. [1] Inspirada en el primer borrador de un informe sobre el EDVAC de John von Neumann , la máquina fue construida por Maurice Wilkes y su equipo en el Laboratorio de Matemáticas de la Universidad de Cambridge en Inglaterra. EDSAC fue la segunda computadora electrónica digital con programa almacenado que entró en servicio regular. [2]

Posteriormente, el proyecto fue apoyado por J. Lyons & Co. Ltd. , con la intención de desarrollar una computadora aplicada comercialmente y teniendo éxito en el desarrollo de LEO I por parte de Lyons , basado en el diseño EDSAC. El trabajo en EDSAC comenzó en 1947, [3] y ejecutó sus primeros programas el 6 de mayo de 1949, cuando calculó una tabla de números cuadrados [4] y una lista de números primos . [5] [6] EDSAC fue finalmente cerrado el 11 de julio de 1958, habiendo sido reemplazado por EDSAC 2 , que permaneció en uso hasta 1965. [7]

Resumen técnico

Componentes físicos

Tubos de 9 pulgadas utilizados para monitoreo.
William Renwick con lector de cinta de 5 orificios y teleimpresora Creed

Tan pronto como EDSAC estuvo operativo, comenzó a atender las necesidades de investigación de la universidad. Usó líneas de retardo de mercurio para la memoria y tubos de vacío reducidos para la lógica. El consumo de energía fue de 11  kW de electricidad. [8] [9] El tiempo de ciclo fue de 1,5 ms para todas las instrucciones ordinarias, 6 ms para la multiplicación. La entrada se realizaba mediante cinta perforada de cinco agujeros y la salida mediante una teleimpresora .

Inicialmente los registros se limitaban a un acumulador y un registro multiplicador. En 1953, David Wheeler , al regresar de una estancia en la Universidad de Illinois , diseñó un registro índice como una extensión del hardware EDSAC original.

En 1952 se añadió una unidad de cinta magnética, pero nunca funcionó lo suficientemente bien como para ser de utilidad real. [10]

Hasta 1952, la memoria principal disponible (instrucciones y datos) era sólo de 512 palabras de 18 bits y no había ningún almacén de respaldo. [11] Las líneas de retardo (o "tanques") se organizaron en dos baterías que proporcionaban 512 palabras cada una. La segunda batería entró en funcionamiento en 1952. [10]

El almacén completo de líneas de retardo de 1024 palabras no estuvo disponible hasta 1955 o principios de 1956, [12] limitando los programas a unas 800 palabras hasta entonces.

John Lindley (estudiante de diploma 1958-1959) mencionó "la increíble dificultad que tuvimos para producir una sola pieza correcta de cinta de papel con el tosco y poco confiable equipo casero de perforación, impresión y verificación disponible a finales de los años 50". [13]

Memoria e instrucciones

Maurice Wilkes inspeccionando la línea de retardo de mercurio de la EDSAC en construcción
Maurice Wilkes y Bill Renwick frente al EDSAC al completo

La memoria principal del EDSAC constaba de 1024 ubicaciones, aunque inicialmente solo se instalaron 512 ubicaciones. Cada uno contenía 18 bits, pero el bit superior nunca estuvo disponible debido a problemas de sincronización, por lo que solo se utilizaron 17 bits. Una instrucción constaba de un código de instrucción de 5 bits, 1 bit de repuesto, un operando de 10 bits (normalmente una dirección de memoria) y 1 bit de longitud para controlar si la instrucción utilizaba un operando de 17 bits o de 35 bits (dos bits consecutivos). palabras, little-endian ). Todos los códigos de instrucción estaban representados por diseño mediante una letra mnemotécnica, de modo que la instrucción Agregar , por ejemplo, usaba el código de carácter EDSAC para la letra A.

Internamente, la EDSAC utilizaba números binarios en complemento a dos . Los números tenían 17 bits (una palabra) o 35 bits (dos palabras) de longitud. Inusualmente, el multiplicador fue diseñado para tratar números como fracciones de punto fijo en el rango −1 ≤ x < 1, es decir, el punto binario estaba inmediatamente a la derecha del signo. El acumulador podía contener 71 bits, incluido el signo, lo que permitía multiplicar dos números largos (35 bits) sin perder precisión.

Las instrucciones disponibles fueron:

No había ninguna instrucción de división (pero se proporcionaron varias subrutinas de división) y no había forma de cargar directamente un número en el acumulador (para esto era necesaria una instrucción "Guardar y poner a cero el acumulador" seguida de una instrucción "Agregar"). No había ninguna instrucción de salto incondicional, ni tampoco una instrucción de llamada a procedimiento; aún no se había inventado.

Maurice Wilkes analizó los modos de direccionamiento relativo para el EDSAC en un artículo publicado en 1953. Estaba haciendo propuestas para facilitar el uso de subrutinas . [14]

Software del sistema

Las órdenes iniciales estaban cableadas en un conjunto de interruptores uniselectores y cargadas en las palabras bajas de la memoria al inicio. En mayo de 1949, los pedidos iniciales proporcionaban un ensamblador de reubicación primitivo que aprovechaba el diseño mnemotécnico descrito anteriormente, todo en 31 palabras. Este fue el primer ensamblador del mundo y posiblemente el comienzo de la industria global del software. Hay disponible una simulación de EDSAC y una descripción completa de los pedidos iniciales y primeros programas. [15]

El primer cálculo realizado por EDSAC fue un programa de números cuadrados ejecutado el 6 de mayo de 1949. [16] El programa fue escrito por Beatrice Worsley , que había viajado desde Canadá para estudiar la máquina. [17] [16]

La máquina fue utilizada por otros miembros de la universidad para resolver problemas reales y se desarrollaron muchas técnicas tempranas que ahora se incluyen en los sistemas operativos.

Los usuarios preparaban sus programas perforandolos (en ensamblador) en una cinta de papel. Pronto aprendieron a sostener la cinta de papel a contraluz y leer los códigos. Cuando un programa estaba listo, se colgaba de un trozo de hilo tendido cerca del lector de cintas de papel. Los operadores de la máquina, que estuvieron presentes durante el día, seleccionaron la siguiente cinta de la línea y la cargaron en EDSAC. Por supuesto, esto se conoce hoy en día como colas de empleo. Si imprimió algo, entonces la cinta y la copia impresa se devolvieron al usuario; de lo contrario, se le informó en qué ubicación de la memoria se había detenido. Faltaba algún tiempo para los depuradores, pero se podía configurar una pantalla de tubo de rayos catódicos para mostrar el contenido de una pieza particular de memoria. Esto se utilizaba, por ejemplo, para comprobar si un número convergía. Se conectó un altavoz al bit de señal del acumulador; Los usuarios experimentados conocían los sonidos saludables y no saludables de los programas, particularmente los programas "colgados" en un bucle.

Después del horario de oficina, a algunos "usuarios autorizados" se les permitía hacer funcionar la máquina por sí mismos, lo que continuaba hasta bien entrada la noche hasta que una válvula explotaba, lo que normalmente ocurría según uno de esos usuarios. [18] Fred Hoyle alude a esto en su novela The Black Cloud.

Técnica de programación

Mesa de seguimiento EDSAC [19]

Los primeros programadores tuvieron que hacer uso de técnicas hoy mal vistas, en particular, el uso de código automodificable . Como no hubo registro de índice hasta mucho más tarde, la única forma de acceder a una matriz era alterar a qué ubicación de memoria hacía referencia una instrucción en particular.

A David Wheeler , que obtuvo el primer doctorado en Ciencias de la Computación del mundo trabajando en el proyecto, se le atribuye la invención del concepto de subrutina. Los usuarios escribían programas que llamaban a una rutina saltando al inicio de la subrutina con la dirección del remitente (es decir, la ubicación más uno del salto en sí) en el acumulador (un Wheeler Jump ). Por convención, la subrutina esperaba esto y lo primero que hizo fue modificar su instrucción de salto final a esa dirección de retorno. Se podrían llamar a múltiples subrutinas anidadas siempre que el usuario conociera la longitud de cada una para calcular la ubicación a la que saltar; Las llamadas recursivas estaban prohibidas. Luego, el usuario copiaba el código de la subrutina de una cinta maestra a su propia cinta después del final de su propio programa. (Sin embargo, Alan Turing analizó las subrutinas en un artículo de 1945 sobre propuestas de diseño para NPL ACE , llegando incluso a inventar el concepto de una pila de direcciones de retorno, que habría permitido la recursividad. [20] )

La falta de un registro de índice también planteaba un problema para el escritor de una subrutina, ya que no podía saber de antemano en qué parte de la memoria se cargaría la subrutina y, por lo tanto, no podía saber cómo abordar ninguna región del código que se utilizara. para el almacenamiento de datos (los llamados "pseudoórdenes"). Esto se resolvió mediante el uso de una rutina de entrada inicial, que era responsable de cargar subrutinas desde cinta perforada en la memoria. Al cargar una subrutina, anotaría la ubicación de inicio e incrementaría las referencias de la memoria interna según sea necesario. Así, como escribió Wilkes, "el código utilizado para representar órdenes fuera de la máquina difiere del utilizado dentro, siendo las diferencias dictadas por los diferentes requisitos del programador, por un lado, y de los circuitos de control de la máquina, por el otro". . [21]

Los programadores de EDSAC utilizaron técnicas especiales para aprovechar al máximo la limitada memoria disponible. Por ejemplo, en el momento de cargar una subrutina desde una cinta perforada en la memoria, podría suceder que fuera necesario calcular una constante particular, una constante que no necesitaría volver a calcularse posteriormente. En esta situación, la constante se calcularía en un "interludio". El código necesario para calcular la constante se proporcionará junto con la subrutina completa. Después de que la rutina de entrada inicial hubiera cargado el código de cálculo, transferiría el control a este código. Una vez que la constante había sido calculada y escrita en la memoria, el control regresaría a la rutina de entrada inicial, que continuaría escribiendo el resto de la subrutina en la memoria, pero primero ajustando su punto de partida para sobrescribir el código que había calculado la constante. . Esto permitió realizar ajustes bastante complicados a una subrutina de propósito general sin que su huella final en la memoria fuera mayor que si se hubiera adaptado a una circunstancia específica. [22]

Software de la aplicacion

El concepto de subrutina condujo a la disponibilidad de una importante biblioteca de subrutinas. En 1951, 87 subrutinas en las siguientes categorías estaban disponibles para uso general: aritmética de punto flotante ; operaciones aritméticas con números complejos ; comprobación; división; exponenciación ; rutinas relacionadas con funciones; ecuaciones diferenciales ; funciones especiales; serie de potencias ; logaritmos ; misceláneas; impresión y maquetación; cuadratura ; leer (entrada); n- ésima raíz; funciones trigonométricas ; operaciones de conteo (simulando bucles de repetición hasta , bucles while y bucles for ); vectores ; y matrices .

El primer lenguaje ensamblador apareció para EDSAC e inspiró varios otros lenguajes ensambladores:

Aplicaciones de EDSAC

EDSAC fue diseñado específicamente para formar parte del servicio de apoyo al cálculo del Laboratorio de Matemáticas. [23] El primer artículo científico que se publicó utilizando una computadora para los cálculos fue el de Ronald Fisher . [ cita necesaria ] Wilkes y Wheeler habían utilizado EDSAC para resolver una ecuación diferencial relacionada con las frecuencias genéticas para él. [24] En 1951, Miller y Wheeler utilizaron la máquina para descubrir un número primo de 79 dígitos [25]  , el más grande conocido en ese momento.

Los ganadores de tres premios Nobel: John Kendrew y Max Perutz (Química, 1962), Andrew Huxley (Medicina, 1963) y Martin Ryle (Física, 1974) – se beneficiaron de la revolucionaria potencia informática del EDSAC. En sus discursos de aceptación del premio, cada uno reconoció el papel que había desempeñado EDSAC en su investigación.

A principios de la década de 1960, Peter Swinnerton-Dyer utilizó la computadora EDSAC para calcular el número de puntos módulo p (denotado por N p ) para un gran número de números primos p en curvas elípticas cuyo rango se conocía. Con base en estos resultados numéricos, Birch y Swinnerton-Dyer (1965) conjeturaron que N p para una curva E con rango r obedece a una ley asintótica, la conjetura de Birch y Swinnerton-Dyer , considerada uno de los principales problemas sin resolver en matemáticas a partir de 2022. .

El "cerebro" [computadora] puede que algún día llegue a nuestro nivel [de la gente común] y nos ayude con nuestros cálculos de impuestos sobre la renta y contabilidad. Pero esto son especulaciones y hasta el momento no hay señales de ello.

—  Periódico británico The Star en un artículo de junio de 1949 sobre la computadora EDSAC, mucho antes de la era de las computadoras personales. [26]

Juegos

En 1952, Sandy Douglas desarrolló OXO , una versión de tres en raya (tic-tac-toe) para el EDSAC, con salida gráfica a un tubo de rayos catódicos VCR97 de 6" . Este bien pudo haber sido el primer videojuego del mundo . [ 27] [28]

Otro videojuego fue creado por Stanley Gill e involucraba un punto (llamado oveja) que se acercaba a una línea en la que se podía abrir una de las dos puertas. [29] El juego de Stanley Gill se controlaba mediante el haz de luz del lector de cintas de papel del EDSAC. [29] Interrumpirlo (por ejemplo, si el jugador coloca su mano en él) abriría la puerta superior. [29] Dejar la viga intacta daría como resultado la apertura de la puerta inferior. [29]

Nuevos desarrollos

El sucesor del EDSAC, el EDSAC 2 , entró en servicio en 1958.

En 1961, David Hartley desarrolló una versión EDSAC 2 de Autocode , un lenguaje de programación de alto nivel similar a ALGOL para científicos e ingenieros .

A mediados de la década de 1960, se planeó un sucesor del EDSAC 2, pero el cambio se hizo hacia el Titan , un prototipo del Atlas 2 desarrollado a partir del Atlas Computer de la Universidad de Manchester , Ferranti y Plessey .

Proyecto Réplica EDSAC

Réplica de EDSAC en octubre de 2018

El 13 de enero de 2011, la Computer Conservation Society anunció que planeaba construir una réplica funcional de EDSAC en el Museo Nacional de Computación (TNMoC) en Bletchley Park , supervisada por Andrew Herbert , quien estudió con Maurice Wilkes. [30] Las primeras partes de la réplica se activaron en noviembre de 2014. [31] [32] Los circuitos lógicos del EDSAC fueron reconstruidos meticulosamente mediante el desarrollo de un simulador y el reexamen de algunos esquemas originales redescubiertos. Esta documentación ha sido publicada bajo una licencia Creative Commons. [33] El proyecto en curso está abierto a los visitantes del museo. En 2016, dos operadores originales de EDSAC, Margaret Marrs y Joyce Wheeler, visitaron el museo para ayudar en el proyecto. [34] En noviembre de 2016, se estimaba que la puesta en servicio del estado completamente terminado y operativo de la réplica sería en el otoño de 2017. [35] Sin embargo, retrasos imprevistos en el proyecto han resultado en una fecha desconocida para una máquina completa y en pleno funcionamiento.

Ver también

Referencias

  1. ^ Wilkes, Virginia Occidental ; Renwick, W. (1950). "La EDSAC (Calculadora automática de almacenamiento de retardo electrónico)". Matemáticas. comp . 4 (30): 61–65. doi : 10.1090/s0025-5718-1950-0037589-7 .
  2. La computadora Manchester Baby de 1948 fue anterior a EDSAC como computadora de programa almacenado , pero fue construida en gran parte como un banco de pruebas para el tubo Williams y no como una máquina para uso general. Ver "Una breve historia informal del Laboratorio de Computación". Sin embargo, el Baby se convirtió en un sucesor prácticamente útil, el Manchester Mark 1 de 1949, que estuvo disponible para uso general por otros departamentos universitarios y por Ferranti en abril de 1949, a pesar de que todavía estaba en desarrollo; EDSAC se ejecutó por primera vez en mayo de 1949, cuando aún estaba en desarrollo. "50 aniversario de la computadora Manchester Baby". Archivado desde el original el 9 de febrero de 2014 . Consultado el 5 de enero de 2014 .
  3. ^ Wilkes, MV (1997). "Aritmética en la EDSAC". Anales de la Historia de Comp . 19 (1): 13-15. doi : 10.1109/85.560726.
  4. ^ "Computadora pionera a reconstruir". Cámara . 62 : 5. 2011.Para ser precisos, el primer programa de EDSAC imprimió una lista de los cuadrados de los números enteros del 0 al 99 inclusive.
  5. ^ Jones, acantilado B.; Lloyd, John L. (24 de enero de 2012). Computación histórica y confiable: ensayos dedicados a Brian Randell con motivo de su 75 cumpleaños. Saltador. pag. 29.ISBN _ 9783642245411.
  6. ^ Otros problemas computacionales iniciales se ejecutan en EDSAC; Algunas especificaciones del ordenador. "9. El EDSAC, Universidad de Cambridge, Inglaterra". Boletín de Informática Digital . 2 (1): 3. 1 de enero de 1950. Archivado desde el original el 11 de marzo de 2021.{{cite journal}}: Mantenimiento CS1: otros ( enlace )
  7. ^ EDSAC 99: 15-16 de abril de 1999 (PDF) , Laboratorio de Computación de la Universidad de Cambridge, 6 de mayo de 1999, págs. 68, 69 , consultado el 29 de junio de 2013.
  8. ^ Simulador EDSAC. Informático.
  9. ^ Algunas estadísticas de la EDSAC. Universidad de Cambridge.
  10. ^ ab Algunas estadísticas de EDSAC.
  11. ^ EDSAC 1 y posteriores.
  12. ^ EDSAC 1 y posteriores.
  13. ^ EDSAC 1 y posteriores.
  14. ^ Actas de la Sociedad Filosófica de Cambridge, vol. 49, pinta. 1, pág. 84–89.
  15. ^ "Simulador Edsac". www.dcs.warwick.ac.uk . Consultado el 24 de mayo de 2023 .
  16. ^ ab "EDSAC realizó sus primeros cálculos". Historia de la Computación . Consultado el 23 de noviembre de 2018 .
  17. ^ Raymond, Katrine (25 de octubre de 2017). "Beatrice Worsley". La enciclopedia canadiense . Archivado desde el original el 13 de enero de 2018 . Consultado el 23 de noviembre de 2018 .
  18. ^ Profesor David Barron, profesor emérito de la Universidad de Southampton en un seminario del Cambridge Computer Lab para conmemorar el 60 aniversario el 6 de mayo de 2009.
  19. ^ Descripción de tres displays (contador, memoria y control de secuencia): "Dos nuevos vídeos de EDSAC: pantallas VDU de EDSAC". El Museo Nacional de Computación . 11 de diciembre de 2015.
  20. ^ Turing 1945, reimpreso en Copeland (2005), p. 383.
  21. ^ Wilkes, MV (1956). Computadoras digitales automáticas . Londres: Methuen. págs. 93–95.
  22. ^ Wilkes, MV (1956). Computadoras digitales automáticas . Londres: Methuen. págs. 108-109.
  23. ^ Goddard, Jonathan (3 de mayo de 2019), 70 años desde la primera computadora diseñada para el uso práctico diario, Departamento de Ciencias y Tecnología de la Computación, Universidad de Cambridge
  24. ^ Frecuencias genéticas en una línea determinada por selección y difusión, RA Fisher, Biometrics , vol. 6, núm. 4 (diciembre de 1950), págs. 353–361.
  25. ^ Caldwell: números primos más grandes conocidos por año. Una referencia da a Miller, JCP "Larger Prime Numbers" (1951) Nature 168(4280):838, pero el resumen no lo menciona.
  26. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 22 de diciembre de 2015 . Consultado el 18 de noviembre de 2016 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  27. ^ Cohen, DS (20 de septiembre de 2014). "OXO también conocido como Noughts and Crosses: el primer videojuego". Acerca de.com . IAC . Archivado desde el original el 22 de diciembre de 2015 . Consultado el 18 de diciembre de 2015 .
  28. ^ Wolf, Mark JP (16 de agosto de 2012). Enciclopedia de videojuegos: la cultura, la tecnología y el arte de los juegos . Grupo editorial Greenwood . págs. 3–7. ISBN 978-0-313-37936-9.
  29. ^ abcd Smith, Alvy Ray (9 de junio de 2015). "El amanecer de la luz digital". Anales IEEE de la historia de la informática . 38 (4): 74–91. doi :10.1109/MAHC.2015.51. S2CID  10257358.
  30. ^ Ward, Mark (13 de enero de 2011). "Se construirá una computadora Edsac pionera en Bletchley Park". Noticias de la BBC . Consultado el 13 de enero de 2011 .
  31. ^ El museo enciende una computadora histórica.
  32. ^ Hartley, David; Herbert, Andrés (2013). "Proyecto Réplica EDSAC". Hacer relevante la historia de la informática . Avances del IFIP en tecnologías de la información y las comunicaciones. vol. 416. 9 Estado actual , págs. 307–308. doi :10.1007/978-3-642-41650-7_27. ISBN 978-3-642-41649-1.
  33. ^ "Subproyecto de reconstrucción lógica de EDSAC". www.billp.org . Consultado el 24 de agosto de 2023 .
  34. ^ "Dentro del proyecto para reconstruir la EDSAC, una de las primeras computadoras de uso general del mundo". zdnet.com . Consultado el 24 de mayo de 2020 .
  35. ^ Palmer, Danny (24 de noviembre de 2016). "Dentro del proyecto de reconstrucción del EDSAC, una de las primeras computadoras de propósito general del mundo". ZDNet . Consultado el 1 de diciembre de 2016 .

Otras lecturas

enlaces externos