MOESI


MOESI

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. Jede Cache-Line befindet sich in einem von fünf Zuständen (vgl. [1], S. 165ff):

Das MOESI-Protokoll ist eine komplizierte Variante des MESI-Protokolls. Es vermeidet das Zurückschreiben von modifizierten Cache-Lines, wenn andere CPUs diese lesen wollen. Stattdessen wird der aktuelle Wert bei jeder Veränderung zwischen den Caches direkt propagiert (siehe Zustand Owned).

MOESI bietet keinen wesentlichen Vorteil gegenüber MESI, wenn das Verbindungsnetzwerk zwischen Prozessoren und Speichercontroller ein Bus ist. Es ist hingegen bei direkten Netzwerken von Vorteil, wie zum Beispiel bei AMD-Opteron-Systemen. Das Vermeiden des Zurückschreibens von modifizierten Cache-Lines sorgt hier für die Entlastung von Verbindungsnetzwerk und Speichercontroller. Außerdem kann die Kommunikation zwischen zwei oder mehreren CPUs bzgl. Latenz und Übertragungsrate signifikant besser sein als zwischen CPU und Hauptspeicher. Bei Multicore-CPUs mit jeweils eigenen Caches pro Core ist dies meist der Fall.

Im Bereich der System on a Chip kann die Verwendung des zusätzlichen "Owned" Zustandes Energie sparen, wenn hierdurch der Zugriff auf extern angebundenen Speicher entfällt. Im Falle des AMBA Buses von ARM ist die benötigte Energie eines chipexternen Speicherzugriffs laut Herstellerangaben bis zu zehn mal höher als ein chipinterner Speichertransfer zwischen zwei Bus Mastern. Der AMBA Bus unterstützt seit Version 4 das MOESI Protokoll. [2]

Inhaltsverzeichnis

Zustände

Modified (genauer: Modified Exclusive)

Der Cache besitzt die einzige Kopie der Cache-Line und hat sie modifiziert (dirty). Wenn er die Cache-Line entfernt, muss er den Hauptspeicher updaten. Wenn eine Leseanfrage von einem anderen Prozessor kommt, schickt er die Daten dieser Cache-Line an ihn und ändert seinen eigenen Zustand auf Owned. Der Zustand der Cache-Line des anderen Prozessors wird auf Shared gesetzt. Bei einer Schreibbenachrichtigung eines anderen Prozessors setzt er seine Cache-Line auf Invalid.

Owned (genauer: Modified Shared)

Der Cache besitzt eine von mehreren Kopien der Cache-Line. Er hat seine Cache-Line verändert, aber noch nicht zurück geschrieben: Im Hauptspeicher steht aber ein veralteter (also ungültiger) Wert. Bei allen anderen Prozessoren, die diese Cache-Line haben, ist diese im Zustand Shared. Der Prozessor ist dafür verantwortlich, beim Schreiben in diese Cache-Line alle anderen Caches zu aktualisieren. Sendet ein anderer Prozessor eine Leseanfrage, sendet der Cache die aktuellen Daten direkt an den Anfragenden. Bei einer Schreibbenachrichtigung eines anderen Prozessors wechselt er in den Zustand Invalid. Derjenige, welcher geschrieben hat, ändert dann seinen Zustand in Owned. Bei allen anderen Caches ändert sich nichts (Zustand bleibt auf Shared falls Cache-Line vorhanden).

Exclusive

Der Cache besitzt die einzige Kopie der Cache-Line und hat sie nicht modifiziert (clean, unmodified). Bei einer Leseanfrage schickt er die Daten zum Anfragenden. Die Zustände beider Cache-Lines gehen dann in den Zustand Shared über. Bei einer Schreibbenachrichtigung invalidiert er die Cache-Line.

Shared

Der Cache besitzt eine von mehreren aktuellen Kopien der Cache-Line. Eine Cache-Line im diesem Zustand darf nur gelesen werden.

Invalid

Die Cache-Line ist ungültig. Wird sie vom Prozessor angefragt, tritt ein Cache-Miss auf und die Daten müssen aus dem Hauptspeicher (oder einem anderen Cache) geholt werden. Dazu schickt er gleichzeitig eine Anfrage an den Speicher und an alle anderen Prozessoren. Ist die Cache-Line bereits in einem anderen Cache vorhanden und ist diese dort modifiziert (Modified oder Owned), so werden die Daten von dort geliefert. Die vom Speicher kommenden Daten werden ignoriert, da diese nicht aktuell sind. War die Cache-Line in einem anderen Prozessor auf Modified, so ändert sich der Zustand dort auf Owned. In jedem Fall wird der Zustand der Cache-Line in diesem Cache auf Shared gesetzt. Ist die Cache-Line nirgends modifiziert, so nimmt der Cache die Daten aus dem Speicher. Je nachdem, ob die anderen Prozessoren die Cache-Line in ihrem Cache haben oder nicht, wird die neue Cache-Line in den Zustand Exclusive bzw. Shared gesetzt. Bei einer Leseanfrage oder Schreibbenachrichtigung passiert im Zustand Invalid nichts.

Siehe auch

Einzelnachweise

  1. AMD64 Architecture Programmer's Manual Vol 2 'System Programming'
  2. Introduction to AMBA® 4 ACE™

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • 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 — 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

  • 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

  • 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

  • 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”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.