Mánchester Bebé -Manchester Baby

Mánchester bebé
Una serie de siete bastidores metálicos altos llenos de equipos electrónicos frente a una pared de ladrillos.  Los letreros encima de cada estante describen las funciones realizadas por los componentes electrónicos que contienen.  Tres visitantes leen en los puestos de información a la izquierda de la imagen.
Réplica del bebé en el Museo de la Ciencia y la Industria en Castlefield , Manchester
También conocido como Máquina experimental a pequeña escala
Desarrollador Frederic Calland Williams
Tom Kilburn
Geoff Tootill
Familia de productos computadoras manchester
Fecha de lanzamiento 21 de junio de 1948 ; hace 74 años ( 21 de junio de 1948 )
Memoria 1 kilobit (1024 bits)
Sucesor Mánchester marca 1

El Manchester Baby , también conocido desde su proyecto de replicación como Small-Scale Experimental Machine ( SSEM ), fue la primera computadora electrónica con programa almacenado . Fue construido en la Universidad de Manchester por Frederic C. Williams , Tom Kilburn y Geoff Tootill , y ejecutó su primer programa el 21 de junio de 1948.

El Baby no estaba destinado a ser un motor informático práctico, sino que fue diseñado como un banco de pruebas para el tubo de Williams , la primera memoria de acceso verdaderamente aleatorio . Descrito como "pequeño y primitivo" 50 años después de su creación, fue la primera máquina en funcionamiento que contenía todos los elementos esenciales para una computadora digital electrónica moderna. Tan pronto como el Baby demostró la viabilidad de su diseño, se inició un proyecto en la universidad para convertirlo en una máquina operativa a gran escala, el Manchester Mark 1 . La Mark 1, a su vez, se convirtió rápidamente en el prototipo de la Ferranti Mark 1 , la primera computadora de propósito general disponible comercialmente en el mundo.

El Bebé tenía una longitud de palabra de 32 bits y una memoria de 32 palabras (1 kilobit (1024 bits)). Como fue diseñado para ser la computadora de programa almacenado más simple posible, las únicas operaciones aritméticas implementadas en el hardware fueron la resta y la negación ; otras operaciones aritméticas se implementaron en el software. El primero de los tres programas escritos para la máquina calculó el divisor propio más alto de 2 18 (262,144) probando cada número entero desde 2 18 hacia abajo. Este algoritmo tardaría mucho tiempo en ejecutarse y, por lo tanto, probaría la confiabilidad de la computadora, ya que la división se implementó mediante la resta repetida del divisor. El programa constaba de 17 instrucciones y se ejecutó durante unos 52 minutos antes de llegar a la respuesta correcta de 131.072, después de que Baby hubiera realizado unos 3,5 millones de operaciones (para una velocidad de CPU efectiva de unas 1100 instrucciones por segundo ).

Fondo

Representación artística de una máquina de Turing

El primer diseño de una computadora controlada por programa fue el motor analítico de Charles Babbage en la década de 1830, con Ada Lovelace concibiendo la idea del primer programa teórico para calcular los números de Bernoulli. Un siglo después, en 1936, el matemático Alan Turing publicó su descripción de lo que se conoció como máquina de Turing , un concepto teórico destinado a explorar los límites de la computación mecánica. Turing no estaba imaginando una máquina física, sino una persona a la que llamó "computadora", que actuaba de acuerdo con las instrucciones proporcionadas por una cinta en la que los símbolos podían leerse y escribirse secuencialmente a medida que la cinta se movía debajo de un cabezal de cinta. Turing demostró que si se puede escribir un algoritmo para resolver un problema matemático, entonces una máquina de Turing puede ejecutar ese algoritmo.

