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.
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
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.
| Época | Tecnología | Lo que aporta |
|---|---|---|
| 1949 | Núcleo magnético | Un anillo de ferrita por bit, de pocos milímetros. Capacidades ridículas y no volátil por accidente |
| 1969 | Primera RAM de semiconductor | Intel comercializa un chip de 1024 bits. El transistor sustituye al hierro |
| Años 70 | SIPP y SIMM | La memoria deja de estar soldada y pasa a módulos que se enchufan |
| 1990 | FPM-RAM | Fast Page Mode: si pides direcciones seguidas de la misma fila, van más rápido |
| Mediados de los 90 | EDO y BEDO | Empieza a leer la próxima palabra antes de acabar la anterior |
| 1993 | SDRAM | Se sincroniza con el reloj del sistema en vez de ir por su cuenta |
| 2000 | DDR | Dos transferencias por ciclo. 184 contactos, 2,5 V |
| 2003 | DDR2 | 240 contactos, 1,8 V |
| 2007 | DDR3 | 240 contactos, 1,5 V |
| 2014 | DDR4 | 288 contactos, 1,2 V |
| 2020 | DDR5 | 288 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 GoogleCon cualquier cuenta de Google. Solo te pediremos que aceptes las condiciones del servicio.