Tipos de memoria RAM: todo lo que necesitas saber sobre la memoria principal

La memoria RAM de un ordenador es uno de los elementos más importantes y más codiciados, ya que aporta velocidad a tu sistema. Además, existen muchos tipos de memoria RAM, y cada uno tiene unas características determinadas que el usuario debe vigilar para saber si el módulo es compatible o no con su equipo o si aportará más o menos rendimiento. Muchas de esas características técnicas son totalmente desconocidas para la mayor parte de usuarios.

Por eso, en este artículo te muestro todo lo que necesitas saber sobre la memoria RAM, para que la próxima vez que compres un módulo para ampliar la memoria de tu equipo no tenga secretos para ti. Si quieres convertirte en todo un “experto” en memorias de tipo RAM, sigue leyendo…

Un poco de historia

IBM tarjeta perforada

Antecedentes

Las computadoras necesitan una memoria para almacenar los programas (datos e instrucciones). En un inicio, los ordenadores de los años 30 usaban tarjetas perforadas. Eran unas láminas de cartulina u otro material con unos orificios hechos estratégicamente para que el ordenador pudiera interpretar esos orificios como un código binario. De esa forma se cargaban los programas. Fue una mujer la que ideó estas tarjetas perforadas, concretamente Ada Lovelace (Ada Byron). Ada fue considerada como la primera programadora de la historia, por sus trabajos para hacer útil la famosa máquina analítica de Charles Babbage.

Poco a poco las máquinas fueron evolucionando. Con la llegada del ENIAC, en 1946, usaba válvulas de vacío para construir memorias con biestables. Estas válvulas generaban muchos problemas por su poca fiabilidad, su arquitectura era similar a las bombillas y se fundían como éstas, por lo que había que sustituirlas con frecuencia. Además, se calentaban y consumían grandes cantidades de energía.

Se necesitaba algo diferente en la electrónica si se quería progresar. En 1953 se comienzan a usarse las memorias de ferrita. Y no fue hasta 1968 cuando IBM diseñó la primera memoria basada en semiconductores. Esta memoria de estado sólido resolvía los problemas de las anteriores, aportando mayor fiabilidad, durabilidad y con mayor rapidez. Tenía una capacidad de 64 bits, pero lo más interesante es que los primeros chips de memoria habían llegado para quedarse.

Durante buena parte de la historia se usaron distintos formatos de memoria, como las cintas magnéticas, disquetes, medios ópticos (CD, DVD,…), los primeros discos duros magnéticos (HDD), memorias semiconductoras (SSD, RAM, registros, buffer/cache, ROM,…), etc.

Llegados a este punto, hay que decir que en el pasado solo se usaba un nivel de memoria. Una memoria central que era donde se encontraba el programa. Pero con forme evolucionaba la computación se fueron incluyendo también otras memorias programables de varios tipos hasta la aparición de memorias rápidas como la RAM.

La llegada de la RAM

Cuando llegó la RAM, las computadoras comenzaron a tener dos niveles de memoria. Por un lado estaba una memoria de mayor capacidad, menor velocidad y más barata, como memoria secundaria. Esta memoria secundaria es el disco duro, que actualmente ha ido evolucionando desde los discos duros magnéticos (HDD), hasta los actuales discos duros de estado sólido basados en semiconductores o SSD.

Mientras que la memoria principal o primaria es la que denominamos como RAM (Random Access Memory o Memoria de Acceso Aleatorio). Esta memoria es varias veces más rápida que la memoria secundaria, pero su capacidad es bastante inferior, ya que su precio es más elevado y no era práctico tener capacidades muy grandes.

Complementando la memoria secundaria de alta capacidad para almacenar nuestros programas y datos, con una memoria más rápida intermedia entre la secundaria y la unidad de procesamiento, se puede aportar una velocidad extra sin renunciar a una alta capacidad. En la memoria RAM se irán cargando las instrucciones y datos de los procesos o programas en ejecución para que la CPU pueda acceder a ellos sin realizar operaciones de acceso sobre la memoria secundaria, que resultaría mucho más lento.