El Z3 de Konrad Zuse fue la primera computadora completamente automática y programable del mundo, con lógica aritmética digital binaria, pero carecía de la ramificación condicional de una máquina de Turing. El 12 de mayo de 1941, el Z3 se presentó con éxito a una audiencia de científicos del Deutsche Versuchsanstalt für Luftfahrt ("Laboratorio alemán de aviación") en Berlín . El Z3 almacenaba su programa en una cinta externa, pero era más electromecánico que electrónico. El Colossus de 1943 fue el primer dispositivo informático electrónico, pero no era una máquina de propósito general.

La ENIAC (1946) fue la primera computadora automática que era tanto electrónica como de propósito general. Era Turing completo , con bifurcación condicional y programable para resolver una amplia gama de problemas, pero su programa se mantenía en el estado de interruptores en latiguillos, en lugar de memoria modificable por máquina, y podía llevar varios días reprogramarlo. Investigadores como Turing y Zuse investigaron la idea de usar la memoria de la computadora para almacenar el programa y los datos en los que estaba trabajando, y fue el matemático John von Neumann quien escribió un artículo ampliamente distribuido describiendo la arquitectura de la computadora, que todavía se usa en casi todas las computadoras

Diseño de la arquitectura von Neumann (1947)

La construcción de una computadora von Neumann dependía de la disponibilidad de un dispositivo de memoria adecuado para almacenar el programa. Durante la Segunda Guerra Mundial, los investigadores que trabajaban en el problema de eliminar el eco de las señales de radar habían desarrollado una forma de memoria de línea de retardo , cuya primera aplicación práctica fue la línea de retardo de mercurio, desarrollada por J. Presper Eckert . Los transmisores de radar envían breves pulsos regulares de energía de radio, cuyos reflejos se muestran en una pantalla CRT. Como los operadores generalmente solo están interesados ​​en objetivos en movimiento, era deseable filtrar cualquier reflejo que distraiga de los objetos estacionarios. El filtrado se logró comparando cada pulso recibido con el pulso anterior y rechazando ambos si eran idénticos, dejando una señal que contenía solo las imágenes de cualquier objeto en movimiento. Para almacenar cada pulso recibido para su posterior comparación, se pasó a través de una línea de transmisión, retrasándolo exactamente el tiempo entre los pulsos transmitidos.

Turing se unió al Laboratorio Nacional de Física (NPL) en octubre de 1945, momento en el que los científicos del Ministerio de Abastecimiento habían llegado a la conclusión de que Gran Bretaña necesitaba un Laboratorio Nacional de Matemáticas para coordinar el cálculo asistido por máquinas. Se estableció una División de Matemáticas en la NPL y, el 19 de febrero de 1946, Alan Turing presentó un documento que describía su diseño para una computadora electrónica con programa almacenado que se conocería como Automatic Computing Engine (ACE). Este fue uno de varios proyectos establecidos en los años posteriores a la Segunda Guerra Mundial con el objetivo de construir una computadora con programa almacenado. Aproximadamente al mismo tiempo, EDVAC estaba en desarrollo en la Escuela Moore de Ingeniería Eléctrica de la Universidad de Pensilvania , y el Laboratorio de Matemáticas de la Universidad de Cambridge estaba trabajando en EDSAC .

La NPL no tenía la experiencia para construir una máquina como ACE, por lo que contactaron a Tommy Flowers en el Laboratorio de Investigación Dollis Hill de la Oficina General de Correos (GPO) . Flowers, el diseñador de Colossus, la primera computadora electrónica programable del mundo, estaba comprometido en otro lugar y no pudo participar en el proyecto, aunque su equipo construyó algunas líneas de retardo de mercurio para ACE. También se solicitó asistencia al Establecimiento de Investigación de Telecomunicaciones (TRE), al igual que a Maurice Wilkes en el Laboratorio de Matemáticas de la Universidad de Cambridge.

