Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La memoria RAM
Los circuitos digitales nicamente pueden procesar datos representados con ceros y unos, pero
para ello deben estar almacenados en otro circuito que permita a su vez su modificacin. En el
contexto de un ordenador este dispositivo suele ser la memoria RAM (random access memory), un
circuito que contiene en su interior una tabla que almacena informacin en cada uno de sus
compartimentos.
Como toda tabla, es preciso saber dos de sus dimensiones: el tamao de cada uno de sus
elementos, y el nmero de elementos de los que dispone. Actualmente, las memorias
convencionales almacenan la informacin en elementos de tamao 1 byte. Por lo tanto una
memoria se puede ver como una tabla que contiene un determinado nmero de bytes. Los
elementos de esta tabla estn numerados con nmeros naturales comenzando por el cero. El
nmero correspondiente a cada una de los elementos se denomina direccin de memoria y se
suele representar de forma abreviada por el smbolo @. Al conjunto de nmeros que representan
las direcciones de una memoria se le denomina su espacio de direcciones. La figura 1 ilustra la
estructura, contenido y direcciones de una memoria RAM.
Figura 1 Estructura de la memoria RAM
El acceso a los datos internos de la memoria viene determinado por el tamao de sus celdas o
elementos. Tal y como est estructurada, la memoria no ofrece acceso directo a cualquiera de sus
bits, sino que es preciso primero obtener un byte y posteriormente acceder al bit pertinente. Los
procesadores incluyen en su lenguaje mquina las instrucciones necesarias para poder manipular
los bits de un byte. Si se quiere, por tanto cambiar un bit de un byte de memoria se debe leer el
byte entero, utilizar instrucciones para cambiar su valor, y escribirlo de nuevo en memoria.
Internamente la memoria est implementada por un conjunto de transistores diseados de tal
forma que pueden almacenar la informacin dada. La unidad responsable de almacenar un bit de
informacin se denomina celda. Un chip de memoria no es ms que un circuito que contiene un
determinado nmero de celdas en cuyo interior se almacena un bit. Existen dos tcnicas para el
diseo de memoria: esttica y dinmica.
Al ser la memoria un circuito digital, todos sus datos deben ser codificados igualmente con ceros y
unos y esto incluye a los parmetros que reciben las operaciones de lectura y escritura. El dato a
leer o escribir es un byte y por tanto ya est codificado en binario. Las direcciones tambin deben
estar codificadas en binario, y como son nmeros naturales (son positivos y comienzan por cero) la
codificacin utilizada es base dos.
La lectura de un dato consiste en enviar a la memoria los bits que codifican una direccin, y la
memoria devuelve ocho bits. La operacin de escritura consisten en enviar a la memoria los bits
que codifican una direccin y ocho bits de datos, y stos ltimos se almacenan en la posicin
especificada.
La codificacin de las direcciones tiene una relacin directa con el tamao de la memoria. Todo
byte en memoria tiene una direccin, y el nmero de bytes corresponde con el nmero mximo de
direccin que se puede codificar. Al utilizar la codificacin en base 2 se deduce que una memoria
Debido a esta relacin entre los bits que codifican una direccin y el nmero de elementos, las
memorias suelen tener un tamao potencia de 2. El coste de incluir un nmero determinado de bits
hace que se aprovechen todas sus combinaciones.
El tamao de la memoria se mide en mltiplos que no siguen las reglas convencionales de
multiplicacin por potencias de 10 sino por potencias de 2. As, un kilobyte son 2 10 bytes o 1024
bytes. Las unidades de medida del tamao de memoria as como sus exponentes y los prefijos de
su nomenclatura se muestran en la tabla 1
Tabla 1 Unidades de almacenamiento de informacin en bytes
Prefijo
Smbolo
Potencia
Kilo
210
Mega
220
Giga
230
Tera
240
Peta
250
Exa
260
Zetta
270
Yotta
280
Dado el nmero de bits del bus de direcciones se puede deducir el tamao de la memoria. Se
puede cambiar el tamao de la memoria de un ordenador? A la vista de las conexiones que se
muestran en la figura 3 esto no es factible. El bus de direcciones es un conjunto de seales fijo y
por tanto cambiar el tamao de memoria significara cambiar este nmero. Si un ordenador duplica
su memoria RAM necesita un bit adicional en su bus de direcciones.
Los buses se implementan como pistas de metal en un circuito impreso y sus extremos se
conectan a los puertos de entrada del procesador y la memoria, por lo que aadir un bit ms al bus
es una operacin extremadamente compleja. Sin embargo, en los equipos actuales s se ofrece la
posibilidad de aumentar la memoria disponible mediante la insercin de circuitos adicionales. Esto
es posible porque el bus de direcciones tiene ms bits de los que son necesarios y adems, el
procesador comprueba que las direcciones de memoria utilizadas estn dentro del rango correcto.
En general, en un procesador, el nmero de bits de los que consta el bus de direcciones es un
parmetro fundamental de su arquitectura y no puede ser modificado. Por ejemplo, en el
procesador Intel Pentium, el bus de direcciones es de 32 bits, con lo que se pueden direccionar
hasta un mximo de 4 gigabytes de memoria. En realidad, el procesador puede trabajar con un
subconjunto de las direcciones posibles, es lo que se denomina memoria real del ordenador
frente a la memoria posible que representa la memoria mxima que permite direccionar la
anchura del bus de direcciones. La figura 4 ilustra esta situacin para el caso en el que un
procesador de tipo Intel Pentium dispone de una memoria real de 256 megabytes.
El procesador incluye un mecanismo por el que el lmite de la memoria real es un dato conocido.
Antes de realizar cualquier operacin sobre memoria se comprueba que la direccin est contenida
entre ciertos lmites. En caso de que as sea, la operacin se realiza, y en caso contrario el
procesador detiene el acceso y se produce una excepcin en la ejecucin.
En el caso concreto del procesador Intel Pentium, el bus de direcciones de 32 bits limita la memoria
mxima que puede direccionar a 4 gigabytes. Dada la progresin que ha tenido el precio de la
memoria, ordenadores personales que tengan memoria mayor de 4 gigabytes sern pronto una
realidad. Un cambio en el bus de direcciones quiere decir una reorganizacin de la arquitectura
entera del procesador, y este ha sido el caso del Intel Pentium. La siguiente generacin de
procesadores ofrece un bus de direcciones y de datos de 64 bits, por tanto con capacidad para
direccionar un mximo de 16 exabytes (264 bytes).
Almacenamiento de datos
La nica estructura que ofrece la memoria es la organizacin de sus elementos en bytes. Por tanto,
para almacenar los datos que manipula un procesador es imprescindible saber de antemano su
tamao. El tamao de algunos datos bsicos viene definido por la arquitectura del propio
procesador. Por ejemplo, el lenguaje mquina del Intel Pentium contiene instrucciones mquina
para operar enteros de 32 bits. Esto no quiere decir que el procesador no pueda manejar enteros
de otros tamaos, sino que el procesador manipula estos de forma mucho ms rpida y eficiente.
Nmeros de otros tamaos pueden ser manipulados igualmente pero con un coste mayor en
tiempo de ejecucin.
Tipo
Contiene
Tamao
Rango
1 bit
Byte
Entero
8 bits
[-128, 127]
Char
Caracter Unicode
16 bits
[0, 65535]
Short
Entero
16 bits
[-32768, 32767]
Int
Entero
32 bits
[-2147483648, 2147483647]
Long
Entero
64 bits
Float
32 bits
Doubl
64 bits
[-9223372036854775808,
9223372036854775807]
[1.4012985E-45, 3.4028235E+38]
[4.94065645841246544E-324,
1.7976931348623157E+308]
La regla para almacenar datos en memoria es utilizar tantos bytes como sean necesarios a partir
de una direccin de memoria. En adelante, la posicin de memoria a partir de la cual est
almacenado un dato se denominar su direccin de memoria. De forma anloga, cuando se dice
que un dato est en una posicin de memoria lo que significa es que est almacenado en esa
posicin y las siguientes que se precisen.