Vous êtes sur la page 1sur 22

Université Alger 1

Faculté des sciences


Département Informatique
2ème année Master RSE
2022/2023

Architectures parallèles
« Cohérence de cache»
1

Dr HALFAOUI Fadhila
Super-calculateur

 Un ordinateur (super-ordinateur) comprenant des centaines ou des milliers de


processeurs ou de microprocesseurs autonomes et indépendants qui
calculent en parallèle. Architecture intégrée, pouvant souvent être vue
comme un seul OS.
 MPP: “Massively Parallel Processing

Avantages:
• Permet de mettre en parallèle les ressources de plusieurs ordinateurs souvent
identiques afin de réduire le temps nécessaire afin d’effectuer une tâche ou un
calcul complexe.
Limites:
• Le coût!!!
• L’espace.
Définitions

 Une mémoire cache ou antémémoire est une mémoire qui enregistre


temporairement des copies de données provenant d'une source, afin de diminuer
le temps d'un accès à la mémoire.

Trois catégories différentes de cache :

 Le cache L1 est généralement intégré à la puce du processeur et sa taille est la plus


petite, allant de 8 Ko à 64 Ko. Une mémoire la plus rapide à lire par la CPU. Les CPU
multi-core auront généralement un cache L1 distinct pour chaque core.

 Les caches L2 et L3 sont plus grands que L1, mais leur accès est plus long. Le cache
L2 fait parfois partie de la CPU, mais constitue souvent une puce séparée entre la
CPU et la RAM.
Cohérence de cache
 La cohérence du cache est la cohérence des données de ressources
partagées, qui sont finalement stockées dans plusieurs caches locaux. Des
problèmes peuvent survenir avec des données incohérentes lorsque les clients
conservent des caches de ressources de mémoire communes,
particulièrement courantes pour les processeurs dans les systèmes
multiprocesseurs.
 Chaque processeur possède une mémoire cache distincte dans un système
multiprocesseur à mémoire partagée. Il est susceptible d'avoir de nombreuses
copies des données partagées : une copie dans la mémoire principale et une
dans le cache local de chaque processeur.
 Si l'une des copies des données change, les autres copies doivent refléter le
changement.
Cohérence de cache

 La cohérence de la mémoire est l'un des éléments clés des systèmes


multiprocesseurs qui partagent la même mémoire et qui utilisent une
hiérarchie de caches. Grâce à lui, tous les cœurs ont un accès cohérent à la
mémoire et ont une vue commune de la mémoire qu'ils utilisent pour
exécuter des programmes.
Exemple:
 Supposons trois processeurs, chacun ayant un cache. Supposons le scénario
suivant :
 Le processeur 1 lit X : obtient 24 de la mémoire et le met en cache.
 Le processeur 2 lit X : obtient 24 de la mémoire et le met en cache.
 Encore une fois, le processeur 1 écrit sous la forme X : 64, sa copie mise en
cache localement est mise à jour.
 Maintenant, le processeur 3 lit X, quelle valeur doit-il obtenir. La mémoire et
le processeur 2 pensent que c'est 24 et le processeur 1 pense que c'est 64.

P1 P2 P3
Quelle valeur
X=64
Cache Cache de X?
Cache
X=24 X=24

Mémoire
X=24
Cohérence de cache :Causes

La cohérence de cache se produit principalement en raison de :

 Partage de données inscriptibles.


 Migration de processus.
 Incohérence due aux E/S.
Cohérence de cache
 Comme plusieurs processeurs fonctionnent en parallèle et que plusieurs caches
indépendamment peuvent posséder différentes copies du même bloc de
mémoire, cela crée un problème de cohérence de cache.

Définition
La cohérence du cache est la discipline qui garantit que les changements dans les
valeurs des opérandes partagés sont propagés dans tout le système.
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 Mémoire principale, 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é,


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.
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 existent:

 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 hasardt utilisées.


Mécanismes de cohérence :

Un protocole de cohérence doit être implémenté en matériel, le système d’exploitation


