Memoria y jerarquía en sistemas con microprocesadores
Un microprocesador puede ejecutar miles de millones de instrucciones por segundo, pero si los datos no están disponibles a tiempo, el rendimiento cae. Por eso, en los sistemas modernos existe una jerarquía de memoria, que equilibra rapidez, tamaño y costo.
1. Tipos de memoria en la jerarquía #
-
Registros
- Los más rápidos y pequeños (pocos bytes).
- Integrados en el microprocesador.
- Acceso en 1 ciclo de reloj.
-
Memoria Caché (L1, L2, L3)
-
Memoria ultrarrápida cercana al procesador.
-
Almacena instrucciones y datos usados con frecuencia.
-
Niveles:
- L1: más rápida, pequeña (32-128 KB por núcleo).
- L2: intermedia, tamaño medio (512 KB – 2 MB).
- L3: compartida por todos los núcleos, mayor tamaño (8-64 MB).
-
Si el procesador necesita un dato y está en caché, decimos que hay un cache hit (éxito); si no, cache miss (fallo), y debe ir a buscarlo a la RAM.
-
-
Memoria principal (RAM – Random Access Memory)
- Mayor capacidad (GBs).
- Velocidad menor que la caché.
- Volátil (se borra al apagar el equipo).
- Ejemplo: DDR4, DDR5.
-
Memoria secundaria (almacenamiento persistente)
- Discos duros (HDD), SSD, NVMe.
- Mucho más lenta que la RAM, pero no volátil.
- Capacidad enorme (TBs).
-
Memoria virtual
- Técnica del sistema operativo que usa parte del disco como si fuera RAM.
- Mucho más lenta que la RAM real, pero permite ejecutar programas que requieren más memoria de la disponible.
Fuente: upload.wikimedia.orgLicencia: Licencia no indicada
Ampliar2. Principio de localidad #
El diseño de las memorias se basa en que los programas tienden a usar:
- Localidad temporal: los mismos datos o instrucciones se usan varias veces en poco tiempo.
- Localidad espacial: si se accede a una posición de memoria, probablemente se acceda a las siguientes.
👉 Gracias a esto, la caché es muy efectiva.
3. Latencias y tiempos de acceso (orden aproximado) #
- Registros: < 1 ns (nanosegundo).
- Caché L1: ~1 ns.
- Caché L2: 3–5 ns.
- Caché L3: 10–20 ns.
- RAM: 50–100 ns.
- SSD NVMe: 50–100 μs (microsegundos).
- HDD: milisegundos.
👉 Diferencia brutal: acceder a disco duro puede ser un millón de veces más lento que a un registro.
4. Relación procesador-memoria #
Cuando un programa se ejecuta:
- El procesador busca instrucciones en la caché.
- Si no están, las pide a la RAM.
- Si la RAM no tiene lo necesario, se buscan en el almacenamiento (disco).
Por eso, los fabricantes optimizan mucho la jerarquía de memorias para que el procesador no se quede “esperando” datos.
5. Ejemplo práctico #
Imagina que tu procesador está multiplicando miles de números almacenados en memoria:
- Si están en los registros, el cálculo será instantáneo.
- Si están en la RAM, el procesador tendrá que esperar decenas de nanosegundos en cada acceso.
- Si están en el disco duro, el cálculo sería millones de veces más lento.
Resumen del tema
Conceptos clave #
- Pirámide Jerárquica de Memoria: Registros (< 1 ns) → Caché L1/L2/L3 (1-20 ns) → Memoria RAM principal (50-100 ns) → Almacenamiento NVMe/SSD/HDD (µs a ms).
- Tasa de Acierto y Fallo (Cache Hit / Miss): porcentaje de peticiones satisfechas directamente por los niveles de caché sin acudir a la lenta memoria RAM.
- Principio de Localidad:
- Temporal: reutilización de datos o instrucciones accedidos recientemente.
- Espacial: probabilidad alta de acceder a direcciones de memoria contiguas.
- Memoria Virtual: paginación gestionada por el SO y la MMU para extender la memoria física utilizando almacenamiento secundario.
Qué debes recordar #
A menor distancia de los núcleos de la CPU, la memoria es exponencialmente más rápida, más cara por byte y de menor capacidad.