Escribe para buscar…

Memory

La RAM es la memoria de trabajo de la máquina, y todo lo que la caracteriza — DRAM, DDR, doble canal — surge de intentar seguir el ritmo de la CPU.

Se enseña en
Fundamentos de hardwareArquitectura de sistemasASIR

Introducción

La CPU trabaja a 0,23 ns por ciclo y la RAM tarda unos 80 ns en contestar.

Esta diferencia es el problema central de toda la memoria de un ordenador, y no se resuelve: se reparte.

Se reparte construyendo una jerarquía donde cada nivel es más grande y más lento que el de arriba, y cada nivel guarda una copia de una parte del de abajo.

La jerarquía de memorias

Registros Memoria caché Memoria principal Memoria secundaria ~1 KiB decenas de MiB decenas de GiB TiB < 1 ns 1–15 ns ~80 ns 0,05–10 ms más capacidad · más latencia · menos coste por byte cada nivel guarda una copia de una parte del nivel de abajo

El objetivo de la jerarquía es dar la ilusión de una memoria que tiene a la vez el tamaño del disco y la velocidad de los registros.

Funciona porque los programas tienen localidad: en un momento dado trabajan con una parte pequeña de todo lo que tienen.

Un detalle que a menudo se pasa por alto: la copia va hacia abajo en cascada.

Lo que hay en L1 es una copia de lo que hay en L2, que es una copia de la RAM, que es una copia del disco.

Cuando la CPU escribe en L1, ese cambio se tiene que acabar propagando hasta el disco, y mientras no lo ha hecho hay versiones diferentes del mismo dato en sitios diferentes de la máquina.

Volátil y no volátil

Una memoria volátil pierde el contenido cuando se queda sin corriente: la RAM y las memorias caché.

Una memoria no volátil lo conserva: el disco, la ROM de la BIOS, un lápiz USB.

La división no es arbitraria. Guardar información sin alimentación requiere un mecanismo físico que la fije — magnetismo, carga atrapada en una puerta aislada — y todos esos mecanismos son más lentos que un transistor.

Rápido y permanente son, de momento, incompatibles.

DRAM y SRAM

Hay dos maneras de hacer una memoria de acceso aleatorio.

La SRAM (Static RAM) guarda cada bit en un biestable, seis transistores que se mantienen unos a otros en un estado estable.

Mientras haya corriente, el bit está ahí, y leerlo es inmediato.

El precio es el tamaño: seis transistores por bit ocupan mucho, y por tanto la SRAM es cara.

La DRAM (Dynamic RAM) guarda cada bit en un condensador minúsculo, con un solo transistor que le da acceso.

Un transistor por bit en vez de seis: mucho más densa y mucho más barata.

El problema es que el condensador se descarga en milisegundos, y por eso la DRAM se tiene que refrescar — releer y reescribir cada fila continuamente, miles de veces por segundo.

Este refresco es lo que la hace dinámica, lo que la hace más lenta y lo que hace que consuma corriente incluso cuando no la usas.

Por eso la memoria caché de la CPU es SRAM y la RAM que compras en módulos es DRAM.

Cómo se traduce una dirección a una celda

Dentro de un chip de DRAM las celdas no están en fila: están en una matriz de filas y columnas.

Cuando llega una dirección, el chip la parte en dos mitades: una elige la fila y la otra la columna.

Primero activa toda la fila entera — que es la operación cara, porque implica descargar miles de condensadores sobre unos amplificadores de lectura — y después elige la columna que le han pedido.

Y aquí está la razón del nombre: la latencia es prácticamente la misma para cualquier dirección, porque el camino es siempre el mismo. Por eso es una memoria de acceso aleatorio.

Con un matiz que te importará: si la fila que necesitas ya está activa porque el acceso anterior era vecino, la lectura es mucho más rápida. Los módulos y los controladores se las apañan para aprovecharlo.

DDR

Una memoria envía una palabra por el bus en cada ciclo.

Para mover más datos hay dos opciones: subir la frecuencia del bus, o mover más datos por ciclo.

Subir la frecuencia choca con la física — cuanto más alta, más difícil es que la señal llegue limpia.

Así que las memorias hicieron la segunda: DDR, Double Data Rate, envía una palabra en el flanco de subida del reloj y otra en el de bajada.

Dos transferencias por ciclo, con el mismo reloj.

Por eso las memorias se miden en MT/s (megatransferencias por segundo) y no en MHz, aunque todo el mundo diga «megahercios».

Una DDR3-1600 tiene un reloj de bus de 800 MHz y hace 1600 MT/s.

De dónde viene todo esto

La memoria principal de un ordenador ha cambiado de tecnología unas cuantas veces, y cada cambio resuelve el cuello de botella que había dejado el anterior.

ÉpocaTecnologíaLo que aporta
1949Núcleo magnéticoUn anillo de ferrita por bit, de pocos milímetros. Capacidades ridículas y no volátil por accidente
1969Primera RAM de semiconductorIntel comercializa un chip de 1024 bits. El transistor sustituye al hierro
Años 70SIPP y SIMMLa memoria deja de estar soldada y pasa a módulos que se enchufan
1990FPM-RAMFast Page Mode: si pides direcciones seguidas de la misma fila, van más rápido
Mediados de los 90EDO y BEDOEmpieza a leer la próxima palabra antes de acabar la anterior
1993SDRAMSe sincroniza con el reloj del sistema en vez de ir por su cuenta
2000DDRDos transferencias por ciclo. 184 contactos, 2,5 V
2003DDR2240 contactos, 1,8 V
2007DDR3240 contactos, 1,5 V
2014DDR4288 contactos, 1,2 V
2020DDR5288 contactos, 1,1 V, dos subcanales por módulo

Vale la pena mirar la columna del voltaje de abajo a arriba: 2,5 → 1,8 → 1,5 → 1,2 → 1,1 V.

Cada generación ha bajado la tensión, porque como verás en Cooling el consumo de un circuito crece con el cuadrado del voltaje, y con tanta memoria dentro de un servidor eso cuenta.

Estás leyendo una vista previa.

Inicia sesión con Google para leer la página completa.

Inicia sesión con Google

Con cualquier cuenta de Google. Solo te pediremos que aceptes las condiciones del servicio.