Cache-Kohärenz

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 zurückliefern.

Eine temporäre Inkonsistenz zwischen Speicher und den Caches ist zulässig, sofern diese spätestens bei lesenden Zugriffen identifiziert und behoben wird. Inkonsistenzen werden z. B. durch das Rückschreibeverfahren (Write-Back) erzeugt, das im Gegensatz zu einem Durchschreibeverfahren (Write-Through) beim Schreiben in den Cache-Speicher nicht sofort den Hauptspeicher aktualisiert. Vergleiche dazu Cache-Konsistenz.

Cache-Kohärenz-Protokolle

Ein Cache-Kohärenz-Protokoll hat die Aufgabe, den Status eines gecachten Speicherblocks zu verfolgen. Im Wesentlichen gibt es zwei technische Grundlagen, auf denen ein solches Protokoll implementiert werden kann[1]:

  • Verzeichnisbasiert (Directory-Based): Es wird eine zentrale Liste mit dem Status aller gecachten Blöcke geführt. Dort ist hinterlegt, welche Prozessoren zur Zeit eine read-only-Kopie (Status Shared) oder welcher Prozessor exklusiven Schreibzugriff (Status Exclusive) auf einen Block hat. Das Protokoll regelt den Übergang zwischen den verschiedenen Status und das Verhalten bei read miss, write miss bzw. data write back.
  • Snoopingbasiert: Üblicherweise laufen Zugriffe auf den zentralen Speicher über ein gemeinsames Medium (z. B. Bus oder Switch). Alle angeschlossenen Cache Controller können dieses Medium beobachten und Schreib- oder Lesezugriffe auf Blöcke identifizieren, die sie selbst zwischengespeichert haben. Die genaue Reaktion des Controllers ist im Protokoll festgelegt.

Am häufigsten – sowohl bei verzeichnis- als auch snoopingbasiert – wird ein Write-Back-Invalidierungs-Protokoll (write-invalidate-protocol) eingesetzt, z. B. das Modified-Shared-Invalid Protokoll (MSI) bzw. dessen Erweiterungen MESI und MOESI. Alternativ dazu gibt es Write-Back-Update-Protokolle (vgl. Bus Snarfing), die allerdings zu einem erhöhten Busverkehr führen.

Die Wahl zwischen verzeichnis- und snoopingbasiert hängt u. a. auch von der Anzahl der beteiligten Prozessoren (Cache Controller) ab. Spätestens ab 64 Prozessoren müssen üblicherweise verzeichnisbasierte Protokolle benutzt werden, da die Bandbreite des Busses nicht ausreichend skaliert. Bei kleineren Installationen ist der snoopingbasierte Ansatz aufgrund der fehlenden zentralen Instanz etwas performanter.[2]

Bei Multiprozessorinstallation mit verteilten Speicher (Distributed Memory) wird üblicherweise pro Speicher ein eigenes Verzeichnis geführt, damit der Verzeichniszugriff nicht zum Flaschenhals wird.[3]

Einzelnachweise

  1. John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.), S. 208ff
  2. John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.), S. 230
  3. John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.), S. 231

Literatur

  • Thomas Rauber, Gudula Rünger: Parallele Programmierung Springer Verlag, 2007, ISBN 978-3-540-46549-2
  • David E. Culler: Parallel Computer Architecture, Morgan Kaufmann Publishers Inc., ISBN 1-55860-343-3
  • John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.)

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

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

  • Cache-Hierarchie — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

  • Cache-Speicher — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

  • Cache Hit — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

  • Cache Miss — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

  • Cache — [kæʃ] bezeichnet in der EDV einen schnellen Puffer Speicher, der Zugriffe auf ein langsames Hintergrundmedium oder zeitaufwendige Neuberechnungen nach Möglichkeit vermeidet. Meist werden hierzu Inhalte/Daten gepuffert, die bereits einmal… …   Deutsch Wikipedia

  • Kohärenz — (lat. cohaerere „zusammenhängen“), Adj. kohärent steht in der Physik für eine Eigenschaft von Wellen bezüglich ihrer Interferenzfähigkeit, siehe Kohärenz (Physik) in der Radartechnik für die Unterscheidung verschiedener Gerätekonzepte, siehe… …   Deutsch Wikipedia

  • Cache-Konsistenz — ist der Zustand, in dem alle Kopien eines Speicherwortes in den Caches und im Hauptspeicher identisch sind. Durch Cache Konsistenz wird auch Cache Kohärenz sichergestellt. Kategorie: Speicherverwaltung …   Deutsch Wikipedia

  • Cache-Algorithmus — Ein Cache Algorithmus ist ein Algorithmus zur Steuerung eines Cache, mit dem Speicherzugriffe und Inkonsistenzprobleme zwischen einer CPU und dem Arbeitsspeicher optimiert werden sollen. Ursprünglich galt der Cache als ein Zwischenpuffer zwischen …   Deutsch Wikipedia

  • L1-Cache — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

  • L1 cache — Cache [kæʃ] bezeichnet in der EDV eine Methode, um Inhalte, die bereits einmal vorlagen, beim nächsten Zugriff schneller zur Verfügung zu stellen. Caches sind als Puffer Speicher realisiert, die die Kopien zwischenspeichern. Sie können als… …   Deutsch Wikipedia

Share the article and excerpts

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