• Aucun résultat trouvé

Hiérarchie de Mémoires et Principe du cache

N/A
N/A
Protected

Academic year: 2022

Partager "Hiérarchie de Mémoires et Principe du cache"

Copied!
7
0
0

Texte intégral

(1)

Hiérarchie de Mémoires et Principe du cache

 Hiérarchie de Mémoires

Taille

1ns 3ns 5-10ns Vitesse

 Technologie

Registres et caches : SRAM Mémoires RAM : DRAM

Exemples

PII : (CPU+L1) | Cache L2 | Mémoire P4 : ((CPU + L1) + L2) | Mémoire

Nehalem : ((Core + L1 + L2) + L3)) | Mémoire

Principe du Cache

Le principe de base de la technologie de cache est basé sur la localité des références. Les programmes tentent dans la majorité des cas d’accéder uniquement une partie d’adressage. La notion de cache inclut deux aspects : - Localité temporelle : si une zone est référencée, elle a des chances d’être

référencée à nouveau dans un futur proche.

Exemple de proximité temporelle : dans une boucle simple, à chaque itération accès aux mêmes instructions.

- Localité spatiale : si une zone est référencée, les zones voisines ont des chances d’être référencées dans un futur proche.

Exemple de proximité spatiale : dans un bloc simple, chaqueinstruction sera accédée l’une après l’autre

REGISTRES CACHES RAMs Mémoire

Tertiaire

(2)

Liaison : Processeur – Cache - Mémoire

Le cache contient des copies (blocs) de la mémoire principale. Quand le processeur veut lire/ecrire un mot en MP, une vérification est faite en consultant le tag du cache pour savoir si le mot cherché est en cache ou non

- Si oui (hit), le mot est transféré du cache au processeur

- Si non (miss), le bloc de la MP contenant le mot désiré est chargé en cache.

Trois éléments nécessaires pour la mise en œuvre du mécanisme du cache au sein d’une machine mono ou multiprocesseur.

- Fonction de correspondance entre le cache et la mémoire principale - Algorithme de remplacement (pour le choix du bloc cache à remplacer) - Stratégie de mise à jour de la MP si le cache est modifié

1. Fonctions de correspondance

La fonction de correspondance permet de déterminer l’emplacement des blocs de la MP dans le cache

Quand on fait référence à un bloc du cache, 2 cas se présentent : - Si sa copie se trouve en cache ceci est indiqué par un ‘hit’

- Si non par un ‘miss’, ce qui oblige le système à transférer le bloc cherché de la MP vers le cache

La présence (hit) ou l’absence (miss) du bloc cherché dans le cache est déterminée par la comparaison du tag de l’adresse MP avec le tag du cache. Plusieurs méthodes de correspondance (association) sont utilisées :

Processeur Cache

MP Internal Tag

Registers

(3)

Correspondance directe (Direct Mapping)

Dans cette technique, chaque bloc MP sera assigné à un bloc de cache spécifique selon la formule suivante

i = j mod C i : N° du bloc du cache J : N° du bloc MP

C : Nombre de bloc du cache

Cette technique interprète l’@ MP comme suit :

Tag Colonne Word

Tag (ligne) : Identifie la ligne de la MP ou se trouve le bloc cherché Colonne : Identifie la colonne de la MP ou se trouve le bloc désiré

Word: Indique le déplacement (offset) dans le bloc (pour l’accès au mot).

Exemple : Mémoire de taille : 128 K mots = (2 7 * 2 10) = 2 17 mots Cache de taille : 4 k mots = (2 2 * 2 10) = 2 12 mots Bloc MP = Bloc Cache = 32 mots

Nombre de colonnes de la MP = nombre de colonnes du cache Nombre de colonnes = 4 K mots / 32 mots = 128 colonnes Nombre de lignes MP = 128 k / 128 = 212 / 27 = 25 = 32 Lignes

0 1 127

0 1 127

1 2 0

Le processeur génère l’adresse mémoire suivante

Tag = 217/ 212 = 25, Colonne = 212 / 25 =27, Word = 25

5 bits 7 bits 5 bits

Cache Tag MP

0 1 2

31

(4)

Correspondance Associative par Ensemble (Set associative) Cette technique regroupe les blocs du cache par ensemble et la

correspondance permet à un bloc MP d’être présent dans un bloc d’un ensemble donné du cache.

