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.