Comprendre la mémoire cache
par
Jean-François
Maquiné
La mémoire cache ou mémoire tampon est devenue en quelques années
le compagnon indispensable des microprocesseurs ou disques durs. Quand je dis
indispensable c´est un euphémisme, elle peut carrément transformer un processeur
en fin de carrière en un jeune premier fringant (ex : le Pentium Katmai
transformé en Coppermine).
Mais voilà, il n´existe pas une seule mémoire
cache, mais plusieurs qui se différencient par leur architecture, leur taille ou
encore leur vitesse de fonctionnement. C´est pour vous aider à faire un peu
mieux la part des choses que nous allons voir ces différents
aspects.
C´est
quoi la mémoire cache ?
La mémoire cache a pour fonction d´accélérer les communications
entre un microprocesseur (Pentium, Athlon, ...) et un composant servant à
stocker les données (RAM, disque dur).
Attention, la mémoire cache
n´accélère pas la vitesse de la RAM ou du disque dur, c´est plus subtil et
l´article va vous éclaircir tout ça.

Pourquoi
a-t-on besoin de mémoire cache ?
Un microprocesseur a besoin d´informations pour exécuter ses
instructions. Celles-ci sont situées dans une unité de stockage. Or les
microprocesseurs sont devenus si performants qu´aucune unité de stockage n´est
capable de fournir autant d´informations que le microprocesseur peut en traiter.
La mémoire cache permet en partie de palier à cette
insuffisance.
Comment
ça marche ?
Lorsque le microprocesseur a besoin d´une donnée, il regarde si
elle est disponible dans la mémoire cache, si ce n´est pas le cas, il va la
chercher dans l´unité de stockage et en même temps la dépose dans la mémoire
cache. Ainsi la prochaine fois qu´il aura besoin de cette information, il y
accédera directement par la mémoire cache et donc plus
rapidement.
Quel
composant ce sert de mémoire cache ?
Toute unité de stockage peut servir de mémoire cache. Il suffit
juste qu´elle soit plus rapide que l´unité de stockage principale. Voici trois
exemples :
1 - Microprocesseur -> mémoire cache -> RAM
2 -
Microprocesseur -> mémoire cache -> Disque dur
3 - Microprocesseur
-> mémoire cache -> Internet
Dans le premier exemple, la mémoire
cache sera une mémoire RAM ultra rapide (intégrée au microprocesseur ou mémoire
SRAM par exemple), dans le second exemple, de la mémoire RAM traditionnelle fera
très bien l´affaire, dans le troisième cas, c´est votre disque dur qui fera
office de mémoire cache.
Pourquoi
ça marche ?
Les capacités de stockage de la mémoire cache peuvent être 100
fois (ou plus) plus petites que celles de l´unité de stockage principale. On ne
peut donc pas tout mettre en mémoire cache.
Question : Alors
comment ce fait-il que cela permette d´accélérer les communications entre la
mémoire principale et le microprocesseur et donc la vitesse de traitement du
microprocesseur.
Réponse : Un microprocesseur exécute un programme
fonction par fonction. Chacune de ces fonctions correspond à une ou deux tâches,
rarement plus. Or en général chacune de ces tâches n´utilise qu´une petite
quantité de données qui peut être contenue en grande partie en mémoire
cache.
Question : Mais quand le microprocesseur a besoin d´une
nouvelle donnée, elle ne se trouve pas en mémoire cache, il faut bien aller la
chercher dans l´unité de stockage et cela prend le même temps avec ou sans
mémoire cache.
Réponse : C´est vrai, mais l´intérêt même de
l´informatique c´est d´être capable d´exécuter des tâches répétitives, c´est
d´ailleurs à ça qu´un microprocesseur passe le plus clair de son temps. C´est
donc lorsqu´il voudra accéder une deuxième, troisième, ... fois que le
traitement sera accéléré.
Mémoire
cache en cascade
Je vous ai dit plus haut qu´une mémoire cache est une unité de
stockage plus petite mais plus rapide qui s´interpose entre le microprocesseur
et l´unité de stockage. Rien ne nous empêche de répéter cette opération et
d´ajouter une autre mémoire cache, même une troisième, etc ... On parle dans ce
cas de niveaux de cache.

