Proyecto Whirlwind

Computadora Whirlwind

1. Inicios

La máquina Whirlwind fue una de las primeras computadoras grandes de alta velocidad, se inició durante la segunda Guerra Mundial cuando la marina estadounidense buscaba la posibilidad de crear un simulador de vuelo para entrenar bombarderos.

Se iniciaron los estudios del proyecto en el Instituto de Tecnología de Massachusetts (MIT), Laboratorio de Servomecanismos en 1944.

De dichos estudios se llegó a la conclusión de que era posible la existencia de dicha máquina. Ésta, termina por desarrollarse bajo el nombre de proyecto Whirlwind, y el laboratorio sitúa a Jay Forrester a la cabeza del proyecto.  Pronto se construye una máquina analógica, completamente inflexible e imprecisa, y la solución conllevaba un enorme sistema, casi imposible de construirse.

En 1945, Perry Crawford, otro de los miembros del equipo MIT, tras ver una demostración de ENIAC, sugirió que una computadora digital era la solución. Un tipo similar de máquina permitiría incrementar la precisión de la simulación con el añadido de más código en el programa, en contrapartida de añadir piezas a la máquina. Supuestamente se superarían las complejidades de la simulación con la velocidad planeada.

La construcción de la máquina comenzó en 1948, un esfuerzo que empleó a 175 personas, entre ellos 70 ingenieros y técnicos. Whirlwind llevó 3 años construirlo y estuvo por primera vez en funcionamiento el 20 de abril de 1951. El presupuesto del proyecto fue de $ 1 millón al año, y después de tres años la Marina había perdido el interés, sin embargo, durante este tiempo la Fuerza Aérea se había interesado en el uso de computadoras para ayudar a interceptar enemigos (la guerra fría acababa de comenzar), y Whirlwind fue la única máquina adecuada para la tarea.

Tras la construcción de esta, se comenzó el desarrollo de una segunda versión, más rápida y potente. Pero los gastos sobrepasaron los fondos del MIT con rapidez. Se planeó entonces almacenar el desarrollo de las Whirlwind II, y continuar con el desarrollo de la versión anterior, ahora rebautizada como Whirlwind I y desarrollar aplicaciones para la misma.

2. Diseño

Whirlwind usaba pantallas como salidas y fue el primer ordenador que no consistía en sustitución de piezas mecánicas. Su desarrollo fue usado concretamente en la fuerza Aérea Americanas en el sistema SAGE (Semi Automatic Ground Enviroment).

Whirlwind fue la máquina más rápida de su tiempo. Su lista de «primeras veces» es larga ePanel de control impresionante, pero lo que realmente importa es el simple hecho de que Whirlwind fue el primer ordenador capaz de realizar cálculos en tiempo real. Podía sumar dos números de 16 bits en dos microsegundos y podía multiplicar en veinte microsegundos.

Por supuesto, Whirlwind fue enorme, aunque sólo se utilizaron 4000 válvulas, que fue menos de un cuarto de las válvulas utilizadas en la ENIAC, una máquina mucho menos potente.

Circuitos de la unidad de memoriaLas instrucciones y los datos se introducían en la memoria por medio de interruptores Pantalla de salidao con una cinta perforada (por medio de un panel de control).

Como memoria adicional se utilizaba un tambor magnético (con capacidad de 8 KB), así como un dispositivo de cinta magnética. Whirlwind también fue el primer equipo, que utiliza una pantalla gráfica (con una resolución de 256×256 puntos).

3. Problemas y soluciones

Forrester estudió porqué las válvulas después de 500 horas fallaban, lo que significaba que las averías se produjeran regularmente, y descubrió que la causa era el silicio, éste era añadido para refinar el níquel de una forma más fácil. Cátodos de silicio libres de níquel aumentaron la vida útil de la válvula de 500 a 500.000 horas de media. Este descubrimiento fue un factor clave, lo que hizo posible que el proyecto siguiera adelante.