Además, la RAM es un tipo de memoria volátil que pierde su contenido si se retira el suministro eléctrico. No sería práctico tener solo este tipo de memoria, ya que cada vez que se apague el equipo se perdería todo. Por eso, las memorias secundarias siguen siendo tan necesarias. Ellas son memorias permanentes que no necesitan tener suministro eléctrico constante para almacenar los valores.

Si te gusta la historia, la línea temporal de la RAM resumida es:

  • Una de las primeras memorias RAM fue la de núcleo magnético de 1949. Cada bit se almacenaba en un toroide de material ferromagnético. Cada pieza tenía unos milímetros de diámetro, por tanto, ocupaba bastante espacio y limitaba la capacidad. Pero sin duda, era mejor que los releś y líneas de retardo para este tipo de memorias de acceso aleatorio.
  • En 1969 vendrían las primeras RAMs creadas con semiconductores de Intel. Con chips como el 3101 de 64 bits. Al siguiente año se presentó la memoria tipo DRAM de 1 KB (chip 1103), asentando las bases de las actuales memorias de acceso aleatorio. De hecho, la DRAM se transformaría en el estándar, así que el invento de IBM se había impuesto en la industria.
  • Años más tarde seguirían miniaturizándose, con chips cada vez con mayor capacidad y rendimiento, hasta que comenzaron a desecharse los SIPP y DIPs para comenzar a usar los actuales módulos SIMM (Single In-line Memory Module), es decir, módulos con todos los contactos en un solo lado. Eso permitía cambiar fácilmente la memoria RAM y agregarlos como si fuesen tarjetas de expansión.
  • A finales de los años 80, la tecnología de los procesadores hizo que fuesen mucho más rápidos que las RAMs, lo que generaba importantes cuellos de botella. Se necesitaba aumentar el ancho de banda y velocidad de acceso de los rezagados chips de memoria.
  • Numerosas tecnologías comenzaron a llegar para minimizar ese cuello de botella, como la tecnología FPM RAM (Fast Page Mode RAM), inspirada por el Burst Mode de los Intel 80486. Un modo de direccionamiento que mejoraba el acceso, con tiempos de acceso de 70 o 60 ns.
  • EDO RAM, o Extended Data Output, vendría en 1994 con tiempos de acceso de 40 o 30 ns. Una mejora basada en ésta fue la BEDO, Burst EDO, logrando una mejora del 50% con respecto a la EDO.
  • Las memorias más rápidas eran las de los microprocesadores, como los registros basados en celdas SRAM (Static RAM). Pero son extremadamente caras para conseguir grandes capacidades con ellas, por lo que no eran prácticas a pesar del tremendo rendimiento que tienen. Por eso eran relegadas a pequeños buffers o registros de la CPU muy pequeños. Por eso, las EDO, BEDO, FPM, seguían siendo de tipo DRAM.
  • En 1992, Samsung crea el primer chip comercial SDRAM (Synchronous Dynamic RAM), el actual estándar.
  • A partir de aquí, todas las RAMs se basaban en celdas SDRAM de memoria. Una de las primeras en aparecer fue la Rambus de Intel, que pasó sin pena ni gloria frente a las más baratas SDR RAM (Single Data Rate RAM).
  • Para mejorar las prestaciones de las anteriores y no elevar el precio como en el caso de Rambus, llegaría la DDR (Dual Data Rate). La DDR permitía transferir por dos canales a la vez en cada ciclo de reloj, doblando el rendimiento de la SDR.
  • Y a partir de la DDR, ya sabes cómo ha seguido la historia con la aparición de la DDR2, DDR3, DDR4, DDR5,…

…pero no era suficiente

La computación demanda cada vez más y más rendimiento. Los HDDs han evolucionado a los SSDs mucho más rápidos. Y los microprocesadores comenzaron a incluir sus propias memorias rápidas entre las unidades funcionales y la RAM. De esa forma, pueden cargarlas con datos e instrucciones para un acceso mucho más inmediato en vez de tener que ir directamente a la RAM cada vez que necesiten algo.

