INTRODUCTION
Pourquoi répartir les données
a) améliorer les services rendus par le système:
– performance / efficacité
– disponibilité
– tolérance aux pannes
b) meilleure adéquation au modèle d’exécution :
– le parallèlisme des processus
– communication par variables partagées vs communication par messages
– objets
c) représentation/manipulation physique de données abstraites -> utilisation d’adresses virtuelles
– correspondance avec pages réelles (déjà connu en univers centralisé) offrir aux programmes l’illusion qu’ils sont les seuls à utiliser une mémoire uniforme centralisée
Machines Fortement Couplées (2)
. Accès non uniforme à la mémoire (NUMA ): le temps d’accès à la mémoire diffère en fonction de la localisation des données à cause de la traversée du réseau d’interconnexion Les mémoires locales sont adressables par les processeurs distants, elles forment un espace d’adressage global.
Machines Fortement Couplées (3)
. Architecture à mémoire cache uniquement (COMA): c’est un cas particulier de machine NUMA l’accès à un cache distant utilise un mécanisme de répertoire. Le répertoire contient pour chaque bloc des informations sur son état et sa localisation. Il peut y avoir une hiérarchie de plusieurs niveaux de répertoires.
Principes de la répartition des données en mémoire
1. L’efficacité de la répartition des données repose sur la propriété de localité des références aux informations en mémoire.
-Localité dans le temps: Pendant un certain temps, les mêmes informations seront accédées.
-Localité dans l’espace: Les références faites par un programme, données comme instructions, se trouvent dans des zones d’adresses proches.
« espace de travail – Working Set »
2. Gestion de la concurrence des accès :
-> ajout de mécanismes de synchronisation à côté du partage de la mémoire
-> sémantique de cohérence des copies plus ou moins forte
Points principaux d’un cache
Lorsque le processeur effectue un accès à une variable en mémoire, l’adresse de cette information est envoyée au cache, une recherche s’effectue alors, l’information est retrouvée grâce à sa marque, si elle est présente dans le cache. Si l’adresse ne correspond à aucun tag, l’adresse est passée à l’extérieur pour être servie soit par la mémoire principale, soit par un autre cache dans le cas d’un multiprocesseur. Au retour, l’information est stockée dans le cache.
Le contrôleur de cache espion – Snoopy Cache Controler
Le processeur cherche la donnée dont il a besoin dans le cache, s’il ne la trouve pas, il est mis en attente jusqu’à ce que celle-ci y soit amenée depuis un autre cache ou depuis la mémoire commune. Principe :
Le contrôleur de cache gère le protocole de cohérence pour un processeur, il maintient la cohérence en espionnant les transactions sur le bus effectuées par les autres processeurs. L’espionnage porte sur le tag des données contenues dans le cache.
Principes de la répartition des données en mémoire (935 Ko) (Cours PDF)