<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cache-Koh%C3%A4renz</id>
	<title>Cache-Kohärenz - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Cache-Koh%C3%A4renz"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cache-Koh%C3%A4renz&amp;action=history"/>
	<updated>2026-06-12T11:06:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Cache-Koh%C3%A4renz&amp;diff=199194&amp;oldid=prev</id>
		<title>imported&gt;Toni Müller: aus WL</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Cache-Koh%C3%A4renz&amp;diff=199194&amp;oldid=prev"/>
		<updated>2023-11-17T14:56:28Z</updated>

		<summary type="html">&lt;p&gt;aus WL&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Cache_Coherency_Generic.png|thumb|350px|Mehrere Caches einer Ressource]]&lt;br /&gt;
&lt;br /&gt;
Durch die Sicherstellung von &amp;#039;&amp;#039;&amp;#039;Cache-Kohärenz&amp;#039;&amp;#039;&amp;#039; wird bei [[Mehrprozessorsystem]]en mit mehreren [[Cache|CPU-Caches]] verhindert, dass die einzelnen Caches für dieselbe Speicheradresse unterschiedliche (inkonsistente) Daten zurückliefern.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;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]].&lt;br /&gt;
&lt;br /&gt;
== Cache-Kohärenz-Protokolle ==&lt;br /&gt;
&lt;br /&gt;
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:&amp;lt;ref&amp;gt;John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, 2007, ISBN 978-0-12-370490-0 (engl.), S. 208ff&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Verzeichnisbasiert&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Directory-Based&amp;#039;&amp;#039;): Es wird eine zentrale Liste mit dem Status aller gecachten Blöcke geführt. Dort ist hinterlegt, welche Prozessoren zurzeit eine Read-only-Kopie (Status &amp;#039;&amp;#039;Shared&amp;#039;&amp;#039;) oder welcher Prozessor exklusiven Schreibzugriff (Status &amp;#039;&amp;#039;Exclusive&amp;#039;&amp;#039;) 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.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Bus snooping|Snoopingbasiert]]&amp;#039;&amp;#039;&amp;#039;: Üblicherweise laufen Zugriffe auf den zentralen Speicher über ein gemeinsames Medium (z.&amp;amp;nbsp;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.&lt;br /&gt;
&lt;br /&gt;
Am häufigsten – sowohl bei verzeichnis- als auch snoopingbasiert – wird ein &amp;#039;&amp;#039;&amp;#039;Write-Back-Invalidierungs-Protokoll&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;write-invalidate-protocol&amp;#039;&amp;#039;) eingesetzt, z.&amp;amp;nbsp;B. das [[Modified-Shared-Invalid Protokoll]] (MSI) bzw. dessen Erweiterungen [[MESI]] und [[MOESI]]. Alternativ dazu gibt es &amp;#039;&amp;#039;&amp;#039;Write-Back-Update-Protokolle&amp;#039;&amp;#039;&amp;#039; (vgl. [[Bus Snarfing]]), die allerdings zu einem erhöhten Busverkehr führen.&lt;br /&gt;
&lt;br /&gt;
Die Wahl zwischen verzeichnis- und snoopingbasiert hängt u.&amp;amp;nbsp;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.&amp;lt;ref&amp;gt;John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, 2007, ISBN 978-0-12-370490-0 (engl.), S. 230&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei Multiprozessorinstallation mit verteiltem Speicher (Distributed Memory) wird üblicherweise pro Speicher ein eigenes Verzeichnis geführt, damit der Verzeichniszugriff nicht zum Flaschenhals wird.&amp;lt;ref&amp;gt;John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, 2007, ISBN 978-0-12-370490-0 (engl.), S. 231&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Write-Invalidate-Protokoll&amp;#039;&amp;#039;&amp;#039; ist eine Möglichkeit, Cache-Kohärenz zu gewährleisten. Vor dem Verändern einer Kopie in einem Cache-Speicher müssen alle Kopien in anderen Cache-Speichern für ungültig erklärt werden. Üblicherweise wird bei symmetrischen Multiprozessoren ein Write-invalidate-Protokoll mit Rückschreibeverfahren verwendet.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Thomas Rauber, Gudula Rünger: &amp;#039;&amp;#039;Parallele Programmierung&amp;#039;&amp;#039; Springer Verlag, 2007, ISBN 978-3-540-46549-2.&lt;br /&gt;
* David E. Culler: &amp;#039;&amp;#039;Parallel Computer Architecture&amp;#039;&amp;#039;, Morgan Kaufmann Publishers Inc., 1999, ISBN 1-55860-343-3.&lt;br /&gt;
* John Hennessy, David Patterson: &amp;#039;&amp;#039;Computer Architecture. A Quantitative Approach.&amp;#039;&amp;#039; 4th Edition, Morgan Kaufmann Publishers, 2007, ISBN 978-0-12-370490-0 (engl.).&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Rechnerarchitektur]]&lt;br /&gt;
[[Kategorie:Speicherverwaltung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Toni Müller</name></author>
	</entry>
</feed>