MOESI

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 d’une 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 d’architecture multiprocesseur à mémoire distribuée, l’accès à la mémoire n’est pas uniforme selon que l’on accède à une mémoire locale ou distante. En outre, il est nécessaire d’implé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 d’une tâche d’un 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 qu’elle 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.

D’abord, une lecture peut être réalisée dans tous les états exceptés "invalid". Dans ce dernier cas, une requête est émise à l’ensemble 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 s’y 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 d’autres 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, c’est à 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 n’est pas reportée en mémoire principale tant que la ligne de cache n’est pas écrasée par des données correspondant à autre adresse. C’est pour cette raison, que l’on récupère prioritairement les données dans les autres caches. L’état "Owned" sert d’ailleurs à cela en prolongeant la durée pendant laquelle la RAM n’est pas actualisée. En effet, lorsqu’un 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 n’a 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 n’est pas non plus absolument indispensable permet d’éviter l’émission des requêtes inutiles. En effet, lorsque l’on sait qu’aucun 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 d’interconnexion ce qui nuit aux performances.

Voir aussi

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Protocole MOESI ».

Wikimedia Foundation. 2010.

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

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • MOESI — (Modified, Owned, Exclusive, Shared, Invalid) ist ein Protokoll zur Wahrung der Cache Kohärenz in speichergekoppelten Multiprozessorsystemen. Es umfasst alle möglichen Zustände einer Cache Line, die auch von anderen Protokollen her bekannt sind.… …   Deutsch Wikipedia

  • MOESI — протокол поддержки когерентности кэшей микропроцессоров, включающий в себя все возможные состояния, используемые в других протоколах. В дополнение к состояниям часто используемого протокола MESI, добавлено пятое состояние «Owned», означающее что… …   Википедия

  • Moesi — For the cache coherency protocol, see MOESI protocol. The Moesi (Greek: Μοισοί) were a Daco Thracian tribe who inhabited present day Serbia and Bulgaria, part of the then Roman province of Moesia, which was named after them in 87 AD by the Romans …   Wikipedia

  • MOESI protocol — This is a full cache coherency protocol that encompasses all of the possible states commonly used in other protocols. As discussed in AMD64 Architecture Programmer s Manual Vol 2 System Programming [ [http://www.amd.com/us en/assets/content… …   Wikipedia

  • MOESI — Modified, Owner Exclusive, Shared, Invalid Protokoll auf Prozessorbusebene, bei dem Speicherbereiche von parallel arbeitenden Prozessoren entsprechend in einem internen Adress Cache markiert werden (Athlon) …   Acronyms

  • MOESI — Modified, Owner Exclusive, Shared, Invalid Protokoll auf Prozessorbusebene, bei dem Speicherbereiche von parallel arbeitenden Prozessoren entsprechend in einem internen Adress Cache markiert werden (Athlon) …   Acronyms von A bis Z

  • MOESI — abbr. Modified Owned Exclusive Shared Invalid (AMD) …   United dictionary of abbreviations and acronyms

  • 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

  • Roemah Moesi — (Медан,Индонезия) Категория отеля: 1 звездочный отель Адрес: Jl. Sei Musi No. 93, 20122 Медан, Ин …   Каталог отелей

  • Dacian language — Dacian Spoken in Romania, northern Bulgaria, eastern Serbia; also (possibly): Moldova, SW Ukraine, eastern Hungary, southern Bulgaria, northern Greece, European Turkey, NW Anatolia (Turkey) Extinct probably by the 6th century AD …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”