Préchargeur Prefetcher
Mécanisme qui prédit les données dont le processeur aura bientôt besoin et les charge dans le cache à l'avance, avant qu'elles ne soient demandées. Objectif : masquer la latence mémoire pour que la donnée soit déjà là quand l'instruction arrive, et éviter un défaut de cache.
Fonctionnement : les préchargeurs matériels surveillent les schémas d'accès mémoire et les extrapolent. Les plus simples repèrent l'accès séquentiel (si on lit la ligne N, on va chercher N+1) ; les plus avancés détectent les schémas à pas constant (accès avec un écart fixe, par exemple toutes les 64 octets — courant dans les boucles sur des tableaux) voire des motifs irréguliers. Une fois le schéma reconnu, les lignes suivantes sont récupérées en arrière-plan pendant que le processeur travaille, et la latence disparaît. Il existe aussi un préchargement logiciel (le compilateur ou le programmeur insère des instructions de prefetch explicites). Compromis : un préchargement trop agressif peut gaspiller de la bande passante mémoire et polluer le cache avec des données jamais utilisées (si la prédiction était fausse). Un bon préchargeur est souvent déterminant pour les charges gourmandes en mémoire. Étroitement lié au défaut de cache et à la hiérarchie de caches.