stringtranslate.com

AECD

La calculadora automática de almacenamiento de retardo electrónico ( EDSAC ) fue una de las primeras computadoras británicas. [1] Inspirada en el seminal 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. La EDSAC fue la segunda computadora electrónica digital con programa almacenado que entró en servicio regular. [2]

Más tarde, el proyecto recibió el apoyo de J. Lyons & Co. Ltd. , con la intención de desarrollar un ordenador de aplicación comercial, y Lyons logró desarrollar LEO I , basado en el diseño de 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 se cerró finalmente el 11 de julio de 1958, tras ser reemplazado por EDSAC 2 , que permaneció en uso hasta 1965. [7]

Descripción técnica

Componentes físicos

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

Tan pronto como EDSAC estuvo en funcionamiento, comenzó a atender las necesidades de investigación de la universidad. Utilizaba líneas de retardo de mercurio para la memoria y tubos de vacío desclasificados para la lógica. El consumo de energía era de 11  kW de electricidad. [8] [9] El tiempo de ciclo era de 1,5 ms para todas las instrucciones ordinarias, 6 ms para la multiplicación. La entrada se realizaba a través de una cinta perforada de cinco agujeros y la salida a través de un teleimpresor .

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 de índice como 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 realmente útil. [9]

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

El almacenamiento completo de líneas de retardo de 1024 palabras no estuvo disponible hasta 1955 o principios de 1956, [11] lo que hasta entonces limitaba los programas a unas 800 palabras.

John Lindley (estudiante de diploma entre 1958 y 1959) mencionó "la increíble dificultad que teníamos para producir una sola pieza correcta de cinta de papel con los rudimentarios y poco fiables equipos de perforación, impresión y verificación caseros disponibles a finales de los años 50". [12]

Memoria e instrucciones

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

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

Internamente, el EDSAC utilizaba números binarios en complemento a dos . Los números tenían una longitud de 17 bits (una palabra) o 35 bits (dos palabras). De manera inusual, el multiplicador estaba diseñado para tratar los 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 (de 35 bits) sin perder precisión.

Las instrucciones disponibles eran:

No existía instrucción de división (pero se suministraban varias subrutinas de división) ni forma de cargar directamente un número en el acumulador (para ello era necesaria una instrucción de "Almacenar y poner a cero el acumulador" seguida de una instrucción de "Añadir"). No existía instrucción de salto incondicional ni instrucción de llamada a procedimiento (todavía no se había inventado).

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

Software del sistema

Las órdenes iniciales se cableaban en un conjunto de interruptores uniselectores y se cargaban en las palabras bajas de la memoria al iniciarse. En mayo de 1949, las órdenes iniciales proporcionaban un ensamblador reubicable 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 una simulación de EDSAC disponible y una descripción completa de las órdenes iniciales y los primeros programas. [14]

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

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

Los usuarios preparaban sus programas introduciéndolos (en ensamblador) en una cinta de papel. Pronto se volvieron expertos en sostener la cinta de papel a la luz y leer los códigos. Cuando un programa estaba listo, se colgaba de un trozo de cuerda tendida cerca del lector de cinta de papel. Los operadores de la máquina, que estaban presentes durante el día, seleccionaban la siguiente cinta de la cuerda y la cargaban en EDSAC. Por supuesto, esto es lo que hoy conocemos como colas de trabajos. Si imprimía algo, la cinta y la impresión se devolvían al usuario; de lo contrario, se le informaba en qué ubicación de memoria se había detenido. Los depuradores tardaron un tiempo en aparecer, pero se podía configurar una pantalla de tubo de rayos catódicos para que mostrara el contenido de una parte particular de la memoria. Esto se utilizaba para ver si un número convergía, por ejemplo. Se conectaba un altavoz al bit de signo del acumulador; los usuarios experimentados conocían los sonidos saludables y no saludables de los programas, en particular los programas "colgados" en un bucle.

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

