Définition
Un principe de performance selon lequel les programmes et systèmes tendent à accéder de façon répétée, sur de courts intervalles, à un ensemble relativement restreint d'emplacements mémoire (localité temporelle) et à accéder, sur de courts intervalles, à des emplacements proches dans l'espace d'adresses (localité spatiale).

Principe

Principe
Les motifs d'accès sont non uniformes dans le temps et l'espace ; la conception des caches, des préfetchers et de l'organisation des données doit exploiter les accès récents et voisins pour réduire la latence moyenne et la consommation de bande passante.

Démonstration

Démonstration
Un processeur exécutant une boucle sur un tableau montre une localité temporelle (mêmes instructions et mêmes données réutilisées entre itérations) et une localité spatiale (adresses mémoire consécutives consultées), permettant l'utilisation efficace des caches L1/L2 et du préfetch matériel.

Mauvaise application

Mauvaise application
Supposer une forte localité pour des charges de travail intrinsèquement aléatoires (par exemple, accès aléatoires en cryptographie, certains algorithmes sur graphes) et ajouter des optimisations focalisées sur le cache qui augmentent la complexité sans bénéfice.

Conséquence

Conséquence
Lorsqu'elle est correctement reconnue et exploitée, la localité réduit le taux de défauts de cache, abaisse la latence d'accès mémoire et améliore le débit global ; elle justifie les hiérarchies de stockage en couches et les E/S en blocs.

Inversion

Inversion
Des charges de travail présentant des propriétés d'anti-localité — accès uniformément aléatoires sur un grand espace d'adresses ou parcours de pointeurs sans regroupement spatial — invalident les optimisations basées sur la localité et peuvent nécessiter d'autres conceptions (par ex. tampons de streaming, E/S directe).

Limite

Limite
S'applique aux hiérarchies mémoire, aux caches processeur, aux blocs disque et aux caches réseau ; elle ne garantit pas les performances pour tous les algorithmes et peut ne pas s'appliquer aux schémas d'accès fortement randomisés, adversariaux ou purement en streaming.

Tension sémantique

Tension sémantique
Entre en concurrence avec les modèles qui supposent un coût d'accès uniforme (p. ex. le modèle RAM simple) ; elle crée aussi une tension avec des préoccupations de sécurité puisque la localité peut permettre des canaux auxiliaires temporels ou par cache.

Synthèse

Synthèse
La localité des références est la règle empirique selon laquelle les motifs d'accès se regroupent dans le temps et l'espace ; reconnaître ce regroupement oriente les architectures (caches, préfetchers, organisation des données) et doit être pondéré par la nature des charges de travail où le regroupement est faible ou absent.