• Aucun résultat trouvé

Principe de la m´ethode LRU

Dans le document ARCHITECTUREDES ORDINATEURS (Page 175-180)

8.2 Algorithmes de remplacement

8.2.1 Principe de la m´ethode LRU

La gestion du remplacement des lignes dans les caches associatifs ou associatifs par blocs (o`u l’on consid`ere un ensemble de lignes de mˆeme index) passe par l’utilisation d’une pile (LRU stack). Dans cette pilefigurent les num´eros des lignes class´es suivant la “date” (ou ˆage relatif) de leur derni`ere utilisation. En sommet de pile se trouve le num´ero de la ligne la plus r´ecemment utilis´ee (MRU pourMost Recently Used) et, en fond de pile, la moins r´ecemment utilis´ee (LRU pour Least Recently Used). Lorsque on fait r´ef´erence `a une ligne, son num´ero

“est rang´e” en sommet de pile (figure8.11).

Distance

Age relatif Sommet de pile 1

L

L S

S

Np

Figure8.11 : La pile associ´ee au cache

On d´esigne cette m´ethode par m´ethode LRU. La pile LRU constitue un mod`ele de comportement du cache qui ne pr´ejuge en rien de la r´ealisation ef-fective de la logique de gestion du cache. On peut la r´esumer de la fa¸con suivante :

− lors d’un miss:

– on remplace le contenu de la ligne la plus anciennement r´ef´erenc´ee par celle lue en m´emoire,

– et on met en sommet de pile le num´ero de cette ligne et on d´ecale tous les autres.

− lors d’un hit, on am`ene le num´ero de la ligne r´ef´erenc´ee en sommet de pile.

Exemple 8.5 Consid´erons le cas d’un cache associatif constitu´e de quatre lignes, 1, 2, 3, 4, o`ua,b,c. . . d´esignent les ´etiquettes des adresses r´ef´erenc´ees.

Sur lafigure 8.12, la pile de gestion d’anciennet´e est repr´esent´ee verticale-ment et les quatre lignes du cache horizontaleverticale-ment. On s’int´eresse au com-portement de ce cache apr`es qu’il ait re¸cu la s´equence initiale a, b, c, d. On suppose que les r´ef´erences qui vont se succ´eder forment la s´equenceb,a,e. La premi`ere r´ef´erenceb(´etiquetteb) donne lieu `a unhit. Le num´ero correspondant de la ligne, c’est-`a-dire 2, est amen´e en sommet de pile (figure 8.12).

1 2 3 4

Figure8.12 : Remplacement LRU

Cette m´ethode pr´esente un inconv´enient. En effet, consid´erons la suite d’acc`es aux ´etiquettes suivante : a,b,c,d, e,a, b,c,f. On constate que, pour la deuxi`eme s´equence de r´ef´erences a, b, c, il est n´ecessaire de refaire, pour chacune d’entre elles, un acc`es `a la m´emoire (figure 8.13).

e a b

Figure8.13 : Remplacement LRU

Une politique de remplacement optimale exigerait que l’on ait connaissance du futur. Ainsi, dans le cas ci-dessus, il ne faudrait pas avoir `a remplacera,b etc, alors que la politique LRU l’impose `a chaque nouvelle r´ef´erence.

Introduction d’un r´epertoire image

Une am´elioration1 consiste `a introduire une seconde m´emoire de contenu (´etiquettes) diter´epertoire image(shadow directory) qui contient les ´etiquettes des adresses qui ont ´et´e r´ecemment utilis´ees mais qui ne se trouvent plus dans le r´epertoire (figure 8.14).

Répertoire

Mémoire de contenu

Répertoire image Ligne

Figure8.14 : R´epertoire image

Lorsqu’une nouvelle ligne est mise `a jour dans le cache principal (lors d’un miss, l’´etiquette de la ligne remplac´ee est introduite dans le r´epertoire image.

On distingue deux sortes demiss:

− les miss transitoires pour lesquels la ligne n’est pas dans le cache et l’´etiquette n’est pas dans le r´epertoire image ;

− les miss image pour lesquels la ligne n’est pas dans le cache, mais dont l’´etiquette se trouve dans le r´epertoire image. On peut supposer que cette situation risque de se reproduire tˆot ou tard. On a alors intˆeret `a favoriser les r´ef´erences de l’image au d´etriment de celles donnant desmiss transitoires.

