SSEM

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

La Máquina Experimental de Pequeña Escala de Mánchester ("Manchester Small-Scale Experimental Machine", SSEM), apodada Baby, fue el primer computador del mundo con programa almacenado. Fue desarrollado en la Universidad de Mánchester por Frederic C. Williams, Tom Kilburn y Geoff Tootill, y corrió su primer programa el 21 de junio de 1948.[1]

La máquina no fue diseñada como un computador práctico, sino que fue diseñada como un banco de pruebas de los tubos Williams, uno de los primeros tipos de memorias de computador. Aunque se considera "pequeño y primitivo" según las normas de su época, fue la primera máquina de trabajo que contenía todos los los elementos esenciales de una computador electrónica moderno.[2] Tan pronto como el SSEM había demostrado la viabilidad de su diseño, se inició un proyecto en la universidad para desarrollar un computador más fácil de usar, el Manchester I. A su vez, la Mark I se convirtió rápidamente en el prototipo de la marca Ferranti Mark I, el primer computador del mundo de propósito general disponible comercialmente.[3]

La SSEM tenía una longitud de palabra de 32 bits y una memoria de 32 palabras. Como fue diseñado para ser el computador de programa almacenado con la estructura más simple posible, las únicas operaciones aritméticas implementadas en hardware eran la resta y la negación; las otras operaciones aritméticas fueron implementadas en software. El primero de los tres programas escritos para la máquina encontraba el divisor más alto de 218 (262.144), un cálculo que se sabía que tomaría mucho tiempo en ejecutarse-y así demostrar fiabilidad-mediante prueba de cada entero desde 218-1 hacia abajo, como una división que fue implementada mediante sustracción repetida del divisor. El programa consistió en 17 instrucciones y corrió durante 52 minutos antes de llegar a la respuesta correcta de 131.072, después de la SSEM había realizado 3,5 millones de operaciones (a una velocidad de CPU efectiva de 1,1 Kips).

Antecedentes[editar]

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

El primer diseño de un ordenador controlado por programa fue la máquina analítica de Charles Babbage en la década de 1830. Un siglo más tarde, en 1936, el matemático Alan 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 que él llamó una "computadora", que actuaba de acuerdo con las instrucciones proporcionadas por una cinta en la que los símbolos pueden ser leídos o escritos secuencialmente si la cinta se mueve bajo una cabezal de la cinta. Turing demostró que si un algoritmo puede ser escrito para resolver un problema matemático, entonces una máquina de Turing puede ejecutar dicho algoritmo.[4]

El Z3 de Konrad Zuse fue el primer computador programable operativa totalmente automático del mundo, con la lógica aritmética digital binaria, pero carecía de la bifurcación condicional de una máquina de Turing. El 12 de mayo de 1941, fue presentada con éxito ante una audiencia de científicos de la Deutsche Versuchsanstalt für Luftfahrt ("Laboratorio de Alemán para la Aviación") en Berlín.[5] El Z3 almacenaba su programa en una cinta externa, pero era electromecánico en lugar de electrónico. El Colossus de 1943 fue el primer dispositivo electrónico de computación, pero no fue una máquina de propósito general.[6]

El ENIAC (1946) fue la primera máquina que fue tanto de propósito general como electrónica. Fue una máquina Turing completa, con ramificación condicional, y programable para resolver una amplia gama de problemas, pero su programa se mantuvo en el estado de interruptores de latiguillos, fuera de la memoria, y podría tomar varios días para reprogramarse.[7] Científicos como Turing y Konrad Zuse investigaron la idea de utilizar la memoria de la computadora para mantener el programa, así como los datos que con los que estaba trabajando,[8] pero fue el matemático John von Neumann, quién llegó a ser ampliamente acreditado definiendo la arquitectura de computadores, todavía se utilizada en casi todas las computadoras.[9]

Diseño de la arquitectura de von Neumann (1947).

La construcción de un computador von Neumann práctico dependía de la disponibilidad de dispositivos de memoria. Durante la Segunda Guerra Mundial, investigadores que trabajaban en el problema de eliminar las interferencias de las señales de radar desarrollaron la memoria de línea de retardo, la primera memoria de uso práctico, una de las cuales fue la memoria de línea de retardo de mercurio,[10] desarrollada por J. Presper Eckert. La idea era eliminar los ecos de radar de los objetos estáticos retrasando cada pulso de retorno entre pulsos transmitidos y compararlo con cada pulso almacenado, dejando en la señal resultante solo las imágenes de los objetos que se mueven.[11]