Otra innovación notable que aumentó la fiabilidad de la máquina aún más, fue poder alterar el voltaje en la red de cada válvula a prueba de errores inminentes.

Forrester había resuelto la mayoría de los problemas en el diseño de Whirlwind, pero tenían un problema con la memoria. Se dio cuenta de que el almacenamiento era el problema fundamental.

Todo el proyecto dependía de encontrar un método más fiable y más económico de almacenamiento.

Para que fuera más rápido y fiable, el equipo de Forrester desarrolló un nuevo tipo de memoria, la memoria de ferrita o de núcleo. Estas memorias consistían en matrices de pequeños anillos o toros cerámico-magnéticos a través de los cuales se enhebraban hilos que almacenaban información en los anillos manipulando la polaridad del campo magnético.

4. La memoria de Whirlwind

Inicialmente Whirlwind usó una forma modificada del tubo de Williams (el tubo Williams tenía una capacidad de 1200 bits y consistía en un tubo de rayos catódicos con memorias). Se necesitaban  32 tubos para almacenar 4Kbytes. Teniendo en cuenta una vida útil del tubo de un mes y un precio de $1000 el tubo, el costo de funcionamiento de la máquina era muy alto, de $1 por bit al mes.Núcleo de la memoria central

En 1949, Forrester comenzó a pensar en maneras de hacer una forma 2D o 3D de almacenamiento en lugar del método unidimensional de recirculación de almacenamiento representado por la línea de retardo y el tubo de Williams.

Después de pasar mucho tiempo pensando en el problema, se encontró con un artículo sobre el uso de los materiales magnéticos como amplificadores.

También sabía sobre el dispositivo de control de transferencia de pulsos (se refiere a la forma en que el campo magnético del sustrato magnético puede ser utilizado para controlar el conmutador de corriente en sistemas electro-mecánicos) del ingeniero chino An Wang, que puso en práctica write-after-read, lo cual crea la posibilidad de almacenar datos en medios magnéticos.

Para empezar a fabricar la nueva memoria Forrester ordenó parte del material y construyó una matriz que pasaba corriente a través del material de los anillos y magnetizaba en una de las dos direcciones.

Esto funcionó, pero era demasiado lento.

A Forrester se le ocurrió un plan que involucró a los hilos de los anillos del material magnético en una cuadrícula xy de los cables. Cada anillo principal se enroscaba en un único par de cables xy. Un tercer cable de lectura / escritura se pasaba a través de todos los núcleos, además de incluir un cable inhibidor paralelo al cable x.

Al principio tenía dudas de que funcionara. Tal vez la exposición repetida a la mitad de la corriente necesaria para cambiar la polaridad, con el tiempo, podría causar una degradación lenta en el estado de la central. No lo hizo y la memoria funcionó perfectamente. Una memoria de pruebas, fue construida sólo para verificar el principio. Luego, en 1953, Whirlwind estaba equipado con una memoria de núcleo que duplicó su velocidad (hasta 40 kips), la mejora de su fiabilidad la hizo más barata para seguir funcionando. En 1951, Forrester solicitó la patente, la cual fue concedida en 1956.

Aunque hoy son una reliquia, representaron un avance decisivo. Comparadas con las existentes hacia 1950, eran más fiables, mucho más baratas, más rápidas, necesitaban menos espacio y menos energía eléctrica. Por lo tanto, las desplazaron en poco tiempo.

Gracias a ellas, junto con los transistores, los ordenadores electrónicos dejaron de ser equipos casi «de laboratorio» para convertirse en máquinas verdaderamente útiles, y así empezó el desarrollo real de la Informática.

Fueron casi las únicas que se emplearon desde 1953 hasta mediados de los 1970. Se calcula que en 1976, momento en que se produce su declive, se usaban en el 95 % de los ordenadores instalados. Las memorias de semiconductores, surgidas a principios de los 70, empezaron con los microprocesadores, pero tardaron varios años en llegar a los equipos grandes.

