|
|
|
|
TUTORIEL ALGO/METHODES |
|
|
|
Expliquez-moi... La mémoire cache |
Description du mode de fonctionnement de cette mémoire nécessaire à une utilisation optimale du processeur. Structure, méthodes, règles.
(17/11/2005) |
|
Nous savons tous ce à quoi
correspondent les deux principaux types de mémoire d'un ordinateur
: ROM et RAM. La ROM (Read-Only Memory), ou "mémoire morte",
contient les données nécessaires au démarrage de l'ordinateur,
à commencer par le BIOS et l'amorce. Comme son nom l'indique,
elle ne peut pas se modifier. La RAM (Random Access Memory),
ou mémoire vive, quant à elle, contient les données volatiles
envoyées par le système d'exploitation. Elle est beaucoup plus
rapide que la ROM.
La mémoire cache (ou "cache"), qui a fait son apparition
vers les années 80, est quant à elle placée près du processeur,
voire greffée sur ce dernier. Étant encore plus rapide que la
RAM, le processeur s'en sert pour stocker les données auxquelles
il accède particulièrement souvent, réduisant d'autant le
temps de latence entre deux requêtes. La mémoire fait
office de tampon entre le processeur et la mémoire vive.
Si cette
mémoire est jusqu'à 10 fois plus rapide que la RAM, elle
a cependant une capacité beaucoup plus limitée, notamment pour
une question de prix. Pour disposer d'un système équilibré,
il faut donc combiner différents types de mémoires plus ou moins
rapides et onéreuses (en prenant également en compte les temps
d'accès et tant de cycle).
Il peut y avoir de nombreux caches pour un seul processeur,
chacun pouvant se spécialiser dans un jeu d'instruction particulier.
Un cache peut même être placé entre le processeur et un autre
cache, si cela peut servir les performances. Ainsi, plus
le processeur est rapide, plus il profitera d'un grand nombre
de mémoires caches - sans quoi ses capacités ne pourront
être exploitées au mieux.
Concrètement, la mémoire cache fonctionne de la même manière
que le cache d'un navigateur Internet : si le cache dispose
de l'information demandée, il la fournit au processeur ; autrement,
il récupère cette information envoyée par le fournisseur original,
et la stocke pour une utilisation à venir.
Par ailleurs, si le processeur souhaite écrire une donnée en
mémoire, il vérifie d'abord si l'adresse de la mémoire est dans
le cache, par un système de comparaison interne. S'il la trouve,
il écrit dans la mémoire cache, sinon celle-ci crée une nouvelle
entrée dans laquelle elle stocke la donnée, en la recopiant
depuis la mémoire principale
Parce qu'il n'offre pas autant d'espace que la RAM, le cache
ne peut pas créer une entrée pour l'ensemble des données
stockées par cette dernière. Elle doit donc à chaque création
d'entrée faire un choix : décider quelle donnée cachée
est la moins susceptible d'être utilisée dans les prochains
cycles du processeur.
Plusieurs méthodes ont été développées au fil des années pour
décider efficacement. L'une des plus logiques consiste à compter
le nombre d'utilisations d'une entrée, et à évincer la
moins utilisée au moment de la création d'une nouvelle entrée
- c'est la méthode LFU, pour Least Frequently Used. Pareillement,
la méthode LRU (Least Recently Used) visera l'entrée
la plus anciennement utilisée.
D'autres éléments peuvent également entrer en compte dans ces
choix. Tout d'abord, le "prix", ou disponibilité :
si une entrée vieille ou peu utilisée a été difficile à obtenir
lors de sa création, ne vaut-il mieux pas en évincer une moins
"chère" ? La taille : évincer une entrée qui prend beaucoup
de place permettra de stocker plusieurs petites entrées. Plus
simplement, certaines entrées peuvent simplement avoir une date
d'utilisation maximale, après quoi l'entrée est supprimée sans
plus de test.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Il faut également faire la correspondance d'écriture entre cache
et RAM : une entrée créée dans le cache profitera également
d'être stockée en RAM, ne serait-ce que pour toujours exister
en cas d'éviction du cache.
Là encore, plusieurs méthodes existent : copier l'entrée en
RAM dès qu'elle est créée dans le cache, ou seulement quand
elle en est évincée ? La question n'est pas anodine, car étant
donné le temps d'accès de la RAM, la première méthode requiert
deux accès à cette mémoire dix fois plus lente...
D'autres méthodes consistent à copier les données du cache périodiquement,
ou à les stocker dans un tampon afin de copier plusieurs entrées
en même temps (et ainsi économiser en temps d'accès du bus). |
|
|
|
|
|
Quand achetez-vous le plus en ligne ? |
|
|
|
|
|
|
|
|