El departamento gubernamental responsable de la NPL decidió que, de todo el trabajo que estaba realizando la TRE en su nombre, se le daría la máxima prioridad a ACE. La decisión de NPL provocó la visita del superintendente de la División de Física de la TRE el 22 de noviembre de 1946, acompañado por Frederic C. Williams y AM Uttley, también de la TRE. Williams dirigió un grupo de desarrollo de TRE que trabajaba en tiendas CRT para aplicaciones de radar, como alternativa a las líneas de retraso. Williams no estaba disponible para trabajar en el ACE porque ya había aceptado una cátedra en la Universidad de Manchester , y la mayoría de sus técnicos de circuitos estaban en proceso de ser transferidos al Departamento de Energía Atómica. La TRE acordó secundar a un pequeño número de técnicos para trabajar bajo la dirección de Williams en la universidad y apoyar a otro pequeño grupo que trabaja con Uttley en la TRE.

Tubo Williams-Kilburn

Aunque algunas de las primeras computadoras como EDSAC, inspiradas en el diseño de EDVAC, luego hicieron un uso exitoso de la memoria de línea de retardo de mercurio , la tecnología tenía varios inconvenientes: era pesada, costosa y no permitía el acceso aleatorio a los datos. . Además, debido a que los datos se almacenaban como una secuencia de ondas acústicas propagadas a través de una columna de mercurio , la temperatura del dispositivo debía controlarse con mucho cuidado, ya que la velocidad del sonido a través de un medio varía con su temperatura. Williams había visto un experimento en Bell Labs que demostraba la eficacia de los tubos de rayos catódicos (CRT) como alternativa a la línea de retardo para eliminar los ecos de tierra de las señales de radar. Mientras trabajaba en el TRE, poco antes de unirse a la Universidad de Manchester en diciembre de 1946, él y Tom Kilburn habían desarrollado una forma de memoria electrónica conocida como tubo de Williams o tubo de Williams-Kilburn, basada en un CRT estándar: la primera electrónica aleatoria. -acceder al dispositivo de almacenamiento digital. El Baby fue diseñado para mostrar que era un dispositivo de almacenamiento práctico al demostrar que los datos contenidos en él se podían leer y escribir de manera confiable a una velocidad adecuada para su uso en una computadora.

Para su uso en una computadora digital binaria , el tubo tenía que ser capaz de almacenar uno de los dos estados en cada una de sus ubicaciones de memoria, correspondientes a los dígitos binarios ( bits ) 0 y 1. Explotaba la carga eléctrica positiva o negativa generada por mostrando un guión o un punto en cualquier posición en la pantalla CRT, un fenómeno conocido como emisión secundaria . Un guión generaba una carga positiva y un punto una carga negativa, cualquiera de los cuales podía ser captado por una placa detectora frente a la pantalla; una carga negativa representaba 0 y una carga positiva 1. La carga se disipó en aproximadamente 0,2 segundos, pero podría actualizarse automáticamente a partir de los datos recogidos por el detector.

El tubo Williams utilizado en Baby se basó en el CV1131, un CRT de 12 pulgadas (300 mm) de diámetro disponible comercialmente, pero en el Mark I se utilizó un tubo más pequeño de 6 pulgadas (150 mm), el CV1097.

Génesis del proyecto

Una placa en honor a Williams y Kilburn en la Universidad de Manchester

Después de desarrollar la computadora Colossus para descifrar códigos en Bletchley Park durante la Segunda Guerra Mundial, Max Newman se comprometió con el desarrollo de una computadora que incorporara tanto los conceptos matemáticos de Alan Turing como el concepto de programa almacenado que había sido descrito por John von Neumann . En 1945, fue designado para la Cátedra Fielden de Matemáticas Puras en la Universidad de Manchester; se llevó a sus colegas del proyecto Colossus, Jack Good y David Rees, a Manchester con él, y allí reclutaron a FC Williams para que fuera el "hombre del circuito" para un nuevo proyecto informático para el que había obtenido financiación de la Royal Society .