Estas memorias a las que me refiero son la memoria cache, una memoria intermedia que actúa como buffer entre la CPU y la RAM. Hay que decir que en el pasado se podían comprar módulos cache como los RAM, y que podías agregar si querías a tu equipo. Algo así como los antiguos coprocesadores o FPUs, que no se integraban dentro del propio chip de la CPU. Pero con el tiempo, se fueron integrando en el propio package del procesador (véase por ejemplo el Intel Pentium Pro) y finalmente formar parte del mismo CI como en los actuales microprocesadores.

Estas memorias cache han ido creciendo en niveles, como los actuales L1 (unificado o separado para instrucciones / datos), la L2 unificada, la L3, etc. Y no solo eso, fuera del microprocesador también se trabaja para acelerar de algún modo el acceso a datos e instrucciones, como son los módulos Intel Octante y otros tipos de memorias intermedias, pero esto es otra historia…

DDR SDRAM

DIMM vs SO-DIMM

Habiéndote puesto en antecedentes, ya sabes el camino tomado hasta la llegada de la DDR SDRAM actual. Ahora, vamos a ver los tipos que existen y sus características. Hay que decir, que frente a los Intel Pentium 4 que usaban su RAMBUS principalmente, los AMD Athlon fueron los primeros en dar soporte a la DDR, más barata. Frente a las ventas y rendimiento de los equipos basados en AMD, Intel se vio forzado a adoptar también la DDR…

Tipos

Según la versión de DDR

Las versiones de DDR permiten rendimientos dispares:

  • DDR: PC-xxxx indica el ancho de banda del módulo, si por ejemplo es de PC-1600, eso resulta de multiplicar 100.000.000 hz (100 Mhz de bus) x 2 (al ser Dual Data Rate) x 8 bytes = 1600 MB/s o 1.6 GB/s de transferencia.
    • DDR-200 (PC-1600): con bus de 100 Mhz y E/S de 200 Mhz. Su nombre proviene de sus 1600 MB/s o 1.6 GB/s de transferencia.
    • DDR-266 (PC-2100): con bus de 133 Mhz y E/S de 266 Mhz. Con capacidad de transferencia de 2.1 GB/s.
    • DDR-333 (PC-2700): con bus de 166 Mhz y E/S de 333 Mhz. Con una capacidad de transferencia de 2.7 GB/s.
    • DDR-400 (PC-3200): con bus de 200 Mhz y E/S de 400 Mhz. Con un total de 3.2 GB/s de transferencia máxima.
  • DDR2: funciona con 4 bits por ciclo, es decir, 2 de ida y 2 de vuelta. Eso mejora el potencial de la DDR1 anterior.
    • Desde DDR2-333 (PC2-2600): trabaja con 100 Mhz de bus base, con un E/S de 166 Mhz, lo que le da una capacidad de transferencia de 2.6 GB/s. Tiempo de acceso de 10 ns.
    • Hasta DDR2-1200 (PC2-9600): el bus se eleva a 300 Mhz, 600 Mhz para E/S y transferencia de 9.6 GB/s. Tiempo de acceso de 3,3ns.
  • DDR3: permite mayor velocidad de transferencia y velocidad de trabajo frente al DDR2, aunque la latencia es mayor.
    • Desde DDR3-1066 (PC3-8500): bus de 133 Mhz, E/S de 533 Mhz, transferencias de 8.5 GB/s. Tiempo de acceso de 7.5 ns.
    • Hasta DDR3-2200 (PC3-18000):  bus de 350 Mhz, E/S de 1100 Mhz, y transferencias de 18 GB/s. Tiempo de acceso de 3.3 ns.
  • DDR4: menor tensión de alimentación y mayor tasa de transferencia frente a las anteriores. Desgraciadamente tiene una mayor latencia, lo que reduce su rendimiento en igualdad de condiciones.
    • Desde DDR4-1600 (PC4-12800): con un bus base de 200 Mhz, E/S de 1600 Mhz, y transferencias de 12.8 GB/s.
    • Hasta DDR4-2666 (PC4-21300): con bus base 333 Mhz, E/S de 2666 Mhz, y transferencias de 21.3 GB/s.
  • DDR5, DDR6, DDR7…: el futuro próximo.