En octubre de 1945 Turing se incorporó al Laboratorio Nacional de Física (National Physical Laboratory, NPL), [12] por la cual los científicos en el Ministerio de Suministros consideraron que Gran Bretaña necesitaba Laboratorio Nacional de Matemática para coordinar los cálculos que se realizaban asistidos por máquinas.[13] Se creó la División Matemáticas en el NPL, y el 19 de febrero de 1946, Alan Turing presentó un diseño para un computador electrónico de programa almacenado, que sería conocido como el Automatic Computing Engine (ACE).[14] Este fue uno de los varios proyectos puestos en marcha en los años posteriores a la Segunda Guerra Mundial con el objetivo de construir un computador con programa almacenado. Casi al mismo tiempo, el EDVAC estaba bajo desarrollo en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pensilvania, y el laboratorio de matemáticas de la Universidad de Cambridge estaba trabajando en el EDSAC.[15]

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 General Post Office (GPO) del Dollis Hill Research Laboratory. Flowers, el diseñador de Colossus, el primer computador electrónico programable del mundo, estaba comprometido en otro lugar y no pudo participar en el proyecto, aunque su equipo hizo construir algunas líneas de retardo de mercurio para la ACE.[13] El Telecommunications Research Establishment (TRE) también fue abordado por la asistencia, al igual que Maurice Wilkes en el Laboratorio de matemáticas de la Universidad de Cambridge.[13]

El departamento del gobierno responsable de la NPL decidió que, de todo el trabajo llevado a cabo en su nombre por el TRE, fuera ACE el que tenía la máxima prioridad.[13] La decisión del NPL llevó a una visita por el superintendente de la División de Física del TRE, el 22 de noviembre de 1946, acompañado por Frederic C. Williams y AM Uttley, también del TRE.[13] Williams lideró un grupo de desarrollo de TRE trabajando en comercios de CRT para aplicaciones de radar, como alternativa a retrasar líneas.[16] Él ya había aceptado un puesto de profesor en la Laboratorio de matemáticas de 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. El TRE acordó un segundo un pequeño número de técnicos para trabajar bajo la dirección de Williams en la universidad, y para apoyar a otro pequeño grupo de trabajando con Uttley en la TRE.[13]

El tubo Williams-Kilburn[editar]

A pesar que los primeros computadores, como el CSIRAC, usaron con éxito la memoria de línea de retardo de mercurio,[17] esta tecnología tenía varios inconvenientes: la cantidad de datos que podían almacenar eran limitados, era pesado y caro. Además, ya 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 ser controlada muy cuidadosamente ya que la velocidad del sonido a través de un medio varía con la temperatura. Frederic C. Williams había presenciado un experimento en los Laboratorios Bell que demostró la efectividad de los tubos de rayos catódicos (CRT) como una alternativa al retraso de tiempo para remover los ecos del terreno en las señales de radar. Mientras trabajaba en el Establecimiento de Investigación de Telecomunicaciones (Telecommunications Research Establishment, TRE), poco antes de incorporarse a la Universidad de Mánchester en diciembre de 1946, desarrolló una forma de memoria electrónica usando un CRT que se conoció como el "Tubo Williams".[18] La "Máquina Experimental de Pequeña Escala de Mánchester" (Manchester Small-Scale Experimental Machine, SSEM) fue diseñada para probar los tubos Williams, el primer dispositivo de almacenamiento digital de acceso aleatorio, que podía trabajar a la velocidad de la computadora.[19]

Para usarse en un computador digital binario, el dispositivo podía almacenar uno de dos valores posibles en cada posición de memoria, correspondientes a los dígitos binarios (bits) 0 y 1. Éste aprovecha la carga electróstatica positiva y negativa generada por un CRT, ya sea un guion o un punto en cualquier posición de la pantalla. Un guion generaba una carga positiva, y un punto una carga negativa, cualquiera de los cuales podía ser captado por un detector cercano a la pantalla; la carga negativa representaba un 0, y la positiva un 1. La carga podía disiparse en 0,2 segundos, pero podía refrescarse automáticamente "leyendo" los datos con la placa colcoada en el frente de la pantalla.[20]

Inicialmente los tubos Williams se desarrollaron sobre el CV1131, un CRT disponible comercialmente de 300 mm de diámetro, pero un tubo más pequeño de 150 mm, el CV1097, fue usado en el SSEM.[21]

Diseño y Desarrollo[editar]

Esquema de la arquitectura mostrando como se colocaban los cuatro tubos de rayos catódicos (en verde).

