• Aucun résultat trouvé

R´ealisation des caches

Dans le document ARCHITECTUREDES ORDINATEURS (Page 169-175)

8.1 Ant´em´emoire ou m´emoire cache

8.1.3 R´ealisation des caches

Caches purement associatifs

Le principe utilis´e dans la r´ealisation de tels caches est le suivant : l’adresse

´emise par le processeur est divis´ee en deux parties : en poids fort, une partie dite´etiquetteet, en poids faible, l’adresse de l’information dans la ligne (figure 8.3).

Etiquette

Adresse dans la ligne Adresse émise

Figure8.3 : Constitution de l’adresse

Lors d’un acc`es `a la m´emoire, l’´etiquette est compar´ee `a l’adresse rang´ee dans la partie “contenu” (our´epertoire) de la m´emoire associative (paragraphe 7.7). S’il y a ´egalit´e, le processeur acc`ede directement `a l’information qui se trouve dans le cache. Cette r´ealisation purement associative n’est g´en´eralement pas mise en œuvre sous cette forme `a cause de son coˆut. En effet, si l’on suppose que le champ ´etiquette occupenbits, la r´ealisation d’un tel cache demanderait un comparateur “nbits” pourchacunedes lignes du cache (figure8.4).

Exemple 8.1 (Le cache du TMS320C30)

Figure8.4 : Cache associatif

Le microprocesseur TMS320C30 de chez Texas Instruments a ´et´e con¸cu tout sp´ecialement pour les applications de traitement de signal. Il dispose d’un cache instructionassociatif de deux lignes. Chaque ligne est constitu´ee de 32 mots de 32 bits, chaque mot ´etant accompagn´e d’unbit de pr´esence P (figure 8.5).

Figure8.5 : Cache associatif du TMS320C30

Les adresses d’instructions sont sur 24 bits. La m´emoire d’adresse contient donc des mots de 19 bits appel´esSegment Start Address Registers. Le cache ne sert qu’en lecture. La gestion du cache distingue deux cas demiss:

− LeSegment Misscorrespondant au cas dumiss´evoqu´e pr´ec´edemment et pour lequel il est indispensable de recharger toute la ligne. Tous les bits

P sont mis `a 1 ;

− LeWord Misspour lequel l’adresse de la ligne est pr´esente dans le cache, mais pour lequel le bit de pr´esence est `a 0. Seul un mot est alors charg´e dans le cache.

Caches `a acc`es direct

On s’attache, dans les caches `a acc`es direct, `a limiter le nombre de compara-teurs. L’´etiquette est divis´ee en une partieindexet une partieadresse-´etiquette ou´etiquette. L’index fournit une entr´ee dans le r´epertoire. Le contenu de cette entr´ee est compar´e `a la partie ´etiquette de l’adresse ´emise.

Etiquette

Index

Comparateur Répertoire

Figure8.6 : Cache `a acc`es direct

Ce type de cache ne n´ecessite qu’un seul comparateur. Par contre, le d´ecodage de l’index introduit un retard de propagation suppl´ementaire. Nous allons illustrer ce principe par l’exemple du Motorola 68020.

Exemple 8.2 (Cache du 68020) Le microprocesseur Motorola M68020 poss´edait un cache de 256 octets. Un index sur 6 bits permettait d’adresser la m´emoire de contenu de 26= 64 entr´ees. La m´emoire d’informationpermettait de ranger 64 mots de 32 bits (figure 8.7).

