Está en la página 1de 9

SSEM

Ir a la navegaciónIr a la búsqueda

Réplica del SSEM en el Museo de Ciencia e Industria en Castlefield, 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 julio 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 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).

Índice

 1Antecedentes
 2El tubo Williams-Kilburn
 3Diseño y Desarrollo
 4Programación
 5Primeros programas
 6Últimos desarrollos
 7Véase también
 8Referencias
 9Lectura Adicional
 10Enlaces externos

Antecedentes[editar]
Artículo principal: Historia del hardware

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.(Copeland, 2010, pp. 91–100)
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. 6 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,7 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.(Lavington, 1998, p. 7)

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,8 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. 9
En octubre de 1945 Turing se incorporó al Laboratorio Nacional de
Física (National Physical Laboratory, NPL), (Lavington, 1998, p. 9) 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.(Lavington, 1980, chapter 5) 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) (Lavington,
1980, capítulo 5). 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.(Lavington, 1998,
pp. 8–9)
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.
(Lavington, 1980, chapter 5) 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.(Lavington, 1980, chapter 5)
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.(Lavington, 1980, chapter 5) 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.(Lavington, 1980, chapter 5) Williams lideró un grupo de desarrollo de
TRE trabajando en comercios de CRT para aplicaciones de radar, como
alternativa a retrasar líneas.(Lavington, 1998, p. 5) Él ya había aceptado un
puesto de profesor en la Laboratorio de matemáticas de la Universidad de
Mánchester, 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.(Lavington, 1980, chapter 5)

El tubo Williams-Kilburn[editar]
Artículo principal: Tubo williams
A pesar que los primeros computadores, como el CSIRAC, usaron con éxito la
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 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".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 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
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.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 instrucciones 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 almacenarse en cada palabra de 32 bits era de −2 31 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 izquierda; por lo que un
uno era representado en tres bits como "100", en lugar de la forma
convencional "001".21

SSEM's instruction set(Lavington, 1998, p. 15)

Código Notación Mnemónica


Oper
Binario original Moderna

000 S, Cl JMP S Salta a la instrucción en la dirección que se obtiene de m


100 Añadir S, Cl JRP S Salta a la instrucción en la dirección que se obtiene de m

010 -S, C LDN S Lee el número en la dirección de memoria especificada,

110 c, S STO S Almacena el número del acumulador en la dirección de m

001 o Resta el número de la dirección de memoria especificada


SUB S SUB S
101t 2 acumulador

011 Prueba CMP Salta la instrucción siguiente si el acumulador contiene u

111 Parar STP Parar

1. ↑ Saltar a:a b Como el contador de programa se incrementa al final del proceso de decodificación, la dirección almacenada tenía
2. ↑ Los bits de función fueron solo parcialmente decodificados, para ahorrar en elementos lógicos.(Lavington, 1998, p. 15)

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, 20 i.e.,  puede ser
calculado como . Por lo tanto, sumar dos números, X e Y, requería cuatro
instrucciones:(Lavington, 1998, p. 15)

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.(Napper,
2000, p. 366)

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.22 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. 23
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,22 aunque dicho laboratorio no se
hizo realidad hasta 1951.24

Últimos desarrollos[editar]

Una placa en honor de Williams y Kilburn en la Universidad de Mánchester

Williams y Kilburn dieron a conocer el desarrollo del SSEM en una carta a la


revista Nature, publicada en septiembre de 1948.25 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.24 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. 26 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.2728

También podría gustarte