Según el tipo de módulo

Los módulos SIMM evolucionaron hasta los DIMM actuales, que se dividen en:

  • DIMM (Dual In-Line Memory Module): un módulo de memoria con contactos por las dos caras, permitiendo un mayor número de contactos. Son los que usan los equipos de sobremesa.
  • SO-DIMM (Small Outline DIMM): es una versión reducida de los DIMM normales, es decir, módulos más cortos para equipos con menor tamaño. Se emplean en equipos portátiles, placas base para miniPCs con factores de forma pequeños como mini-ITX, etc.

Sean DIMM o SO-DIMM, pueden ser de diferentes capacidades, características, y tipos vistos anteriormente. Esto no cambia nada.

Según los canales

Los módulos de memoria RAM se pueden agrupar con uno o varios buses:

  • Single Memory Channel: todos los módulos de memoria se agrupan en un solo banco de ranuras, compartiendo un mismo bus.
  • Dual Memory Channel: tiene dos bancos de ranuras de memoria separados en la placa base. Los módulos pueden insertarse en estos dos canales, con dos buses separados, aportando un mayor ancho de banda, y por tanto rendimiento. Por ejemplo, si tienes una APU o un Intel con GPU integrada, podría reportar grandes beneficios al permitir a la MMU de la CPU acceder a un bus mientras que el controlador de memoria de la GPU accede por el otro sin interferir entre ambos…
  • Quad Memory Channel: cuando las demandas de acceso son muy superiores, es posible encontrar placas base con cuatro canales, aunque no siempre tener cuatro canales aporta el rendimiento esperado si no se aprovecha realmente esta capacidad.

Latencia

Slots para RAM de una placa base

Por último, cuando quieres ampliar tu memoria RAM, hay una serie de características, a parte de lo ya visto, que te pueden confundir a la hora de comprar el adecuado. Me refiero a las latencias, eso del CAS, RAS, etc. En cuanto a los voltajes y el tipo de módulo, lo cierto es que esto dependerá de la compatibilidad de tu placa base y el tipo de memoria elegido. Debes leer los manuale sde tu placa base para saber qué memoria soporta tu chipset y qué tipo de módulo tienes.

También puedes mirar el módulo o módulos de memoria que ya tienes instalados para saber cómo adquirir un módulo similar para ampliarla, y que sea de las mismas características y compatible.

La velocidad de una RAM siempre está relacionada con dos factores, uno es la frecuencia de reloj y la otra es la latencia. La latencia es el tiempo que se tarda en un acceso (escritura o lectura). Y puede haber un mismo tipo de módulo con diferentes latencias, y es aquí donde los usuarios se confunden al creer que si instalan un módulo con una latencia diferente no será compatible, o si va a afectar o no… Eso es lo que voy a intentar aclarar aquí.

Primero tienes que tener claro cómo trabaja la RAM, cuando se requiere acceder a un bloque de memoria particular, es decir, a una porción de memoria donde se almacena un dato, la memoria está distribuída en filas y columnas. Activando las líneas de selección de fila y columna adecuada se puede ir escribiendo o leyendo lo que se quiera. Pero para que esas operaciones de acceso se produzcan, se necesitan pasar por unos cilos para ejecutar unas acciones que retrasan la operación. Eso es la latencia.

¿Cómo se la latencia de un módulo? Pues te habrás fijado que los módulos tienen una marca tipo 16-18-18-35 o similares, esas son las latencias en nanosegundos. Cada número tiene su significado según la posición que ocupa:

  • 16: El primer valor puede aparecer también como CL o CAS Latency, indica a grandes rasgos el tiempo que pasa entre que el procesador solicita un dato a la memoria RAM y esta lo ubica y lo envía.
  • 18: El segundo número puede encontrarse como TRCD o RAS to CAS Latency, este número representa el tiempo entre la ubicación y activación de una línea de memoria (RAS) y una columna (CAS), recordemos que la memoria se organiza en como si se tratara de un tablero de ajedrez.
  • 18: El tercer número puede encontrarse como TRP o RAS Precharge y hace referencia al tiempo que le lleva a la memoria hacer un salto de línea, es decir, desactivar la línea de datos que está utilizando actualmente y la activación de una nueva línea.
  • 35: Finalmente el cuarto valor indica lo que puede aparecer como TRAS, Active o Active to precharge. Representa el tiempo de espera necesario antes de que la memoria pueda realizar un nuevo acceso a los datos.

