Wann wird der Cache einer CPU in den Hauptspeicher zurückgespült?

Feb 23, 2025
Hardware

Wenn Sie gerade erst anfangen zu lernen, wie Multi-Core-CPUs, Caching, Cache-Kohärenz und Speicher funktionieren, kann dies zunächst etwas verwirrend erscheinen. In diesem Sinne enthält der heutige SuperUser-Q & A-Beitrag Antworten auf die Frage eines neugierigen Lesers.

Die heutige Frage-Antwort-Sitzung wird uns mit freundlicher Genehmigung von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Die Frage

SuperUser-Reader CarmeloS möchte wissen, wann der Cache einer CPU wieder in den Hauptspeicher geleert wird:

Wenn ich eine CPU mit zwei Kernen habe und jeder Kern seinen eigenen L1-Cache hat, ist es möglich, dass Core1 und Core2 gleichzeitig denselben Teil des Speichers zwischenspeichern? Wenn es möglich ist, wie hoch ist der Wert des Hauptspeichers, wenn sowohl Core1 als auch Core2 ihre Werte im Cache bearbeitet haben?

Wann wird der Cache einer CPU in den Hauptspeicher zurückgespült?

Die Antwort

Die SuperUser-Mitarbeiter David Schwartz, sleske und Kimberly W haben die Antwort für uns. Zuerst David Schwartz:

Wenn ich eine CPU mit zwei Kernen habe und jeder Kern seinen eigenen L1-Cache hat, ist es möglich, dass Core1 und Core2 gleichzeitig denselben Teil des Speichers zwischenspeichern?

Ja, die Leistung wäre schrecklich, wenn dies nicht der Fall wäre. Stellen Sie sich zwei Threads vor, die denselben Code ausführen. Sie möchten diesen Code in beiden L1-Caches.

Wenn es möglich ist, wie hoch ist der Wert des Hauptspeichers, wenn sowohl Core1 als auch Core2 ihre Werte im Cache bearbeitet haben?

Der alte Wert befindet sich im Hauptspeicher, was keine Rolle spielt, da keiner der Kerne ihn liest. Bevor ein geänderter Wert aus dem Cache ausgeworfen wird, muss er in den Speicher geschrieben werden. Typischerweise eine Variante der MESI-Protokoll wird eingesetzt. Wenn in der herkömmlichen Implementierung von MESI ein Wert in einem Cache geändert wird, kann er in keinem anderen Cache auf derselben Ebene vorhanden sein.

Gefolgt von der Antwort von sleske:

Ja, wenn zwei Caches denselben Speicherbereich zwischenspeichern, kann dies passieren und ist tatsächlich ein Problem, das in der Praxis häufig auftritt. Es gibt verschiedene Lösungen, zum Beispiel:

  • Die beiden Caches können miteinander kommunizieren, um sicherzustellen, dass sie nicht nicht übereinstimmen
  • Sie können eine Art Supervisor haben, der alle Caches überwacht und entsprechend aktualisiert
  • Jeder Prozessor überwacht die zwischengespeicherten Speicherbereiche, und wenn er einen Schreibvorgang erkennt, wirft er seinen (jetzt ungültigen) Cache aus

Das Problem heißt Cache-Kohärenz und Wikipedia article zum Thema hat einen schönen Überblick über das Problem und mögliche Lösungen.

Und unsere letzte Antwort von Kimberly W:

Um die Frage im Titel Ihres Beitrags zu beantworten, hängt es vom Caching-Protokoll ab. Wenn es sich um ein Zurückschreiben handelt, wird der Cache nur dann in den Hauptspeicher zurückgespült, wenn der Cache-Controller keine andere Wahl hat, als einen neuen Cache-Block in den bereits belegten Speicherplatz zu legen. Der Block, der zuvor den Speicherplatz belegt hat, wird entfernt und sein Wert wird in den Hauptspeicher zurückgeschrieben.