On peut
associer actuellement jusqu´à trois niveaux de cache (L1, L2, L3) entre un
microprocesseur et la mémoire RAM. C´est souvent le cas des serveurs haut de
gamme. Pour les microprocesseurs équipant les PC ou Apple, on en compte
généralement deux. Voyons chacun de ces niveaux de cache en
détail.
Remarque :
Le L de L1, L2, L3 vient de l´abréviation anglaise
Level qui signifie niveau.
Cache de niveau 1 (ou cache L1) :
Ce
cache a été l´un des premiers à être mis en oeuvre et a plusieurs
particularités. D´une part, il est intégré au microprocesseur et sa taille est
essentiellement fonction de l´architecture du microprocesseur. AMD a toujours
privilégié des caches L1 de grande taille, 64 Ko pour le K6 et 128 Ko pour
l´Athlon, tandis qu´Intel privilégie des caches L1 de petite taille, 32 Ko pour
les Pentium II/III. D´autre part, il est scindé en deux parties de taille égale.
L´une stocke les instructions des programmes, l´autre les données des
programmes. Les autres caches ne font pas cette distinction.
Cache de
niveau 2 (ou cache L2) :
Cette mémoire cache sert d´intermédiaire entre
le cache L1 et la mémoire RAM. Il ne différencie pas données et programmes, il
est moins rapide que le cache L1, mais sa taille est plus importante de 256 Ko à
2 Mo, voire plus pour les années à venir.
Ce cache a subit de nombreuses
évolutions, et se retrouve aujourd´hui intégré dans le microprocesseur.
Toutefois s´il est intégré, il n´est pas imbriqué comme le cache L1. Cela veut
dire que changer la taille du cache L1 implique souvent une modification de
l´architecture du processeur, ce n´est pas le cas du cache L2. Ceci permet de
proposer des microprocesseurs disposant de différentes tailles de cache
L2.
Cache de
niveau 3 (ou cache L3) :
Si ce type de cache est aujourd´hui courant sur des machines haut
de gamme (Sun, HP, IBM, Alpha, ....), dans le monde des PC, il n´a existé qu´un
seul exemple de microprocesseur utilisant une mémoire cache de niveau 3. Il
s´agit du K6-3 de la société AMD. Jusqu´à présent, ce type de cache a toujours
été composé de mémoire SRAM, et implanté sur la carte mère. Sa taille varie de 1
Mo à 8 Mo (valeur généralement constatée mais il n´y a pas de limitation
technique).
Cache
exclusif et inclusif :
Exclusif et inclusif désignent la manière dont vont coopérer les
caches entre eux, en particulier les caches L1 et L2.
Inclusif :
C´est la méthode la plus ancienne et la plus courante. Elle est utilisée sur
tous les microprocesseurs équipant les ordinateurs individuels (sauf Duron et
Thunderbird d´AMD).
Exclusif : Ce mode est apparu pour les
microprocesseurs grand public en 2000 avec les Duron et Thunderbird d´AMD. Les
caches L1 et L2 vont fonctionner comme s´il n´y avait qu´un seul
cache.
Avantages et désavantages :
Avec un cache inclusif ,
lorsqu´une donnée part de la mémoire RAM vers le microprocesseur, elle passe
d´abord par le cache L2 qui la stocke, ensuite par le cache L1 qui la stocke
aussi. Parce qu´une donnée peut se situer à la fois dans le cache L1 et L2, il y
a perte d´espace. Formule du cache inclusif :
Espace cache disponible = Taille (L2+L1) - Taille
L1.
La méthode exclusive résout la redondance d´informations que
génère la méthode de gestion de cache exclusif. Et on obtient la formule
:
Espace cache disponible = Taille L2 + Taille
L1.
La supériorité de la méthode de cache exclusif sur le cache
inclusif est de permettre au microprocesseur de disposer de plus d´espace pour
le cache. Or qui dit plus de cache dit aussi que le microprocesseur a plus de
chance de trouver une information qui lui est nécessaire dans le cache et donc
d´exécuter les programmes plus rapidement. Cependant, pour qu´une même donnée ne
se retrouve pas à la fois dans le cache L1 et L2, il faut comparer en permanence
le contenu du cache L1 et L2. Cela prend du temps.
Au final, le cache
exclusif est donc plus lent que le cache inclusif, et cela est d´autant plus
vrai que le cache est grand. Toutefois cette lenteur toute relative est
rattrapée par l´absence de redondance d´informations entre L1 et
L2.
Organisation
des données dans une cache
La méthode d´organisation permet de définir comment les données
provenant de la mémoire RAM doivent être stockées par la mémoire cache. De la
méthode utilisée dépendent :
- la quantité de mémoire RAM que le cache pourra gérer (avec 256
Ko de cache on ne peut pas gérer efficacement voire pas du tout, selon la
méthode employée, 4 Go de mémoire RAM).
- la rapidité avec laquelle le
processeur pourra accéder à ces données.
- le % de chance qu´a le
microprocesseur de trouver l´information dans le cache. Plus ce pourcentage est
élevé, plus le traitement est rapide.
Direct mapped :
On découpe la mémoire cache en ligne et chacune contient n octet
(n pouvant être égal à 4, 8, ..., 128, ...). Pour être plus clair, prenons 16384
lignes de 32 octets chacune. Ceci nous fait une mémoire cache d´une taille de
16384 * 32 octets = 512 Ko (ici 1 Ko = 1024)

