Write-back-vs Write-Through-caching?
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"?
- Ich denke du meinst
write back
hat eine bessere Leistung? - Ja, du hast Recht, es ist meine sachliche Fehler. Ich würde es entfernen und setzen Sie in einen neuen Kommentar hier Zukunft zu vermeiden irreführend.
- Einfach ausgedrückt, ist
write back
hat eine bessere Leistung, da das schreiben in den Hauptspeicher ist wesentlich langsamer als das schreiben von cpu-cache und die Daten möglicherweise kurz während der (Mittel könnte sich auch wieder ändern früher, und keine Notwendigkeit, legen Sie die alte version in den Speicher). Es ist Komplex, aber anspruchsvoller, die meisten Speicher in modernen cpu-verwenden Sie diese Richtlinie. - Ich sehe, dass eine erklärende Antwort gegeben wurde. Ich rate Ihnen, zu betrachten Write-Allocate, Write-NoAllocate tags nach dem abdecken der write-back-Algorithmus.
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.
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)
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.
vielleicht ist dieser Artikel kann Ihnen helfen, hier der link
Write-through: Schreiben Sie synchron erfolgt sowohl auf den cache und auf den sicherungsspeicher.
Write-back (oder Write-behind): Schreiben geschieht nur, um den cache. Eine geänderte cache-block geschrieben, zurück in den laden, kurz bevor es ersetzt wird.
Write-through: Wenn Daten aktualisiert werden, es ist so geschrieben, dass sowohl die cache-und die back-end-storage. Dieser Modus ist einfach, aber für den Betrieb ist langsam in die Daten zu schreiben, weil die Daten geschrieben werden, bis der cache und der Speicher.
Write-back: Wenn Daten aktualisiert werden, es ist nur geschrieben, um den cache. Die geänderten Daten geschrieben, um die back-end-storage nur auf, wenn Daten aus dem cache entfernt. Dieser Modus hat schnell Daten schreiben Geschwindigkeit, sondern die Daten gehen verloren, wenn ein Stromausfall Auftritt, bevor die aktuellen Daten geschrieben werden, auf den Speicher.