M€moire cache 1
Mémoire cache
Une mémoire cache ou antémémoire est, en informatique, une m€moire qui enregistre temporairement des copies
de donn€es provenant d'une autre source de donn€e, afin de diminuer le temps d'acc•s (en lecture ou en €criture) d'un
mat€riel informatique (en g€n€ral, un processeur) ‚ ces donn€es. La m€moire cache est plus rapide et plus proche du
mat€riel informatique qui demande la donn€e, mais plus petite que la m€moire pour laquelle elle sert d'interm€diaire.
Des m€canismes mettant en ƒuvre des m€moires caches peuvent „tre impl€ment€s entre tous producteurs et
consommateurs de donn€es fonctionnant de fa…on asynchrone, c'est notamment le cas entre le processeur et la
m€moire vive, mais aussi par exemple entre cette m„me m€moire et les r€seaux informatiques ou les disques durs.
Les donn€es mises en cache peuvent „tre par exemple un programme, un bloc d'image ‚ traiter, etc. La m€moire
source des donn€es peut „tre par exemple un disque dur, la m€moire centrale, etc.
La m€moire cache est souvent tr•s co†teuse car choisie afin d'„tre la plus rapide possible, les concepteurs
d'architecture informatique choisissent des technologies haut de gamme. Les plus connues des m€moires caches sont
celles dont le fonctionnement est associ€ ‚ celui des microprocesseurs. En effet, la taille et la performance de ces
caches, qui peuvent „tre externes ou internes, peuvent tr•s fortement influencer la vitesse de traitement des
programmes. Dans le cas des caches internes, la place utilis€e par les transistors dans le wafer conditionne le co†t de
fabrication des processeurs. Dans ce dernier cas, la m€moire cache est particuli•rement utile si l'algorithme ‚
ex€cuter implique des acc•s r€p€titifs ‚ de petites zones de m€moires (un bout de programme qui se r€p•te, un travail
sur une sous-partie d'un fichier son, etc.) ou si le processeur est capable de pr€dire ses besoins futurs en donn€es pour
remplir la m€moire cache en parall•le d'un calcul, de sorte qu'elle contiendra au moment venu une copie locale des
donn€es ‚ acc•s beaucoup plus rapide.
Dénomination
Mémoire cache est la m„me expression que celle utilis€e en anglais, ‚ savoir cache memory[1], qui a remplac€ ‡
slave-memory ˆ, donn€ par son inventeur Maurice Vincent Wilkes en 1965. 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 co†teuses (en termes 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 :
1.1. l'€l€ment demandeur (microprocesseur) demande une information ;
2. 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 (cache hit en anglais). 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 (cache miss) ;
3.3. l'€l€ment fournisseur traite la demande et renvoie la r€ponse au cache ;
4.4. le cache la stocke pour utilisation ult€rieure et la retransmet ‚ l'€l€ment demandeur au besoin.
Si les m€moires cache permettent d'accro‹tre les performances, c'est en partie grŒce ‚ deux principes qui ont €t€
d€couverts suite ‚ des €tudes sur le comportement des programmes informatiques :