Tras su nombramiento a la Presidencia de Ingeniería Eléctrica en la Universidad de Mánchester, en diciembre de 1946, Williams contrató a su colega del TRE Tom Kilburn. Para el otoño (en el hemisferio boreal) de 1947 habían incrementado la capacidad de los tubos Williams de un bit a 2.048, en una matriz de 64 por 32,[22] y demostraron que podían almacenar los datos por cuatro horas.[23] El ingeniero Geoff Tootill se unió al equipo a "préstamo" del TRE en septiembre de 1947, y permaneció en comisión hasta abril de 1949.[24]

Max Newman fue nombrado director de Matemática Pura de la Universidad de Mánchester en 1945. Durante la Segunda Guerra Mundial trabajó como criptógrafo en Bletchley Park, y abandonó el equipo que había producido los primeros computadores descifradores de código Colossus en 1943. Aunque Newman no desempeñó un papel muy activo en el desarrollo del SSEM, o de los otros computadores Mánchester, fue un entusiasta del proyecto y lo apoyó activamente, y acordó las compras de los excedentes de guerra, incluyendo los racks de metal del Servicio Postal General (General Post Office, GPO) de Bletchley.[25]

En junio de 1948 el SSEM había sido construido y estaba trabajando.[22] Tenía 5,16m de largo, 2,33m de alto, y pesaba alrededor de 1 Tm. La máquina contenía 550 válvulas, 300 diodos, 250 pentodos y consumía 3.500 watts.[26] La unidad aritmética usaba pentodos EF50, los cuales fueron ampliamente usados durante la guerra.[23] El SSEM usaba un tubo Williams para la memoria de 32 palabras de 32 bits, un segundo tubo trabajaba como acumulador con 32 bits, y el tercero que almacenaba la instrucción junto con su dirección. Un cuarto CRT sin la electrónica de almacenamiento de los otros tres, mostraba el patrón de bits de cualquiera de los otros tubos.[27]

Tres bastidores altos con tableros de circuitos electrónicos
La salida CRT está inmediatamente por encima del dispositivo de entrada, flanqueada por el monitor y la electrónica de control.

Cada palabra de 32 bits de la memoria principal podía contener tanto instrucciones como datos. En una instrucción del programa, los bits 0-12 representaban la dirección de memoria del operando a usar, y los bits 13–15 especificaban que operación debía ejecutarse; los 24 bits restantes no se utilizaban.[27] El SSEM tenía, por lo tanto, una arquitectura con conjunto de instrucciones simples. El segundo operando implícito de cualquier operación es el acumulador, y las intrucciones del programa especificaban sólo la dirección de los datos en la memoria principal.

Una palabra de la memoria principal podía ser leída, almacenada o refrescada en 360 microsegundos. Una instrucción requería cuatro accesos a la palabra para ser ejecutada, dándole un promedio de ejecución de 700 instrucciones por segundo. La memoria principal se refrescaba continuamente, y el proceso tomaba 20 milisegundos para completarse, y cada palabra de 32 bits del SSEM era leída y refrescada en forma secuencial.[22]

El SSEM representaba los números negativos usando complemento a dos,[28] como muchos computadores de hoy. En esta representación, el valor del bit más significativo representa el signo; número positivos tienen un cero en esa posición, y los negativos tienen un uno. Por lo tanto, el rango de números que podía alamcenarse en cada palabra de 32 bits era de −231 a +231 − 1 (decimal: -2.147.483.648 to +2.147.483.647).

Programación[editar]

El juego de instrucciones de tres bits del SSEM permitía un máximo de 8 instrucciones diferentes (23). En contraste con la convención moderna, la máquina almacenaba el dígito menos significativo a la izqueirda; por lo que un uno era representado en tres bits como "100", en lugar de la forma convencional "001".[28]

SSEM's instruction set[29]
Código Binario Notación original Mnemónica Moderna Operación
000 S, Cl JMP S Salta a la instrucción en la dirección que se obtiene de memoria S especificada[t 1] (salto incondicional absoluto)
100 Añadir S, Cl JRP S Salta a la instrucción en la dirección que se obtiene de memoria S especificada[t 1] (salto incondicional absoluto)
010 -S, C LDN S Lee el número en la dirección de memoria especificada, lo niega, y lo carga en el acumualdor
110 c, S STO S Almacena el número del acumulador en la dirección de memoria especificada
001 o
101[t 2]
SUB S SUB S Resta el número de la dirección de memoria especificada del valor del acumulador, y lo almacena en el acumulador
011 Prueba CMP Salta la instrucción siguiente si el acumulador contiene un valor negativo
111 Parar STP Parar
  1. a b Como el contador de programa se incrementa al final del proceso de decodificación, la dirección almacenada tenía que ser la dirección de destino -1.
  2. Los bits de función fueron solo parcialmente decodificados, para ahorrar en elementos lógicos.[29]

