Memoria Ram
la memoria de acceso aleatorio (en inglés: random-access memory),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. Durante el encendido del computador, la rutina POST verifica que los módulos de memoria RAM estén
conectados de manera correcta. En el caso que no existan o no se detecten los
módulos, la mayoría de tarjetas madres emiten una serie de pitidos que indican
la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria
RAM indicando fallos mayores en la misma.
Nomenclatura
La
expresión memoria RAM se utiliza frecuentemente para
referirse a los módulos de
memoria utilizados en los
computadores personales y servidores. En el sentido
estricto, esta memoria es solo una variedad de la memoria de acceso aleatorio:
las ROM, 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 independiente,
en otros dispositivos como las consolas de videojuegos, la RAM va soldada
directamente sobre la placa principal.
Historia
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. Esa memoria requería que cada bit estuviera
almacenado en un toroide de material ferromágnetico de algunos
milímetros de diámetro, lo que resultaba en dispositivos con una capacidad de
memoria muy pequeña. Antes que eso, las computadoras usaban relés y líneas de retardo de varios tipos construidas 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 Kilobyte, 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,1 mientras sus competidores las
fabricaban en el empaque DIP de 22 pines. El esquema de
direccionamiento2 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 lastarjetas 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,3 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 más 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.
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.
SDR SDRAM
Artículo
principal: 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 esSDR
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
Artículo
principal: 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 266 MHz.
§ PC2700 o DDR 333:
funciona a un máx de 333 MHz.
§ PC3200 o DDR 400:
funciona a un máx de 400 MHz.
DDR2 SDRAM
tículo
principal: 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
Artículo
principal: DDR3.
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-8500 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.
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 de Circuito eléctrico que permite alcanzar densidades altas
de memoria por cantidad de transistores, logrando integrados de cientos o miles
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 en cuanto a velocidad.
Los módulos de memoria se conectan eléctricamente a un controlador de memoria que gestiona las señales entrantes y
salientes de los integrados DRAM. Las señales son de tres tipos:
direccionamiento, datos y señales de control. En el módulo de memoria esas
señales 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 que conecta la RAM
con su controlador:
§ 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 fue la principal razón
para aumentar el número de pines en los módulos, igualando al ancho de bus de
procesadores como el Pentium a 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 sirve para identificar cada
módulo. 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, por último están las señales de reloj en las memorias sincrónicas
SDRAM.
Algunos controladores
de memoria en sistemas como PC y servidores se encuentran embebidos en el
llamado "North
Bridge" o "Puente Norte" de la placa base. Otros sistemas
incluyen el controlador dentro del mismo procesador (en el caso de los
procesadores desde AMD Athlon 64 e Intel Core i7 y posteriores). En la mayoría de los
casos el tipo de memoria que puede manejar el sistema está limitado por los
sockets para RAM instalados en la placa base, a pesar que los controladores de
memoria en muchos casos son capaces de conectarse con tecnologías de memoria
distintas.
Una
característica especial de algunos controladores de memoria, es el manejo de la
tecnología canal doble (Dual Channel), donde el controlador maneja bancos de memoria
de 128 bits, siendo capaz de 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, como en el caso del zócalo (o socket, en inglés) 1366 de Intel, que
usaba un triple canal de memoria, o su nuevo LGA 2011 que usa cuádruple canal.
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 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, posee 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 se conectan de la misma forma que en los
módulos no registrados: de manera directa entre los integrados de memoria y el
controlador. Los sistemas con memoria registrada permiten conectar más módulos
de memoria y de una capacidad más alta, sin que haya perturbaciones en las
señales del controlador de memoria, permitiendo el manejo de grandes cantidades
de memoria RAM. Entre las desventajas de los sistemas de memoria registrada
están el hecho de que se agrega un ciclo de retardo para cada solicitud de
acceso a una posición no consecutiva y un precio más alto que los módulos no
registrados. La memoria registrada 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. Durante el año 2006 varias marcas
lanzaron al mercado sistemas con memoria FB-DIMM que en su momento se pensaron como los
sucesores de la memoria registrada, pero se abandono esa tecnología en 2007
dado que ofrecía pocas ventajas sobre el diseño tradicional de memoria
registrada y los nuevos modelos con memoria DDR3.