27 mémoire cache Flashcards
cache
mémoire très rapide placée entre:
* le microprocesseur (rapide!) et;
* une mémoire (moins rapide)
La cache est présente pour
accélérer les accès mémoire.
La taille d’une cache est plus—– que la
mémoire à laquelle elle est branchée
* La cache contient des —– de données plutôt
que des données individuelles.
La taille d’une cache est plus petite que la
mémoire à laquelle elle est branchée
* La cache contient des blocs de données plutôt
que des données individuelles.
Lorsque le microprocesseur fait un accès
mémoire, on passe toujours par
la cache
en premier.
Il y a 2 scénarios possibles.
L’adresse peut être
—- ou — en cache
Il y a 2 scénarios possibles.
L’adresse peut être
présente(hit) ou absente(miss) en cache
Lorsqu’il y a un cache miss, il faut effectuer les
opérations suivantes:x2
*
trouver un bloc à remplacer
* copier les données de la RAM vers la cache
Quel bloc remplacer?
Prendre le bloc qui a été utilisé le moins récemment,
Least Recently Used (LRU)
Le hit ratio est la probabilité de
retrouver une
donnée dans la mémoire cache.
Deux options lorsque l’on veut écrire en cache
Write-through : écrire les changements dans la RAM
au fur et à mesure
* On s’assure que la cache contienne toujours le même
contenu que la RAM
2.Write-back : écrire le bloc de données en RAM
seulement lorsqu’il doit être remplacé
* Il faut donc se rappeler que le bloc doit être remplacé
* La RAM est mise à jour seulement quand c’est nécessaire
étapes write-trought quand l’adresse mémoire n’est pas dans la cache
trouver bloc à remplacer
copier ram vers cache
écrire donnée en cache
écrire donnée en ram
fini
étapes write-back lecture (cache hit=no)
trouver bloc à remplacer (Least Recently Used)
vérification dirty
si oui copier cache vers ram, puis ram vers cache
si non copier ram vers cache
lire données en cache
fini
étape write back écriture (cache hit=no)
trouver bloc à remplacer (Least Recently Used)
vérification dirty
si oui copier cache vers ram, puis ram vers cache
si non copier ram vers cache
écrire données en cache
bloc devient dirty
fini
En pratique, les microprocesseurs modernes
utilisent plusieurs mémoires cache.
* On progresse de —- vers —–
En pratique, les microprocesseurs modernes
utilisent plusieurs mémoires cache.
* On progresse de plus petit (rapide) vers plus
grande (lente)
La cache L1 est habituellement à l’intérieur du
même circuit intégré que le microprocesseur,
souvent imbriquée dans l’architecture même du
processeur
cache l1, grand ou petit
Petite, car espace sur le microprocesseur limité
(ex: 64Ko par coeur pour les Intel i7)
cache l1, utilisée souvent ou non?
très utilisée
Les ordinateurs modernes ont au moins —-
niveaux de cache et souvent —-
Les ordinateurs modernes ont au moins deux
niveaux de cache et souvent trois
La cache —-est plus grosse que la cache —
La cache L2 est plus grosse que la cache L1
Les caches L2 et L3 sont habituellement à
l’
Les caches L2 et L3 sont habituellement à
l’extérieur du microprocesseur (mais de plus en
plus à l’intérieur). Indépendantes de l’architecture
du microprocesseur lorsqu’à l’extérieur
L2 et L3 sont moins rapide que—, mais environ 10
fois plus rapide que la —-
L2 et L3 sont moins rapide que L1, mais environ 10
fois plus rapide que la mémoire
Décrivez les étapes nécessaires pour que le microprocesseur
écrive une donnée en mémoire si:
* l’adresse mémoire n’est dans aucune cache;
* il y a deux niveaux de cache (L1 et L2);
* le système utilise la stratégie write-through
- « miss » en cache L1
- trouver bloc à remplacer en cache L1
- copier bloc de cache L2 à L1
- « miss » en cache L2
- trouver bloc à remplacer en cache L2
- copier bloc de RAM à L2
- écriture en cache L1
- écriture en cache L2
- écriture en RAM
Mémoire virtuelle vs cache
Cache
* accélérer la vitesse d’accès mémoire
* Mémoire virtuelle
* augmente la “quantité perçue” de mémoire disponible
* indépendant de l’architecture
Où est la table des pages?
En mémoire
Combien d’accès mémoire doit-on faire pour
accéder à des données?
2: un pour accéder à la table des pages, un pour
accéder aux données
Que faire pour éviter les accès mémoires
doublés?
On utilise une « cache » spécialisée: le TLB!
fonctionnement Traduction d’adresse en mémoire paginée
En mémoire paginée, il faut accéder à la table de
pages afin de traduire l’adresse virtuelle en
adresse physique.
* Comme la table de page est souvent volumineuse,
elle est elle-même en mémoire
* Il faut donc faire deux lectures de la mémoire pour
aller chercher une instruction, ce qui est très long!