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, estos dispositivos contienen un tipo entre varios de memoria de acceso aleatorio , ya que 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.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 (cintas o tarjetas 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.
jueves, 12 de marzo de 2009
*Memoria RAM *
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, estos dispositivos contienen un tipo entre varios de memoria de acceso aleatorio , ya que 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.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 (cintas o tarjetas 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.
*Historia*
finales de los 70. Los integrados de memoria DRAM
estan agrupados arriba a derecha e izquierda
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 (cintas o tarjetas 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úcle 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 reles y líneas de retardo de varios tipos construidas con tubos 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 bites de memoria y para el siguiente año se presento una memoria DRAM de 1 Kilobite, referencia 1103 que se constituyo en un hito, ya que fue la primera en ser comercializada con éxito, lo que significo el principio del fin para las memorias de núcleo magnético.
Los integrados de memoria DRAM estan agrupados arriba a derecha e izquierda
En comparación con los integrados de memoria DRAM actuales, la 1103 es primitiva en varios aspectos, pero tenia 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 4Kb en un empaque de 16 pines, mientras sus competidores las fabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento se convirtió en un estándar de facto debido a al 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.
Módulo de memoria tipo SIPP instalados directamente
sobre la placa base
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ón modular. 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.
*Mejoras en el Diccionamiento*
- FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486,se implanto 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 primer vez no seria necesario decir el numero de la calle, unicamente 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 30ns suponia 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 buffer 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 salio 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.
fueronutilizados con integrados tipo EDO-RAM
*Módulos de memoria RAM*
- 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.
- Módulos SIMM Un formato usado en computadores antiguos. tenían un bus de datos de 16 o 32 bits.
*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 caches. Es una memoria relativamente rápida y de una capacidad media: en la actualidad (año 2008), es fácil encontrar memorias con velocidades de 800 Mhz y capacidades de 1 GB. 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 EDO-RAM y SDR-SDRAM o SDR y DDR), esto sucede en las épocas de entrada de un nuevo tipo de RAM. Los controladores de memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o dentro del mismo procesador (en el caso de los procesadores AMD Athlon e Intel Core i7) 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 lineas de control y alimentación. Entre todas forman el bus de memoria: - Bus de datos: Son las lineas 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 numero 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 esta multiplexado de manera que la dirección se envía en dos etapas.Para ello el controlador realiza temporizaciones y usa las lineas de control. En cada estándar de módulo se establece un tamaño máximo en bits de este bus, estableciendo un limite teórico de la capacidad máxima por módulo.
- Señales misceláneas: Entre las que están las de la alimentacion (Vdd, Vss) que se encargan de entregar potencia a los integrados. Están las lineas de comunicación para el integrado de presencia que da información clave acerca del módulo. También están las lineas de control entre las que se encuentran las llamadas RAS y CAS 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, esta la capacidad de manejar la tecnología de canal doble o Dual Channel donde el controlador puede manejar dos bancos de memoria aumentando el ancho de banda del bus de memoria (en teoría doblándolo). 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 de 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 chipset (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 chiset o zócalos que soportan doble 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 diagnostico es equivocado), los segundos al ser resultado de eventos aleatorios, son mas 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 mas 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 mas 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 debe tener soportar esas tecnologías. La mayoría de placas base no poseen 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 mas conocidos es la aplicación Memtest86+ que detecta fallos de memoria.
*Memoria RAM registrada*
Estas características permiten conectar múltiples (más de 4 módulos) módulos de memorias 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 GB). 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 mas alto que el de las memorias de PC. Para usar este tipo de memoria 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 que estos módulos suelen ser algo mas altos.