de.phhsnews.com


de.phhsnews.com / Wann wird der Cache einer CPU in den Hauptspeicher zurückgespült?

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


Wenn Sie gerade lernen, wie Mehrkern-CPUs, Caching, Cache-Kohärenz und Speicher funktionieren, mag es ein wenig erscheinen anfangs etwas verwirrend. Vor diesem Hintergrund hat der heutige SuperUser Q & A-Post Antworten auf die Frage eines neugierigen Lesers.

Die heutige Question & Answer-Sitzung kommt dank SuperUser zustande - 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 in den Hauptspeicher zurückgespült 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 beide den gleichen Teil des Speichers zur gleichen Zeit zwischenspeichern? Wenn es möglich ist, was 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

SuperUser-Mitwirkende 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 beide den gleichen Teil des Speichers gleichzeitig zwischenspeichern?

Ja, Leistung wäre schrecklich, wenn das nicht der Fall wäre. Stellen Sie sich zwei Threads vor, die denselben Code ausführen. Sie wollen 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 liegt im Hauptspeicher Es spielt keine Rolle, da keiner der beiden es lesen wird. Bevor ein geänderter Wert aus dem Cache ausgegeben wird, muss er in den Speicher geschrieben werden. In der Regel wird eine Variante des MESI-Protokolls verwendet. Wenn in der traditionellen 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, zwei Cache-Caches haben Dieselbe Speicherregion kann vorkommen und ist tatsächlich ein Problem, das in der Praxis häufig auftritt. Es gibt verschiedene Lösungen, zum Beispiel:

  • Die zwei Caches können kommunizieren, um sicherzustellen, dass sie nicht übereinstimmen
  • Sie können eine Art Supervisor haben, der alle Caches überwacht und sie entsprechend aktualisiert.
  • Jeder Prozessor überwacht die Speicherbereiche dass es zwischengespeichert wurde, und wenn es einen Schreibvorgang entdeckt, wirft es seinen (jetzt ungültigen) Cache aus

Das Problem wird Cache-Kohärenz genannt, und der Wikipedia-Artikel 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 davon ab, was das Caching-Protokoll ist. Wenn es zurückgeschrieben wird, wird der Cache nur zum Hauptspeicher zurückgespült, wenn der Cache-Controller keine andere Wahl hat, als einen neuen Cache-Block in den bereits belegten Speicherplatz zu setzen. Der Block, der zuvor den Platz belegt hat, wird entfernt und sein Wert wird in den Hauptspeicher zurückgeschrieben.

Das andere Protokoll ist durchschreibbar. In diesem Fall wird, wenn der Cacheblock auf die Ebene n geschrieben wird, der entsprechende Block auf der Ebene n + 1 aktualisiert. Es ist ähnlich im Konzept zum Ausfüllen eines Formulars mit Kohlepapier darunter; was auch immer Sie oben schreiben, wird auf das untenstehende Blatt kopiert. Dies ist langsamer, da es offensichtlich mehr Schreibvorgänge erfordert, aber die Werte zwischen den Caches sind konsistenter. Im Write-Back-Schema würde nur der Cache der höchsten Ebene den aktuellsten Wert für einen bestimmten Speicherblock haben.


Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.

Bildquelle: Lemsipmatt (Flickr)


So verhindern Sie, dass Facebook-Videos automatisch wiedergegeben werden

So verhindern Sie, dass Facebook-Videos automatisch wiedergegeben werden

In Facebooks endlosem Streben, Ihr Leben "besser" zu machen (wo es eine sehr subjektive Bedeutung hat), hat es seinem Handy eine Funktion hinzugefügt App, die beim Starten eines Videos automatisch Ton wiedergibt. Wenn Sie diese lästige Funktion lieber ausschalten möchten, gehen Sie folgendermaßen vor: Die Facebook-App hat die Benutzer über diese neue Funktion mit dem folgenden Begrüßungsbildschirm informiert und dabei darauf hingewiesen, dass der Sound bei der Wiedergabe von Videos im News-Feed angezeigt wird on.

(how-top)

Ist jetzt ein guter Zeitpunkt, um einen PC-Monitor zu kaufen?

Ist jetzt ein guter Zeitpunkt, um einen PC-Monitor zu kaufen?

Wann immer Sie einen neuen Kauf planen, möchten Sie sicherstellen, dass Sie ihn zu einem idealen Zeitpunkt kaufen - niemand möchte der sein Ein Sauger, der einen Monat bevor er durch ein neues Modell ersetzt wurde, eine Anzahlung auf diesen brandneuen Sportwagen machte. So ist es mit PC-Monitoren ...

(how-top)