Les bases de la mémoire cache

Publié le 28/12/1998 par
Imprimer

Depuis que le PC existe, le processeur a connu une augmentation exponentielle de sa puissance, puisqu’il est aujourd’hui au moins un millier de fois plus rapide. Malheureusement les divers périphériques, comme le disque dur ou la mémoire centrale du PC n’ont pas évolués à la même vitesse. De ce fait, le processeur devrait passer en théorie la plupart de son temps à attendre des données afin de les traiter.

La solution la plus simple à ce problème serait de changer la mémoire centrale du PC, qui est de type DRAM (Dynamic RAM), par de la mémoire de type SRAM (Static RAM). En effet la SRAM a des vitesses assez proche de celle du processeur, car contrairement à la DRAM elle n’a pas besoin d’être mise à jour continuellement. Malheureusement, 64 Mo de SRAM c’est très cher.

La mémoire cache permet de contourner ce problème grâce a des algorithmes très pointus, dont l’efficacité permet de se contenter de petites zones mémoires faisant office de mémoires tampons.

Il existe plusieurs mémoires cache dans le PC

  • Le cache L1 (Level 1 ou Primary Cache)

    C’est le cache le plus rapide du PC. Il est en effet situé dans le processeur, et fonctionne à la même vitesse que ce dernier. Le cache L1 est généralement de petite taille (16 Ko pour les Pentium, 32 Ko pour les Pentium MMX & Pentium II, 64 Ko pour les K6, K6-2, 6x86MX, MII & Katmai et 128 Ko pour le K7). Lorsque le processeur à besoin d’une donnée ou d’une instruction, il check si les informations ne sont pas déjà dans le cache L1, et si c’est le cas il l’utilise directement. Les processeurs modernes on deux manières de gérer le cache L1, soit il est unifié (unified cache) et dans ce cas les données et les instructions sont stockées dans le même cache, soit le processeur dispose de deux caches bien distinct, l’instruction cache et le data cache.

  • Le cache L2 (Level 2 ou Secondary Cache)

    Le cache L2 vient en soutient du cache L1. Plus grand, mais un peu plus lent, il stocke tout ce que le cache L1 n’a pas la place de stocker. On l’appelle également external cache, mais ceci est maintenant faux. En effet auparavant, le cache L2 était séparé du CPU. On le trouvait sur la carte mère (Pentium, 6x86, K6), sur une carte fille avec le processeur (Pentium II, Katmai, K7) ou encore sur un circuit proche mais séparé (Pentium Pro). Mais depuis peu on trouve des processeurs utilisant un cache de second niveau intégré sur le même die que le processeur, et fonctionnant à la même fréquence. C’est par exemple le cas pour les Celeron A 300 & 333 et pour le futur K6-3 d’AMD.

  • Le cache en mémoire centrale

    Qui ne connaît pas SmartDrive ? Ce programme sous Dos permettait "d’accélérer" le disque dur, en utilisant la mémoire vive comme antémémoire pour le disque dur. Ainsi, les dernières données lues sur le disque étaient stockées en mémoire vive, et était donc disponible bien plus vite si le processeur en avait encore besoin. Car si la mémoire vive est plus lente que le cache L1 & L2, le disque dur fait carrément office d’escargot.
    Des méthodes similaires peuvent être utilisées pour le lecteur CD-Rom, auquel on peut allouer une antémémoire en mémoire vive ou même sur le disque dur.

  • Le cache périphérique

    Certains périphériques disposent d’une mémoire cache qui leur est propre. C’est notamment le cas de certaines cartes SCSI haut de gamme, qui peuvent parfois embarquer plus de 16 Mo de mémoire cache. Les disques durs modernes disposent également de quelques centaines de Ko de cache, tout comme les CD-Rom. Les graveurs n’échappent pas à la règle, mais leur cache, qui peut être de taille très importante (jusqu´à 4 Mo) n’a pas la même utilité. En effet c’est un tampon en écriture qui sert a stocker les données qui vont êtres gravées, afin d’assurer un flux constant.
Sommaire
1 - Article
Vos réactions

Top articles