Protocole MOESI

Protocole MOESI

En informatique, le protocole MOESI (Modified, Owned, Exclusive, Shared, Invalid) est un protocole de cohérence de cache utilisé dans les systèmes multiprocesseurs.

Sommaire

Rappels sur la cohérence

Les architectures à mémoire distribuée peuvent intégrer un mécanisme de cohérence de cache. Il s'agit d'assurer que la modification dune ligne de cache soit bien reportée aux autres caches. On parle dans ce cas de ccNUMA pour cache coherent Non Uniform Memory Acces, c'est-à-dire en français « accès mémoire non uniforme ». En effet, dans le cas darchitecture multiprocesseur à mémoire distribuée, laccès à la mémoire nest pas uniforme selon que lon accède à une mémoire locale ou distante. En outre, il est nécessaire dimplémenter un mécanisme pour assurer une bonne cohérence entre les données présentes dans les différentes mémoires cache. Par exemple, on comprend cette contrainte, lors de la migration dune tâche dun processeur à un autre. En effet, sans synchronisation, la tâche pourrait, paradoxalement, poursuivre son exécution sur le nouveau processeur en utilisant des données anciennes quelle a pourtant modifiées depuis.

MOESI

Le MOESI (Modified, Owned, Exclusive, Shared, Invalid) est précisément un protocole qui peut être utilisé pour maintenir une cohérence de cache. Il est une évolution du protocole MESI utilisé auparavant. Dans ce protocole, chaque ligne de cache se trouve dans l'un des cinq états cités suivants:

  • I - Invalid : la ligne de cache ne contient pas la valeur actualisée de la donnée. Celle-ci se trouve en mémoire principale ou dans la mémoire cache d'un autre processeur,
  • E - Exclusive : la ligne de cache contient la donnée la plus récente qui se trouve aussi en mémoire principale mais dans aucune des autres mémoires caches,
  • S - Shared : la ligne de cache contient la donnée la plus récente. On ignore si elle se trouve aussi en mémoire principale ou dans une autre mémoire cache,
  • M - Modified : la ligne de cache contient la donnée la plus récente qui ne se trouve dans aucune autre mémoire cache. De plus, la valeur contenue par la mémoire principale est incorrecte.
  • O - Owned : la ligne de cache contient la donnée la plus récente qui peut se trouver aussi dans la mémoire cache d'un autre processeur. En revanche, la valeur contenue par la mémoire principale est incorrecte.

Dabord, une lecture peut être réalisée dans tous les états exceptés "invalid". Dans ce dernier cas, une requête est émise à lensemble des unités. Il y a alors deux cas, la donnée peut être présente ou non dans une autre mémoire cache. Si elle sy trouve, on la récupère alors directement, et létat de la ligne de cache devient "Shared". Autrement, elle est récupérée depuis la mémoire RAM adéquate et la ligne devient "Exclusive".

Une écriture peut être effectuée directement dans les états "exclusive" et "modified". Dans les autres états, la donnée peut être chargée dans dautres caches, il faut donc invalider toutes ces lignes avant de procéder à lécriture. Finalement, lorsque ces invalidations ont été menées à bien, la donnée est écrite en cache et létat de la ligne passe à "Modified", tandis que le " dirty bit" passe à 1 indiquant une différence entre la valeur en cache et en RAM.

Par ailleurs, cest à cause de ce cas de figure que la réception de "Probe Write Hit" qui indique une écriture sur une autre unité, invalide systématiquement la ligne de cache.

