martes, 22 de enero de 2013

¿Qué significa el emblema de la profesión informática? (II)

En el anterior post sobre este tema, "¿Qué significa el emblema de la profesión informática? (I)" vimos el significado de los diferentes elementos que componen dicho emblema, pero dejamos para un post posterior aclarar el significado exacto de los hilos de lectura, escritura e inhibición a los que hace referencia la resolución 11 de noviembre de 1977 que lo define.

Para ello, voy a explicar ("más o menos", y simplificando lo que pueda) cómo funcionaban las memorias de núcleos de ferrita, para así intentar comprender el por qué de los cuatro hilos que aparecen en el emblema.

Como se comentó en el post anterior, el núcleo toroidal de ferrita simboliza el bit o la unidad mínima de información de los ordenadores, ya que podía tener dos estados, que representaban los valores '0' y '1', respectivamente, y los hilos eran el mecanismo por el que se podía "leer" (saber en qué estado estaba y, por tanto, si tenía un '0' ó un '1'), "grabar" (poner a '1') y "borrar" (poner a '0') un núcleo de ferrita (bit).

¿Cómo funcionaba?

Para leer se utilizaban dos hilos, de la siguiente manera: se hacía pasar una corriente negativa por un hilo (representado en color verde en la siguiente figura) y como consecuencia: si el anillo de ferrita estaba en estado "0" seguía igual, mientras que si estaba en estado "1" pasaba a estado "0" e inducía una corriente apreciable en el otro hilo (representado en color rojo en la figura siguiente) y que era leída como que ese anillo de ferrita estaba en estado "1".



Ahora bien, como se ha dicho, si el estado era "1" pasaba a "0" por lo que en ese caso, cuando se leía un "1" en el hilo rojo, había que restaurar el núcleo de ferrita al estado "1", es decir, se debía escribir un "1" en él (veremos más adelante como se hacía esto, pero en teoría se trataría de generar una corriente positiva suficiente, mediante uno o los dos hilos, para que el núcleo de ferrita pasara de estado "0" a "1").

Por tanto, ya tenemos los mecanismos para leer y escribir

Organización 2D de la memoria

El inconveniente que se planteaba si se utilizaban dos hilos por núcleo de ferrita (bit) era el elevado número de hilos necesarios. Para una memoria de 1 kB con un tamaño o longitud de palabra (posición de memoria) de 8 bits se necesitarían: 1.024 posiciones de memoria x 8 bits/posición de memoria x 2 hilos/bit = 16.384 hilos.

Para optimizar el número de hilos se pensó en una organización 2D en la que los núcleos de ferrita se distribuían en una matriz de tal forma que pudieran compartir hilos, de la siguiente manera:




Como se observa en la figura anterior, el hilo rojo (de lectura) era compartido por todos los núcleos de ferrita distribuidos en una misma columna, o lo que es lo mismo por todos los bits con la misma posición relativa en cada palabra y, por tanto, se llamaba hilo de bit, mientras que el hilo verde era compartido por todos los núcleos de ferrita distribuidos en una misma fila, o lo que es lo mismo por todos los bits de una misma palabra y, por tanto, se llamaba hilo de palabra.

De esta forma, para una memoria de las características indicadas anteriormente se necesitarían: 1.024 hilos verdes (uno por cada posición de memoria) + 8 hilos rojos (uno por cada bit de todas las posiciones de memoria) = 1.032 hilos, muy por debajo de los 16.384 hilos que serían necesarios si no se compartieran los hilos.    
  
¿Cómo funcionaba la organización 2D?

Para leer el sistema era el mismo que en el caso de un solo anillo, es decir, como primer paso se hacía pasar una corriente negativa por el hilo de la palabra (hilo verde) que se deseaba leer y como consecuencia: cada anillo de ferrita de la palabra que estuviera en estado "0" seguía igual, mientras que cada anillo de ferrita de la palabra que estuviera en estado "1" pasaba a estado "0" e inducía una corriente apreciable en su hilo de bit (hilo rojo). La corriente inducida en un hilo de bit, aunque apreciable (se leía como que el anillo de ferrita de la palabra tenía un "1") no era suficiente para forzar el cambio de estado del resto de anillos que compartían dicho hilo de bit (los de la misma posición relativa en el resto de palabras) y, por tanto, no afectaba al estado de los  mismos.



Ahora bien, al igual que en el caso de un solo anillo, como los anillos de ferrita de la palabra leída que estuvieran en estado "1" pasaban a estado "0", cuando se leía un "1" en un hilo de bit (hilo rojo), había que restaurar al estado "1" el núcleo de ferrita correspondiente a ese hilo de bit en la palabra leída . Para ello, se generaba una corriente positiva por el hilo de la palabra leída y otra igual por cada hilo de bit cuyo anillo de esa palabra había que restaurar a estado "1". La intensidad de cada una de las corrientes generadas en cualquier hilo, por sí sola, no era suficiente para que el estado de los núcleos de ferrita que atravesaba pasaran de estado "0" a "1", de tal forma que sólo la corriente en el hilo de palabra combinada con la corriente del hilo de bit que atravesaba un núcleo de ferrita a restaurar ocasionaba que éste, al ser atravesado por ambos hilos conjuntamente (intersección de ambos hilos), pasara de estado "0" a "1".




