Definición
Un principio de rendimiento que indica que los programas y sistemas tienden a acceder a un conjunto relativamente pequeño de ubicaciones de memoria de forma repetida en intervalos cortos de tiempo (localidad temporal) y a acceder a ubicaciones cercanas en el espacio de direcciones en intervalos cortos (localidad espacial).
Principio
Principio
Los patrones de acceso son no uniformes en tiempo y espacio; el diseño de cachés, prefetchers y el ordenamiento de datos debe explotar accesos recientes y cercanos para reducir latencia media y uso de ancho de banda.
Demostración
Demostración
Una CPU que ejecuta un bucle sobre un arreglo muestra localidad temporal (mismas instrucciones y datos reutilizados entre iteraciones) y localidad espacial (direcciones de memoria consecutivas accedidas), permitiendo el uso eficaz de cachés L1/L2 y el prefetch hardware.
Aplicación incorrecta
Aplicación incorrecta
Asumir fuerte localidad para cargas de trabajo intrínsecamente aleatorias (por ejemplo, accesos aleatorios en criptografía, ciertos algoritmos sobre grafos) y aplicar optimizaciones centradas en caché que aumentan la complejidad sin beneficio.
Consecuencia
Consecuencia
Cuando se reconoce y explota correctamente, la localidad reduce las tasas de fallos de caché, disminuye la latencia de acceso a memoria y mejora el rendimiento global; justifica jerarquías de almacenamiento en capas y E/S por bloques.
Inversión
Inversión
Cargas de trabajo con propiedades de anti-localidad — accesos uniformemente aleatorios en un amplio espacio de direcciones o recoridos de punteros sin agrupamiento espacial — invalidan las optimizaciones basadas en localidad y pueden requerir diseños distintos (p. ej., buffers de streaming, E/S directa).
Límite
Límite
Se aplica a jerarquías de memoria, cachés de procesador, bloques de disco y cachés en red; no garantiza rendimiento para todos los algoritmos y puede no aplicarse a esquemas de acceso altamente aleatorizados, adversarios o puramente de streaming.
Tensión semántica
Tensión semántica
Compite con modelos que asumen coste uniforme de acceso (p. ej., modelo RAM simple); también genera tensión con preocupaciones de seguridad porque la localidad puede habilitar canales laterales por temporización o caché.
Síntesis
Síntesis
La localidad de referencia es la regla empírica de que los patrones de acceso se agrupan en tiempo y espacio; reconocer este agrupamiento guía arquitecturas (cachés, prefetchers, disposición de datos) y debe equilibrarse frente a cargas sin agrupamiento.