Comment faire à présent pour que notre mémoire cache de 512 Ko
gère 128 Mo. On va affecter à chaque ligne de notre mémoire cache une zone de
mémoire RAM fixe et de taille fixe. Ainsi notre mémoire cache découpe la RAM en
16384 zones et chaque zone à une taille de 128 Mo / 16384 = 134217728 octets /
16384 = 8192 octets.
Avantage :
Lorsque le microprocesseur cherche à savoir si une
information dont il a besoin est dans le cache ou pas, il sait de suite dans
quelle ligne il doit chercher. Il y a une correspondance directe entre mémoire
RAM et mémoire cache.
Inconvénient :
Si le microprocesseur doit
travailler sur toute une zone mémoire correspondant à une ligne de mémoire
cache, alors seule une petite partie des données utilisées pourra être dans la
mémoire cache. Dans notre exemple, les 8192 octets d´une zone RAM ne seront
gérés que par 32 octets. Il est évident dans ce cas que le processeur fera
beaucoup plus appel à la mémoire RAM qu´au cache.
N-way set associative
:
Cette méthode est une évolution de la méthode direct mapped. Au
lieu d´affecter une seule ligne de mémoire cache à une zone, on va en affecter
plusieurs. Le N de N-way set associative correspond au nombre de lignes
utilisées pour une zone de mémoire RAM. Si on reprend notre mémoire RAM de 128
Mo et notre cache de 512 Ko, alors 4 lignes de cache couvrent une zone RAM de
8192*4 = 32768 Octets soit 32 Ko.

Bon d´accord, mais où est la différence entre quatre lignes de
cache indépendantes de la méthode direct mapped et quatre lignes de cache
associées avec la méthode 4-way set associative ? La réponse est la flexibilité.
N´importe quelle ligne de cache peut couvrir la zone mémoire de 32 Ko de
RAM.
Relisez le paragraphe sur l´inconvénient du direct mapped. Une zone
de 8192 octets pourra être gérée par quatre lignes de cache au lieu d´une seule.
Bien sûr, si le processeur a besoin de 32 Ko ou plus d´un coup, on retombe dans
l´inconvénient de la méthode direct mapped, mais ce que fait la méthode n-way
set associative, c´est de diminuer le nombre de fois où ce cas arrivera. En
moyenne, c´est plus efficace.
Inconvénient :
Le processeur devra consulter non pas une ligne
de cache mais quatre pour savoir si l´information recherchée est dans le cache
ou pas.
Fully associative :
Cette méthode s´oppose au direct mapped en ce sens que n´importe
quelle ligne de cache peut gérer n´importe quelle zone de la mémoire RAM. En
même temps, on peut considérer la méthode n-way associative comme un compromis
entre ces deux méthodes.

