Vous êtes sur la page 1sur 21

La mmoire cache

Eduardo Sanchez Laboratoire de Systmes Logiques Ecole Polytechnique Fdrale de Lausanne

Organisation de la mmoire
processeur registres c a c h e

mmoire

dispositifs I/O

taille: vitesse: largeur de bande (MB/sec):

200B 5ns 4000-32000

64KB 10ns 800-5000

32MB 100ns 400-2000

2GB 5ms 4-32

Page 2

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

adresse

processeur
donnes

mmoire contrleur de DMA


adresse

donnes dispositif buffers

bus du systme

Page 3

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Principe de localit (locality)


Localit spatiale: le code dun programme sexcute toujours lintrieur de petites zones rptes de mmoire (des blocs correspondant des boucles ou/et des sous-programmes) Localit temporelle: les blocs sexcutent en squences trs proches (il y a plus de chances daccder une position de mmoire utilise il y a 10 cycles qu une autre utilise il y a 10000 cycles)

Page 4

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Principe de la mmoire cache


Mmoire trs rapide, mais de petite taille, place entre le processeur et la mmoire principale Le processeur essaie daccder un mot dabord dans la cache, avant de passer la mmoire principale. En cas dchec (miss), le mot est gard dans la cache pour un accs futur. En cas de succs (hit), la mmoire principale nest pas accde La frquence des succs (hit rate) dpend de la taille de la cache et de lalgorithme excut par le contrleur de cache

Page 5

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

adresse

rpertoire processeur contrleur de la cache cache mmoire

donnes

Page 6

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Importance de la frquence de succs


Si les accs la mmoire demandent 3 wait states et la frquence de succs est de 90%, le nombre moyen de waits states est de 10% x 3 = 0.3 wait state / cycle de mmoire la chute de la frquence de succs 80% fait doubler cette valeur Si une instruction demande 2 cycles sans wait state et 5 cycles avec, et si la frquence de succs est de 80%, lexcution de 10 instructions demande: (10 x 0.8 x 2) + (10 x (1 - 0.8) x 5) = 26 cycles dont 16 sont faits avec la cache. Cest--dire: le processeur passe 40% du temps (10/26) chercher 20% du code: pendant ce temps le bus du systme est occup par les transferts entre le processeur et la mmoire
Page 7 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Le rpertoire de la cache
Le rpertoire de la cache a deux fonctions:
indiquer si le mot accd par le processeur se trouve dans la cache (signal match) si cest le cas, indiquer ladresse de la cache o se trouve le mot

Le rpertoire de la cache peut donc tre vu comme une mmoire associative: on parle alors dune mmoire cache compltement associative Dans ce cas, un mot de la mmoire principale peut tre stock nimporte o dans la cache

Page 8

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

adresse physique

comparateur registre 0 comparateur registre 1 comparateur registre 2 encoder match

adresse de la cache

comparateur registre 2N - 1

M >> N
Page 9 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Cache associative par ensembles


La mmoire principale est divise en ensembles et la cache est compltement associative pour chaque ensemble Ladresse physique est divise en deux parties:

les bits de poids faible contiennent ladresse de lensemble (adresse de la cache): toutes les adresses physiques qui partagent ces bits seront stockes la mme position dans la cache les bits de poids fort forment une tiquette (tag), comparer avec la valeur stocke dans le rpertoire pour lensemble slectionn

Plus rapide que la cache compltement associative: la cache est accde sans attendre la rponse du rpertoire Au moment du dmarrage, le contenu de la cache est quelconque. Chaque ligne de la cache contient un bit de validit ( valid bit): il est mis 1 si le contenu de la ligne est valable
Page 10 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

adresse physique

tiquette IN

adresse de lensemble

rpertoire

OUT adresse de la cache

comparateur

match
Page 11 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Associativit plusieurs voies


Dans une cache associative par ensembles, un mot de la mmoire principale peut tre stock une seule position dans la cache. Ce type de cache est appel galement direct-mapped. Si le processeur accde deux mots dont les adresses partagent les bits de poids faible (ladresse de lensemble), un chec arrive Ce problme est rsolu dans une cache associative par ensembles N voies: un mot de la mmoire principale peut tre stock en N positions diffrentes de la cache En gnral:
doubler lassociativit implique une diminution de 20% de la frquence dchec doubler la taille de la cache implique une diminution de 69% de la frquence dchec
Page 12 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

adresse physique adresse de la cache

tiquette

v a l rpertoire i d

cache

v a l rpertoire i d

cache

voie A

voie B

Page 13

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Succs en lecture

rpertoire processeur contrleur de la cache cache mmoire

Page 14

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Echec en lecture

rpertoire processeur contrleur de la cache cache mmoire

Page 15

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Succs en criture

rpertoire processeur contrleur de la cache cache mmoire

Page 16

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Echec en criture

rpertoire processeur contrleur de la cache cache mmoire

Page 17

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Algorithmes dcriture
Write-through: la mmoire principale est toujours modifie lors dun cycle dcriture, quil sagisse dun succs ou dun chec Copy-back ou write-back: lcriture se fait seulement dans la cache. Pour garder la cohrence avec la mmoire principale, on peut crire dans la mmoire principale toute ligne quon enlve de la cache avec une information valable. Pour viter des critures inutiles, on ajoute un bit par ligne, le dirty bit, pour indiquer que le contenu de la cache est diffrent de celui de la mmoire Dans tous les cas, on peut amliorer le temps dcriture en ajoutant un buffer dcriture (write buffer): les donnes sont crites dans ce buffer et le contrleur de cache se charge de les envoyer par la suite dans la mmoire
Page 18 Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Algorithme deffacement
Mthode LRU (least recently used): chaque ligne de la cache (mme ensemble mais voies diffrentes) possde des bits pour indiquer lordre dutilisation des voies. Pour une cache 4 voies il y a 24 possibilits (4!): il faudrait 5 bits de codage au minimum. Pour une cache 16 voies il faudrait 45 bits... Mthode NLU (not last used): on ncrit pas dans la dernire voie accde. Une RAM stocke cette information pour chaque ligne Remplacement alatoire

Page 19

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Taille de la ligne
Une ligne (ou bloc) de cache est la plus petite portion de la cache avec une tiquette unique Les raisons pour avoir des lignes plus dun mot sont:
avoir une RAM de rpertoire plus petite que la RAM de cache avoir des transferts multi-mots (burst) plus rapides

Une ligne possde normalement entre 2 et 8 mots Pour rduire le temps de mise jour lors dun chec, le bus entre la mmoire et la cache est gnralement plus large que celui entre la cache et le processeur

Page 20

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne

Position de la cache
Cache physique: la cache est place aprs le gestionnaire de mmoire virtuelle (MMU): elle reoit une adresse physique Cache logique: la cache est place avant le gestionnaire de mmoire virtuelle (MMU): elle reoit une adresse virtuelle. Ce cas demande une cache moins rapide. Mais une adresse physique peut tre traduite plusieurs adresses logiques: si elles sont toutes dans la cache, lcriture dans lune laisse les autres inchanges

Page 21

Eduardo Sanchez Ecole Polytechnique Fdrale de Lausanne