Write-Back und Write-Through
Mein Verständnis ist, dass der wesentliche Unterschied zwischen den beiden Methoden ist, dass Sie im "write-through" - Methode die Daten geschrieben werden, um den Hauptspeicher über den cache sofort, während Sie im "write-back" - Daten, geschrieben in einer "letztere Zeit".
Wir müssen noch warten, bis die Speicher in "letztere Zeit" also, Was ist der Vorteil des "write-through"?
InformationsquelleAutor der Frage Triple Fault | 2014-11-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Vorteil der write-through-im Hauptspeicher ist, dass es vereinfacht das design von dem computer-system. Mit write-through, der Hauptspeicher hat immer ein up-to-date Kopie der Linie. Also, wenn ein Lesen erfolgt, Hauptspeicher kann immer eine Antwort mit den angeforderten Daten.
Wenn write-back verwendet wird, manchmal die up-to-date Daten in einem Prozessor-cache, und manchmal ist es im Hauptspeicher. Wenn die Daten in einem Prozessor-cache, dann, dass der Prozessor muss halt Arbeitsspeicher aus der Beantwortung der Anfrage Lesen, da der Arbeitsspeicher möglicherweise eine veraltete Kopie der Daten. Dies ist komplizierter, als write-through.
Notieren Sie auch-durch vereinfachen der cache-Kohärenz-Protokoll, da es muss nicht die Ändern Zustand. Die Ändern state records, das muss der cache write back cache-line, bevor es ungültig wird oder evicts die Linie. In schreiben-über eine cache-Zeile kann immer für ungültig erklärt werden, ohne das schreiben zurück, da der Speicher bereits ein up-to-date Kopie der Zeile.
Eine weitere Sache - auf ein write-back-Architektur-software, die schreibt, um memory-mapped I/O Register müssen zusätzliche Maßnahmen ergreifen, um sicherzustellen, dass schreibt sofort an, die aus dem cache. Sonst schreibt, sind nicht sichtbar außerhalb der Kern bis zu der Zeile gelesen, die von einem anderen Prozessor oder die Linie wird geräumt.
InformationsquelleAutor der Antwort Craig S. Anderson
Schauen wir uns dies mit Hilfe eines Beispiels.
Nehmen wir an, wir haben einen direct-mapped-cache und write-back-Politik verwendet wird. So haben wir ein gültiges bit, dirty bit, ein tag und ein Datenfeld in einer cache-Zeile.
Nehmen wir an, wir haben einen Vorgang : schreiben Sie A ( wobei A zugeordnet, um die erste Zeile des cache).
Was passiert, ist, dass die Daten(A) von dem Prozessor geschrieben wird, um die erste Zeile des Caches. Das gültig-bit und tag-bits gesetzt sind. Das dirty-bit auf 1 gesetzt ist.
Dirty bit einfach nur an, war der cache-Zeile, die jemals geschrieben wurden, seit dem letzten brachte in den cache!
Nehmen wir nun an einen anderen Betrieb durchgeführt wird : Lesen Sie E(wo E ist auch abgebildet auf die erste cache-Zeile)
Da haben wir direct-mapped-cache, die erste Zeile einfach ersetzt werden durch den E-block gebracht wird aus dem Speicher. Aber seit dem letzten block geschrieben in der Zeile (block A) ist noch nicht geschrieben in dem Speicher(angezeigt durch das dirty-bit), so dass der cache-controller wird die erste Ausgabe eine zurück schreiben auf den Speicher zu übertragen, den block an Speicher, dann wird es ersetzen Sie die Zeile mit block E durch die Ausgabe einer read-operation in den Speicher. dirty bit ist jetzt auf 0 gesetzt.
So schreiben-zurück-Politik doesnot garantieren, dass der block der gleiche sein wird, in den Speicher und seine entsprechenden cache-line. Aber wenn die Zeile darüber ersetzt werden, ein write-back wird zunächst durchgeführt.
Einen schreiben über Politik ist genau das Gegenteil. Nach dieser, die Erinnerung wird immer ein up-to-date Daten. Das ist, wenn der cache-block geschrieben, der Speicher wird auch geschrieben werden, entsprechend. (keine Verwendung der dirty-bits)
InformationsquelleAutor der Antwort Rajat
Write-Back ist ein komplexer und erfordert eine komplizierte Cache-Kohärenz-Protokoll(MOESI), aber es ist es Wert, denn es macht das system schnell und effizient.
Der einzige Vorteil, den Write-Through ist, dass es macht die Implementierung sehr einfach und nicht kompliziert cache-Kohärenz-Protokoll erforderlich ist.
InformationsquelleAutor der Antwort Gaurav Toshniwal