:
 Protocoles de cohérence logiciels : le système d’exploitation (ou les bibliothèques
systèmes) contrôle toutes les pages du système mémoire. Le noyau du système
d’exploitation connaît le placement des pages partagées, il est donc capable, en
principe, de gérer la cohérence entre les différentes copies

 Protocoles de cohérence matériels : le protocole de cohérence est implémenté dans


les contrôleurs des caches qui gèrent la hiérarchie mémoire et la modification d’une
ligne de cache provoque des échanges de message entre les caches de différents
niveaux.
Protocoles de cohérence matériels :

 Les deux protocoles de cohérence les plus utilisés sont les suivants:

• Ecrire et invalider: Lorsqu'une opération d'écriture mémoire est effectuée, toutes


les copies de cette ligne mémoire dans les différents caches sont invalidées. Ce
qui oblige les cœurs à mettre à jour leurs données.

• Ecrire et mettre à jour: Dans ce système, lorsqu'un processeur écrit sur une ligne
de cache, toutes les copies dans les différents caches sont mises à jour.
Protocoles de cohérence matériels :

Deux types existent:

 Snooping : esprionnage

Le snooping est un processus dans lequel les caches individuels surveillent les lignes
d'adresse pour accéder aux emplacements de mémoire qu'ils ont mis en cache. C'est
ce qu'on appelle un protocole d'invalidation d'écriture. Lorsqu'une opération d'écriture
est observée dans un emplacement dont un cache possède une copie et que le
contrôleur de cache invalide sa propre copie de l'emplacement de mémoire espionné.
Mécanismes de cohérence :
:

 Basé sur un répertoire :

Le protocole Global Directory est conceptuellement implanté du côté du contrôleur


mémoire, qui gère un répertoire global de l’état des toutes les lignes de cache. Ce
répertoire global contient précisément le nombre de copies de chaque ligne, voire la
localisation de chaque copie. Chaque contrôleur de cache informe directement le
répertoire global des modifications qu’il fait sur ses propres copies. Le répertoire global
envoie alors les requêtes de cohérence vers les autres contrôleurs de cache concernés.
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
Stratégies d’écriture (Pour la
cohérence d’information)
 Write-Through : A chaque opération d’écriture dans le bloc du cache, le bloc
mémoire correspondant est mis à jour.

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

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


Stratégies d’écriture (Pour la
cohérence d’information)
 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).

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

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


consistants
Protocole de cohérence de cache

 Il s’agit d’un protocole de cohérence de cache de base utilisé dans un système


multiprocesseur. Les lettres du nom du protocole identifient les états possibles dans
lesquels un cache peut se trouver.
• Modifié –
Le bloc a été modifié dans le cache, c’est-à-dire que les données du
cache sont incohérentes avec la mémoire.
• Partagé –
Ce bloc n’est pas modifié et est présent dans au moins un cache. Le cache
peut expulser les données sans les écrire dans la mémoire.
• Invalide –
Ce bloc n’est pas valide et doit être extrait de la mémoire ou d’un autre
cache s’il doit être stocké dans ce cache.
Protocole de cohérence de cache

• Possédé
Il indique que le processeur actuel est propriétaire de ce bloc et traitera les
requêtes d’autres processeurs pour le bloc.
• Exclusif
Cela indique que la ligne de cache est présente uniquement dans le
cache actuel et qu’elle est propre, c’est-à-dire que sa valeur correspond à
la valeur de la mémoire principale.
Protocole de cohérence de cache

1. MSI protocol (Modified, Shared, Invalid)


2. MOSI protocol (Modified, Owned, Shared, Invalid)
3. MESI protocol (Modified, Exclusive, Shared, Invalid)
4. MOESI protocol (Modified, Owned, Exclusive, Shared, Invalid)
Références

 Cache Coherence Protocols in Multiprocessor System – GeeksforGeeks


 Cache Coherence - GeeksforGeeks

Vous aimerez peut-être aussi