Las incómodas operaciones con negativos eran el resultado de la falta de hardware de la SSEM, concretamente un sumador de 32 bits para realizar cualquier operación aritmética, excepto la sustracción y negación. No se consideró necesario antes de las pruebas construir dicho sumador debido a que la suma puede implementarse fácilmente mediante restas,[27] i.e., x+y\, puede ser calculado como -(-x-y). Por lo tanto, sumar dos números, X e Y, requería cuatro instrucciones:[29]

LDN X  //carga X como negativo en el acumulador
SUB Y  //resta Y al valor del acumulador
STO S  //almacena el resultado en S
LDN S  //carga el valor en S como negativo en el acumulador

Los programas se ingresaban en forma binaria saltando por cada palabra de memoria, a su vez, y el uso de un conjunto de 32 conmutadores conocidos como el dispositivo de entrada, para establecer el valor de cada bit de cada palabra a 0 o 1 La SSEM no tenía lector de cinta de papel o punzón.[30]

Primeros programas[editar]

El CRT de salida.

Se escribieron tres programas para el computador. El primero, que consistía de 17 instrucciones, fue escrito por Kilburn, y habría corrido por primera vez el 21 de junio de 1948.[31] fue diseñado para encontrar el divisor más alto de 218 (262.144) calculando cada entero desde 218 − 1 hacia abajo. Las divisiones se implementaron haciendo restas suscesivas del divisor. Al SSEM le tomó 3,5 millones de operaciones y 52 minutos para dar la respuesta (131.072). El programa usó ocho palabras de la memoria de trabajo más las 17 palabras de las instrucciones, dándole al programa un tamaño de 25 palabras.[32]

Al mes siguiente, Geoff Tootill escribió una versión corregida del programa, y a mediados de julio Alan Turing –quien había sido nombrado reader (lector) en el departamento de matemáticas en la Universidad de Mánchester y en septiembre de 1948– envió el tercer programa, para calcular divisiones largas. Turing había sido nombrado para el cargo de Director Adjunto del Laboratorio de Máquina Computacional de la Universidad,[31] aunque dicho laboratorio no se hizo realidad hasta 1951.[33]

Últimos desarrollos[editar]

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

Williams y Kilburn dieron a conocer el desarrollo del SSEM en una carta a la revista Nature, publicada en septiembre de 1948.[34] Su éxito llevó rápidamente a la creación de un equipo más práctico, el Manchester Mark I. Los trabajos se iniciaron en agosto de 1948, y la primera versión entró en operaciones en abril de 1949.[33] El Manchester Mark 1 a su vez condujo al desarrollo del Ferranti Mark I, el primer computador comercialmente disponible de propósito general del mundo.[3]

En 1998 se construyó una réplica funcional del SSEM para celebrar el 50° aniversario de la ejecución de su primer programa. La máquina está en exhibición en el Museo de Ciencia e Industria en Mánchester, donde se realizan demostraciones de funcionamiento en forma regular.[35] En el 2008 se descubrió una fotografía panorámica de la máquina completa en la Universidad de Mánchester. La fotografía fue tomada el 15 de diciembre de 1948 por un estudiante investigador, Alec Robinson, y fue reproducida en el Illustrated London News en junio de 1949.[36] [37]

Ver también[editar]

Anexo:Lista de computadoras de tubos de vacío

Referencias[editar]

