« Fonctionnement d'un ordinateur/Les mémoires cache » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 307 :
==Contourner le cache : le ''cache bypassing''==
 
Il arrive que des données avec une faible localité soient chargées dans le cache inutilement. Or, il vaut mieux que ces données transitent directement entre le processeur et la mémoire, sans passer par l'intermédiaire du cache. Pour cela, le processeur peut fournir des instructions d'accès mémoire qui ne passent pas par le cache, à côté d'instructions normales. Mais il existe aussi des techniques matérielles, où le cache détecte à l'exécution les donnéeslectures utilesqui gagnent à l'exécutioncontourner le cache. CetteLa dernière méthode reposedemande sur ld'identificationidentifier desles instructions à l'origine des défauts de cache, le processeur accédant directement à la RAM quand une telle instruction est détectée.
 
Pour identifier ces instructions, le processeur dispose d'une mémoire, qui mémorise les ''program counters'' des instructions d'accès mémoire déjà rencontrées lors de l'exécution du programme. On appelle cette mémoire la '''table d’historique des défauts de lecture''' (''load miss history table''). À chaquela nouvellepremière exécution d'une instruction d'accès mémoire, une entrée de cette mémoiretable est réservée pour l'instruction. Chaque adresseentrée de la table est couplée à un compteur de quelques bits, qui est incrémenté à chaque succès de cache et décrémenté à chaque défaut de cache. À chaque fois que l'on exécute une instruction, son program counter est envoyé en entrée de la table d’historique des défauts de lecture. Si jamais l'instruction étaitest déjà présente dans celle-ci, la valeur du compteur est récupérée et le processeur vérifie celle-ci. Si elle tombe en dessous d'un certain seuil, c'est que l'instruction a commis trop de défauts de cache et qu'il faut éviter de lui allouer du cache.
 
==Les caches adressés par somme et hashés==