Aquella mañana del 21 de junio de 1948 fue especial para la historia de la informática. Lo fue porque por primera vez una máquina gigantesca llamada 'Manchester Baby' que ocupaba toda una habitación de la Universidad Victoria de Manchester ejecutó un programa informático.
Lo importante de aquel hito fue que ese programa estaba almacenado en memoria. Todo funcionó como esperaban (o más bien, deseaban) sus creadores, y 52 minutos después tenían el resultado tras 3,5 millones de cálculos. Era más o menos la misma potencia de cálculo que tuvo el Motorola 68000 de 1979, solo que ese procesador no tardaba 52 minutos en completar esos cálculos. Tardaba un segundo.
La primera memoria RAM como objetivo
Por supuesto ni sus creadores ni otros investigadores podrían imaginar la velocidad a la que la tecnología avanzaría en los años siguientes y hasta nuestros días. Aquella máquina fue bautizada formalmente como la 'Small-Scale Experimental Machine', pero pronto se la conoció con el nombre con el que pasaría a la historia: 'Manchester Baby'.
Este fue por tanto uno de los primeros ordenadores funcionales de la historia, y desde luego fue el primero en ejecutar un programa almacenado en memoria. Ese era en realidad el objetivo de este 'bebé', que no tenía el objetivo de ser un ordenador en términos prácticos, sino que permitiría evaluar el llamado tubo Williams, la primera memoria RAM real basada en un tubo de rayos catódicos que daría paso a diseños mucho más avanzados.
La máquina fue diseñada por Frederic C. Williams, Tom Kilburn y Geoff Tootill, pero hubo otras personas que contribuyeron a su desarrollo. Entre ellos estaba el Dr. 'Tommy' Gordon Thomas, que tenía 19 años y estaba terminando sus estudios de Física en dicha universidad.
Ahora tiene 90 años y vive en Nueva Gales del Sur, en Australia, y contaba cómo aquel proyecto acabó destinándole a trabajar en el desarrollo y construcción del mecanismo de memoria. Como él mismo explicaba, "Manchester en aquella época, justo tras la guerra, estaba llena de humo y polvo, y fue un milagro que lográramos hacer que todo funcionara".
17 instrucciones y 52 minutos para la historia
Aquel proyecto acabó desembocando en el desarrollo del Manchester Mark 1 y posteriormente en el Ferranti Mark 1 de 1951, el que fue el primer ordenador de propósito general disponible comercialmente.

La máquina creada por estos investigadores que ejecutó aquel primer programa almacenado en memoria el 21 de junio de 1948 contaba con una memoria de 1024 bits y una potencia de cálculo de unas 1.000 instrucciones por segundo.
Solo podía realizar dos operaciones por hardware: la sustracción y la negación, mientras que otras operaciones se implementaban mediante software. Para hacernos una idea, una Raspberry Pi 2 es capaz de ejecutar casi 5.000 millones de instrucciones por segundo con su procesador quad-core Cortex-A53 y cuenta con 1 GB de RAM (casi 8 millones de veces más memoria).
¿Cuál fue ese primer programa ejecutado? Pues le pidieron a aquella máquina el divisor más alto de 2^18 (262.144). Aquel programa tenía solo 17 instrucciones y dio la respuesta correcta 52 minutos después: era el 131.072.
El resto, como suele decirse, es historia.
Vía | BBC
Imagen | Wikimedia
En Xataka | El primer simulador VR de la historia tenía forma de recreativa, y se inventó a finales de los 50
Ver 4 comentarios
4 comentarios
whisper5
Tres años antes John von Neumann, uno de los mayores genios del siglo XX, creó la arquitectura computacional que lleva su nombre (junto con otros compañeros) y que, salvo pequeñas diferencias, seguimos utilizando hoy en día. Manchester baby nació de la arquitectura de von Neumann.
biturrizar
Sería interesante crear un algoritmo para reproducir ese cálculo.
Esos 52 minutos se supone que se tomaron utilizando números primos cercanos al número máximo representable, en que realmente no había divisor salvo él o el 1 y tenía que agotar todas las pruebas sin encontrar resultado..
Supongo que para haber ejecutado más de tres millones de instrucciones máquina, el algoritmo arrancó con un contador desde 2, copiando dicho contador a un acumulador e ir sumando una y otra vez el contador hasta superar al número o igualarlo.
Esa suma, en el momento que el resultado igualaba al del número, se guardaba como candidato el valor del contador. Luego se incrementaba el contador a 3 y vuelta a comenzar. El siguiente candidato sustituía al anterior. Quizás tendría instrucciones para determinar que una vez superada la mitad del número ya no había más divisores salvo él mismo. Al cabo que lo encuentra una instrucción de desplazamiento a la derecha, si es que soportaba desplazamientos.
Muy buenas imágenes. Me ha entusiasmado el artículo.
Land-of-Mordor
"...¿Cuál fue ese primer programa ejecutado? Pues le pidieron a aquella máquina el divisor más alto de 2^18 (262.144). Aquel programa tenía solo 17 instrucciones y dio la respuesta correcta 52 minutos después: era el 131.072..."
Podrían haber usado otro ejemplo o introducir un caso especial en el programa, dado que el máximo divisor de un número par es su mitad, cosa que en binario es bastante sencillo de calcular.