
La memoria de
acceso aleatorio (en inglés: random-access
memory, cuyo acrónimo es RAM) es la memoria desde donde
el procesador recibe las instrucciones y guarda los
resultados.
Nomenclatura
La frase memoria RAM se utiliza frecuentemente para
referirse a los módulos
de memoria que
se usan en los computadores personales y servidores. En el sentido estricto, los
módulos de memoria contienen un tipo, entre varios de memoria de acceso
aleatorio, ya que lasROM, memorias Flash, caché (SRAM), los registros en procesadores y otras unidades
de procesamiento también poseen la cualidad de presentar retardos de acceso
iguales para cualquier posición. Los módulos de RAM son la presentación comercial
de este tipo de memoria, que se compone de circuitos integrados soldados sobre
un circuito impreso, en otros dispositivos
como las consolas de videojuegos, esa misma memoria va soldada sobre la placa
principal.
Su capacidad se mide en bytes, y
dada su naturaleza siempre binaria, sus múltiplos serán representados en
múltiplos binarios tales comoKilobyte, Megabyte, Gigabyte... y así sucesivamente.
Historia
historia está marcada por la necesidad del
volumen de datos. Originalmente, los datos eran programados por el usuario con
movimientos de interruptores. Se puede decir que el movimiento de datos era bit a bit. Las
necesidades apuntaron a una automatización y se crearon lo que se denomina byte de palabra.
Desde una consola remota, se trasladaban los interruptores asignándoles valores
de letra, que correspondían a una orden de programación al microprocesador.
Así, si se deseaba programar una orden NOT con dos direcciones distintas de
memoria, solo se tenía que activar el grupo de interruptores asociados a la
letra N, a la letra O y a la letra T. Seguidamente, se programaban las
direcciones de memoria sobre las cuales recibirían dicho operador lógico, para
después procesar el resultado. Los interruptores evolucionaron asignándoles una
tabla de direccionamiento de 16x16 bytes, en donde se daban 256 valores de byte
posibles (la actual tabla ASCII). En dicha tabla, se traducen lo que antes costaba
activar 8 interruptores por letra, a una pulsación por letra (de cara al
recurso humano, un ahorro en tiempos. Una sola pulsación, predisponía 1 byte en
RAM... o en otras palabras, cambiaba la posición de 8 interruptores con una
sola pulsación). Se usó el formato de máquina de escribir, para representar
todo el alfabeto latino, necesario para componer palabras en inglés; así como
los símbolos aritméticos y lógicos que permitían la escritura de un programa
directamente en memoria RAM a través de una consola o teclado.
En origen, los programadores no veían en
tiempo real lo que tecleaban, teniendo que imprimir de cuando en cuando el
programa residente en memoria RAM y haciendo uso del papel a la hora de ir
modificando o creando un nuevo programa. Dado que el papel era lo más
accesible, los programas comenzaron a imprimirse en un soporte de celulosa más
resistente, creando lo que se denominó Tarjeta perforada. Así pues, los programas
constaban de una o varias tarjetas perforadas, que se almacenaban en
archivadores de papel con las típicas anillas de sujeción. Dichas
perforaciones, eran leídas por un dispositivo de entrada, que no era muy
diferente al teclado y que constaba de pulsadores que eran activados o
desactivados, dependiendo de si la tarjeta en la posición de byte, contenía una
perforación o no. Cada vez que se encendía la máquina, requería de la carga del
programa que iba a ejecutar.
Dado que los datos en memoria son de 0 o 1,
que esas posiciones físicamente representan el estado de un conmutador, que la
estimulación del conmutador evolucionó a pulsos electromagnéticos, el
almacenamiento de los programas era cuestión de tiempo que su almacenamiento
pasara del papel a un soporte lógico, tal como las cintas de almacenamiento.
Las cintas eran secuenciales, y la composición de la cinta era de un material
magnetoestático; bastaba una corriente Gauss para cambiar las polaridades del
material. Dado que el material magnético puede tener polaridad norte o sur, era
ideal para representar el 0 o el 1. Así, ahora, cargar un programa no era
cuestión de estar atendiendo un lector de tarjetas en el cual se debían de ir
metiendo de forma interminable tarjetas perforadas que apenas podían almacenar
apenas unos bytes. Ahora, los dispositivos electromagnéticos secuenciales
requerían la introducción de la cinta y la pulsación de una tecla para que se
cargara todo el programa de inicio a fin, de forma secuencial. Los accesos
aleatorios no aparecieron hasta la aparición del disco duro y elFloppy. Con estos medios, un cabezal lector se deslizaba por
la superficie en movimiento, si dicho movimiento tenía como consecuencia la
lectura de un valor N-N (norte-norte) no generaba corriente, tampoco si era S-S
(Sur-Sur), por el contrario, si era N-S o S-N sí creaba una corriente, que era
captada por el circuito que mandaba el dato a la memoria RAM.
Toda esta automatización requiso del diseño
de un sistema operativo, o de un área de gestión del recurso para su
automatización. Estos sistemas requerían de un área de memoria reservada, en
origen de 64 Kb (Capacidades de representación de texto en monitor monocromo),
para irse ampliando a 128 Kb (Monocromo con capacidades gráficas), 256 (Texto y
gráficos a dos colores), 512 (Texto y gráficos a 4 colores) y los tradicionales
640 Kb (Texto y gráficos a 16 colores). Esa memoria se denominó memoria base.
Es en esta parte del tiempo, en donde se
puede hablar de un área de trabajo para la mayor parte del software de un
computador. La RAM continua siendo volátil por
lo que posee la capacidad de perder la información una vez que se agote su
fuente de energía.Existe una memoria intermedia entre el procesador y la RAM,
llamada caché, pero ésta sólo es una copia (de
acceso rápido) de la memoria principal(típicamente discos
duros) almacenada en los módulos de RAM.
La denominación “de Acceso aleatorio” surgió para
diferenciarlas de las memoria de acceso secuencial,
debido a que en los comienzos de la computación, las memorias principales (o
primarias) de las computadoras eran siempre de tipo RAM y las memorias
secundarias (o masivas) eran de acceso secuencial (unidades de cinta otarjetas perforadas).
Es frecuente pues que se hable de memoria RAM para hacer referencia a la
memoria principal de una computadora, pero actualmente la denominación no es
precisa.
Uno de los primeros tipos de memoria RAM fue
la memoria de núcleo magnético, desarrollada entre 1949
y 1952 y usada en muchos computadores hasta el desarrollo de circuitos
integrados a finales de los años 60 y principios de los 70. Antes que eso, las
computadoras usaban relés y líneas de retardo de
varios tipos construidas contubos de vacío para
implementar las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras
memorias RAM basadas en semiconductores de silicio por
parte de Intel con el
integrado 3101 de 64 bits de memoria y para el siguiente año se presentó una
memoria DRAM de 1
Kibibyte, referencia 1103 que se constituyó en un hito, ya que fue la primera
en ser comercializada con éxito, lo que significó el principio del fin para las
memorias de núcleo magnético. En comparación con los integrados de memoria DRAM
actuales, la 1103 es primitiva en varios aspectos, pero tenía un desempeño
mayor que la memoria de núcleos.
En 1973 se presentó una innovación que
permitió otra miniaturización y se convirtió en estándar para las memorias
DRAM: la multiplexación en tiempo de la direcciones de memoria. MOSTEK lanzó la
referencia MK4096 de 4 Kb en un empaque de 16 pines,2 mientras
sus competidores las fabricaban en el empaque DIP de 22 pines.
El esquema de direccionamiento3 se
convirtió en un estándar de facto debido a la gran popularidad que logró esta
referencia de DRAM. Para finales de los 70 los integrados eran usados en la
mayoría de computadores nuevos, se soldaban directamente a las placas base o se
instalaban en zócalos, de manera que ocupaban un área extensa de circuito
impreso. Con el tiempo se hizo obvio que la instalación de RAM sobre el impreso
principal, impedía la miniaturización , entonces se idearon los primeros
módulos de memoria como el SIPP, aprovechando las ventajas de la construcciónmodular. El formato SIMM fue una
mejora al anterior, eliminando los pines metálicos y dejando unas áreas de
cobre en uno de los bordes del impreso, muy similares a los de las tarjetas de expansión,
de hecho los módulos SIPP y los primeros SIMM tienen la misma distribución de
pines.
A finales de los 80 el aumento en la
velocidad de los procesadores y el aumento en el ancho de banda requerido,
dejaron rezagadas a las memorias DRAM con el esquema original MOSTEK, de manera
que se realizaron una serie de mejoras en el direccionamiento como las
siguientes:
FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst
Mode" usado en procesadores como el Intel 486,4 se
implantó un modo direccionamiento en el que el controlador de memoria envía una
sola dirección y recibe a cambio esa y varias consecutivas sin necesidad de
generar todas las direcciones. Esto supone un ahorro de tiempos ya que ciertas
operaciones son repetitivas cuando se desea acceder a muchas posiciones
consecutivas. Funciona como si deseáramos visitar todas las casas en una calle:
después de la primera vez no seria necesario decir el número de la calle
únicamente seguir la misma. Se fabricaban con tiempos de acceso de 70 ó 60
ns y fueron muy populares en sistemas basados en el 486 y los primeros Pentium.
§
EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de
40 o 30 ns suponía una mejora sobre su antecesora la FPM. La EDO, también es
capaz de enviar direcciones contiguas pero direcciona la columna que va
utilizar mientras que se lee la información de la columna anterior, dando como
resultado una eliminación de estados de espera, manteniendo activo el búffer de salida
hasta que comienza el próximo ciclo de lectura.
§
BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora
de la SDRAM, fue presentada en 1997. Era un tipo de memoria que usaba
generadores internos de direcciones y accedía a mas de una posición de memoria
en cada ciclo de reloj, de manera que lograba un desempeño un 50% mejor que la
EDO. Nunca salió al mercado, dado que Intel y otros
fabricantes se decidieron por esquemas de memoria sincrónicos que si bien
tenían mucho del direccionamiento MOSTEK, agregan funcionalidades distintas
como señales de reloj.
Arquitectura
base
En origen, la memoria RAM se componía de
hilos de cobre que atravesaban toroides de ferrita, la corriente polariza la
ferrita. Mientras esta queda polarizada, el sistema puede invocar al procesador
accesos a partes del proceso que antes (en un estado de reposo) no es
posible acceder. En sus orígenes, la invocación a la RAM, producía la
activación de contactores, ejecutando instrucciones del tipo AND, OR y NOT. La
programación de estos elementos, consistía en la predisposición de los contactores
para que, en una línea de tiempo, adquiriesen las posiciones adecuadas para
crear un flujo con un resultado concreto. La ejecución de un programa,
provocaba un ruido estruendoso en la sala en la cual se ejecutaba dicho
programa, por ello el área central de proceso estaba separada del área de
control por mamparas insonorizadas.
Con las nuevas tecnologías, las posiciones de
la ferrita se ha ido sustituyendo por, válvulas de vacío, transistores y en las
últimas generaciones, por un material sólido dieléctrico. Dicho estado estado sólido dieléctrico tipo DRAM permite que
se pueda tanto leer como escribir información.
Uso por el sistema
Se utiliza como memoria de trabajo para el
sistema operativo, los programas y la mayoría del software. Es allí donde se
cargan todas las instrucciones que ejecutan el procesador y otras unidades de
cómputo. Se denominan "de
acceso aleatorio" porque
se puede leer o escribir en una posición de memoria con un tiempo de espera
igual para cualquier posición, no siendo necesario seguir un orden para acceder
a la información de la manera más rápida posible.
Módulos de la memoria RAM
Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados de memoria DRAM por una o
ambas caras. La implementación DRAM se basa en
una topología deCircuito eléctrico que permite alcanzar densidades altas
de memoria por cantidad de transistores, logrando integrados de decenas o
cientos de Megabits. Además de DRAM, los módulos poseen un integrado que
permiten la identificación de los mismos ante el computador por medio del
protocolo de comunicación SPD.
La conexión con los demás componentes se
realiza por medio de un área de pines en uno de los filos del circuito impreso,
que permiten que el modulo al ser instalado en un zócalo apropiado de la placa
base, tenga buen contacto eléctrico con los controladores de memoria y las
fuentes de alimentación. Los primeros módulos comerciales de memoria eran SIPP de formato
propietario, es decir no había un estándar entre distintas marcas. Otros
módulos propietarios bastante conocidos fueron los RIMM, ideados por la empresa RAMBUS.
La necesidad de hacer intercambiable los
módulos y de utilizar integrados de distintos fabricantes condujo al
establecimiento de estándares de la industria como los JEDEC.
§ Módulos SIMM: Formato usado en computadores antiguos. Tenían un bus de
datos de 16 o 32 bits
§ Módulos DIMM: Usado en computadores de escritorio. Se caracterizan por
tener un bus de datos de 64 bits.
§ Módulos SO-DIMM: Usado en computadores portátiles. Formato
miniaturizado de DIMM.
Relación con el resto del sistema
Dentro de la jerarquía de memoria la RAM se encuentra en un nivel
después de los registros del procesador y de las cachés. Es una memoria
relativamente rápida y de una capacidad media: sobre el año 2010), era fácil encontrar memorias con velocidades de más de
1 Ghz, y capacidades de hasta 8 GB por módulo, llegando a verse memorias
pasando la barrera de los 3 Ghz por esa misma fecha mediante prácticas de overclock extremo.
La memoria RAM contenida en los módulos, se conecta a un controlador de memoria que se encarga de gestionar las
señales entrantes y salientes de los integrados DRAM. Algunas señales son las
mismas que se utilizan para utilizar cualquier memoria: Direcciones de las
posiciones, datos almacenados y señales de control.
El controlador de memoria debe ser diseñado
basándose en una tecnología de memoria, por lo general
soporta solo una, pero existen excepciones de sistemas cuyos controladores
soportan dos tecnologías (por ejemplo SDR y DDR o DDR1 y DDR2), esto sucede en
las épocas transitorias de una nueva tecnología de RAM. Los controladores de
memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o "Puente
Norte" de la placa base;
o en su defecto, dentro del mismo procesador (en el caso de los procesadores
desde AMD Athlon 64 e Intel Core i7) y posteriores; y son los
encargados de manejar la mayoría de información que entra y sale del
procesador.
Las señales básicas en el módulo están
divididas en dos buses y un conjunto misceláneo de líneas de control y
alimentación. Entre todas forman el bus
de memoria:
§ Bus de datos: Son las
líneas que llevan información entre los integrados y el controlador. Por lo
general están agrupados en octetos siendo de 8,16,32 y 64 bits, cantidad que
debe igualar el ancho del bus de datos del procesador. En el pasado, algunos
formatos de modulo, no tenían un ancho de bus igual al del procesador.En ese
caso había que montar módulos en pares o en situaciones extremas, de a 4
módulos, para completar lo que se denominaba banco
de memoria, de otro modo el sistema no funciona. Esa es la principal razón
de haber aumentar el número de pines en los módulos, igualando el ancho de bus
de procesadores como el Pentium de 64
bits a principios de los 90.
§ Bus de direcciones: Es un bus
en el cual se colocan las direcciones de memoria a las que se requiere acceder.
No es igual al bus de direcciones del resto del sistema, ya que está
multiplexado de manera que la dirección se envía en dos etapas.Para ello el
controlador realiza temporizaciones y usa las líneas de control. En cada
estándar de módulo se
establece un tamaño máximo en bits de este bus, estableciendo un límite teórico
de la capacidad máxima por módulo.
§ Señales misceláneas:
Entre las que están las de la alimentación (Vdd, Vss) que se encargan de
entregar potencia a los integrados. Están las líneas de comunicación para el
integrado de presencia que da información clave acerca del
módulo. También están las líneas de control entre las que se encuentran las
llamadas RAS (row address strobe) y CAS (column address strobe) que controlan
el bus de direcciones y las señales de reloj en las memorias sincrónicas SDRAM.
Entre las características sobresalientes del
controlador de memoria, está la capacidad de manejar la tecnología de canal
doble (Dual Channel), tres canales, o incluso
cuatro para los procesadores venideros; donde el controlador maneja bancos de
memoria de 128 bits. Aunque el ancho del bus de datos del procesador sigue
siendo de 64 bits, el controlador de memoria puede entregar los datos de manera
intercalada, optando por uno u otro canal, reduciendo las latencias vistas por
el procesador. La mejora en el desempeño es variable y depende de la
configuración y uso del equipo. Esta característica ha promovido la modificación
de los controladores de memoria, resultando en la aparición de nuevos chipsets
(la serie 865 y 875 de Intel) o de nuevos zócalos de procesador en los AMD (el
939 con canal doble , reemplazo el 754 de canal sencillo). Los equipos de gama
media y alta por lo general se fabrican basados en chipsets o zócalos que soportan doble canal o
superior.
Tecnologías de memoria
La tecnología de memoria actual usa una señal
de sincronización para realizar las funciones de lectura-escritura de manera
que siempre esta sincronizada con un reloj del bus de memoria, a
diferencia de las antiguas memorias FPM y EDO que eran asíncronas. Hace más de
una década toda la industria se decantó por las tecnologías síncronas, ya que
permiten construir integrados que funcionen a una frecuencia superior a 66 MHz
(A día de hoy, se han superado con creces los 1600 Mhz).
SDR SDRAM
Memoria síncrona, con tiempos de acceso de
entre 25 y 10 ns y que se presentan en módulos DIMM de 168
contactos. Fue utilizada en los Pentium II y en los Pentium III , así como en los AMD K6, AMD Athlon K7 y Duron. Está muy extendida la
creencia de que se llama SDRAM a secas, y que la denominación SDR
SDRAM es para diferenciarla de la memoria DDR, pero no es así, simplemente se
extendió muy rápido la denominación incorrecta. El nombre correcto es SDR SDRAM ya que ambas (tanto la SDR como la
DDR) son memorias síncronas dinámicas. Los tipos disponibles son:
§ PC100: SDR SDRAM, funciona a un máx de 100 MHz.
§ PC133: SDR SDRAM, funciona a un máx de 133 MHz.
DDR SDRAM
Memoria síncrona, envía los datos dos veces
por cada ciclo de reloj. De este modo trabaja al doble de velocidad del bus del
sistema, sin necesidad de aumentar la frecuencia de reloj. Se presenta en
módulos DIMM de 184
contactos en el caso de ordenador de escritorio y en módulos de 144 contactos
para los ordenadores portátiles. Los tipos disponibles son:
§ PC2100 o DDR 266: funciona a un máx de 133 MHz.
§ PC2700 o DDR 333: funciona a un máx de 166 MHz.
§ PC3200 o DDR 400: funciona a un máx de 200 MHz.
DDR2 SDRAM
SDRAM DDR2
Las memorias DDR 2 son una mejora de las
memorias DDR (Double Data
Rate), que permiten que los búferes de entrada/salida trabajen al doble de
la frecuencia del núcleo, permitiendo que durante cada ciclo de reloj se
realicen cuatro transferencias. Se presentan en módulos DIMM de 240
contactos. Los tipos disponibles son:
§ PC2-4200 o DDR2-533: funciona a un máx de 533 MHz.
§ PC2-5300 o DDR2-667: funciona a un máx de 667 MHz.
§ PC2-6400 o DDR2-800: funciona a un máx de 800 MHz.
§ PC2-8600 o DDR2-1066: funciona a un máx de 1066 MHz.
§ PC2-9000 o DDR2-1200: funciona a un máx de 1200 MHz
DDR3 SDRAM
Las memorias DDR 3 son una mejora de las
memorias DDR 2, proporcionan significantes mejoras en el rendimiento en niveles
de bajo voltaje, lo que lleva consigo una disminución del gasto global de
consumo. Los módulos DIMM DDR 3
tienen 240 pines, el mismo número que DDR 2; sin embargo, los DIMMs son
físicamente incompatibles, debido a una ubicación diferente de la muesca. Los
tipos disponibles son:
§ PC3-8600 o DDR3-1066: funciona a un máx de 1066 MHz.
§ PC3-10600 o DDR3-1333: funciona a un máx de 1333 MHz.
§ PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.
RDRAM
(Rambus DRAM)
Memoria de gama alta basada en un protocolo
propietario creado por la empresa Rambus, lo cual obliga a sus compradores a pagar regalías en
concepto de uso. Esto ha hecho que el mercado se decante por la tecnología DDR,
libre de patentes, excepto algunos servidores de grandes prestaciones (Cray) y
la consola PlayStation 3. La RDRAM se presenta en
módulos RIMM de 184
contactos.
Detección y corrección de errores
Existen dos clases de errores en los sistemas
de memoria, las fallas (Hard
fails) que son daños en el
hardware y los errores (soft
errors)provocados por causas fortuitas. Los primeros son relativamente
fáciles de detectar (en algunas condiciones el diagnóstico es equivocado), los
segundos al ser resultado de eventos aleatorios, son más difíciles de hallar.
En la actualidad la confiabilidad de las memorias RAM frente a los errores, es
suficientemente alta como para no realizar verificación sobre los datos
almacenados, por lo menos para aplicaciones de oficina y caseras. En los usos
más críticos, se aplican técnicas de corrección y detección de errores basadas
en diferentes estrategias:
§ La técnica del bit de paridad consiste en guardar un bit adicional
por cada byte de datos, y en la lectura se comprueba si el número de unos es
par (paridad par) o impar (paridad impar), detectándose
así el error.
§ Una técnica mejor es la que usa ECC, que permite
detectar errores de 1 a 4 bits y corregir errores que afecten a un sólo bit.
Esta técnica se usa sólo en sistemas que requieren alta fiabilidad.
Por lo general los sistemas con cualquier
tipo de protección contra errores tiene un costo más alto, y sufren de pequeñas
penalizaciones en desempeño, con respecto a los sistemas sin protección. Para
tener un sistema con ECC o paridad, el chipset y las
memorias deben tener soporte para esas tecnologías. La mayoría de placas base
no poseen dicho soporte.
Para los fallos de memoria se pueden utilizar
herramientas de software especializadas que realizan pruebas integrales sobre
los módulos de memoria RAM. Entre estos programas uno de los más conocidos es
la aplicación Memtest86+ que detecta fallos de memoria.
Memoria RAM registrada
Es un tipo de módulo usado frecuentemente en
servidores y equipos especiales. Poseen circuitos integrados que se encargan de repetir las señales
de control y direcciones. Las señales de reloj son reconstruidas con ayuda del PLL que está
ubicado en el módulo mismo. Las señales de datos pasan directamente del bus de
memoria a los CI de memoria DRAM.
Estas características permiten conectar
múltiples módulos de memoria (más
de 4) de alta capacidad sin
que haya perturbaciones en las señales del controlador de memoria, haciendo
posible sistemas con gran cantidad de memoria principal (8 a 16 GiB). Con
memorias no registradas, no es posible, debido a los problemas surgen de
sobrecarga eléctrica a las señales enviadas por el controlador, fenómeno que no
sucede con las registradas por estar de algún modo aisladas.
Entre las desventajas de estos módulos están
el hecho de que se agrega un ciclo de retardo para cada solicitud de acceso a
una posición no consecutiva y por supuesto el precio, que suele ser mucho más
alto que el de las memorias de PC. Este tipo de módulos es incompatible con los
controladores de memoria que no soportan el modo registrado, a pesar de que se
pueden instalar físicamente en el zócalo. Se pueden reconocer visualmente
porque tienen un integrado mediano, cerca del centro geométrico del circuito
impreso, además de que estos módulos suelen ser algo más altos
0 comentarios:
Publicar un comentario
*Respeta la opinión de los demás, cualquier comentario que contenga insultos o burlas será eliminado.
*No des publicidad, ni nombres confusos, escribe claro y que se entienda tu punto.
*Si no te gusta la publicación comenta para mejorar, pero no ofendas a nadie.
Si no cumples con lo dicho anteriormente tus comentarios serán eliminados.