Mémoire cache

Infos
En informatique, une mémoire cache ou antémémoire est une mémoire relativement petite et rapide qui stocke les informations les plus utilisées d'une autre mémoire plus grande et plus lente. Elle sert à accélérer les traitements. La mémoire cache est notamment utilisée entre le processeur et la mémoire vive, mais on peut en trouver entre tout fournisseur de données (réseau informatique, disque dur, mémoire principale) et le consommateur de ces don
Mémoire cache

En informatique, une mémoire cache ou antémémoire est une mémoire relativement petite et rapide qui stocke les informations les plus utilisées d'une autre mémoire plus grande et plus lente. Elle sert à accélérer les traitements. La mémoire cache est notamment utilisée entre le processeur et la mémoire vive, mais on peut en trouver entre tout fournisseur de données (réseau informatique, disque dur, mémoire principale) et le consommateur de ces données.

Dénomination

Mémoire cache est la traduction littérale de l'expression anglaise cache memory, qui vient elle-même de mémoire cachée, . L'Académie française propose plutôt le terme antémémoire. La différence entre mémoire cache et mémoire tampon réside dans le fait que la mémoire cache duplique l'information, tandis que le tampon exprime plutôt l'idée d'une salle d'attente, sans impliquer nécessairement une duplication. Le cache buffer (tampon de cache) du disque ou disk cache (cache de disque) est à la fois un tampon où transite l'information et une mémoire cache qui recopie sous forme électronique les données stockées dans le disque sous forme magnétique.

Fonctionnement

Le cache contient une copie des données originelles lorsqu'elles sont couteuses (en terme de temps d'accès) à récupérer ou à calculer par rapport au temps d'accès au cache. Une fois les données stockées dans le cache, l'utilisation future de ces données peut être réalisée en accédant à la copie en cache plutôt qu'en récupérant ou recalculant les données, ce qui abaisse le temps d'accès moyen. Le processus fonctionne ainsi :
- l'élément demandeur (microprocesseur) demande une information ;
- le cache vérifie s'il possède cette information. S'il la possède, il la retransmet à l'élément demandeur – on parle alors de succès de cache. S'il ne la possède pas, il la demande à l'élément fournisseur (mémoire principale par exemple) – on parle alors de défaut de cache ;
- l'élément fournisseur traite la demande et renvoie la réponse au cache ;
- le cache la stocke pour utilisation ultérieure et la retransmet à l'élément demandeur au besoin. Si les mémoires cache permettent d'accroitre les performances, c'est en partie grâce à deux principes qui ont été découverts suite à des études sur le comportement des programmes informatiques :
- le principe de localité spatiale qui indique que l'accès à une instruction située à une adresse X va probablement être suivi d'un accès à une zone tout proche de X ;
- le principe de localité temporelle qui indique que l'accès à une zone mémoire à un instant donné a de fortes chances de se reproduire dans la suite immédiate du programme.

Divers niveaux de mémoire cache

On trouve une zone de cache :
- cache de premier niveau (L1) dans les processeurs (cache de données souvent séparé du cache d'instructions) ;
- cache de second niveau (L2) dans certains processeurs (peut se situer hors de la puce) ;
- cache de troisième niveau (L3) rarement (sur la carte mère) ;
- dans les disques durs (par exemple, les fichiers Internet temporaires d'Internet Explorer);
- dans les serveurs proxy, dont les squids ;
- dans les serveurs de pages dynamiques.

Mémoire cache des microprocesseurs

Elle est souvent subdivisée en niveaux qui peuvent aller jusqu'à trois. Elle est très rapide, et donc très chère. Il s'agit souvent de SRAM. Différents niveaux de mémoire d'un microprocesseur En programmation, la taille de la mémoire cache revêt un attrait tout particulier, car pour profiter de l'accélération fournie par cette mémoire très rapide, il faut que les parties de programme tiennent le plus possible dans cette mémoire cache. Comme elle varie suivant les processeurs, ce rôle d'optimisation est souvent dédié au compilateur. De ce fait, plus la taille de la mémoire cache est grande, plus la taille des programmes accélérés peut être élevée. C'est aussi un élément souvent utilisé par les constructeurs pour faire varier les performances d'un produit sans changer d'autres matériels. Par exemple, pour les microprocesseurs, on trouve des séries bridées (avec une taille de mémoire cache volontairement réduite), tels que les Duron chez AMD ou Celeron chez Intel, et des séries haut de gamme avec une grande mémoire cache comme les processeurs Opteron chez AMD, ou Pentium 4EE chez Intel. Un exemple de boucles très courtes qui tient entièrement dans les caches de données et d'instruction, par exemple le calcul suivant (écrit en langage C) : long i; double s; s=0; for (i = 1; i
Sujets connexes
Académie française   Advanced Micro Devices   Akamai Technologies   Algorithmique   Anglais   Années 1960   Cache-Control   Cache d'instructions   Carte mère   Disque dur   Duron   Fichiers Internet temporaires   Grenoble   Informatique   Internet Explorer   Logiciel   Mémoire tampon   Mémoire vive   Opteron   Parallélisation   Principe de localité   Processeur   Réseau informatique   Serveur informatique   Squid   Static Random Access Memory   Système d'exploitation  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^