Modified-Shared-Invalid Protokoll

Modified-Shared-Invalid Protokoll

Bei Modified, Shared, Invalid (MSI) handelt es sich um ein Protokoll zur Wahrung der Cache-Kohärenz auch in speichergekoppelten Multiprozessorsystemen.

Falls in solchen Systemen jeder Prozessor einen Cache besitzt, muss festgelegt werden, ob einer der Caches oder der Hauptspeicher den aktuellen Wert eines Datums enthält. Ein System, das zu jeder Zeit garantiert, den aktuellen Wert eines Datums zu beschaffen - auch wenn es sich in einem anderen Cache befindet -, heißt cache-kohärent.

Das MSI-Protokoll wird hauptsächlich bei Write-Invalidate- und Write-Back-Caches eingesetzt und basiert auf der Snooping-Technik.

Innerhalb des MSI-Protokolls wird jedem Cache-Block genau einer der Zustände Modified, Shared oder Invalid zugeordnet. Die einzelnen Zustände bedeuten dabei:

  1. Modified: Diese Cache-Line wurde lokal geändert. Weitere Kopien im Hauptspeicher oder im Cache anderer Prozessoren sind ungültig.
  2. Shared: Mehrere Caches enthalten diesen Datenblock (mindestens zwei). Alle Caches die im Zustand Shared sind haben eine gültige Kopie.
  3. Invalid: Der Inhalt dieser Cache-Line ist veraltet oder es befindet sich noch gar kein Wert in dieser Cache-Line ("Compulsory Miss").

Der zentrale Ansatzpunkt zur Steuerung der Zustandswechsel des jeweiligen Cache-Blocks ist der Bus. Über diesen kommunizieren die einzelnen Caches mit dem Hauptspeicher. Jeder Cache verfügt über einen Cache-Controller, welcher z. B. bei der Anforderung eines Datums durch den Prozessor des Caches ein entsprechendes Kommando auf den Bus legt. Zusätzlich überwacht dieser auch Kommandos die von anderen Cache-Controllern oder weiteren Komponenten (z.B. dem Controller des Hauptspeichers) auf den Bus gelegt werden. Entsprechend den eigenen und abgehörten Kommandos werden die Zustandswechsel der jeweiligen Cache-Blöcke vorgenommen. Das Prinzip der Überwachung der Transaktionen und Kommandos auf dem gemeinsamen Bus nennt man Snooping.

Übergänge zwischen den Zuständen

Ein Prozessor kann auf eine einzelne Adresse im Speichersystem schreibend (PrWr) oder lesend (PrRd) zugreifen. Entsprechend lösen Lese- und Schreiboperationen eines Prozessors Bustransaktionen aus. Beim MSI-Protokoll gibt es folgende Bustransaktionen:

  1. Bus-Read (BusRd): Das Signal wird auf den Bus gelegt wenn ein Prozessor das Datum bzw. den Wert eines Speicherblocks lesen will.
  2. Bus-Read-Exclusive (BusRdX): Signal wird auf den Bus gelegt wenn ein Prozessor das Datum eines Speicherblocks überschreiben will.
  3. Flush: Dieses Signal wird erzeugt wenn ein Prozessor alleinig (evtl. noch der Hauptspeicher) das aktuelle Datum einer Speicherzelle in seinem Cache hat und ein weiterer Prozessor versucht auf die gleiche Adresse dieser Speicherzelle lesend oder schreibend zu zugreifen. Wenn das Signal Flush auf den Bus erscheint, so wird ebenfalls das Datum des entsprechenden Blocks auf den Bus gelegt.

Die Lese- und Schreiboperationen, sowie die dadurch direkt und indirekt erzeugten Bustransaktionen legen das Verhalten des Zustandsautomaten fest, welcher durch das MSI-Protokoll definiert ist.

Erweiterungen des MSI-Protokolls sind die Protokolle MESI und MOESI.

Literatur

  • David E. Culler, Jaswinder Pal Singh: Parallel Computer Architecture - A Hardware/Software Approach Morgan Kaufmann, 1999, ISBN 1-55860-343-3

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

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

  • Illinois-Protokoll — MESI (Modified Exclusive Shared Invalid) ist ein Protokoll zur Wahrung der Cache Kohärenz in speichergekoppelten Multiprozessorsystemen. Das MESI Protokoll wurde zuerst von Forschern der Universität von Illinois veröffentlicht. Es wird auch oft… …   Deutsch Wikipedia

  • MESI-Protokoll — MESI (Modified Exclusive Shared Invalid) ist ein Protokoll zur Wahrung der Cache Kohärenz in speichergekoppelten Multiprozessorsystemen. Das MESI Protokoll wurde zuerst von Forschern der Universität von Illinois veröffentlicht. Es wird auch oft… …   Deutsch Wikipedia

  • Cache-Kohärenz — Mehrere Caches einer Ressource Durch die Sicherstellung von Cache Kohärenz wird bei Mehrprozessorsystemen mit mehreren CPU Caches verhindert, dass die einzelnen Caches für die gleiche Speicheradresse unterschiedliche (inkonsistente) Daten… …   Deutsch Wikipedia

  • MSI — steht für: Medium Scale Integration, siehe Integrationsgrad (Halbleitertechnik) Message Signaled Interrupts, ein Interrupttyp bei PCI Computersystemen Microsoft Installer, siehe Windows Installer Micro Star International, ein taiwanischer… …   Deutsch Wikipedia

  • MESI — Modified, Exclusive, Shared, Invalid Protokoll auf Prozessorbusebene, bei dem Speicherbereiche von parallel arbeitenden Prozessoren entsprechend in einem internen Adress Cache markiert werden …   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

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

  • 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

  • MESI — (Modified Exclusive Shared Invalid) ist ein Protokoll zur Wahrung der Cache Kohärenz in speichergekoppelten Multiprozessorsystemen. Das MESI Protokoll wurde zuerst von Forschern der Universität von Illinois veröffentlicht. Es wird auch oft als… …   Deutsch Wikipedia

  • 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

Share the article and excerpts

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