"Habiendo asegurado el apoyo de la universidad, obtenido fondos de la Royal Society y reunido un equipo de primer nivel de matemáticos e ingenieros, Newman ahora tenía todos los elementos de su plan de construcción de computadoras en su lugar. Adoptó el enfoque que había usado con tanta eficacia. en Bletchley Park, Newman soltó a su gente en el trabajo detallado mientras él se concentraba en orquestar el esfuerzo".

—David  Anderson, historiador

Después de su nombramiento para la Cátedra de Ingeniería Eléctrica en la Universidad de Manchester, Williams reclutó a su colega de TRE, Tom Kilburn , en comisión de servicio. Para el otoño de 1947, la pareja había aumentado la capacidad de almacenamiento del tubo Williams de un bit a 2048, organizado en una matriz de 64 por 32 bits, y demostró que podía almacenar esos bits durante cuatro horas. El ingeniero Geoff Tootill se unió al equipo cedido por TRE en septiembre de 1947 y permaneció adscrito hasta abril de 1949.

"Ahora, aclaremos antes de seguir adelante que ni Tom Kilburn ni yo sabíamos nada sobre computadoras cuando llegamos a la Universidad de Manchester... Newman nos explicó todo el asunto de cómo funciona una computadora".

—Fredéric  Calland Williams

Kilburn tuvo dificultades para recordar las influencias en el diseño de su máquina:

"[E]n ese período, de una forma u otra sabía lo que era una computadora digital... No tengo idea de dónde obtuve este conocimiento".

—Tom  Kilburn

Jack Copeland explica que el primer diseño de Kilburn (anterior a Baby) sin acumulador (descentralizado, en la nomenclatura de Jack Good) se basó en los aportes de Turing, pero que luego cambió a una máquina basada en acumulador (centralizada) del tipo defendido por von Neumann, tal como lo escribieron y le enseñaron Jack Good y Max Newman.

El conjunto de instrucciones de siete operaciones de Baby era aproximadamente un subconjunto del conjunto de instrucciones de doce operaciones propuesto en 1947 por Jack Good, en el primer documento conocido que utilizó el término "Baby" para esta máquina. Good no incluyó una instrucción de "detención", y su instrucción de salto condicional propuesta era más complicada que la implementada por Baby.

Desarrollo y diseño

Esquema arquitectónico que muestra cómo se desplegaron los cuatro tubos de rayos catódicos (que se muestran en verde)

Aunque Newman no desempeñó ningún papel de ingeniería en el desarrollo de Baby, o cualquiera de las computadoras Manchester posteriores , en general apoyó y se mostró entusiasmado con el proyecto, y dispuso la adquisición de suministros excedentes de guerra para su construcción, incluidos bastidores de metal GPO y "...el material de dos colosos completos" de Bletchley.

En junio de 1948, el Baby se había construido y estaba funcionando. Tenía 17 pies (5,2 m) de largo, 7 pies y 4 pulgadas (2,24 m) de alto y pesaba casi 1 tonelada larga (1,0 t). La máquina contenía 550  válvulas (tubos de vacío) —300  diodos y 250  pentodos— y tenía un consumo de energía de 3500 vatios. La unidad aritmética se construyó utilizando válvulas de pentodo EF50 , que se habían utilizado ampliamente durante la guerra. El Bebé usó un tubo Williams para proporcionar 32 palabras por 32 bits de memoria de acceso aleatorio (RAM), un segundo para contener un acumulador de 32 bits en el que los resultados intermedios de un cálculo podrían almacenarse temporalmente, y un tercero para contener la instrucción del programa actual junto con su dirección en la memoria. Se utilizó un cuarto CRT, sin la electrónica de almacenamiento de los otros tres, como dispositivo de salida, capaz de mostrar el patrón de bits de cualquier tubo de almacenamiento seleccionado.

Tres bastidores altos que contienen placas de circuitos electrónicos
El CRT de salida está inmediatamente encima del dispositivo de entrada, flanqueado por el monitor y la electrónica de control.