Técnica de programación

Mesa de vigilancia de la EDSAC [18]

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

David Wheeler , que obtuvo el primer doctorado en Ciencias de la Computación del mundo trabajando en el proyecto, es reconocido por inventar el concepto de subrutina. Los usuarios escribían programas que llamaban a una rutina saltando al inicio de la subrutina con la dirección de retorno (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 podían llamar subrutinas múltiples y anidadas siempre que el usuario supiera 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 desde una cinta maestra a su propia cinta después del final de su propio programa. (Sin embargo, Alan Turing discutió las subrutinas en un artículo de 1945 sobre propuestas de diseño para el NPL ACE , llegando tan lejos como para inventar el concepto de una pila de direcciones de retorno, que habría permitido la recursión. [19] )

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 las regiones del código que se utilizaban para el almacenamiento de datos (las llamadas "pseudoórdenes"). Esto se solucionaba mediante el uso de una rutina de entrada inicial, que era responsable de cargar subrutinas desde una cinta perforada a la memoria. Al cargar una subrutina, anotaba la posición de inicio e incrementaba las referencias de memoria interna según fuera necesario. Por lo tanto, como escribió Wilkes, "el código utilizado para representar órdenes fuera de la máquina difiere del utilizado dentro, y las diferencias están dictadas por los diferentes requisitos del programador por un lado, y de los circuitos de control de la máquina por el otro". [20]

Los programadores de EDSAC utilizaban 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 a la memoria, podía ocurrir que se tuviera que calcular una constante particular, una constante que posteriormente no necesitaría recálculo. En esta situación, la constante se calcularía en un "interludio". El código necesario para calcular la constante se proporcionaría 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 calculada la constante y escrita en la memoria, el control volverí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 permitía 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. [21]

Software de aplicación

El concepto de subrutina condujo a la disponibilidad de una biblioteca de subrutinas sustancial. 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 ; verificación; división; exponenciación ; rutinas relacionadas con funciones; ecuaciones diferenciales ; funciones especiales; series de potencias ; logaritmos ; miscelánea; impresión y diseño; cuadratura ; lectura (entrada); raíz n -ésima; funciones trigonométricas ; operaciones de conteo (simulando bucles de repetición hasta , bucles mientras y bucles para ); vectores ; y matrices .

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

Aplicaciones de EDSAC

EDSAC fue diseñado específicamente para formar parte del servicio de soporte del Laboratorio de Matemáticas para el cálculo. [22] El primer artículo científico que se publicó utilizando una computadora para cálculos fue el de Ronald Fisher . [ cita requerida ] Wilkes y Wheeler habían utilizado EDSAC para resolver una ecuación diferencial relacionada con frecuencias genéticas para él. [23] En 1951, Miller y Wheeler utilizaron la máquina para descubrir un primo de 79 dígitos [24]  , 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 capacidad informática de EDSAC. En sus discursos de aceptación del premio, todos ellos reconocieron el papel que EDSAC había desempeñado en sus investigaciones.

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 primos p en curvas elípticas cuyo rango era conocido. Basándose 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 2024.

Es posible que algún día el "cerebro" [el ordenador] llegue a nuestro nivel [el de la gente común] y nos ayude con los cálculos de impuestos y contabilidad, pero esto es pura especulación y, hasta ahora, no hay señales de que vaya a ocurrir.

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

Juegos

En 1952, Sandy Douglas desarrolló OXO , una versión del tres en raya (tres en raya) para la 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 . [26] [27]

Otro videojuego fue creado por Stanley Gill e implicaba que un punto (llamado oveja) se acercara a una línea en la que se podía abrir una de dos puertas. [28] El juego de Stanley Gill se controlaba mediante el haz de luz del lector de cinta de papel del EDSAC. [28] Al interrumpirlo (por ejemplo, si el jugador colocaba su mano sobre él), se abría la puerta superior. [28] Si se dejaba el haz intacto, se abría la puerta inferior. [28]

Desarrollos futuros

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 en su lugar se optó por el Titan , un prototipo Atlas 2 desarrollado a partir del Atlas Computer de la Universidad de Manchester , Ferranti y Plessey .

Proyecto réplica del EDSAC

Réplica de la 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. [29] Las primeras partes de la réplica se encendieron en noviembre de 2014. [30] [31] Los circuitos lógicos de EDSAC se reconstruyeron meticulosamente mediante el desarrollo de un simulador y la reexaminación de algunos esquemas originales redescubiertos. Esta documentación se ha publicado bajo una licencia Creative Commons. [32] El proyecto en curso está abierto a los visitantes del museo. En 2016, dos operadoras originales de EDSAC, Margaret Marrs y Joyce Wheeler, visitaron el museo para ayudar al proyecto. [33] En noviembre de 2016, se estimó que la puesta en servicio de la réplica en estado totalmente terminado y operativo se produciría en el otoño de 2017. [34] Sin embargo, retrasos imprevistos en el proyecto han dado lugar a una fecha desconocida para la finalización y pleno funcionamiento de la máquina.

Véase también

Referencias

  1. ^ Wilkes, WV ; Renwick, W. (1950). "El EDSAC (calculadora automática de almacenamiento electrónico retardado)". Matemáticas. Comp . 4 (30): 61–65. doi : 10.1090/s0025-5718-1950-0037589-7 .
  2. ^ La computadora Manchester Baby de 1948 precedió a la EDSAC como computadora de programa almacenado , pero fue construida principalmente como un banco de pruebas para el tubo Williams y no como una máquina para uso general. Véase "Una breve historia informal del Laboratorio de Computación". Sin embargo, la Baby se desarrolló hasta convertirse en un sucesor prácticamente útil, la Manchester Mark 1 de 1949, que estuvo disponible para uso general por parte de otros departamentos universitarios y Ferranti en abril de 1949, a pesar de que todavía estaba en desarrollo; la EDSAC funcionó por primera vez en mayo de 1949, mientras también todavía 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 el EDSAC". Anales de la historia de la computación . 19 (1): 13–15. doi :10.1109/85.560726.
  4. ^ "La computadora Pioneer será reconstruida". Cam . 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, Cliff B.; Lloyd, John L. (24 de enero de 2012). Computación confiable e histórica: ensayos dedicados a Brian Randell con motivo de su 75.° cumpleaños. Springer. pág. 29. ISBN 9783642245411.
  6. ^ "9. El EDSAC, Universidad de Cambridge, Inglaterra". Boletín de informática digital . 2 (1). Otros problemas computacionales tempranos que se ejecutan en el EDSAC; algunas especificaciones del ordenador: 3. 1 de enero de 1950. Archivado desde el original el 11 de marzo de 2021.{{cite journal}}: CS1 maint: others (link)
  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". YouTube . Computerphile.
  9. ^ abc "Algunas estadísticas de EDSAC". Reino Unido: Laboratorio de Computación de la Universidad de Cambridge .
  10. ^ "Aplicaciones de EDSAC 1". EDSAC 1 y posteriores: una recopilación de recuerdos personales . Reino Unido: Laboratorio de Computación de la Universidad de Cambridge .
  11. ^ "Mantenimiento de EDSAC 1". EDSAC 1 y después: una recopilación de recuerdos personales . Reino Unido: Laboratorio de Computación de la Universidad de Cambridge .
  12. ^ "EDSAC 1 en funcionamiento". EDSAC 1 y después: una recopilación de recuerdos personales . Reino Unido: Laboratorio de Computación de la Universidad de Cambridge .
  13. ^ Actas de la Sociedad Filosófica de Cambridge, vol. 49, parte 1, pág. 84-89.
  14. ^ "Simulador Edsac". dcs.warwick.ac.uk . Reino Unido: Universidad de Warwick . Consultado el 24 de mayo de 2023 .
  15. ^ ab «EDSAC realizó sus primeros cálculos». Historia de la informática . Archivado desde el original el 26 de febrero de 2021. Consultado el 23 de noviembre de 2018 .
  16. ^ Raymond, Katrine (25 de octubre de 2017). «Beatrice Worsley». The Canadian Encyclopedia . Archivado desde el original el 13 de enero de 2018. Consultado el 23 de noviembre de 2018 .
  17. ^ El profesor David Barron, profesor emérito de la Universidad de Southampton, en un seminario en el Laboratorio de Computación de Cambridge para conmemorar el 60º aniversario, el 6 de mayo de 2009.
  18. ^ Descripción de tres pantallas (contador, memoria y control de secuencia): "Dos nuevos vídeos de EDSAC: las pantallas VDU de EDSAC". Museo Nacional de Computación . 11 de diciembre de 2015.
  19. ^ Turing 1945, reimpreso en Copeland (2005), pág. 383.
  20. ^ Wilkes, MV (1956). Computadoras digitales automáticas . Londres: Methuen. pp. 93–95.
  21. ^ Wilkes, MV (1956). Computadoras digitales automáticas . Londres: Methuen. pp. 108-109.
  22. ^ Goddard, Jonathan (3 de mayo de 2019), 70 años desde la primera computadora diseñada para uso práctico cotidiano, Departamento de Ciencias de la Computación y Tecnología, Universidad de Cambridge
  23. ^ Frecuencias genéticas en un clina determinadas por selección y difusión, RA Fisher, Biometrics , Vol. 6, No. 4 (diciembre de 1950), págs. 353–361.
  24. ^ Caldwell: números primos más grandes conocidos por año. Una referencia menciona a Miller, JCP "Larger Prime Numbers" (1951) Nature 168(4280):838, pero el resumen no lo menciona.
  25. ^ "Copia archivada" (PDF) . dcs.warwick.ac.uk . Reino Unido: Universidad de Warwick . Archivado desde el original (PDF) el 22 de diciembre de 2015 . Consultado el 18 de noviembre de 2016 .{{cite web}}: CS1 maint: archived copy as title (link)
  26. ^ Cohen, DS (20 de septiembre de 2014). «OXO, también conocido como Noughts and Crosses: el primer videojuego». About.com . IAC . Archivado desde el original el 22 de diciembre de 2015 . Consultado el 18 de diciembre de 2015 .
  27. ^ Wolf, Mark JP (16 de agosto de 2012). Enciclopedia de videojuegos: la cultura, la tecnología y el arte de los juegos . Greenwood Publishing Group . pp. 3–7. ISBN. 978-0-313-37936-9.
  28. ^ abcd Smith, Alvy Ray (9 de junio de 2015). "El amanecer de la luz digital". IEEE Annals of the History of Computing . 38 (4): 74–91. doi :10.1109/MAHC.2015.51. S2CID  10257358.
  29. ^ Ward, Mark (13 de enero de 2011). "Pioneering Edsac computer to be built at Bletchley Park". BBC News . Consultado el 13 de enero de 2011 .
  30. ^ El museo enciende un ordenador histórico.
  31. ^ Hartley, David; Herbert, Andrew (2013). "Proyecto de réplica de EDSAC". Hacer relevante la historia de la informática . IFIP Avances en tecnología de la información y la comunicación. Vol. 416. 9 Estado actual , págs. 307-308. doi :10.1007/978-3-642-41650-7_27. ISBN 978-3-642-41649-1.
  32. ^ "Subproyecto de reconstrucción lógica de EDSAC" www.billp.org . Consultado el 24 de agosto de 2023 .
  33. ^ "Dentro del proyecto de reconstrucción del EDSAC, una de las primeras computadoras de propósito general del mundo". ZDNet . Consultado el 24 de mayo de 2020 .
  34. ^ 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 .

Lectura adicional

Enlaces externos