Ir al contenido principal

¿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.

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema de

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat

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

Todas o muchas profesiones tienen un emblema que las representa simbólicamente y en el caso de la  informática: " es el establecido en la resolución de 11 de noviembre de 1977  para las titulaciones universitarias superiores de informática, y  está constituido por una figura representando en su parte central  un  núcleo toroidal de ferrita , atravesado por  hilos de lectura,  escritura e inhibición . El núcleo está rodeado por  dos ramas : una  de  laurel , como símbolo de recompensa, y la otra, de  olivo , como  símbolo de sabiduría. La  corona  será la  de la casa real  española,  y bajo el escudo se inscribirá el acrónimo de la organización. ". Veamos los diferentes elementos tomando como ejemplo el emblema del COIIE/EIIEO (Colegio Oficial de Ingenieros en Informática del País Vasco/ Euskadiko Informatikako Ingeniarien Elkargo Ofiziala ) . Pero no sólo el COIIE/EIIEO adopta el emblema establecido en dicha resolución, sino que éste se adopta también como im