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.