Cuando menor sean los números, mejor, ya que más rápido será. Si tienes un módulo DDR4 con un CL11 y un módulo CL9, el segundo será mucho más rápido, sin duda.

¿Se pueden mezclar módulos con diferentes latencias?

Aquí es donde viene la pregunta del siglo, y la confusión de muchos usuarios. La respuesta es sí. Si tienes un módulo DDR4, con una misma frecuencia de reloj, pero con un CL determinado instalado en tu equipo y compras otro de igual características, pero con un CL diferente, no importa. Funcionará, no van a ser incompatibles, tu equipo no lo va a rechazar. La latencia es como la capacidad o la marca, puede ser diferente entre módulos sin que ocurra nada.

¿Entonces? Lo único que tal vez no vas a conseguir el rendimiento óptimo, o tal vez baje un poco en función de tu elección. Te lo explico con un ejemplo. Imagina un caso práctico, que tienes un módulo Kingston DDR4 de 8 GB a 2400 Mhz y CL14 instalado en tu equipo. Pero quieres ampliar tu memoria RAM y compras un Corsair DDR4 de 8 GB a 2800 Mhz y CL16. Tendrías dos módulos que son totalmente compatibles, tu equipo lo va a tolerar, no va a dejar de funcionar. Tendrías 16 GB de RAM funcionando. Pero… podrían ocurrir varias cosas:

  1. Ambos módulos RAM bajen su frecuencia a perfiles por defecto del estándar JEDEC, como 2133 Mhz. Es decir, tu memoria se volvería algo más lenta al reducir su frecuencia de reloj, y por tanto su tasa de transferencia.
  2. Otra opción es que el módulo se iguale con el módulo que ya había en latencia y frecuencia. En este caso, en vez de 2800 Mhz, pasarían a trabajar ambos a 2400Mhz y a la CL más alta.

¿Cuándo tendrías problemas? Cuando usas Dual Channel o Quad Channel. En esos casos es mejor que compres módulos idénticos en cuanto a características (la capacidad y marca del fabricante puede variar).

¿Cuánta RAM necesito?

Bueno, resumiendo esto depende de las necesidades de cada usuario. Por ejemplo, si vas a usar software ofimático, navegar, etc., quizás con 4 a 8 GB sea suficiente. Pero si quieres jugar, tal vez necesites 8-16 GB. Si vas a implementar varias máquinas virtuales tal vez necesitas 32 GB o más… es algo muy personal. No hay una fórmula mágica para saber cuánta necesitas.

Muy importante ver los requisitos recomendados del software que vas a usar habitualmente para elegir bien tu hardware…

Existe una fórmula que te ayuda a elegir una memoria mínima base, para no instalar menos de la que deberías. Y pasa por multiplicar 2 GB por cada core o núcleo que tenga tu CPU. Por tanto, si tienes un quadcore deberías tener al menos 8 GB.

2 comentarios, deja el tuyo

  1.   Miguel Ángel Nieva dijo

    Muy bien explicado

  2.   Gustavo Aguirre dijo

    Muy buen artículo, muy bien explicado. Y si es así con el dual Chanel, todos me preguntan lo mismo…”la pregunta del millon”… Yo tengo 2 memorias kingston hyper X. Una de 8gb a 1866MHz y otra de 4gb a 1600MHz. Andando en dual Channel OK, pero obviamente funcionando con la frecuencia limitada a 1600MHz las dos y con la latencia más alta. Con un programa verifique el funcionamiento dual channel a 128bits en vez de 64bits. Gracias por tu trabajo en el articulo. Saludos

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.