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í