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

Contenu supprimé Contenu ajouté
Ligne 11 :
===Le tag d'une ligne de cache===
 
Les données présentes dans le cache sont (pré)chargées depuis la mémoire, ce qui fait que toute donnée dans le cache est la copie d'une donnée en mémoire RAM. Faire la correspondance entre une ligne de cache et l'adresse mémoire correspondante se fait en mémorisant, pour chaque ligne de cache, l'adresse RAM associée que ce soit en totalité ou seulement partiellement. Le cache contient donc des paires adresse-donnéeligne de cache qui lui permettent de faire le lien entre ligne de cache et adresse.

En général, on ne mémorise pas la totalité de l'adresse, ce qui serait inutile. En effet, les lignes de cache sont des blocs de plusieurs centaines de bytes, sans compter que les lignes de cache sont alignées en mémoire. Cela veut dire, par exemple, qu'une ligne de cache de 256 octet aura systématiquement une adresse qui est un multiple de 256. Du point de vue du cache, la RAM est découpée en blocs qui font la même taille qu'une ligne de cache, aux positions prédéterminées, sans recouvrement entre les blocs. Et les adresses de ces blocs sont des multiples de la taille de la ligne de cache, de la taille des blocs. De ce fait, certains bits de l'adresse ne sont pas à prendre en compte pour l'association adresse-ligne de cache. Dans ces conditions, on mémorise seulement unela partie utile de l'adresse mémoire correspondante, qui forme ce qu'on appelle le '''tag'''. Une ligne de cache mémorise donc le tag, les données de la ligne de cache, et quelques bits de contrôle annexes qui varient suivant le cache considéré.
 
[[File:Tag d'une ligne de cache.png|centre|vignette|upright=2|Tag d'une ligne de cache.]]