Por tanto, la lectura se hacía en dos pasos: conocer el estado de los bits (núcleos de ferrita) de una palabra (posición de memoria) y, como después de la misma todos los bits de la palabra leída en estado "1" pasaban a "0", restaurar ("grabar") todos los bits que en esa palabra estaban a "1" previamente a la lectura de la misma.

Para escribir información en una palabra (posición de memoria) se hacía también en dos pasos, de forma muy similar a la lectura, poner a "0" ("borrar") todos los bits de la palabra a escribir (de igual manera que en el primer paso de la lectura, es decir, generando una corriente negativa por el hilo de la palabra correspondiente - hilo verde -) y, posteriormente, poner a "1" ("grabar") el estado de los núcleos de ferrita (bits) de esa palabra que correspondiera conforme a la información a almacenar (de igual manera que en el paso dos de la lectura, es decir, generando una corriente positiva por el hilo de la palabra - hilo verde - que se deseaba grabar y otra igual por cada hilo de bit cuyo anillo de esa palabra había que grabar a "1").

Organización 3D de la memoria

Pero todavía eran demasiados hilos, y para optimizar aún más el número de hilos se pensó en una organización 3D en la que se utilizaban varias de las matrices anteriores de forma simultánea, de tal manera que estas matrices compartieran también los hilos.

La idea era utilizar hilos de selección (representados en color azul y verde en la figura siguiente) enhebrando los anillos de ferrita de la manera siguiente.



De esta forma al generar una corriente por un hilo azul y simultáneamente otra por un hilo verde se seleccionaban todos los anillos de una posición de memoria.

¿Cómo funcionaba la organización 3D?

Para leer, como primer paso, se generaba la mitad de corriente negativa por un hilo azul y la otra mitad de corriente negativa por un hilo verde, con lo que los núcleos de ferrita de la posición de memoria deseada que estuviesen a "1" se ponían a "0" e inducían una corriente en el hilo de lectura correspondiente.

Como segundo paso había que restaurar los bits que habían tenido un "1" en esa posición de memoria, pero si  se generaba la mitad de la corriente positiva por el hilo azul y la otra mitad de corriente positiva por el hilo verde se podrían a "1" todos los bits de la posición de memoria, con lo que había que incluir un cuarto hilo, el hilo de inhibición.

El hilo de inhibición, que iba paralelo al hilo verde de selección, enhebraba todos los anillos (bits) con la misma posición relativa de todas las posiciones de memoria, de tal manera que cuando en la posición de memoria en la que había que restaurar a "1" los bits que previamente a su lectura tenían ese estado, además de generar la mitad de la corriente positiva por el hilo azul y la otra mitad de corriente positiva por el hilo verde, bastaba con generar la mitad de la corriente negativa por el hilo de inhibición correspondiente a los bits a mantener a "0" para que se anulara la mitad de corriente positiva generada en el hilo de selección que discurría paralelamente a él (hilo verde).

Para escribir, como primer paso se ponían a "cero" todos los bits de la posición de memoria (mitad de corriente negativa simultáneamente por los hilos azul y verde correspondientes a la posición de memoria deseada), y después se ponían a "1" (grababan) los bits de la posición de memoria en función de la información a almacenar (de igual manera que en el paso dos de la lectura, generando la mitad de la corriente positiva por el hilo azul y la otra mitad de corriente positiva por el hilo verde, y generando la mitad de la corriente negativa por el hilo de inhibición correspondiente a los bits de la posición de memoria en los que había que grabar un "cero").

Por tanto, ya tendríamos los cuatro hilos: dos de selección (uno azul y otro verde), uno de lectura (rojo)  y uno de inhibición. Los dos último (lectura e inhibición) no se han representado en la figura anterior por no hacerla excesivamente compleja.



Pero no hay que olvidar que el objetivo de todo esto era optimizar el número de hilos y, si no me equivoco, una memoria de las características indicadas se podía hacer con 256 matrices de 4 filas y 8 columnas (4 posiciones de memoria/matriz x 256 matrices = 1.024 posiciones de memoria).


Pregunta: ¿Cuántos hilos se necesitarían en este caso?.

Hagan cuentas y verán que muchos menos que los 1.032 que se necesitarían en una organización 2D y, por supuesto, muchísimos menos que los 16.384 que se necesitarían si los núcleos de ferrita no compartieran ningún hilo (se admiten resultados en forma de comentario a este post :-) ), y con la ventaja adicional de que si se ampliara la capacidad de la memoria no se necesitarían muchos más hilos.

Hasta aquí la segunda y última entrada sobre el significado del emblema de la profesión informática, en la que he intentado dar respuesta al "por qué de los hilillos" que en él aparecen (ver post anterior en el que se explican los elementos que componen dicho emblema), y, aunque me he permitido alguna "licencia" para facilitar su comprensión, creo que lo explicado es "más o menos" así y espero haberlo hecho de forma que se entienda suficientemente.

No hay comentarios:

Publicar un comentario