Memoria RAM: un repaso a su historia

La memoria RAM, o memoria principal, se implementó como una memoria intermedia dado el incremento de velocidad de los microprocesadores y la lentitud de la memoria secundaria (medios de almacenamiento masivo, como los discos duros). Gracias a ella se pueden cargar los procesos del software (datos e instrucciones) y que la CPU pueda acceder a ellos más rápidamente.

Conforme la velocidad de los microprocesadores aumentaba, se generaba otra brecha con la latencia entre la RAM y la CPU que se salvó agregando otro nivel de memoria intermedia más, como es la caché. Pero esto es otra historia… ahora vamos a centrarnos en la de la RAM.

¿Qué es la memoria RAM?

Módulo de memoria RAM

La memoria principal o memoria RAM (Random Access Memory) es una memoria de acceso aleatorio. Al ser volátil, la información almacenada en ella se borra cuando se interrumpe el suministro eléctrico, a diferencia de las memorias tipo ROM o flash, que no pierden información cuando se interrumpe el suministro de energía.

Si te imaginas los niveles de memoria de un computador como una pirámide, la cúspide sería la memoria de menor capacidad y más rápida de todas, y en la base estaría la memoria de mayor capacidad, pero más lenta.

En ese caso, la cúspide serían los registros de la CPU, que apenas pueden almacenar unos bits de información, pero son extremadamente rápidos. Por debajo de los registros estaría la caché, que puede albergar desde unos KB hasta unos MB, pero es algo más lenta que los registros.

Después vendría la RAM, que puede llegar a varios gigas, pero es un poco más lenta que la caché. Y lo siguiente sería los medios de almacenamiento masivo o memoria secundaria, como los discos duros, que pueden almacenar GB o TB, pero que el acceso (escritura y lectura), es aún más lento que en la RAM.

El objetivo de esta memoria ya lo he comentado antes, es servir de memoria intermedia entre los medios secundarios y la CPU. Cuando un proceso de software es ejecutado, necesita enviar una serie de datos e instrucciones a la CPU para que las ejecute. Si la CPU tuviera que acceder a ellos en el disco duro, se perdería una enorme cantidad de tiempo. Por eso se cargan en la RAM (más rápida) para acelerar el acceso.

Para que el software crea que tiene más memoria de la que realmente tiene en la RAM, el sistema operativo crea un espacio de memoria virtual, una memoria que es la suma de la capacidad de la RAM y también una porción del disco duro. Windows lo llama memoria virtual, y en los sistemas tipo UNIX, como Linux, se denomina espacio de intercambio o SWAP.

De esa forma, el planificador puede sacar un proceso de la RAM para liberar espacio y ponerlo en esta otra memoria, dejando hueco en la RAM para otro proceso más prioritario. Es decir, se está en constante intercambio entre la RAM y ese otro espacio según la prioridad de los procesos en cada momento.

Tipos e historia de la memoria RAM

Entre los años 1949 y 1952 se comenzaron a desarrollar y usar algunos de los primeros tipos de RAM con núcleo magnético. En los años 60 llegarían las memorias RAM basadas en chips semiconductores, creadas por Intel, como su chip 3101. Al año siguiente, Intel presentaría la DRAM, un nuevo diseño que usó para el chip 1103 y que supuso un hito en este tipo de memorias.

En 1973 llegaría otra gran innovación que permitió miniaturizar los chips de DRAM y que se transformaría en un estándar. Se trataba de la multiplexación de las direcciones de memoria. Algo que lanzó MOSTEK con su MK4096.

Para finales de los 70, este tipo de chips eran usados por la mayoría de las computadoras de la época, tanto en formato SIPP, como posteriormente en SIMM, y DIMM/SODIMM, como los conocemos actualmente.

Tipos de RAM

