Write-Back und Write-Through - Richtlinien beschreiben , wenn ein Schreibtreffer auftritt, das heißt , wenn der Cache die angeforderten Informationen hat. In diesen Beispielen nehmen wir an, dass ein einzelner Prozessor mit einem Cache in den Hauptspeicher schreibt.
Durchschreiben: Die Informationen werden in den Cache und den Speicher geschrieben, und der Schreibvorgang wird beendet, wenn beide abgeschlossen sind. Dies hat den Vorteil, dass es einfacher zu implementieren ist und der Hauptspeicher immer konsistent (synchron) mit dem Cache ist (für den Uniprozessor-Fall - wenn ein anderes Gerät den Hauptspeicher ändert, reicht diese Richtlinie nicht aus) und ein Lesefehler führt niemals zu Schreibvorgängen in den Hauptspeicher. Der offensichtliche Nachteil ist, dass jeder Schreibtreffer zwei Schreibvorgänge ausführen muss, von denen einer auf einen langsameren Hauptspeicher zugreift.
Rückschreiben: Die Informationen werden in einen Block im Cache geschrieben. Der geänderte Cache-Block wird nur in den Speicher geschrieben, wenn er ersetzt wird (im Endeffekt ein verzögertes Schreiben ). Ein spezielles Bit für jeden Cache-Block, das Dirty-Bit , markiert, ob der Cache-Block im Cache geändert wurde oder nicht. Wenn das Dirty-Bit nicht gesetzt ist, ist der Cache-Block "sauber" und ein Schreibfehler muss den Block nicht in den Speicher schreiben.
Der Vorteil besteht darin, dass Schreibvorgänge mit der Geschwindigkeit des Caches ausgeführt werden können. Wenn innerhalb desselben Blocks geschrieben wird, ist nur ein Schreibvorgang in den Hauptspeicher erforderlich (wenn der vorherige Block ersetzt wird). Die Nachteile sind, dass dieses Protokoll schwieriger zu implementieren ist, der Hauptspeicher nicht konsistent (nicht synchron) mit dem Cache sein kann und Lesevorgänge, die zum Ersetzen führen, zu Schreibvorgängen von verschmutzten Blöcken in den Hauptspeicher führen können.
Die Richtlinien für einen Schreibfehler sind in meinem ersten Link aufgeführt.
Diese Protokolle kümmern sich nicht um Fälle mit mehreren Prozessoren und mehreren Caches, wie dies bei modernen Prozessoren üblich ist. Hierzu sind kompliziertere Cache-Kohärenzmechanismen erforderlich. Durchschreibcaches haben einfachere Protokolle, da ein Schreibvorgang in den Cache sofort im Speicher wiedergegeben wird.
Gute Ressourcen:
write back
hat eine bessere Leistung?