Après une modification, celle-ci nest pas reportée en mémoire principale tant que la ligne de cache nest pas écrasée par des données correspondant à autre adresse. Cest pour cette raison, que lon récupère prioritairement les données dans les autres caches. Létat "Owned" sert dailleurs à cela en prolongeant la durée pendant laquelle la RAM nest pas actualisée. En effet, lorsquun autre processeur récupère une donnée modifiée pour la lire, létat passe à "Owned" pour indiquer que la donnée a été recopiée ailleurs mais que le report sur la RAM na pas été fait. Cet état est indispensable car létat "Shared" ne permet pas cette distinction. Ce nouvel état constitue lévolution apportée au MESI. Ceci permet de rafraîchir la mémoire RAM moins souvent. En fait, on lévite le plus longtemps possible, tant que la donnée reste présente en mémoire cache. Létat "exclusive" qui nest pas non plus absolument indispensable permet déviter lémission des requêtes inutiles. En effet, lorsque lon sait quaucun cache ne dispose de la donnée, il est inutile démettre une requête malgré tout pour invalider des lignes de cache inexistantes. Or, ces requêtes encombrent inutilement les bus dinterconnexion ce qui nuit aux performances.

Voir aussi

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Protocole MOESI de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • MOESI — Protocole MOESI En informatique, le protocole MOESI (Modified, Owned, Exclusive, Shared, Invalid) est un protocole de cohérence de cache utilisé dans les systèmes multiprocesseurs. Sommaire 1 Rappels sur la cohérence 2 MOESI 3 Voir aussi …   Wikipédia en Français

  • Protocole MESI — Le protocole MESI (Modified Exclusive, Shared, Invalid, aussi connu sous le nom d Illinois protocol) est un protocole de cohérence de cache utilisé dans les systèmes multiprocesseur. Chaque ligne du cache est estampillée avec l une des marques… …   Wikipédia en Français

  • Protocole MSI — Le protocole MSI (Modified, Shared, Invalid) est un protocole de cohérence de cache utilisé dans les systèmes multiprocesseur. États Il s applique à des caches fonctionnant en write back dans lesquels chaque ligne possède un des trois états  …   Wikipédia en Français

  • MESI — Protocole MESI Le protocole MESI (Modified Exclusive, Shared, Invalid, aussi connu sous le nom d Illinois protocol) est un protocole de cohérence de cache utilisé dans les systèmes multiprocesseur. Chaque ligne du cache est estampillée avec l une …   Wikipédia en Français

  • Memoire distribuee — Mémoire distribuée En informatique, et dans le cadre de systèmes multiprocesseurs, chaque processeur à sa propre mémoire. Lorsque la mémoire est répartie ou distribuée les processeurs ou les applications de chaque nœuds peuvent utiliser un réseau …   Wikipédia en Français

  • Mémoire Distribuée — En informatique, et dans le cadre de systèmes multiprocesseurs, chaque processeur à sa propre mémoire. Lorsque la mémoire est répartie ou distribuée les processeurs ou les applications de chaque nœuds peuvent utiliser un réseau pour accéder aux… …   Wikipédia en Français

  • Mémoire distribuée — La mémoire distribuée est la mémoire des architectures distribuées, c est à dire la mémoire dite « vive » dans les systèmes informatiques pouvant exécuter en collaboration un programme sur plusieurs machines reliées ensemble par réseau …   Wikipédia en Français

  • Mémoire répartie — Mémoire distribuée En informatique, et dans le cadre de systèmes multiprocesseurs, chaque processeur à sa propre mémoire. Lorsque la mémoire est répartie ou distribuée les processeurs ou les applications de chaque nœuds peuvent utiliser un réseau …   Wikipédia en Français

  • NUMA — Pour les articles homonymes, voir Numa. En informatique, NUMA est l acronyme anglais de Non Uniform Memory Access ou Non Uniform Memory Architecture, signifiant respectivement accès mémoire non uniforme et architecture mémoire non uniforme. Il s… …   Wikipédia en Français

  • Non Uniform Memory Access — Pour les articles homonymes, voir Numa. En informatique, un système NUMA (pour Non Uniform Memory Access ou Non Uniform Memory Architecture, signifiant respectivement accès mémoire non uniforme et architecture mémoire non uniforme) est un système …   Wikipédia en Français

Share the article and excerpts

Direct link
https://fr-academic.com/dic.nsf/frwiki/1379123 Do a right-click on the link above
and select “Copy Link”