Jerarquía de Memoria
La pirámide de memoria: registros, caché, RAM, almacenamiento, y por qué la jerarquía importa para el rendimiento.
Ninguna tecnología de memoria individual es simultáneamente rápida, grande y barata. La jerarquía de memoria resuelve esto colocando memoria pequeña-rápida-cara cerca de la CPU y memoria grande-lenta-barata más lejos. Las cachés explotan la localidad de referencia para hacer la jerarquía transparente, creando la ilusión de un sistema de memoria grande y rápido.
Objectives
- Describir la pirámide de jerarquía de memoria (registros → caché → RAM → almacenamiento)
- Explicar la localidad temporal y espacial de referencia
- Comprender conceptos de caché: aciertos, fallos, tasa de aciertos y penalización por fallo
- Comparar cachés de mapeo directo, asociativas por conjuntos y completamente asociativas
- Calcular el tiempo de acceso efectivo a memoria
Key Takeaways
- Jerarquía de memoria: la velocidad disminuye y la capacidad aumenta en cada nivel
- La localidad de referencia hace efectivo el almacenamiento en caché (tasas de acierto del 90-99%)
- El tiempo de acceso efectivo ≈ tiempo de acierto en caché (cuando la tasa de aciertos es alta)
- Organización de caché: mapeo directo, asociativa por conjuntos, completamente asociativa
- La jerarquía crea la ilusión de una memoria grande y rápida
Applications
- Diseño de CPU: La jerarquía de caché L1/L2/L3 es crítica para el rendimiento del procesador.
- Memoria Virtual: El sistema operativo usa la DRAM como caché para el almacenamiento en disco/SSD.
- Sistemas de Bases de Datos: Los búferes de memoria cachean páginas de disco frecuentemente accedidas en RAM.
- Caché Web: Las CDN y las cachés del navegador siguen el mismo principio jerárquico.
Practice Problems
Problem 1: Tasa de aciertos de caché L1 = 95%, tiempo de acceso L1 = 2 ns, tiempo de acceso L2 = 10 ns. ¿Cuál es el tiempo de acceso efectivo?
Problem 2: Un programa recorre un arreglo de 1000 elementos. ¿Qué tipo de localidad exhibe esto?
Problem 3: Una caché asociativa de 4 vías tiene 256 conjuntos. Cada línea tiene 64 bytes. ¿Cuál es el tamaño total de la caché?
Problem 4: La latencia de DRAM es 100 ns, la latencia de SSD es 100 μs. ¿Cuántas veces más rápida es la DRAM?