Cada palabra de RAM de 32 bits podría contener una instrucción de programa o datos. En una instrucción de programa, los bits 0 a 12 representaban la dirección de memoria del operando que se usaría y los bits 13 a 15 especificaban la operación a ejecutar, como almacenar un número en la memoria; los 16 bits restantes no se utilizaron. La arquitectura de un solo operando (Conjunto de instrucciones de operando 0 ) de Baby significaba que el segundo operando de cualquier operación estaba implícito: el acumulador o el contador de programa (dirección de instrucción); Las instrucciones del programa especificaban solo la dirección de los datos en la memoria.

Una palabra en la memoria de la computadora podría leerse, escribirse o actualizarse en 360 microsegundos. Una instrucción tardaba cuatro veces más en ejecutarse que acceder a una palabra de la memoria, dando una tasa de ejecución de instrucciones de aproximadamente 700 por segundo. La tienda principal se actualizaba continuamente, un proceso que tardaba 20 milisegundos en completarse, ya que cada una de las 32 palabras de Baby tenía que leerse y luego actualizarse en secuencia.

El Bebé representó números negativos usando el complemento a dos , como todavía lo hacen la mayoría de las computadoras. En esa representación, el valor del bit más significativo denota el signo de un número; los números positivos tienen un cero en esa posición y los números negativos un uno. Por lo tanto, el rango de números que podía contener cada palabra de 32 bits era −2 31 a +2 31  − 1 (decimal: −2 147 483 648 a +2 147 483 647).

Programación

El formato de instrucciones del Baby tenía un campo de código de operación de tres bits , lo que permitía un máximo de ocho (2 3 ) instrucciones diferentes. En contraste con la convención moderna, el almacenamiento de la máquina se describió con los dígitos menos significativos a la izquierda; por lo tanto, un uno se representaba en tres bits como "100", en lugar del "001" más convencional.

Conjunto de instrucciones del bebé
Código binario notación original mnemotécnico moderno Operación
000 S, Cl JMP S Saltar a la instrucción en la dirección obtenida de la dirección de memoria especificada S (salto incondicional absoluto)
100 Añadir S, Cl JRP S Saltar a la instrucción en el contador del programa más (+) el valor relativo obtenido de la dirección de memoria especificada S (salto incondicional relativo)
010 -S, C LDN S Tome el número de la dirección de memoria especificada S, niéguelo y cárguelo en el acumulador
110 c, s STO S Almacene el número en el acumulador en la dirección de memoria especificada S
001 o
101
SUB S SUB S Reste el número en la dirección de memoria especificada S del valor en el acumulador y almacene el resultado en el acumulador
011 Prueba CMP Omitir la siguiente instrucción si el acumulador contiene un valor negativo
111 Deténgase STP Deténgase

Las incómodas operaciones negativas fueron consecuencia de la falta de hardware del Bebé para realizar cualquier operación aritmética, excepto la resta y la negación . Se consideró innecesario construir un sumador antes de que pudieran comenzar las pruebas, ya que la suma se puede implementar fácilmente mediante la resta, es decir, x + y se puede calcular como −(− xy ). Por lo tanto, sumar dos números, X e Y, requería cuatro instrucciones:

LDN X // load negative X into the accumulator
SUB Y // subtract Y from the value in the accumulator
STO S // store the result at S
LDN S // load negative value at S into the accumulator

Los programas se ingresaban en forma binaria recorriendo paso a paso cada palabra de la memoria y usando un conjunto de 32 botones e interruptores conocidos como el dispositivo de entrada para establecer el valor de cada bit de cada palabra en 0 o 1. El Bebé no tenía lector de cintas de papel o perforadora .

primeros programas

Pequeño tubo de rayos catódicos en un marco de metal oxidado
TRC de salida