Un bit indique le type demiss. Plusieurs politiques de gestion peuvent ˆetre mises en œuvre. Si l’on reprend l’exemple pr´ec´edent et que l’on choisit d’´ecraser les lignes correspondant `a desmisstransitoires, on obtient la s´equence illustr´ee par lafigure8.15.

R´ealisation mat´erielle de la politique de remplacement LRU On trouve essentiellement trois techniques de mise en œuvre :

1. utilisation de compteurs : chaque compteur, dit compteur d’anciennet´e, est associ´e `a une ligne du cache : si l’on dispose de 2nlignes dans le cache, ces compteurs, au nombre de 2n seront dot´es de n´el´ements binaires. Si une r´ef´erence est satisfaite dans la cache (hit), le compteur associ´e, dont le contenu est suppos´e ´egal `a p, est remis `a z´ero, tandis que tous les autres compteurs dont le contenu est inf´erieur `a p voient leur contenu incr´ement´e.

1Propos´ee par J. Pomerene, T.R. Puzak, R. Rechtschaffen et F. Sparacio, “Prefetching Mechanism for a High-Speed Buffer Store”, r´ef´erenc´e dans [3]

e a b

Figure8.15 : Utilisation du cache image

Compteurs

Figure8.16 : Les compteurs d’anciennet´e

La figure 8.17 donne le sch´ema de principe de la logique de gestion des compteurs.

Figure8.17 : La mise `a jour des compteurs d’anciennet´e

La ligne la plus ancienne est celle dont le compteur contient la valeur 2n−1. Pour la trouver avec un temps de r´eponse suffisament faible, on peut effectuer une recherche associative. Dans le cas o`u le cache n’est pas plein, la nouvelle ligne est charg´ee et son compteur initialis´e `a z´ero, tandis que tous les autres compteurs sont incr´ement´es.

2. utilisation d’une pile cˆabl´ee : cette pile contient les num´eros des lignes dans l’ordre de la plus r´ecente r´ef´erence en sommet de pile (`a gauche sur le sch´ema de lafigure8.18), `a la plus ancienne en fond de pile (`a droite sur le sch´ema). Si les lignes sont au nombre de 2n, on devra disposer

d’une pile de 2n registres denbits. Le num´eropde la ligne est pr´esent´e en sommet de pile et le d´ecalage appropri´e est effectu´e. Celui-ci exige la pr´esence de fonctions de comparaison pour engendrer les horloges de d´ecalage. Ainsi tous les registres d’ordre 0 `a p−1 sont d´ecal´es dans la pile. L’´el´ement le plus ancien se trouvant en “fond de pile”, son d´ecodage identifie imm´ediatement la ligne `a utiliser.

R H

R

H R

H

R R

H

Décodeur Ligne 0

Ligne 1 Ligne 2 Ligne n−1 Sommet

de pile

ET ET ET

Figure8.18 : La pile cˆabl´ee

S’il y a miss, tous les ´el´ements sont d´ecal´es et le num´ero de lignepest inscrit en sommet de pile.

S’il y a hit, il y a d´ecalage partiel, comme indiqu´e sur le sch´ema, et le num´ero ligne pest inscrit en sommet de pile gauche.

3. utilisation d’une matrice d’´etats associ´ee au cache : cette matrice contient des ´el´ements bool´eens not´es 0 et 1. Lorsque une lignepest r´ef´erenc´ee, la lignepde cette matrice est remplie de 1 et la colonnepde 0.

Ligne 0 0 0 φ φ Ligne 1 1 1 0 1 Ligne 2 φ 0 0 φ Ligne 3 φ 0 φ 0 Table 8.1: Matrice d’´etat

De cette fa¸con la ligne la plus r´ecente est donn´ee par la ligne de la matrice contenant le plus grand nombre de 1, tandis que la plus ancienne l’est

par la ligne en contenant le plus petit nombre.

Cette m´ethode est plutˆot adapt´ee aux caches de petite dimension. Dans le cas de caches de grande taille on divise ceux-ci en sous-ensembles

“disjoints” et la politique de remplacement est mise en œuvre sur deux niveaux : un premier g`ere les sous-ensembles, le second l’int´erieur du sous-ensemble s´electionn´e.

Dans le document ARCHITECTUREDES ORDINATEURS (Page 175-180)