Das andere Protokoll ist Durchschreiben. In diesem Fall wird der Cache-Block jederzeit auf Ebene geschrieben n , der entsprechende Block auf Ebene n + 1 ist aktualisiert. Das Konzept ähnelt dem Ausfüllen eines Formulars mit Kohlepapier darunter. Was auch immer Sie oben schreiben, wird auf das Blatt unten kopiert. Dies ist langsamer, da offensichtlich mehr Schreibvorgänge erforderlich sind, die Werte zwischen den Caches jedoch konsistenter sind. Im Rückschreibeschema hätte nur der Cache der höchsten Ebene den aktuellsten Wert für einen bestimmten Speicherblock.


Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier .

Bildnachweis: Lemsipmatt (Flickr)

.eintragsinhalt .Eintrittsfußzeile

When Is A CPU’s Cache Flushed Back To Main Memory?

What Is The Difference Between Memory And SSD Cache In A PC Or NAS?

5 Cache و Virtual Memory

How To Clear Cache On Mac OS - Clear Memory Cache On Mac In 1-Click

Buffer Cache

Caching In: Understand, Measure, And Use Your CPU Cache More Effectively

How To Clear RAM Cache Memory | Fix RAM Cached Memory Too High Windows 10

NetApp WAFL, NVRAM And The System Memory Cache (new Version)


Hardware - Die beliebtesten Artikel

Der Stand der VR-Headsets im Jahr 2019: Was sollten Sie kaufen?

Hardware Dec 18, 2024

In den letzten drei Jahren hat die virtuelle Realität die Welt nicht genau in Brand gesetzt. Trotzdem war 2019 das beste Jahr für VR aller Zeiten, mit neuen Headsets, die möglich..


Was ist die Verbesserung der Zeigerpräzision in Windows?

Hardware Aug 17, 2025

Die Einstellung „Zeigergenauigkeit verbessern“ in Windows kann dazu führen, dass Sie in vielen Situationen mit der Maus weniger präzise arbeiten. Diese schlecht verstandene Fu..


So überprüfen Sie, ob die Time Machine-Backups Ihres Mac ordnungsgemäß funktionieren

Hardware Feb 7, 2025

Sie regelmäßig Sichern Sie Ihren Mac mit Time Machine , aber woher weißt du, dass es funktioniert? VERBUNDEN: Was ist der be..


So stellen Sie das ursprüngliche BIOS und die Software Ihres Chromebooks wieder her, wenn Sie es gelöscht haben

Hardware Jan 19, 2025

Wenn Sie Ihr Chromebook manipuliert haben - an Installieren Sie Windows auf Ihrem Chromebook Beispiel: Möglicherweise haben Sie das BIOS durch eine Option eines Drit..


So steuern Sie Ihre Xbox One mit Ihrem Smartphone

Hardware Jul 5, 2025

Mit der Xbox SmartGlass-App von Microsoft können Sie Spiele starten, TV-Listen durchsuchen und Apps auf Ihrer Xbox One steuern. Sie können damit sogar Live-TV von Ihrer Xbox One a..


So wählen Sie aus, welches Postfach auf Ihrer Apple Watch angezeigt wird

Hardware Mar 10, 2025

UNCACHED INHALT Mit der Mail-App auf Ihrer Apple Watch können Sie E-Mails anzeigen und sogar auf einige antworten. Wenn Sie jedoch mehrere E-Mail-Konten haben und viele E-Mails e..


So fügen Sie Ihrer Apple Watch Komplikationen von Drittanbietern hinzu

Hardware Dec 21, 2024

UNCACHED INHALT Mit der Veröffentlichung von Watch OS 2.0 können Sie Ihrem Zifferblatt jetzt benutzerdefinierte Komplikationen aus nativen Apple Watch-Apps hinzufügen, die eine..


Wie kann sich mein Computer neu starten?

Hardware Oct 23, 2025

UNCACHED INHALT Es ist eine so alltägliche Aktivität, dass die meisten von uns wahrscheinlich nie aufgehört haben, darüber nachzudenken: der automatische Neustart. Was passiert gena..


Kategorien