Bebé de Manchester

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

La Manchester Baby, también llamada Máquina Experimental a Pequeña Escala (SSEM), fue la primera computadora electrónica con programas almacenados. 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 Williams, la primera memoria verdaderamente de acceso 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 de 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. El Mark 1, a su vez, se convirtió rápidamente en el prototipo del Ferranti Mark 1, el primer ordenador de uso general disponible comercialmente en el mundo.

El bebé tenía una longitud de palabra de 32 bits y una memoria de 32 palabras (1 kibibit, 1024 bits). Como fue diseñada para ser la computadora con 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 software. El primero de los tres programas escritos para la máquina calculó el divisor propio más alto de 218 (262,144), probando cada número entero desde 218 hacia abajo. Este algoritmo tardaría mucho en ejecutarse, lo que demostraría la confiabilidad de la computadora, ya que la división se implementaba mediante restas repetidas 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 alrededor de 3,5 millones de operaciones (para una velocidad efectiva de CPU de aproximadamente 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 la máquina analítica de Charles Babbage en la década de 1830, y Ada Lovelace concibió 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 se podían leer y escribir símbolos secuencialmente a medida que la cinta se movía debajo de un cabezal.. 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 el primer ordenador funcional, programable y totalmente automático 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 fue presentado con éxito ante 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 electromecánica en lugar de electrónica. Los primeros dispositivos informáticos electrónicos fueron el ordenador Atanasoff-Berry (ABC), que se probó con éxito en 1942, y el Colossus de 1943, pero ninguno de los dos eran máquinas de programa almacenado.

La ENIAC (1946) fue la primera computadora automática que era tanto electrónica como de propósito general. Era Turing completo, con ramificaciones condicionales y programable para resolver una amplia gama de problemas, pero su programa se mantenía en el estado de interruptores en cables de conexión, en lugar de memoria cambiable por máquina, y su reprogramación podía llevar varios días. Investigadores como Turing y Zuse investigaron la idea de utilizar la memoria de la computadora para almacenar el programa, así como los datos con los que estaba trabajando, y fue el matemático John von Neumann quien escribió un artículo ampliamente distribuido que describe la arquitectura de la computadora. Todavía se utiliza 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 en el cual almacenar el programa. Durante la Segunda Guerra Mundial, los investigadores que trabajaban en el problema de eliminar el desorden 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 normalmente sólo 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, cuando los científicos del Ministerio de Suministros habían llegado a la conclusión de que Gran Bretaña necesitaba un Laboratorio Nacional de Matemáticas para coordinar la computación asistida por máquinas. Se creó una División de Matemáticas en la NPL y el 19 de febrero de 1946 Alan Turing presentó un artículo en el que se describía su diseño para una computadora electrónica con programas almacenados que se conocería como Motor de Computación Automática (ACE). Este fue uno de varios proyectos iniciados en los años posteriores a la Segunda Guerra Mundial con el objetivo de construir una computadora con programa almacenado. Casi 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 se pusieron en contacto con 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 otra parte y no pudo participar en el proyecto, aunque su equipo construyó algunas líneas de retardo de mercurio para ACE. También se solicitó ayuda al Establecimiento de Investigación de Telecomunicaciones (TRE), al igual que a Maurice Wilkes del Laboratorio de Matemáticas de la Universidad de Cambridge.

El departamento gubernamental responsable de la NPL decidió que, de todo el trabajo que estaba llevando a cabo el TRE en su nombre, se debía dar a ACE la máxima prioridad. La decisión de NPL dio lugar a una visita del superintendente de la División de Física del TRE el 22 de noviembre de 1946, acompañado por Frederic C. Williams y A. M. Uttley, también del TRE. Williams dirigió un grupo de desarrollo de TRE que trabajaba en almacenes CRT para aplicaciones de radar, como alternativa a las líneas de retardo. 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 circuito estaban en proceso de ser transferidos al Departamento de Energía Atómica. El TRE acordó enviar a un pequeño número de técnicos para trabajar bajo la dirección de Williams. dirección en la universidad y para apoyar a otro pequeño grupo que trabaja con Uttley en el TRE.

Tubo Williams-Kilburn

Aunque algunas de las primeras computadoras, como EDSAC, inspiradas en el diseño de EDVAC, posteriormente hicieron 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 que los datos se transfirieran. accederse aleatoriamente. Además, como 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 los Laboratorios Bell que demostraba la eficacia de los tubos de rayos catódicos (CRT) como alternativa a la línea de retardo para eliminar los ecos terrestres de las señales de radar. Mientras trabajaba en el TRE, poco antes de incorporarse 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 Williams o tubo Williams-Kilburn, basada en un CRT estándar: el primer tubo aleatorio electrónico. -acceder al dispositivo de almacenamiento digital. El Baby fue diseñado para demostrar que era un dispositivo de almacenamiento práctico al demostrar que los datos contenidos en él podían leerse y escribirse 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 dos estados en cada una de sus ubicaciones de memoria, correspondientes a los dígitos binarios (bits) 0 y 1. Explotaba la energía eléctrica positiva o negativa. carga generada al mostrar un guión o un punto en cualquier posición de 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 las cuales podía ser detectada por una placa detectora situada frente a la pantalla; una carga negativa representaba 0 y una carga positiva 1. La carga se disipaba en aproximadamente 0,2 segundos, pero podí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 de 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ó a desarrollar una computadora que incorporase tanto los conceptos matemáticos de Alan Turing como el concepto de programa almacenado que había sido descrito por Juan von Neumann. En 1945, fue nombrado miembro de 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 F. C. Williams para que fuera el "hombre del circuito" para un nuevo proyecto informático para el que había conseguido financiación de la Royal Society.

"Habiendo asegurado el apoyo de la universidad, obtenido financiación de la Royal Society, y reunido un equipo de matemáticos e ingenieros de primera categoría, Newman ahora tenía todos los elementos de su plan de computación en marcha. Adoptando el enfoque que había utilizado tan eficazmente en Bletchley Park, Newman puso a su gente suelta en el trabajo detallado mientras se concentró en orquestar el esfuerzo."

David Anderson, historiador

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

"Ahora vamos a ser claros antes de ir más lejos que ni Tom Kilburn ni yo sabía lo primero de los ordenadores cuando llegamos a la Universidad de Manchester... Newman explicó todo el negocio de cómo un ordenador nos funciona."

Frederic Calland Williams

A Kilburn le costó recordar las influencias en el diseño de su máquina:

"[I]n that period, some or other I knew what a digital computer was... Donde obtuve este conocimiento de no tengo idea."

Tom Kilburn

Jack Copeland explica que el primer diseño sin acumulador (descentralizado, en la nomenclatura de Jack Good) de Kilburn (anterior a Baby) se basó en aportaciones de Turing, pero que más tarde cambió a un acumulador. máquina basada (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 del Bebé 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 "Bebé" para esta máquina. El bien no incluía una "detención" instrucción, y su propuesta de instrucción de salto condicional era más complicada que lo que el Bebé implementó.

Desarrollo y diseño

Esquemática arquitectónica que muestra cómo se desplegaron los cuatro tubos de rayos catode (shown in green)

Aunque Newman no desempeñó ningún papel de ingeniería en el desarrollo del Baby, ni de ninguna de las computadoras posteriores de Manchester, en general apoyó y mostró entusiasmo por el proyecto, y organizó la adquisición de suministros excedentes de guerra para su construcción, incluido GPO. bastidores de metal y "…el material de dos colosos completos" de Bletchley.

En junio de 1948, el Baby había sido construido y estaba funcionando. Medía 5,2 m (17 pies) de largo, 2,24 m (7 pies y 4 pulgadas) 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 tiempos de guerra. The Baby usó un tubo Williams para proporcionar palabras de 32 por 32 bits de memoria de acceso aleatorio (RAM), un segundo para contener un acumulador de 32 bits en el que se podían almacenar temporalmente los resultados intermedios de un cálculo, y un tercero para almacenar 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.

Three tall racks containing electronic circuit boards
La salida CRT está inmediatamente por encima del dispositivo de entrada, flanqueado por el monitor y la electrónica de control.

Cada palabra de RAM de 32 bits puede 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 utilizaría y los bits 13 a 15 especificaban la operación que se ejecutaría, como almacenar un número en la memoria; los 16 bits restantes no se utilizaron. La arquitectura de operando único (conjunto de instrucciones de 0 operandos) del Bebé significaba que el segundo operando de cualquier operación estaba implícito: el acumulador o el contador del programa (dirección de instrucción); Las instrucciones del programa especificaban sólo la dirección de los datos en la memoria.

Una palabra en la memoria de la computadora se puede leer, escribir o actualizar en 360 microsegundos. Una instrucción tardó cuatro veces más en ejecutarse que acceder a una palabra desde la memoria, lo que da 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 del bebé debía leerse y luego actualizarse en secuencia.

El Bebé representaba 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 se podían contener en cada palabra de 32 bits era de −231 a +231 − 1 (decimal: −2,147,483,648 a +2,147,483,647).

Programación

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

Juego de instrucciones del bebé
Código binario Notación original Modern mnemonic 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 indirecto absoluto)
100 Add 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, negarlo y cargarlo en el acumulador
110 c, S STO S Guarde el número en el acumulador a la dirección de memoria especificada S
001 o
101
SUB S SUB S Subir el número en la dirección de memoria especificada S del valor en acumulador, y almacenar el resultado en el acumulador
011 Prueba CP/RP Saltar la siguiente instrucción si el acumulador contiene un valor negativo
111 Para. STP Para.

Las incómodas operaciones negativas fueron consecuencia de la falta de hardware del Bebé para realizar operaciones aritméticas excepto resta y 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 −(−x -y). Por lo tanto, sumar dos números, X e Y, requirió cuatro instrucciones:

LDN X // carga negativa X en el acumulador
SUB Y // subtract Y del valor en el acumulador
STO S // almacenar el resultado en S
LDN S // cargar valor negativo en S en el acumulador

Los programas se ingresaban en forma binaria recorriendo cada palabra de la memoria por turno y usando un conjunto de 32 botones e interruptores conocidos como 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 ni perforadora.

Primeros programas

Small cathode-ray tube in a rusty metal frame
Producto CRT

Se escribieron tres programas para la computadora. La primera, que consta de 17 instrucciones, fue escrita por Kilburn y, hasta donde se puede determinar, se publicó por primera vez el 21 de junio de 1948. Estaba diseñada para encontrar el factor propio más alto de 218 (262,144) por probando cada número entero desde 218 − 1 hacia abajo. Las divisiones se implementaron mediante restas repetidas del divisor. The Baby necesitó 3,5 millones de operaciones y 52 minutos para producir la respuesta (131.072). El programa utilizó ocho palabras de almacenamiento de trabajo además de sus 17 palabras de instrucciones, lo que da 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 (quien 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 llevar a cabo división larga. Para entonces, Turing había sido designado para el puesto nominal de subdirector del Laboratorio de Máquinas de Computación de la universidad, aunque el laboratorio no se convirtió en una realidad física hasta 1951.

Desarrollos posteriores

Williams y Kilburn informaron sobre el Bebé 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 versión estuvo operativa en abril de 1949 y, a su vez, condujo directamente al desarrollo del Ferranti Mark 1, el mundo& #39;la primera computadora de uso general disponible comercialmente.

Legado

BrewDog nombró su microbrewery en Manchester el Pequeña Escala Experimental Máquina de cerveza en honor de la máquina experimental de pequeña escala (SSEM)

En 1998, se construyó una réplica funcional del Bebé, ahora expuesta 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 periódicamente 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.

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save