La correspondance est réalisée selon la formule suivante Is = j mod S Is : N° du set qui doit contenir le bloc mémoire J : N° du bloc de la MP

S : Nombre de sets du cache

L’adresse dans cette technique est interprétée de la manière suivante:

Tag Set Word

Tag (ligne) : Identifie la ligne de la MP ou se trouve le bloc cherché

Set : Indique le N° du set du cache susceptible de contenir le bloc cherché de la MP Word: Indique le déplacement (offset) dans le bloc (pour l’accès au mot)

Exemple : 2-way Set Associative

Considérons les mêmes paramètres discutés auparavant.

Dans ce cas le cache sera partagé en 64 Sets de 2 blocs chacun La mémoire principale sera partagée : 64 lignes * 64 Colonnes (blocs) 0 1 63

Set 0 Set 1 Set 63

0 1 0

2 2 1

L’adresse générée par le processeur sera comme suit 6 bits 6 bits 5 bits

MP

Cache Tag Cache Tag

(5)

Correspondence associative Complete (fully Associative)

Cette technique permet à un bloc de la MP d’être chargé dans n’importe quel bloc du cache.

L’adresse mémoire est interprétée de la manière suivante :

Tag Word

Inconvénient : Nécessite une logique complexe pour déterminer le bloc du cache qui doit être utilisé lors du chargement du bloc mémoire

2 Algorithmes de remplacement

Quand le processeur génère une adresse mémoire qui n’existe pas dans le cache, un nouveau bloc doit être chargé dans le cache. Si les emplacements du cache susceptibles de recevoir le bloc mémoire ne sont pas libres, on doit décider lequel de ces blocs doit être détruit.

Cette décision peut être un facteur déterminant dans les performances du système. Plusieurs stratégies sont utilisées.

- LRU (Least Recently Used) : Remplace le bloc le plus ancien (le moins récemment utilisé)

- LFU (Least Frequently Used) : Remplace le bloc le moins fréquemment utilisé

- FIFO (First-In First-Out): Remplace le premier bloc entré dans la file d’attente

- Random : Sélectionne un bloc au hasard Ces algorithmes sont implémentés en Hardware.

(6)

3. Stratégies d’écriture (Pour la cohérence d’information

)

Avant de remplacer un bloc du cache il est nécessaire d’examiner s’il n’avait pas été modifié. Le bloc du cache est une copie de la MP et par conséquent, ils doivent contenir les mêmes informations.

- Si le bloc du cache n’avait pas été modifié, sa mise à jour n’est pas nécessaire avant son remplacement.

- Si le bloc du cache avait été modifié (au moins par une opération d’écriture), sa mise à jour est nécessaire avant son remplacement.

Deux stratégies sont utilisées pour s’assurer que les contenus des deux blocs sont cohérents

Write-Through : A chaque opération d’écriture dans le bloc du cache, le bloc mémoire correspondant est mis à jour.

o Avantage : le cache et la mémoire sont toujours consistants

o Inconvénient : Des accès mémoires en plus

Write-Back : Le bloc mémoire est mis à jour uniquement quand le bloc du cache modifié va être remplacé (écriture du bloc cache directement dans le bloc mémoire avant son remplacement).

o Avantage : Plus rapide : les écritures suivent la vitesse du cache.

o Inconvénient : les contenus du cache et de la mémoire ne sont pas toujours consistants

(7)

Exemple de gestion de cache

Yes NO

word is word is not in cache in cache

Processor generates address :adr

Decompose adr —> r , c r = adr div (nbr-colonnes * blocSize)

c = adr mod [(nbr-colonnes * blocSize)]div blocSize

Tag(c) = r ?

Fetch bloc MP(r,c) Store in MC(c)

Set Tag(c) = r Extract Word from bloc

MC(c)

Return requested Word to processor

Références

Documents relatifs

[r]

ARBRE SANS FEUILLE arbre sans feuille.. arbre

On peut l’utiliser en cache-pot ou le remplir d’un peu de terre pour y planter des graines à condition d’en tapisser l’intérieur de

La réalité des origines migratoires comme catégories de pratique chez les enfants amène aussi à intégrer cette variable dans l’analyse des socialisations genrées : l’épisode

Retrouve les objets dans l’image et

Retrouve les objets dans l’image et

Retrouve les objets dans l’image et

Retrouve les objets dans l’image et