Notas
  1. Enticknap, Nicholas (Verano de 1998) (en inglés), Computing's Golden Jubilee, The Computer Conservation Society, ISSN 0958-7403, http://www.cs.man.ac.uk/CCS/res/res20.htm#d, consultado el 19 de abril de 2008 
  2. (en inglés) Early Electronic Computers (1946–51), University of Manchester, http://www.computer50.org/mark1/contemporary.html, consultado el 16 de noviembre de 2008 
  3. a b Napper, R. B. E. (en inglés), Introduction to the Mark 1, The University of Manchester, http://www.computer50.org/mark1/mark1intro.html, consultado el 4 de noviembre de 2008 
  4. Turing, A. M. (1936), «On Computable Numbers, with an Application to the Entscheidungsproblem» (en inglés), Proceedings of the London Mathematical Society, 2 42: 230–265, 1936–37, doi:10.1112/plms/s2-42.1.230, http://www.comlab.ox.ac.uk/activities/ieg/e-library/sources/tp2-ie.pdf, consultado el 18 de setiembre de 2010 
  5. (en inglés) Rechenhilfe für Ingenieure Konrad Zuses Idee vom ersten Computer der Welt wurde an der Technischen Hochschule geboren, Technical University of Berlin, archivado del original el 13 de febrero de 2009, http://web.archive.org/web/20090213222711/http://www2.tu-berlin.de/alumni/parTU/00dez/zuse.htm 
  6. (,)
  7. (en inglés) Early Electronic Computers (1946–51), University of Manchester, http://www.computer50.org/mark1/contemporary.html, consultado el 16 de noviembre de 2008 
  8. Zuse, Horst, (en inglés)EPE Online (Wimborne Publishing), archivado del original el 10 de diciembre de 2007, http://web.archive.org/web/20071210232351/http://www.epemag.com/zuse/default.htm, consultado el 16 de noviembre de 2008 
  9. (,)
  10. Lavington, 1998, p. 1
  11. Brown, 1999, p. 429
  12. (,)
  13. a b c d e f (,)
  14. Error en la cita: Etiqueta <ref> inválida; no se ha definido el contenido de las referencias llamadas lavington-80-v
  15. (,)
  16. (,)
  17. (en inglés) CSIRAC, University of Melbourne, 4 de abril de 2006, http://www.csse.unimelb.edu.au/dept/about/csirac/store.html, consultado el 16 de noviembre de 2008 
  18. «Early computers at Manchester University». Resurrection (The Computer Conservation Society) 1 (4). Verano de 1992. ISSN 0958-7403. http://www.cs.man.ac.uk/CCS/res/res04.htm#g. 
  19. Lavington, 1998, p. 13, 24
  20. Lavington, 1998, p. 12
  21. Lavington, 1998, pp. 12–13
  22. a b c Napper, 2000, p. 366
  23. a b Lavington, 1998, p. 13
  24. Lavington, 1998, p. 16
  25. Lavington, 1998, pp. 6–7
  26. (PDF) The "Baby": The World's First Stored-Program Computer, Manchester Museum of Science & Industry, http://www.msim.org.uk/media/33871703/thebaby,theworldsfirststored-programcomputer.pdf, consultado el 15 de noviembre de 2008 
  27. a b c Napper, 2000, p. 367
  28. a b Lavington, 1998, p. 14
  29. a b c (,)
  30. (,)
  31. a b Lavington, 1998, pp. 16–17
  32. Tootill, Geoff (Verano de 1998). «The Original Original Program». Resurrection (The Computer Conservation Society) (20). ISSN 0958-7403. http://www.cs.man.ac.uk/CCS/res/res20.htm#e. 
  33. a b Lavington, 1998, p. 17
  34. «Elctronic Digital Computers», Nature 162: 487, 25 de setiembre de 1948, http://www.computer50.org/kgill/mark1/natletter.html 
  35. Meet Baby, Manchester Museum of Science & Industry, http://www.msim.org.uk/whats-on/meet-baby, consultado el 17 de noviembre de 2008 
  36. Highfield, Roger (17 de junio de 2008), «Photo of great grandfather of modern computers found», Daily Telegraph, http://www.telegraph.co.uk/earth/main.jhtml?view=DETAILS&grid=&xml=/earth/2008/06/17/scicomp117.xml, consultado el 20 de junio de 2008 
  37. Panoramic image of SSEM and other audiovisual records (Digital 60, University of Manchester)
Bibliografía
  • Brown, Louis (1999) (en inglés), A Radar History of World War II: Technical and Military Imperatives, CRC Press, ISBN 9780750306591 
  • Lavington, Simon (1980) (en inglés), Early British Computers: The Story of Vintage Computers and the People who built them (1ra edición), Manchester: Manchester University Press Society, ISBN 0-7190-0803-4 
  • Lavington, Simon (1998) (en inglés), A History of Manchester Computers (2da edición), Swindon: The British Computer Society, ISBN 0902505018 
  • Napper, R. B. E. (2000) (en inglés), The Nombre Computers: History and Architectures, MIT Press, pp. 356–377, ISBN 0262681374, http://books.google.co.uk/books?id=nDWPW9uwZPAC 
  • Turing, A. M. (1936), «On Computable Numbers, with an Application to the Entscheidungsproblem» (en inglés), Proceedings of the London Mathematical Society, 2 42: 230–265, 1937 . Ampliamente reproducido y disponible en la web en muchos lugares, por ejemplo, at Scribd.

Lectura Adicional[editar]

Enlaces externos[editar]