Avantage :
Elle assure un remplissage maximal de la mémoire
cache. Les deux autres méthodes citées, dans la mesure où leur ligne de cache
couvre une zone déterminée de la mémoire RAM, peuvent ne plus accepter de
données dans le cache, même s´il y a encore de la place. Pour cela, il suffit
que le microprocesseur travaille sur une seule zone de la mémoire RAM (voir
inconvénient de la méthode direct mapped).
Inconvénient :
Il est de
taille ! Comme on n´affecte pas de zone de mémoire RAM à une ligne de cache
(direct mapped) ou à un groupe de ligne (n-way associative), le microprocesseur
n´a pas d´autre choix que de consulter toutes les lignes de cache pour savoir si
l´information qu´il cherche est dans la mémoire cache. La méthode fully
associative est donc à écarter dès que la mémoire cache doit avoir une grande
taille et donc un grand nombre de lignes, ou qu´elle doit travailler à très
grande vitesse comme le doit un cache L1 intégré au
microprocesseur.
Indicateurs
de performance de la mémoire cache
Pour pouvoir comparer les performances respectives de chaque
méthode d´organisation, on utilise deux informations :
Ratio de réussite :
C´est le rapport entre le nombre
total d´accès au cache sur le nombre d´accès ayant permis de trouver
l´information dans le cache. Cette valeur s´exprime en pourcentage. Autrement
dit, c´est la chance qu´a le microprocesseur de trouver une information dans la
mémoire cache.
Plus cette chance est grande, moins le microprocesseur
fait appel à la mémoire RAM et donc plus le traitement d´un programme sera fait
rapidement. Ce ratio mesure l´efficacité du cache. Sans tenter d´entrer dans des
détails de calcul statistique, on considère les ratios suivants pour les
différentes méthodes d´organisation :
Direct Mapped :
60-80%
N-way associative : 80% - 90%
Fully associative : 90% -
95%
remarques :
Les valeurs données le sont à titre indicatif. Si
vous disposez d´informations plus précises, faites le moi
savoir.
Temps de latence :
C´est
le temps moyen que le microprocesseur met pour consulter les lignes de cache.
Autrement dit, c´est le temps qu´il faut au microprocesseur pour savoir si
l´information qu´il cherche est ou n´est pas dans la mémoire cache. En fait, il
s´agit plutôt d´une durée relative car ce qui nous intéresse, c´est la
différence de temps entre chaque méthode.
La formule est : 1 + ((nombre de lignes de cache - 1) /
2)
Temps de latence pour les différentes méthodes
:
Direct mapped : 1
N-way associative : 1 + ((N -1)/2), pour N =
4 on obtient 2,5
Fully associative : On arrondit en disant que le temps de
latence correspond à la moitié du nombre total de lignes de cache soit : nombre
de lignes de cache / 2.
On voit que le temps de latence est fortement défavorable à la
méthode fully associative et cette différence avec les autres méthodes n´est pas
compensée par un meilleur taux de réussite. Cette méthode est à réserver pour
cacher de petites quantités de mémoire, afin que le nombre de lignes de cache
soit le plus petit possible. La méthode direct mapped apparaît par contre comme
un cas idéal. Si la taille des blocs de mémoire RAM que couvre chaque ligne de
cache n´est pas trop importante, elle se révèle assez efficace, d´autant plus
que sa conception (du point de vue électronique) reste simple et donc moins
coûteuse à fabriquer.
Pour conclure ce paragraphe, on peut constater que la mémoire
N-way associative récupère le meilleur des deux autres méthodes. Ceci explique
pourquoi c´est la plus employée actuellement. Mais ce qu´il y a de plus
intelligent dans cette méthode est sa flexibilité. En faisant varier N on peut
soit améliorer le taux de réussite (en augmentant N), soit le temps de latence
(on diminue N). Les valeurs généralement constatées aujourd´hui vont de N = 2 à
N = 16.
Bande passante :
Tout comme la bande passante d'une mémoire, la bande passante du
cache est conditionnée par deux valeurs, à savoir la taille et la fréquence de
son bus externe !
Algorithme
de gestion du cache mémoire.
Après avoir vu l´organisation externe des caches (exclusif,
inclusif), l´organisation interne (direct mapped, N-way associative, fully
associative), il ne nous reste plus qu´à voir comment est gérée la lecture ou
l´écriture des données par le microprocesseur. Pour la lecture, il n´y a qu´une
seule technique, le microprocesseur demande à la mémoire cache une information,
si elle ne la contient pas, il lit directement la mémoire. Pour l´écriture,
c´est différent (voir les techniques write-through et write-back).
Il
existe deux techniques :
Write-through cache :
Toutes les écritures des données allant
du microprocesseur à la mémoire se font aussi dans la mémoire
cache.
Write-back cache :
Toutes les écritures se font dans la mémoire
cache. Les données ne sont écrites en mémoire RAM qu´au moment où celles-ci ne
sont plus utilisées par le microprocesseur et deviennent inutiles à conserver
dans la mémoire cache.
Ces deux définitions ne sont pas longues et leur compréhension ne
pose pas de difficultés majeures. Pourtant, il convient d´y regarder de plus
près. Il existe une subtile mais importante différence entre le write-through et
write-back. Pour désigner la caractéristique principale de ces deux méthodes, on
parle de cohérence ou d´intégrité de la méthode. Write-through est une méthode
intègre alors que write-back ne l´est pas.
Pour bien vous faire
comprendre les subtilités des deux techniques, nous allons voir comment elles
fonctionnent à travers deux exemples.
Disque
dur
Aujourd´hui, tous les disques commercialisés disposent de mémoire
cache, jusqu´à 2 Mo pour les disques IDE et 16 Mo pour les disques SCSI. Cette
mémoire cache sert de tampon entre le disque dur et le microprocesseur. De cette
façon, lorsque le microprocesseur a besoin d´une information située sur le
disque, il lit d´abord la mémoire cache.
Dans le cas d´écriture sur le
disque, l´information est soit écrite en mémoire cache et immédiatement sur le
disque (write-through), soit dans la mémoire cache (write-back) puis sur le
disque dur mais en différé.
Admettons que vous sauvegardiez un document
saisi avec votre traitement texte et que juste après, l´ordinateur s´éteint
brusquement, ou qu´un blocage vous oblige à l´éteindre. Si la mémoire cache de
votre disque dur fonctionne en mode write-through, vous devriez pouvoir récupéré
votre document, s´il fonctionne en mode write-back, votre document est perdu car
les dernières informations contenues dans le cache n´ont pas été écrites sur le
disque dur.
On dit de la technique write-back qu´elle n´est pas intègre,
elle ne vous assurera pas l´intégrité de vos données sur le disque. Pour les
disques durs, on parle plus couramment de write cache au lieu de write-back
cache, mais c´est la même chose.
Multiprocesseur
Prenons deux microprocesseurs P1 et P2. Chacun de ces
microprocesseurs dispose de son propre cache L2. Si le processeur P1 modifie une
zone mémoire, les informations seront d´abord stockées en mémoire cache. Or si
le microprocesseur P2 souhaite y accéder, il devra attendre que le
microprocesseur veuille bien vider la mémoire cache ce qui provoquera l´écriture
dans la mémoire RAM. Il n´existe pas de communication entre les mémoires cache
des deux microprocesseurs.
Ce problème est connu sous le nom de
´cohérence des caches´. Pour le résoudre, on peut soit utiliser la technique
'write-through´ pour les mémoires cache, soit utiliser une architecture
spéciale, c´est-à-dire la façon dont communique chaque composant d´une carte
mère (chipset, microprocesseur, bus de communication, mémoire, ...). C´est
généralement ce dernier choix que font les constructeurs de machine
multiprocesseur.
Pourquoi choisir la méthode write-back si elle a autant
d´inconvénients ? Parce que des composants comme le microprocesseur et le disque
dur atteignent aujourd´hui de tels niveaux de performances que l´utilisation de
la technique de mémoire cache 'write-through´ deviendrait elle-même un goulot
d´étranglement alors que sa fonction est d´améliorer les performances. Mais la
technique write-back a un avantage décisif, elle permet de réduire le nombre
d´écriture qui se fond en mémoire RAM, et libère donc du temps d´accès à
celle-ci pour d´autres composants comme la carte graphique. D´une manière plus
générale, on dit que la technique write-back réduit le flux
d´entrée/sortie.
Résumé
- Une mémoire cache permet d´augmenter la vitesse moyenne de
communication entre un processeur et des composants de stockage, comme la RAM ou
un disque dur.
- On peut utiliser plusieurs caches en cascade. Celui qui
est le plus près du microprocesseur est le plus rapide et le plus petit. Pour un
microprocesseur, on parle de cache L1,L2 et L3.
- Quand on dispose de
plusieurs niveaux de cache, on peut soit les faire fonctionner de façon
indépendante (inclusif) soit de concert (exclusif), comme s´il ne s´agissait que
d´un seul cache.
- Il existe trois méthodes d´organisation des
informations dans les mémoires cache : Direct mapped où chaque ligne de cache
correspond à un bloc déterminé (= fixe de la mémoire RAM) ; Fully associative où
chaque ligne de cache peut gérer n´importe quel bloc de la RAM ; N-way
associative, qui est un compromis des deux autres méthodes. On regroupe N lignes
de cache pour les affecter à un bloc déterminé.
- Le fonctionnement
normal entre une mémoire cache et un composant de stockage (RAM, disque dur)
implique que toute écriture qui se fait dans le cache se fasse aussi en mémoire,
c´est la technique write-through. Pour l´améliorer, on utilise la méthode
write-back (écriture différée).
- la cohérence de cache, c´est quand les
données contenues dans le cache correspondent à celles situées dans le composant
de stockage (RAM, disque dur). Si ce n´est pas le cas, l´intégrité des données
n´est pas assurée.
Exercices
A - Remplacez le X par le nom de l´unité de stockage faisant
fonction de mémoire cache.
Microprocesseur -> X -> Disque dur
Microprocesseur ->
X -> RAM
Microprocesseur -> X -> Internet
B - A votre avis,
quel dessin représente le mieux chacun des modes inclusif et
exclusif.