Se escribieron tres programas para la computadora. El primero, que consta de 17 instrucciones, fue escrito por Kilburn y, hasta donde se puede determinar, se publicó por primera vez el 21 de junio de 1948. Fue diseñado para encontrar el factor propio más alto de 2 18 (262,144) probando cada número entero desde 2 18  − 1 hacia abajo. Las divisiones se implementaron mediante restas repetidas del divisor. El Bebé necesitó 3,5 millones de operaciones y 52 minutos para producir la respuesta (131.072). El programa usó ocho palabras de almacenamiento de trabajo además de sus 17 palabras de instrucciones, dando un tamaño de programa de 25 palabras.

Geoff Tootill escribió una versión modificada del programa el mes siguiente y, a mediados de julio, Alan Turing, que había sido nombrado lector en el departamento de matemáticas de la Universidad de Manchester en septiembre de 1948, presentó el tercer programa para realizar divisiones largas. Para entonces, Turing había sido designado para el puesto nominal de Director Adjunto del Laboratorio de Máquinas Computacionales de la universidad, aunque el laboratorio no se convirtió en una realidad física hasta 1951.

Desarrollos posteriores

BrewDog nombró a su microcervecería en Manchester la máquina de cerveza experimental a pequeña escala en honor a la máquina experimental a pequeña escala (SSEM)

Williams y Kilburn informaron sobre Baby en una carta al Journal Nature , publicada en septiembre de 1948. La demostración exitosa de la máquina condujo rápidamente a la construcción de una computadora más práctica, la Manchester Mark 1 , cuyo trabajo comenzó en agosto de 1948. La primera La versión estaba operativa en abril de 1949 y, a su vez, condujo directamente al desarrollo de Ferranti Mark 1 , la primera computadora de propósito general disponible comercialmente en el mundo.

En 1998, se construyó una réplica funcional del Baby, ahora en exhibición en el Museo de Ciencia e Industria de Manchester , para celebrar el 50 aniversario de la ejecución de su primer programa. En el museo se realizan regularmente demostraciones de la máquina en funcionamiento. En 2008, se descubrió en la Universidad de Manchester una fotografía panorámica original de toda la máquina. La fotografía, tomada el 15 de diciembre de 1948 por un estudiante de investigación, Alec Robinson, había sido reproducida en The Illustrated London News en junio de 1949.

Referencias

notas

Citas

Bibliografía

  • Anderson, David (2010), "Historias en disputa: desmitificar la historia temprana de la informática británica moderna", Historia de la informática. Aprendiendo del pasado , Springer, págs. 58–67
  • Brown, Louis (1999), Una historia de radar de la Segunda Guerra Mundial: imperativos técnicos y militares , CRC Press, ISBN 978-0-7503-0659-1
  • Copeland, Jack (2010), "Colossus and the Rise of the Modern Computer", en Copeland, B. Jack (ed.), Colossus The Secrets of Bletchley Park's Codebreaking Computers , Oxford University Press, ISBN 978-0-19-957814-6
  • Copeland, Jack (2011), "The Manchester Computer: A Revised History - Part 2: The Baby Computer", IEEE Annals of the History of Computing , 33 (enero-marzo de 2011): 22–37, doi : 10.1109/MAHC. 2010.2 , S2CID  9522437
  • Lavington, Simon (1980), Las primeras computadoras británicas: la historia de las computadoras antiguas y las personas que las construyeron (1.ª ed.), Sociedad de Prensa de la Universidad de Manchester, ISBN 978-0-7190-0803-0
  • Lavington, Simon (1998), A History of Manchester Computers (2.ª ed.), Swindon: The British Computer Society, ISBN 978-1-902505-01-5
  • Lavington, Simon H. (2019), Computación temprana en Gran Bretaña: Ferranti Ltd. y financiación gubernamental, 1948–1958 , Springer, ISBN 9783030151034
  • Napper, RBE (2000), "Las computadoras Manchester Mark 1", en Rojas, Raúl; Hashagen, Ulf (eds.), Las primeras computadoras: historia y arquitecturas , MIT Press, págs. 356–377, ISBN 978-0-262-68137-7

Otras lecturas

enlaces externos