El almacenamiento de informaciones es función esencial en un computador. Existen informaciones que precisan ser almacenadas solamente por los periodos en que el computador ejecuta alguna tarea, como también informaciones que deben ser almacenadas por tiempo indeterminado, pues de ellas depende la propia inicialización de las operaciones cuando conectamos la máquina. Las memorias son los dispositivos que almacenan informaciones y la evolución de las técnicas electrónicas, principalmente la física de los semiconductores, nos ha llevado a tipos cada vez más sofisticados y con mayor capacidad. En este artículo estudiamos algunas memorias, su principio de funcionamiento y sus características.
Observación. Este articulo es de 1989.
La capacidad operacional de un computador está en la posibilidad que tiene la máquina de almacenar una gran cantidad de informaciones y procesarlas, siguiendo un determinado procedimiento y llegar a los resultados.
De esta forma, lo que puede hacer un computador no depende solamente de su velocidad y del número de operaciones que "conoce", sino también de la cantidad de informaciones que el mismo puede almacenar y procesar. Este último punto depende de un sector de gran importancia en la informática: el que trata sobre las memorias.
La unidad de información es el bit, que puede ser 1 o 0. Una memoria para un circuito electrónico puede ser una simple llave, un flip-flop o un capacitor, donde la llave cerrada significa el almacenamiento de un bit "'1'. Un flip-flop con su salida en el nivel alto almacena el nivel 1 y el capacitor cargado almacena el 1 (figura 1).
La operación con grandes cantidades de informaciones y el hecho de que los bytes que forman las "palabras" son constituidos por determinado número de bits (4,8,16 o 32), llevó a la necesidad de tener dispositivos bien elaborados para almacenamientos de los niveles lógicos.
En los computadores muy antiguos existían memorias de "núcleos magnéticos" que, como muestra la figura 2, almacenaban informaciones por la magnetización de pequeños anillos de ferrite organizados según una matriz.
Tenemos, entonces, las líneas por donde se "grababan" las informaciones, las líneas de lectura y también las líneas de borrado.
Otro tipo de memoria, que también estuvo en uso, es la formada por cintas de papel perforado, o incluso tarjetas, como muestra la figura 3.
Las perforaciones representaban el 1 y la falta. de perforación el 0.
La evolución del circuito integrado, mientras tanto, nos llevó a un tipo de memoria más compacta, con mayor capacidad de almacenamiento de informaciones, o sea, mayor cantidad de bits y mayor velocidad de operación.
Vea que la necesidad de realizar millones de operaciones por segundo en el computador moderno exige que tenga rápido acceso a las informaciones.
Tenemos, así, circuitos especiales que pueden almacenar informaciones, denominados memorias, cuya capacidad se mide en millares, decenas de millares, e incluso, centenares de millares de bits y que se usan en los computadores.
Está claro que la existencia de estas memorias no elimina todavía la necesidad de emplear también algunos procesos de alrnacenamiento mas tradicionales como el disco rígido, el disco flexible y la cinta magnética.
Estos elementos de memoria poseen una capacidad mucho mayor que las propias memorias del tipo semiconductor, pudiendo medirse en centenares de kilobits, o incluso, en millones de bits.
Nos interesa, especialmente, en este artículo, las memorias de tipo semiconductor, que se caracterizan por su velocidad, y que, en algunos casos, por la posibilidad de ser borradas y reprogramadas.
Memorias semiconductoras
La idea básica e inicial para la construcción de una memoria parte del flip-flop, que es una configuración cuya estructura aparece en la figura 4.
El flip-flop o multivibrador biestable o también "báscula biestable") es una configuración que admite solamente dos situaciones estables. Cuando el transistor Q1 está saturado, obligatoriamente Q2 está en corte, y cuando Q1 está en corte, Q2 obligatoriamente está saturado.
Para que el circuito pase de una situación a otra, es necesario aplicar un impulso externo.
Si invertimos una secuencia de flip-flops, como muestra 1a figura 5, las salidas que corresponden al 0 (transistor saturado) o 1 (transistor en corte) forman un byte o una "palabra" que estará almacenada en el circuito.
Conjuntos de flip-flops formaban los primeros tipos de memorias. Partiendo de una situación en que la salida de todos los flip-flops queda en cero, podemos, a partir de 1a "entrada de datos", llevar los flip-flops a almacenar la información deseada.
En la configuración indicada tenemos un inconveniente, que es la necesidad de tener una entrada para activar cada flip-flop, lo que significa muchas conexiones si queremos constituir una memoria de gran capacidad.
El agregado de un decodificador permite no solo dirigir la información hacia los flip-flops deseados, sino también hacer su lectura. Tenemos, en la figura 6, una mejor organización para la memoria.
Los flip-flops se disponen en 32 filas de 4, o sea, formando 32 palabras de 4 bits. Se trata de una memoria de 128 bits, pero organizada en la forma 32 x 4.
A través de un decodificador podemos seleccionar, por medio de niveles lógicos, qué fila de flip-flops será activada, ya sea para la grabación de la información (almacenamiento), o para la lectura.
Es importante observar que, como trabajamos siempre con la base 2, la capacidad de una memoria será siempre una potencia de ese número, como por ejemplo: 2, 4. 8. 16, 32, 64, 128, 256, 512, 1024, 2048, etc.
Pero, incluso con el uso de un decodificador que permita el acceso al punto exacto de la memoria en que está la información deseada, si quisiéramos capacidades muy grandes todavía debemos tener una organización mejor.
Las matrices que forman cada chip pueden ser dispuestas en conjuntos, de modo que no tengamos solamente la selección de la línea de un chip en que está la información deseada, sino también la selección del propio chip.
A partir de aquí debemos introducir ciertos términos importantes, para que usted se familiarice mejor con lo que estamos explicando. Estos términos se refieren a los nombres que se encuentran en los manuales y diagramas referidos a memorias (figura 7).
Términos usados
AO...A3 - Son las líneas de direccionamiento de datos o "direcciones". Aplicando niveles lógicos en estas entradas, informamos a la memoria qué línea se debe activar, o sea, damos la "dirección" de la línea dentro de la memoria.
Vea que, si tuviéramos para direccionamiento 4 entradas, sólo tendremos 16 combinaciones posibles o 16 direcciones. Si tuviéramos 8 ya tendremos 256 posiciones posibles.
IO - In - Estas son las entradas de datos o "Inputs" (I).
En ellas aplicamos la información que debe ser grabada en la célula determinada por el direccionamiento o dirección.
00... -0n - Estas son las salidas de datos o "Outputs" (O). En ellas obtenemos las informaciones que están en la célula determinada por el direccionamiento o dirección.
En algunos chips de memoria para no tener un número muy grande de pins, por ejemplo 8 para entrada y 8 para salida, podemos emplear sólo 8, conmutando su función por la aplicación de un nivel lógico en un único pin.
Tenemos entonces los pins I / 0 (entrada y salida) que sirven para lectura o grabación de datos. Como lectura en inglés es ,"Read" y la grabación o escribir es "Write", estos pins de selección de la función aparecen con la abreviatura R/W.
R/W - Se trata, como vimos, del terminal en que elegiremos si la memoria será leída o grabada. La barra sobre W indica que esta función está activa cuando aplicamos un nivel cero (0 ó D0) en este pin.
Así R/W significa que, el nivel HI en esta entrada muestra que la memoria esté en la posición de lectura y el nivel bajo (DO) 1a lleva ala posición de grabación de la información.
S/S/ - Estas entradas hacen la selección del chip.
Vss y/Vdd - Son los pins de alimentación.
RAMs – Memorias de acceso aleatorio
Son memorias que se pueden leer o grabar a través de señales apropiadas.
Se trata de una memoria "volátil", o sea, que pierde todas las informaciones grabadas cuando se desconecta su alimentación.
El nombre "acceso aleatorio" (del inglés RANDOM) se debe al hecho de que el tiempo de acceso a una determinada información depende de su dirección.
En una cinta, por ejemplo, este tiempo de acceso depende de la posición de la información: llegamos más rápido a una información que está al comienzo de la cuenta que a una que esté al final.
Las RAMs se pueden clasificar en estáticas y dinámicas, según el tipo de célula que usan, y también pueden ser bipolares o MOS, según la tecnología de fabricación.
En la RAM estática basta direccionar el dato y aplicarlo en las entradas para que sea grabado. En una RAM dinámica existe un circuito de clock u oscilador que sincroniza tanto la grabación como la lectura.
En un chip típico de RAM no encontramos solamente una matriz de célula donde se almacenan las informaciones.
Además, tenemos los circuitos decodificadores, buffers que amplifican tanto las señales de salida como las de entrada, y muchos otros.
Una memoria dinámica (RAM dinámica) es siempre del tipo MOS y tiene la estructura que mostramos en la figura 8.
Cada célula tiene transistores MOS y un elemento capacitivo, cuya carga determina el bit almacenado, o sea, si es un 0 o un 1. Estas células tienen un inconveniente: el capacitor que almacena la información tiende a descargarse con el tiempo, e incluso rápidamente.
Esto significa que la memoria precisa que se restaure la información periódicamente, o sea, debe haber un medio de revisar la carga del capacitor y aquellos que estuvieran con la misma en un nivel muy bajo deben ser "recargados", de modo que no se pierda la información.
Evidentemente, los que estuvieran en el nivel bajo, o sin carga no precisarán esto. Existe entonces un circuito de "refresco" (Refresh) que, en intervalos regulares de tiempo, del orden de milisegundos, restaura las cargas de cada capacitor.
La célula de una RAM estática, por otro lado, tiene una estructura diferente, como muestra la figura 9.
Esta célula consiste en un flip-flop y, por lo tanto, no tiene elementos capacitivos, lo que significa que no necesita de ciclo de refresco.
Por otro lado, la misma tiene como desventaja el hecho de que es mucho más lenta, y por este motivo es mucho menos usada.
Las células bipolares son también estáticas (flip-flop), pero son más rápidas que las MOS. El hecho de que los elementos bipolares presentan mayor consumo que los CMOS también debe ser tenido en cuenta.
Estas memorias son empleadas durante el funcionamiento del computador para recibir informaciones externas, para almacenar informaciones durante los procesos de cálculos, perdiendo todas las informaciones cuando el aparato es desconectado de su alimentación.
ROMS – Memorias solamente de lectura
Las Read Only Memories (ROM), o memorias solamente de lectura, son programadas durante el proceso de fabricación con una información que no puede ser alterada más.
Los datos existentes en estas memorias pueden ser extraídos a voluntad, pero no puede hacerse ninguna alteración en los mismos o bien grabar nuevas informaciones.
Como se trata de una memoria no volátil, los datos grabados permanecen por tiempo indeterminado, incluso cuando se desconecta la alimentación del aparato.
En estas memorias se graban las informaciones que inician la operación del computador y que corresponde a 1a realización de todas las operaciones previstas por el fabricante.
La organización general de una memoria de este tipo no escapa a las reglas: las células que almacenan cada bit son organizadas en forma de matriz. Existen a su vez circuitos de decodificación y direccionamiento de datos, así como amplificadores y buffers. También se pueden elaborar estas memorias tanto en tecnología bipolar como CMOS.
En la figura 10 tenemos una estructura simplificada de una memoria de este tipo.
A partir de un proceso especial de fabricación, la impedancia de la zona de contacto metálico puede hacerse alta o baja a partir de la utilización de una máscara de programación.
Según la impedancia del punto (célula) sea alta o baja, cuando se hace el direccionamiento de 1a lectura tendremos o no , la conducción del transistor, con la aparición de los niveles 0 o 1 en la salida.
Otro tipo de memoria ROM usa dos transistores conectados en serie y entre ellos 1a salida, como muestra la figura 11.
Durante la programación, podemos aplicar alta tensión a otro transistor, generando en su base una carga estática que se mantendrá.
Esta carga, según el transistor, lo polariza de modo que establece el nivel lógico 0 o 1 en la salida, como muestra la figura 12.
Este tipo de memoria puede ser "apagada", cuando sometemos el chip a rayos ultravioletas. Como las mismas son apagables" (erase = apagar), o sea, "erasable", tenemos su denominación de EPROM.
Esta memoria puede ser provista totalmente "apagada" y ser programada por el usuario. Para apagar un programa ya existente, basta exponerla a la radiación ultravioleta.
Observe la presencia de una "ventana" de material transparente a la radiación ultravioleta. Para apagar basta exponer el chip a este tipo de radiación. Y una vez programada, podemos tapar la ventana de modo de no tener una pérdida de informaciones por incidencia de radiación.
Un tipo de ROM solo programable, o sea PROM, tiene la estructura que aparece en la figura 13.
En cada célula existen microfusibles, que se obtienen del propio chip durante el proceso de fabricación. Estos fusibles son a base de níquel-cromo y pueden ser fundidos con una corriente muy baja, del orden de 15 mA, que es la corriente de programación.
De esta forma, aplicamos corrientes en los fusibles, que deben ser rotos, abriendo así el circuito y estableciendo un nivel lógico 0.
Los fusibles que se mantienen intactos garantizan el nivel lógico 1.
Este tipo de memoria presenta algunos inconvenientes, como por ejemplo el hecho de que no se consiga una corriente precisa para la fusión de los fusibles, además del hecho de que los que son rotos pueden volver a entrar en corto.