Incluso durante varios años después, todavía se siguieron empleando memorias de anillos de ferrita en equipos especiales. Como no pierden la información si se interrumpe el suministro eléctrico, son muy adecuadas en algunos casos, como aplicaciones de toma de datos, equipos remotos sin operador, etc.

5. Funcionamiento de la memoria

Dado que la memoria de Whirlwind fue uno de los más grandes descubrimientos y lo que hizo posible que fuera el primer ordenador en tiempo real, es importante describir cada paso y componente para conocer mejor su funcionamiento.

Estudiando los hilos de lectura, vemos que no hace falta uno por cada anillo. Como la corriente que se induce en él al leer de un anillo no es suficiente para que otro conmute, se pueden enhebrar en un hilo todos los anillos de igual posición relativa de todas las palabras. Para una memoria organizada en octetos, bastan 8 hilos de lectura.

Igualmente, podríamos unir con un hilo todos los anillos de una posición de memoria, y formar una estructura bidimensional.

Esta forma de distribuirlos se conoce como organización 2D. En ella, el hilo que pasa por todos los anillos de la posición (el horizontal) se denomina hilo de palabra, y el que pasa por los bits homólogos (el vertical) se denomina hilo de bit.

Para una memoria de 1 kB, se necesitarían 1024 hilos de palabra y 8 hilos de bit, muchos menos que los 16384 iniciales.

La lectura es igual que para un anillo, pero ampliada a todos los de la posición de memoria.

Se hace pasar una corriente negativa por el hilo de palabra de la posición elegida, que lleve a todos los anillos al estado «0».

Los que tienen un «0» siguen igual, y los que tienen un «1» pasan a «0» induciendo una corriente apreciable en su hilo de bit. Pero como esta corriente es menor que la necesaria para forzar una conmutación, no afecta al estado de los demás anillos atravesados por el mismo hilo de bit.

Pero después hay que volver a grabar los «unos» donde estuviesen…

Para eso, se hace pasar una corriente eléctrica positiva por el hilo de palabra y, simultáneamente, otras iguales por los hilos de bits cuyos anillos hay que poner a «1».

La intensidad de esas corrientes está establecida de forma que una, por sí sola, no es capaz de hacer que los anillos que atraviesa se pongan a «1»; pero dos juntas, sí. Los anillos que reciben el efecto combinado de la corriente en el hilo de palabra con la del hilo de bit se pondrán a «1».

Para escribir una información en una posición de memoria, se sigue un procedimiento similar: primero se ponen a «0» todos los anillos de la fila mediante una corriente negativa (como en la lectura), y después se graban los «unos» que correspondan.

Pero en realidad no eran así, la información anterior ha sido una descripción sencilla para comprender mejor lo que sigue a continuación. Realmente era una estructura tridimensional, llamada organización 3D.

Imaginemos que los distribuimos en un plano de M x N (puede ser M=N), y que los enhebramos con hilos de selección horizontales y verticales.

Por razones técnicas, esos hilos estaban colocados de forma que alternasen el sentido de la corriente positiva. En consecuencia, los anillos también tenían que estar alternados.

Usando dos corrientes simultáneas, como en  la escritura con la organización anterior, una en un hilo horizontal y otra en un hilo vertical, bastan M + N (o 2M) hilos para actuar sobre uno de los M x N  (o M2) anillos.

Para formar una memoria de 1024 bits, se haría una matriz de 32 x 32; sólo tendría 64 hilos en vez de los 1024 anteriores.

Para extender la idea a los demás anillos de las posiciones de memoria, sin ocupar demasiado espacio, bastaría con superponer un plano como éste para cada uno de ellos.

Pero así se multiplicaría el número de hilos.

En el modelo anterior, bastaba con un hilo para todos los anillos de la posición de memoria. Para lograr el mismo efecto, se superponen los planos colocándolos alternados, uno al derecho y otro al revés. Finalmente, se conectan en serie los hilos de selección homólogos uniéndolos en lados alternos, de modo que se forme una especie de zig-zag con cada hilo.