Si, au cours d’une op´eration de lecture, l’information recherch´ee n’est pas trouv´ee dans le cache, il y a transfert d’une ligne de quatre octets de la m´emoire vers le cache. On notera, sur la figure 8.7, que la comparaison s’effectue sur 25 bits et non sur 24. En effet, certains acc`es autoris´es en mode de travail superviseurne le sont plus en mode de travailutilisateur. L’indicatif du mode (bit U/S sur le sch´ema 8.7) dans lequel se trouve le processeur, est pris en compte par le comparateur pour d´eclencher un ´eventuel d´eroutement (excep-tion) cons´ecutif `a un acc`es non autoris´e.

&

Adresse sur 32 bits

Contrôle cache

25 25

Sélection de l'octet dans la ligne

Bit de validité

Contrôle d'autorisation d'accès 64 entrées

U/S

Comparateur

32

Ligne Informations

(Données et instructions) V

Etiquette (24) Index (6) 2

Répertoire (Etiquettes)

24 bits

Figure8.7 : Cache `a acc`es direct du M68020 Caches associatifs, ou `a acc`es direct, par blocs

Cette r´ealisation conjugue les deux m´ethodes d´ecrites pr´ec´edemment. Elle revient `a utiliser plusieurs caches `a acc`es direct mont´es en parall`ele. Elle est associative dans le sens o`u les informations adress´ees dans toutes les lignes sont compar´ees simultan´ement `a la partie ´etiquette de l’adresse. L’ensemble des lignes de mˆeme index sera d´esign´e par rang´ee. Le nombre de blocs sera appel´eassociativit´e(associativity).

Chaque rang´ee d’un cache associatif par blocs constitue donc elle-mˆeme un cache associatif.

Exemple 8.3 (Cache du I80486) Le cache interne des microprocesseurs In-tel I80486 est constitu´e de 4 blocs (associativit´e ´egale `a 4) de 128 lignes de 16 octets (figure8.9).

Caches en sous-blocs

Cette r´ealisation ressemble beaucoup `a la r´ealisation pr´ec´edente. La diff´erence r´eside dans l’existence d’une seule m´emoire d’´etiquette pour un mˆeme ensemble de lignes.

Comparateur

Figure8.8 : Cache associatif par blocs

Etiquette Offset

Figure8.9 : Cache interne du microprocesseur I80486

La logique de contrˆole utilise `a la fois les ´etiquettes et les bits de validit´e associ´es `a chaque ligne.

Exemple 8.4 (485Turbocache) Le cacheexterne que l’on trouvait sur les PC ´equip´es de I80486 (485 Turbocache) ´etait un cache associatif `a deux blocs.

Chaque ligne comportait 16 octets et le nombre de lignes ´etait de 4096 (index de 12 bits, ´etiquette sur 16 bits).

Etiquette Offset

0 V

m p

V

Logique de contrôle Index

V V

V V

2p−1

2m−1

Figure8.10 : Cache en sous-blocs Remarques

− Dans le sch´ema illustrant le cache `a acc`es direct, un bit suppl´ementaire est situ´e dans la m´emoire de contenu, le bit V dit bit de validit´e(Valid Bit). Son rˆole est le suivant : l’´egalit´e entre l’adresse ´emise par l’unit´e centrale et celle rang´ee dans la m´emoire de contenu n’est `a prendre en compte que si l’on est sˆur que l’information cherch´ee est bien la bonne.

Or, ceci peut ne pas ˆetre vrai dans l’un des cas suivants :

– lors d’une op´eration d’´ecriture effectu´ee pour une entr´ee/sortie en acc`es direct m´emoire, o`u seule la m´emoire principale est modifi´ee, il y a discordance entre le contenu du cache et celui de la m´emoire.

On remet donc `a z´ero les bits de validit´e correspondants pour ´eviter tout acc`es ult´erieur au cache.

– `a l’initialisation de la machine, le contenu du cache est quelconque, et on ne doit pas y acc´eder.

– lors de la mise en œuvre des politiques de gestion Write Back ou Posted Write pour lesquelles nous avons vu que les informations pouvaient ne pas ˆetre identiques dans le cache et dans la m´emoire.

− Les processeurs dot´es d’une architecture interne de type Harvard pr´esentent soit deux caches, l’un recevant les instructions, l’autre les donn´ees, soit un seul cache instructions. En effet, l’efficacit´e d’un cache reposant sur le principe de localit´e, il est raisonnable de penser que la no-tion de voisinage s’applique s´eparement aux instrucno-tions et aux donn´ees.

− Les r´ealisations les plus courantes font ´etat de caches dont la taille peut aller de 64 mots (microprocesseurs sp´ecialis´es avec cache int´egr´e), `a plusieurs Kilo-mots, et mˆeme M´ega-mots sur trois niveaux, un interne et deux externes ou deux internes et un externe (cas des Intel Xeon).

Dans le document ARCHITECTUREDES ORDINATEURS (Page 169-175)