Les caches


[Previous]  [Next]  [Summary]
  1. Caches associatifs
  2. Caches à accès direct
  3. Caches associatifs par blocs
  4. Informations de service
  5. Gestion des remplacements
  6. Exemple

L'utilisation de mémoires caches s'appuie sur le principe de localité. Celui-ci est basé sur le fait que les instructions d'un programme sont, au cours de son exécution, proches les unes des autres. On a donc tout à gagner à amener des blocs de mots consécutifs dans une mémoire d'accès rapide de telle sorte que les accès aux instructions se fassent avec un temps de réponse minimal. Lorsque le processeur tente d'accéder à une information (instruction ou donnée) : La réalisation des caches utilise le principe de mémoire associative, ou mémoire adressable par son contenu (Content Addressable Memory), où : Nous allons, dans ce qui suit, décrire les principales architectures de caches.

1. Caches associatifs

Les caches associatifs utilisent le principe des mémoires associatives pour décider si l'information recherchée en mémoire est ou non déjà dans le cache. On y effectue une comparaison simultanée de l'adresse émise par l'unité d'adresses avec toutes les adresses des informations rangées dans le cache.

Au cas où l'adresse s'y trouve (hit), l'information est lue dans le cache. Dans le cas contraire (miss), un bloc d'information, appelé ligne, est chargé avec partir de la mémoire. Le schéma de principe d'un tel cache est le suivant :

fig.1 Principe des caches associatifs

Les n bits (ici n=2) de poids faible donnent l'adresse du mot dans la ligne. Le principal problème posé par ce type de cache est dû au nombre important de comparateurs.

2. Caches à accès direct

Les caches à accès direct permettent de s'affranchir du coût des N comparateurs indispensables dans le cas des caches associatifs. L'accès à chacune des lignes se fait à partir d'un index constitué par p bits de l'adresse émise :

fig.2 Principe des caches à accès direct

3. Caches associatifs par blocs

Les caches associatifs par blocs combinent les deux techniques précédentes.

fig.3 Principe des caches associatifs par blocs

On associe plusieurs caches à accès direct. Chaque ensemble de lignes correspondant à un index constitue lui-même un cache associatif. Cette architecture de cache est la plus couramment utilisée.

4. Informations de service

Des informations supplémentaires sont insérées dans la mémoire d'étiquettes : notamment un bit de validité indiquant si l'information rangée dans le cache est valide ou non (exemple : après un reset les informations ne sont plus valides), un bit de mode de fonctionnement (utilisateur-superviseur) et autres bits de protection (lecture-écriture-/exécution), ...

5. Gestion des remplacements

La choix de la ligne à remplacer dans un cache suit la règle dite de la plus ancienne ligne d'abord (LRU : Least Recent Used). Cette politique de remplacement nécessite un mécanisme matériel qui s'apparente à celui mis en oeuvre dans une pile FIFO(1). Lors d'un hit le numéro de ligne est amené en tête de liste. Lors d'un miss le numéro de ligne en queue de liste désigne celle qui est choisie pour le remplacement et ce numéro est ensuite placé en tête. Plusieurs techniques peuvent être utilisées pour gérer la liste des numéros de lignes : compteurs, jeu de registres, tableaux booléens.

6. Exemple

1. Le microprocesseur Motorola 68030 est doté de deux caches intégrés de 16 lignes de 4 mots de 32 bits soit un total de 256 octets. Grâce au contrôle (write allocate policy et cache freezing) que l'on peut avoir sur le cache, celui-ci peut quasiment être vu comme une extension de 64 registres 32 bits.

fig.4 Exemple du M68030

2. Le contrôleur de mémoire cache Intel 82385 est donné pour 95% de hit avec un cache de 32Ko. Il utilise une technique d'écriture appelée posted-write. Elle consiste, lors d'une écriture, à mettre à jour le cache, si l'information y est, puis le contrôleur de cache écrit cette dernière en mémoire lorsque le processeur lui en laisse le loisir. Il se pose avec cette technique des problèmes de cohérence :


[Top] [Previous]  [Next]  [Summary]