En cuanto a los tipos, a lo largo de la historia hubo varios diseños destacados:

  • FPM-RAM: la Fast Page Mode fue un diseño que se usa una especie de burst mode, es decir, cuando el controlador de memoria envía una dirección para su acceso, enviará varias direcciones consecutivas para ahorrar tiempo cuando se desea acceder a datos almacenados en posiciones adyacentes. Esta memoria tenía tiempos de acceso de 70 o 60 ns y fueron muy populares en los Intel 486 o clones, así como en los primeros Pentium y similars.
  • EDO RAM: la Data Output Dynamic fue lanzada en 1994, bajaba los tiempos de acceso a 40 o 30 ns. Una notable mejora con respecto a la FPM. Era similar a la FPM, pero también permitía eliminaba tiempos de espera usando un buffer de salida.
  • BEDO RAM: la Burst Extended EDO fue lanzada como evolución de la anterior. Presentada en 1997, esta memoria usaba generadores internos de direcciones y accedía a más de una posición de memoria en cada ciclo. Eso mejoraba el rendimiento en un 50% respecto a la EDO.
  • SDR SDRAM: salió al mercado en 1993, y era una variante mejorada de la SDRAM que se usó por la mayoría de PCs de la época (Cyrix, AMD, Intel, IDT,…). Sus siglas pertenecen a Single Data Rate, y la mejora estaba en la forma en la que se procesaban los accesos de lectura y escritura, ejecutando una instrucción de lectura y otra de escritura por cada ciclo de reloj.
  • Rambus y XDR: esta memoria usó sus propios módulos denominados RIMM, y que empleaba una memoria tipo SDRAM llamada RDRAM y que tenía un gran rendimiento debido a su ancho de banda. Fue creada por la compañía Rambus y soportada por los chipsets de Intel para PC (Pentium 4), además de ser empleada en otras plataformas, como algunas consolas, como la Nintendo 64 o la PlayStation 2 de Sony. Además, hubo una evolución denominada XDR (eXtreme Data Rate) que competía con la DDR2. Aunque finalmente, debido al menor precio de la DDR y las escasas diferencias de rendimiento, terminó imponiéndose.
  • DDR: un avance de la SDR fue la Double Data Rate que aparecería en 2000. Opera el doble de rápido que la SDR, ya que por cada ciclo de reloj puede realizar dos lecturas y dos escrituras a la vez. Actualmente se ha transformado en el estándar de facto, no solo para el PC, también para servidores, dispositivos móviles, etc. Además, existen varias versiones:
    • DDR2: la segunda versión mantiene el mismo número de operaciones de acceso por cada ciclo de reloj, pero puede funcionar a velocidades más rápidas. Mientras la DDR1 lo hace a 200 Mhz de bus, ésta puede pasar a 533 Mhz.
    • DDR3: la tercera revisión tiene mejoras en cuanto a la velocidad (800 Mhz), la capacidad, y el consumo.
    • DDR4: alcanza velocidades mayores de 1600 Mhz, también se ha mejorado la capacidad soportada, y se ha reducido el voltaje (consumo).
    • DDR5: ya se habla mucho de ella, aunque todavía se está usando la DDR4 en la mayoría de sistemas. Este nuevo paso permitirá también velocidades mayores, mejores capacidades, mejor fiabilidad, y también dos canales por cada módulo DIMM de forma simultánea para aumentar el ancho de banda.
    • GDDR: en las tarjetas gráficas se está empleando la memoria GDDR (Graphics DDR) como VRAM, es decir, como la RAM propia que tiene dedicada a la GPU. No es más que una DDR dedicada a los gráficos, y también tiene versiones: GDDR1, GDDR2, GDDR3, GDDR4, GDDR5, GDDR6, GDDR6X, etc.
    • HBM: son las siglas de High Bandwidth Memory, una memoria de gran ancho de banda desarrollada por SK Hynix y AMD, y ahora también por Samsung. Emplea empaquetado 3D para apilar varios chips aumentando la capacidad y el ancho de banda. También encontrarás versiones (HBM, HBM2, HBM3,…), cada una mejorada. En cuanto a su aplicación, se ha empleado para las tarjetas gráficas como alternativa a GDDR, pero también se está empleando en otras aplicaciones, como para la CPU para HPC.

Las 2 formas de RAM moderna

Las dos formas principales de RAM moderna son:

  1. SRAM (Static Random Access Memory), RAM estática, memoria estática de acceso aleatorio.
  2. DRAM (Dynamic Random Access Memory), RAM dinámica, memoria dinámica de acceso aleatorio.
    • DRAM Asincrónica (Asynchronous Dynamic Random Access Memory), memoria de acceso aleatorio dinámica asincrónica.
      • FPM RAM (Fast Page Mode RAM)
      • EDO RAM (Extended Data Output RAM)
    • SDRAM (Synchronous Dynamic Random-Access Memory, memoria de acceso aleatorio dinámica sincrónica)
      • Rambus:
        • RDRAM (Rambus Dynamic Random Access Memory)
        • XDR DRAM (eXtreme Data Rate Dynamic Random Access Memory)
        • XDR2 DRAM (eXtreme Data Rate two Dynamic Random Access Memory)
      • SDR SDRAM (Single Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos simple)
      • DDR SDRAM (Double Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos doble)
      • DDR2 SDRAM (Double Data Rate type two SDRAM, SDRAM de tasa de datos doble de tipo dos)
      • DDR3 SDRAM (Double Data Rate type three SDRAM, SDRAM de tasa de datos doble de tipo tres)
      • DDR4 SDRAM (Double Data Rate type four SDRAM, SDRAM de tasa de datos doble de tipo cuatro).
      • DDR5 SDRAM (Double Data Rate type five SDRAM, SDRAM de tasa de datos doble de tipo cinco).
      • DDR6 SDRAM (Double Data Rate type six SDRAM, SDRAM de tasa de datos doble de tipo seis).

Isaac

Isaac

Electrónico, apasionado de la tecnología y escritor. Además de impartir cursos de administración de sistemas GNU/Linux como preparación para las certificaciones LPI, e introducción a la supercomputación y la arquitectura de computadoras. Autor de la enciclopedia sobre microprocesadores "El Mundo de Bitman", así como otros manuales y colaborador de otros proyectos de código abierto... Siempre intentando aprender.

Estaremos encantados de escuchar lo que piensas

Deje una respuesta

Todas las ofertas destacadas del Black FridayVer post
+
Guía Hardware
Logo