SSEM

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Réplica del SSEM en el Museo de Ciencia e Industria en Mánchester.

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 fue diseñada y construida como banco de prueba de los tubos Williams, uno de los primeros tipos de memorias de computadora, no como un computador práctico. Sin embargo, su exitoso resultado motivó el desarrollo de la computadora Manchester Mark I, la que en su momento permitió el desarrollo del Ferranti Mark I, el primer computador comercialmente disponible de propósito general.[2]

El SSEM tenía palabras de 32 bit de largo y almacenaba 32 palabras. Tres bits eran usados para poner el código de instrucción, dando un máximo de ocho instrucciones, de las cuales sólo siete estaban definidas. Tres programas fueron escritos para el SSEM: el primero calculaba el factor más alto de 218, y consistía de 17 instrucciones y tardó 52 minutos para alcanzar la respuesta después de realizar 3,5 millones de operaciones.

Antecedentes[editar]

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

En 1936, el matemático Alan Turing creó la teoría de una "máquina de calcular universal" (conocida hoy día como la "máquina de Turing"), una computadora que almacenaba en una cinta el programa y los datos con los que trabaja. Turing demostró que la máquina era capaz de resolver cualquier problema matemático que pueda escribirse en un algoritmo.[3] Durante los años '40, Turing y otros como Konrad Zuse, desarrollaron la idea de usar la propia memoria de la computadora para almacenar el programa y los datos,[4] pero se considera al matemático John von Neumann como el que definió la arquitecura de los computadores, la que se mantiene en uso en la mayoría de las máquinas de hoy. Los primeros computadores eran generalmente programados modificando sus circuitos, desoldando y soldando las conexiones o a través de plugboards. No tenía el programa almacenado en memoria en forma separada, al igual que en los computadores modernos; tomaba varios días reprogramar el ENIAC para cada tarea.[5]

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,[6] 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 sólo las imágenes de los objetos que se mueven.[7]