C - Pour finir voilà une question fil rouge. Si vous avez un
esprit de chercheur, elle risque de vous plaire. La méthode Direct Mapped
présentée est la version de base, mais il existe une évolution qui permet
d´augmenter son taux de réussite. Si vous avez une idée faites vous
connaître.
Une session de rattrapage aura lieu à Noël. Je blague, si vous
m´écrivez, vous recevrez un corrigé type.
Cas
pratique : Le Duron
L´utilisation d´un cache de type exclusif dans les derniers
microprocesseurs AMD n´est pas un hasard. Cela a permit à AMD de résoudre un cas
unique dans l´histoire des microprocesseurs (à ma connaissance). Le Duron
dispose d´un cache L1 (128 Ko) plus grand que son cache L2 (64 Ko).
Nous
allons essayer d´utiliser une partie des connaissances que nous avons acquises
pour voir comment AMD en est arrivé à cette situation et comment il l´a résolue.
Ce faisant, vous devriez mieux comprendre les imbrications entre architecture
d´un microprocesseur, cache L1 et L2.
Le
problème :
Le microprocesseur Duron repose sur le microprocesseur
Athlon commercialisé en septembre 1999. L´Athlon dispose d´un cache L1 de 128 Ko
et d´un cache L2 de 512 Ko au format SEC. Parce que le format SEC (voir le
paragraphe 'mémoire cache de niveau 2´) limite le gain en performances que l´on
peut obtenir en augmentant la fréquence de fonctionnement du microprocesseur, il
devenait urgent d´intégrer la mémoire cache secondaire dans le microprocesseur.
C´était d´autant plus important, qu´Intel venait de le réaliser pour son
microprocesseur Pentium III Katmai, devenant le Coppermine.
Mais voilà,
intégrer le cache L2 signifie ajouter plusieurs millions de transistors, et cela
pose de nombreux problèmes :
- Plus un microprocesseur est gros plus son
coût de production augmente.
- Plus un microprocesseur est gros plus il
dégage de chaleur.
- ....
La solution consiste à diminuer la taille du
cache L2. Mais cette solution pose un nouveau problème : le cache L2 doit être
au moins deux fois plus important que le cache L1. Cette affirmation est vrai
pour un cache de type inclusif, type de cache qu´on a toujours utilisé jusqu´à
présent. On admet généralement que L2 doit au moins satisfaire l´équation taille
L2 = 4 * L1.
On arrive là au coeur du problème qui poussa AMD à utiliser
un cache de type exclusif, à la place du cache inclusif. Et cela est d´autant
plus évident pour le Duron, que pour le Thunderbird qui aurait pu fonctionner
avec un cache L2 de 256 Ko 'j´ai dit fonctionné, pas être performant´.
En
résumé, si AMD avait utilisé la méthode de cache exclusif avec un cache L2
intégré au processeur, inférieur à 256 Ko, le gain aurait été ridicule. Certains
d´entre vous pourraient penser qu´il aurait suffit de diminuer la taille du
cache L1. Ce n´était pas possible. On trouve là une différence importante entre
cache L1 et L2, le cache L1 est imbriqué dans l´architecture du microprocesseur.
Modifier sa taille, c´est modifier l´architecture. Or, cela prend un temps
considérable. Le cache L2, quant à lui, est implanté dans le microprocesseur
mais pas comme le cache L1 dans l´architecture du
microprocesseur.
La solution
:
En utilisant une structure de cache de type associatif, AMD permet
à l´Athlon non seulement d´intégrer un cache L2, mais aussi un léger gain de
performance comparé à l´ancienne version à fréquence égale (également du à une
baisse des temps de latences du fait de la proximité du cache).
Un autre
élément qu´a adopté AMD pour résoudre l´augmentation de la taille du processeur
du à l´intégration du cache L2, c´est de conserver un bus de communication de 64
bits au lieu des 256 bits du cache L2 du Coppermine. On peut prendre comme
élément de comparaison la différence qu´il y aurait entre une autoroute à 64
voies et une à 256 voies. La première prend beaucoup moins de place, mais a un
débit nettement inférieur.
On trouve dans cette dernière remarque, l´une
des principales explications du 'faible´ gain en performance qui est réalisé en
intégrant le cache L2, comparé au gain constaté entre un Pentium III Katmai et
un Coppermine.
Conclusion
Que de technique ! N´hésitez pas à le relire car ce problème de
cache mémoire est au coeur d´une guerre pour l´augmentation des performances.
Pour preuve, Intel a annoncé un cache L2 pour son Pentium IV, deux fois plus
rapide que pour le Pentium III Coppermine et AMD une augmentation importante
allant jusqu´à 8 Mo.
J´espère que les moins techniciens d´entre vous
auront appris quelque chose. Si c´est trop difficile, faites-le moi savoir, j´en
tiendrai compte. Pour les plus techniciens, je vous invite à m´écrire pour tout
conseil et vos arguments seront pris en compte.
J´ai écrit cet article un
peu en avance sur le planning que je m´étais fait, car Marc m´a demandé de faire
une suite à l´article 'Evolution et perspective des microprocesseurs´. Celui-ci
traite essentiellement sur l´architecture des microprocesseurs, le coeur même
des microprocesseurs. Or, la bataille des titans s´est déplacée vers d´autres
terrains. Avec la sortie prochaine du Pentium IV, du Mustang, de la mémoire
DDR-SDRAM, ... il y a matière à vous informer et vous
former.
Tous droits
réservés à Maquiné
Jean-Francois