La imagen de la derecha muestra un esquema con los tres primeros planos, vistos desde arriba.

Así, con una corriente en un hilo horizontal y otra en un hilo vertical se selecciona todos los anillos de la misma posición de memoria en los diferentes planos. En este esquema, los anillos de cada posición de memoria están alineados en el sentido de la profundidad.

De momento, en cada anillo ya tenemos tres hilos, dos de selección y el de lectura, que no se ha representado en los dibujos anteriores por simplificar. Pero falta otro.

Como se ha dicho antes, al aplicar simultáneamente las corrientes en un hilo vertical y en otro horizontal se actúa sobre todos los anillos de una posición.

Para leer, se manda «media corriente» negativa por cada hilo, todos se ponen a «0», y los que estaban a 1 inducen una corriente en el hilo de lectura.

Para escribir, como en el modelo anterior, se empieza poniendo a «0» todos los anillos de la posición de memoria, y luego se graban los «unos». Pero si se manda «media corriente» positiva por ambos hilos de selección, se pondrían a «1» todos los anillos.

Y aquí aparece el hilo de inhibición (en amarillo en el dibujo), que pasa por todos los anillos de un plano, y va paralelo a uno de los de selección.

Cuando, en un plano, el anillo seleccionado debe seguir a «0», se introduce por este hilo «media corriente» negativa que anula el efecto en ese plano de la que circula por el hilo de selección que va paralelo a él.

Si a este esquema le añades el hilo de lectura, que venimos dejando atrás, y le das la vuelta, ya tienes el elemento central del escudo de la profesión informática.

Escudo de la profesión informática

 

Como el tiempo de conmutación de los anillos disminuye al reducir el diámetro, se fueron construyendo memorias con anillos cada vez menores.  Llegaron a medir menos de medio milímetro de diámetro exterior.

 

 

En la imagen de la izquierda se muestra un bastidor con un plano de memoria experimental. Estos anillos tienen un diámetro de unos 4 o 5 mm, y el plano contiene 16 x 16 = 256 anillos.  Jay W. Forrester

 

 

 

 

La fotografía de la derecha muestra a Jay W. Forrester con un bastidor de memoria.

 

 

 

 

Estas tres fotografías muestran el tamaño tan diminuto de los anillos de ferrita de la memoria de Whirlwind.

 

6. Vídeos

Este vídeo es una entrevista realizada por Edward R. Murrow para la CBS News el 16 de diciembre de 1951. En esta entrevista se puede ver una demostración que hizo Jay Forrester sobre la máquina Whirlwind. En dicho programa le piden que la máquina calcule la trayectoria de un proyectil, después de introducir los datos, se puede ver el resultado en la pantalla de salida, dibujando la trayectoria de dicho proyectil. También realiza en directo un cálculo que le solicita el presentador del programa.

[youtube]http://www.youtube.com/watch?v=5ZQP4G3Qwb4[/youtube]

Otro vídeo interesante de ver es una conferencia que ofrece Jay Forrester en el año 1980 sobre su trabajo realizado en el proyecto Whirlwind, aunque es un vídeo muy largo, es interesante cómo cuenta los problemas que tenían en esa época y cómo pudieron resolver algunos de ellos.

[youtube]http://www.youtube.com/watch?v=JZLpbhsE72I&feature=related[/youtube]

7. Bibliografía

http://www.lsi.us.es/~rovayo/ferrita/ferrita_mm.html

http://www.computerhistory.org/revolution/memory-storage/8/253

http://en.wikipedia.org/wiki/Whirlwind_%28computer%29

http://wanlinksniper.blogspot.com/2008/07/jay-wright-forrester-memorias-de.html

http://es.wikipedia.org/wiki/Computadora_Whirlwind

http://history-computer.com/ModernComputer/Electronic/Whirlwind.html

http://www.computerhistory.org/collections/accession/102656061

http://www.computerhistory.org/collections/accession/102622540

http://www.lsi.us.es/~rovayo/ferrita/ferrita_mm.html