En 1945, continuando con los trabajos iniciados en Proyecto Colossus, científicos en el Ministerios 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.[8] Esto condujo a la creación de la División Matemáticas en el Laboratorio Nacional de Física (National Physical Laboratory, 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 ACE–Automatic Computing Engine.[8] Como el NPL no tenía la capacidad para construir un computador, intentaron obtener de otro lado la experiencia necesaria. Tommy Flowers y su equipo del Laboratorio de Investigación Dollis Hill perteneciente al General Post Office (GPO) se unieron; pero no pudieron dedicarse a tiempo completo debido a otros compromisos en computación y telefonía, a pesar que construyeron varias memorias memoria de línea de retardo de mercurio para el ACE.[8] Maurice Wilkes, del Laboratorio de Matemáticas de la Universidad de Cambridge, y el Telecommunications Research Establishment (TRE) también fueron contactados.[8]

El Departmento de Investigación Científica e Industrial (DSIR), que dirigía el NPL, presionó al TRE para darle al ACE la máxima prioridad sobre todos los trabajos que hacía el TPE para el DSIR.[8] Esto llevó al Dr. Smith, Superintendente de la División de Física del TRE, Frederic C. Williams y a A. M. Uttley a visitar el NPL el 22 de noviembre de 1946.[8] Muchos de los técnicos en circuitos de Williams fueron transferidos al Departamento de Energía Atómica y Williams ocuparía seis semanas después una cátedra en la Universidad de Mánchester.[8] El TRE acordó formar un segundo equipo (con pocos integrantes) en la Universidad de Mánchester para trabajar bajo las órdenes del profesor Williams; y otros trabajaron para el Dr. A. M. Uttley en el TRE.[8] El NPL también envió una propuesta y un proyecto de contrato a Williams y a Wilkes para trabajar en el ACE.[8]

El ACE fue uno de varios proyectos creados en los años siguientes a la Segunda guerra Mundial que apuntaban a construir un computador con programa almacenado. El EDVAC fue desarrollado en la Escuela de Ingeniería Eléctrica Moore de la Universidad de Pensilvania, Flowers y Wilkes visitaron la escuela presenciaron la presentación del EDVAC; el EDSAC estaba siendo desarrollado en el Laboratorio de Matemáticas de la Universidad de Cambridge; el Profesor Max Newman se fue a la Universidad de Mánchester donde esperaba poder crear un laboratorio de máquinas de calcular basadas en la memoria de tubos Selectron que estaba siendo desarrolladas por la RCA.[9] [8] A pesar que los primeros computadores, como el CSIRAC, usaron con éxito la memoria memoria de línea de retardo de mercurio,[10] esta tecnología tenía varios inconvenientes: la cantidad de datos que podían almacenar eran limitados, era pesado, y era caro. Además, porque los datos se almacenaban como una secuencia de ondas acústicas, y porque la velocidad del sonido a través de un medio varía con la temperatura, el mercurio tenía que ser mantenido a una temperatura constante.

El tubo Williams[editar]

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".[11] 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.[12]

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.[13]

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.[14]

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,[15] y demostraron que podían almacenar los datos por cuatro horas.[16] 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.[17]

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 de 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.[18]

En junio de 1948 el SSEM había sido construido y estaba trabajando.[15] 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.[19] La unidad aritmética usaba pentodos EF50, los cuales fueron ampliamente usados durante la guerra.[16] 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.[20]

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.[20] 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.[15]

El SSEM representaba los números negativos usando complemento a dos,[21] 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".[21]



Juego de instrucciones del SSEM[22]
Código Binario Mnemónica Moderna Operación
000 JMP S Salta a la instrucción en la dirección de memoria especificada (salto incondicional absoluto)
100 JRP S Salta a la instrucción en la dirección de memoria especificada más el número indicado (salto incondicional relativo)
010 LDN S Lee el número en la dirección de memoria especificada, lo niega, y lo carga en el acumualdor
110 STO S Almacena el número del acumulador en la dirección de memoria especificada
001 or 101* SUB S Resta el número de la dirección de memoria especificada del valor del acumulador, y lo almacena en el acumulador
011 CMP Salta la instrucción siguiente si el acumulador contiene un valor negativo
111 STP Parar
*Los bits de función eran parcialmente decodificados, para ahorrar elementos lógicos.[22]

Las incómodas operaciones con negativos eran como resultado de la falta de un sumador de 32 bits en el SSEM. No se consideró necesario antes de las pruebas construir un sumador debido a que la suma puede implementarse fácilmente mediante restas,[20] i.e., x+y\, puede ser calculado como -(-x-y). Por lo tanto, sumar dos números, X e Y, requería cuatro instrucciones:[22]

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 eran cargados en forma binaria usando el dispositivo de entrada para establecer el valor de cada bit de cada palabra del programa uno por uno.[15]

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.[23] 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.[24]

Geoff Tootill escribió una versión corregida del programa el mes siguiente, y a mediados de julio Alan Turing –quien había sido nombrado como "Lector" (rango académico) en el departamento de matemáticas en la Universidad de Mánchester 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,[23] aunque dicho laboratorio no se hizo realidad hasta 1951.[25]

Últimos desarrollos[editar]

Williams y Kilburn dieron a conocer el desarrollo del SSEM en una carta a la revista Nature, publicada en septiembre de 1948.[26] 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.[25] 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.[2]

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.[27] 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.[28] [29]

Ver también[editar]

Anexo:Lista de computadoras de tubos de vacío

Referencias[editar]

Notas
  1. Enticknap, Nicholas (Summer 1998), «Computing's Golden Jubilee», Resurrection (The Computer Conservation Society) (20), ISSN 0958-7403, http://www.cs.man.ac.uk/CCS/res/res20.htm#d, consultado el 19 April 2008 
  2. a b Napper, R. B. E., Introduction to the Mark 1, The University of Manchester, http://www.computer50.org/mark1/mark1intro.html, consultado el 4 November 2008 
  3. Turing, 1936
  4. Zuse, Horst, Part 10: Konrad Zuse and the Stored Program Computer, «The Life and Work of Konrad Zuse», EPE Online (Wimborne Publishing), http://www.epemag.com/zuse/default.htm#index, consultado el 16 November 2008 
  5. Early Electronic Computers (1946–51), University of Manchester, http://www.computer50.org/mark1/contemporary.html, consultado el 16 November 2008 
  6. Lavington, 1998, p. 1
  7. Brown, 1999, p. 429
  8. a b c d e f g h i j Lavington (1980), Chapter 5: "ACE, the 'British National Computer'".
  9. Lavington, 1998, pp. 8–9
  10. «How did CSIRAC work?», CSIRAC, University of Melbourne, 4 April 2006, http://www.csse.unimelb.edu.au/dept/about/csirac/store.html, consultado el 16 November 2008 
  11. «Early computers at Manchester University». Resurrection (The Computer Conservation Society) 1 (4). Summer 1992. ISSN 0958-7403. http://www.cs.man.ac.uk/CCS/res/res04.htm#g. 
  12. Lavington, 1998, p. 13, 24
  13. Lavington, 1998, p. 12
  14. Lavington, 1998, pp. 12–13
  15. a b c d Napper, 2000, p. 366
  16. a b Lavington, 1998, p. 13
  17. Lavington, 1998, p. 16
  18. Lavington, 1998, pp. 6–7
  19. (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 November 2008 
  20. a b c Napper, 2000, p. 367
  21. a b Lavington, 1998, p. 14
  22. a b c Lavington, 1998, p. 15
  23. a b Lavington, 1998, pp. 16–17
  24. Tootill, Geoff (Summer 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. 
  25. a b Lavington, 1998, p. 17
  26. «Elctronic Digital Computers», Nature 162: 487, 25 September 1948, http://www.computer50.org/kgill/mark1/natletter.html 
  27. Meet Baby, Manchester Museum of Science & Industry, http://www.msim.org.uk/whats-on/meet-baby, consultado el 17 November 2008 
  28. Highfield, Roger (17 June 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 June 2008 
  29. Panoramic image of SSEM and other audiovisual records (Digital 60, University of Manchester)
Bibliografía
  • Brown, Louis (1999), A Radar History of World War II: Technical and Military Imperatives, CRC Press, ISBN 9780750306591 
  • Lavington, Simon (1980), Early British Computers: The Story of Vintage Computers and the People who built them (1st edición), Manchester: Manchester University Press Society, ISBN 0-7190-0803-4 
  • Lavington, Simon (1998), A History of Manchester Computers (2 edición), Swindon: The British Computer Society, ISBN 0902505018 
  • Napper, R. B. E. (2000), «The Manchester Mark 1 Computers», en Rojas, Raúl; Hashagen, Ulf, The First 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», Proceedings of the London Mathematical Society, 2 42: 230–265, 1937 . Widely reprinted and available on the web in many places, e.g. at Scribd.

Lectura Adicional[editar]

Fuente[editar]

Enlaces externos[editar]