La Mémoire Cache
Définition
La mémoire cache (antémémoire) à pour but d'améliorer les performances de la mémoire traditionnelle (SDRAM, DDR-SDRAM, RDRAM). La mémoire, de par sa lenteur relative, n'est pas en mesure de délivrer les données aussi rapidement que le processeur est capable de les traiter.
Le principe de la mémoire cache est d'insérer entre le processeur et la mémoire traditionelle, une faible quantité de mémoire très rapide qui stocke les informations les plus récentes ou les plus souvents accédées.
On peut reprendre le même principe pour les disques durs et CD/DVD. Le temps d'accès de la mémoire et de l'ordre de la ns alors que celui du disque dur est de la ms. Les disques durs actuels contiennent une quantité de RAM qui joue le rôle de cache entre mémoire de la machine et le disque.
Caches de niveau 1, 2, 3
Entre processeur et mémoire il existe 3 niveaux de cache. Les caches se sont rapprochés progressivement du die du processeur à mesure que la finesse de gravure diminuait et permettait de placer plus de transistors sur le die. Initialement la mémoire cache se trouvait sur la carte mère.
- Cache de niveau 1 (Level 1)
Actuellement, le cache de niveau 1 se situe à l'intérieur du processeur, il est généralement constitué de deux parties, l'une stockant les instructions et l'autre les données. Sa taille varie de 16 à 128 ko
|
Pentium III
|
- Cache de niveau 2 (Level 2)
Le cache de niveau 2 possède une taille plus grande que le cache de niveau 1 (excepté sur les AMD Duron) et se situe actuellement sur le die du processeur. Auparavant il se situait au niveau de la carte mère. Sa taille varie de 64 à 512 ko.
|
Pentium 4
|
- Cache de niveau 3 : Level 3
Le cache de niveau 3 se situe au niveau du die également ou sur la carte mère. On le trouve surtout sur les machines haut de gamme (Sun, Hp Server, IBM...). Sa taille varie de 1 à 8 Mo.
Processeur |
Cache L1 |
Cache L2 |
Vitesse |
Cache L3 |
Pentium II |
32 ko |
512 ko |
50 % |
aucun |
Pentium III (Katmai) |
32 ko |
512 ko |
50 % |
aucun |
Pentium III (Coppermine) |
32 ko |
256 ko |
100 % |
aucun |
Pentium 4 |
8 ko + 12 ko |
256 - 512 ko |
100 % |
aucun |
Pentium 4 (Extreme Edition) |
8 ko + 12 ko |
256 - 512 ko |
100 % |
1 à 2 Mo |
Itanium |
32 ko |
96 ko |
100 % |
2 ou 4 Mo |
AMD Duron |
64+64 ko |
64 ko |
100 % |
aucun |
AMD Athlon |
64+64 ko |
256 ko |
100 % |
aucun |
AMD Athlon XP |
64+64 ko |
512 ko |
100 % |
aucun |
AMD Athlon 64 |
64+64 ko |
1 Mo |
100 % |
aucun |
Types de caches
Les caches ont pour but de stocker les données ou les instructions utilisées par le processeur. Les données et instructions sont identifiées par leur adresse, le cache peut être représenté sous forme d'une table qui stocke donc une adresse et la donnée présente à cette adresse.
Il existe 3 types de caches :
Type de cache |
Fonctionnement |
Avantage |
Inconvénient |
à accès direct |
une donnée sera toujours stockée au même emplacement dans la table en fonction de son adresse |
rapidité d'accès |
recouvrement des adresses appartenant à la même classe d'équivalence |
associatif |
une donnée peut être stockée dans n'importe quel emplacement de la table quelque soit son adresse |
on peut stocker plusieurs adresses appartenant à la même classe d'équivalence |
temps de recherche dans la table ou complexité du circuit effectuant la recherche en prarllèle |
associatifs à n groupes |
correspondent à une amélioration des caches à accès direct avec plusieurs sous-tables. Un cache associatif à 4 groupes permet de stocker 4 données dont les adresses appartiennent à la même classe d'équivalence |
- on peut stocker plusieurs adresses appartenant à la même classe d'équivalence
- rapidité d'accès
|
aucun |
Composants des caches
Comme nous l'avons vu on utilise la mémoire statique plus rapide que la mémoire dynamique dans la conception des caches :
- Mémoire Async SRAM :
Il s'agit d'une mémoire asynchrone offrant des temps d'accès de 12 à 20 ns. Elle est performante pour des fréquences de bus aux alentours de 33 Mhz.
- Mémoire Sync SRAM :
Il s'agit d'une mémoire synchrone de temps d'accès de 8 à 12 ns efficace pour les fréquences de bus ne dépassant pas 66 Mhz.
- Mémoire PBS RAM (Pipelined Synchronous Burst SRAM)
Elle s'adapte beaucoup mieux aux fréquences de bus élevées (133 Mhz) et son temps d'accès varie de 4 à 8 ns.
Utilité des mémoires caches
Niveau d'accès |
Temps d'accès |
Registre |
2 ns |
Cache L1 |
4 ns |
Cache L2 |
>5 ns |
Cache L3 |
30 ns |
DRAM |
60 ns |
Disque Dur |
12.000.000 ns |
Ordre de grandeur d'accès aux différents caches et mémoires
L'obtention d'une donnée par le processeur consiste :
- premièrement à vérifier si l'adresse que l'on tente d'accéder est présente dans le cache L1, si c'est le cas la donnée associée est retournée au processeur,
- sinon on vérifie si l'adresse est présente dans le cache L2, si c'est le cas la donnée associée est retournée au processeur et est éventuellement copiée dans le cache L1 (cas d'un cache inclusif),
- si ce n'est pas le cas on accède à la mémoire et on recopie la donnée au niveau du cache L1 et/ou L2.
|