miércoles, 4 de julio de 2012

Historia de la informática: Memorias de línea de retardo



Allá por el año 1980 yo empecé a estudiar Industriales en la Politécnica de Valencia, donde por desgracia descubrí el centro de cálculo, y fue mi perdición definitiva, si ya tenía ganas de trabajar en informática, eso fue lo que acabó con industriales. La pena es que la ingeniería informática no empezó en Valencia hasta unos cuantos años después.

En el centro de cálculo había acceso a la sala de terminales, conectados a un ordenador  Univac 1100/70, una maravilla de la época, con 4 procesadores de instrucciones y cuatro de entrada/salida, con memoria de núcleo de ferritas, varias unidades de discos, varias unidades de cinta, lector de tarjetas, dos impresoras, y arrancaba usando un disquete de 8".

Esto me hace pensar en modelos mas antiguos, los primeros ordenadores tenían muy poca memoria, ya que montar un bit con lámparas era costoso y caro, y hasta que surgieron las memorias de núcleo de ferrita, ¿que se usaba?, pues memorias de línea de retardo o de propagación. Están basadas en una necesidad de los radares de la época, para reducir el número de falsos ecos, lo que se hacía era comparar la señal actual con la anterior, solo si el eco estaba en ambas se mostraba en la pantalla, si no eran iguales no. Esto representa tener que guardarnos la información, en una época en que no había mas que medios analógicos, y guardar una imagen era impensable, la solución fueron las memorias de retardo, se envía la información a la memoria, esta la transmite de un lugar a otro, y ese tiempo de transmisión es lo que necesitamos, si sincronizamos bien el sistema, la señal actual y la del barrido anterior llegan a la vez al sistema, se comparan y se procesan.

El concepto es sencillo, por un tubo inclinado meto una bola, y mientras cae por el tubo, hago algunas cosas, luego recojo la bola cuando sale, la miro y la vuelvo a meter. Ese juego continuo me permite almacenar cosas, puedo lanzar una bola o lanzar dos juntas, lanzar una roja o una verde, lo que representaría un SI o un NO, un cero o un uno. El acceso no es muy rápido, pues tengo que esperar a que salga la bola para conocer el resultado, pero como soy un aparato lento, así me da tiempo de hacer más cosas entre medias.

Este concepto se aplicó de varias maneras, la primera fue en el Univac I, usaba una memoria de mercurio, un tubo lleno a la mitad con mercurio, mediante una aguja se toca la superficie. Esto produce una onda que recorre el tubo, y aparece en el otro extremo, donde puedo detectarla. Si quiero almacenar un cero no envío la onda, si quiero almacenar un uno la envío. El receptor debe volver a introducir el valor en el tubo para mantener el valor, o cambiarlo si se desea. Hace falta llevar la cuenta del tiempo para saber que bit de una palabra se está recibiendo en cada momento. El sistema usaba 32 tubos, cada uno podía almacenar una palabra de 35 bits, mas un bit de inicio/parada, para sincronizar los temporizadores. En total el sistema disponía de 32x35=1120 bits, lo que representa 140 bytes, o casi 0'14Kb.

Memoria de mercurio de un Univac I

El principal problema es que la velocidad de propagación varía en función de la temperatura, por lo que el sistema se debía mantener a 40º para su correcto funcionamiento, al contrario que el resto de la circuitería que debía refrigerarse.

Otra forma de usar las líneas de retardo se empleó en la Manchester Mark I, que posteriormente se vendieron comercialmente como las Ferranti Mark I (Ferranti es que fabricaba las ULA de los spectrum), usando tubos Williams. El concepto es sencillo, un tubo de televisión (o de radar en aquella época) está recubierto de fósforo, que al recibir el electrón se excita (no seáis mal pensados/pensadas), emite luz que persiste unos milisegundos, lo suficiente para que una pantalla completa se haya presentado. Usando un tubo con fósforo de alta persistencia, lo que se hacía era pinta en la pantalla puntos y rallas, un punto era un cero y una ralla un uno.

Pantalla simulando la memoria de un Mark I

Sobre la pantalla se ubicaba un detector de luz, de forma que consultándolo se sabía el valor de esa posición de memoria. Cuando el haz de electrones debía repintar la pantalla, leía o un nuevo dato, o si no lo que nos daba el detector, refrescando continuamente la imagen. Este tipo de memorias es más rápido en lectura que la de mercurio, pero graba a la misma velocidad.

Este tipo de memoria era mas "temperamental", normalmente había que ajustarla a menudo para que funcionase bien, pero era mas barata y menos problemática que la de mercurio. El ordenador usaba pantallas de memorias mas pequeñas para sus registros (como el acumulador de 80 bits, o los registros de 40 bits) y pantallas mas grandes con la memoria principal, de una página de 64 líneas cada una. Además usaba un tambor magnético para almacenar más páginas de memoria, lo que le permitía ejecutar programas complejos.

Y entre otras cosas, podemos ver aquí el concepto de "página de memoria", no tan moderno como parece, los pioneros sentaron las bases de todo.

2 comentarios: