lunes, 27 de agosto de 2012

Memorias de núcleos magnéticos

Indice de entradas sobre Historia de la Informática

Corregido el 28/02/2013

Los primeros ordenadores usaban memorias de propagación o de retardo, como las de mercurio o los tubos Williams, había otras como las que usaban un alambre al que se hace vibrar, según la longitud tardaba más o menos en detectarse al final del alambre la vibración. Pero todas estas memorias eran delicadas, las de propagación dependían mucho de la dilatación del medio, por lo que era importante mantener una temperatura constante. Los tubos Williams eran susceptibles a interferencias, y tendían a de-sincronizarse tras un tiempo funcionando, por lo que se buscó un nuevo sistema, y el mejor fueron las memorias de ferritas, ideadas por Jay Forrester (más conocido como padre de la Dinámica de Sistemas), al que le costó 7 años convencer a las empresas de su uso, pero que luego fueron adoptadas de forma muy rápida (y sin pagar derechos de patente, por lo que Jay pasó otros 7 años litigando), y fueron usadas en todos los ordenadores hasta el desarrollo de las memorias en chip, incluyendo las primeras calculadoras electrónicas de sobremesa.

Si por un hilo circula una corriente eléctrica, se genera un campo magnético que lo rodea y cuya dirección depende del sentido de la corriente, por lo que es controlable. Si agarramos con la mano derecha el hilo (aunque seamos zurdos), extendiendo el pulgar en la dirección de la corriente, los otros dedos indican la dirección del campo magnético que envuelve al hilo (regla de la mano derecha).

Si arroyamos un hilo sobre un material ferroso, como un clavo, se concentra el campo magnético imantando el clavo y formando un electroimán. Al contrario, un anillo ferroso puede imantarse en uno u otro sentido, dependiendo del sentido de la corriente de un hilo que lo atraviese, solo es necesario enviar una corriente de un determinado valor, y el sentido en que recorre la corriente el anillo cambia. Además, podemos detectar el sentido del campo magnético del anillo, viendo cómo afecta a una corriente que circule por el hilo.

Bien, ya tenemos la posibilidad de almacenar un solo bit, usando un anillo y un hilo. Pero si necesitamos muchos bits, no podemos usar un hilo por cada uno, si queremos almacenar 1K byte, dispondremos de 8.192 bits, y no es practico usar 8.192 hilos, por lo que se recurrió a la solución de establecerlos en filas y columnas, poniendo un anillo en cada intersección. Si por cada hilo se envía la mitad de la corriente necesaria para hacer cambiar el sentido de magnetización del anillo, solo afectará al anillo situado en la intersección de la fila y columna, cambiando el estado de ese anillo pero no los de alrededor. Esta disposición permite ahorrar muchos hilos, si usamos 8 de columna y 1.024 de fila podemos manejar 1K, y hemos reducido de 8.192 a 1.032 los hilos necesarios. Por razones de interferencia los anillos se disponían alternativamente a izquierdas o derechas, como se aprecia en la figura de ejemplo.

Para leer un byte, simplemente se envía la señal de cambio de valor por el hilo de fila, para que cambien a cero todos los anillos de la fila, si el anillo está a cero no pasa nada, pero si está a uno, el cambio de sentido del campo magnético induce una corriente en el hilo de columna, que es detectada. De esta forma se puede leer un byte completo cada vez, ya que no es práctico leer bit a bit. Como hemos puestos a cero todos los anillos de la fila, la lectura es destructiva, por lo que es necesario nada mas leer un dato, volverlo a escribir en la memoria, por lo que al contrario de las memorias modernas, eran más lentas en lectura que en escritura.

Para mejorar la detección de los valores, no se usaba el mismo hilo para lectura y escritura, por lo que habitualmente las ferritas estaban atravesados por tres hilos, el de columnas era siempre de selección, y disponían de un hilo de filas para lectura y otro para escritura.



Como hemos visto, hacían falta muchos hilos para una memoria de 1K, por lo que para optimizar el diseño en lugar de 1024x8 se empleaban sistemas más cuadrados (también hay que tener en cuente que en esa época las palabras no eran todavía de 8 bits, lo normal eran 11, 13, 21 y hasta 35 bits por byte). Aun así eran muchos hilos, por lo que el diseño se complicó, pasando de una disposición 2D, a una denominada 3D, en la que se disponían las ferritas en capas, pudiendo tener varias capas de ferritas una junto a la otra, todas atravesadas por los mismos hilos de fila y columna, por lo que fue necesario añadir un cuarto hilo, el de inhibición, que permitía seleccionar que plano de ferritas deseábamos usar, para ello se enviaba a una señal de grabación pero negativa por ese hilo, de forma que al cruzarse en los anillos no deseados se anulasen la señal de lectura/escritura con la de inhibición. Por razones de hilado este hilo se tejía en diagonal, formando el habitual núcleo de 4 hilos, que es el logotipo de la informática en España, ya que ningún elemento ha revolucionado tanto la informática y la ha hecho prosperar más que las introducción de estas memorias, que fueron un avance fundamental.





Las primeras unidades usaban anillos de 8mm de diámetro, pero conforme más pequeño fueran los anillos, menos energía hacía falta para manejarlos y menos se interferían entre sí, por lo que podían juntarse más, y se conseguía ampliar la capacidad de las memorias y aumentar su velocidad, lo que hizo que las últimas memorias llegaran a tener 0'2 mm de diámetro, apenas visibles por el ojo.

En esta foto del proyecto Apolo de la NASA hay unas operarias "tejiendo" las ferritas, usando un microscopio para ello:


Una explicación mas detallada la podeis ver aquí

No hay comentarios:

Publicar un comentario