Autor |
Nachricht |
rgerhards
|
|
Titel: Was ist das Cache "Dirty Bit"?
Verfasst am: 06.03.2009, 19:08 Uhr
|
|
Anmeldung: 25. Sep 2006
Beiträge: 688
|
|
Das Dirty Bit wird bei einem Cache genutzt, der bei Schreibvorgängen verzögert geschrieben wird (also erst in den Cache, später erst in den Hautpspeicher).
Der Begriff "Dirty Bit" ist typisches technisches Englisch (oder besser: Amerkanisch). Das ist blumig gesprochen. Trockener, aber treffend, könnte man dieses Bit "Write needed" nennen.
Es bestimmt nämlich, ob ein Zurückschreiben des Cache-Blocks notwendig ist, bevor er mit neuen Daten überschrieben werden darf.
Das "dirty"/"write needed" Bit wird immer dann auf 1 gesetzt, wenn im Cache-Block Daten stehen, die noch in den Hauptspeicher geschrieben werden müssen. Wird der Block dann verdrängt, wird dieses Bit geprüft. Ist es auf 1, wird der Cache-Block zuerst zurückgeschrieben. Dann wird der neue Block aus dem Hauptspeicher gelesen, und dabei das Bit auf 0 gesetzt (denn nun ist kein "write needed").
Im Pseudocode sieht der Zugriff auf den Cache ungefähr so aus:
Code:
if cachemiss then
if dirty bit == 1 then
schreibe cache block zurück
end if
lese cache block aus hauptspeicher
dirty bit = 0
end if
# jetzt ist die cache line gültig
if cache-write then
schreibe datum aus register in cache
dirty bit = 1
else
lese Datum aus cache in register
end if
Schau Dir dazu vielleicht auch noch einmal in meiner Präsentation das
"Zugriff auf Datum" an, das ist so ungefähr bei einem Drittel der
Präsentation:
http://www.gerhards.net/module-Pagesett ... -204.phtml
Ich sage da zwar nichts zum Schreibzugriff, aber ich denke, man kann den
Algorithmus oben ganz gut darin wiederfinden und sich dann auch entsprechend
reindenken. Evtl. auch die PPS-Dateien runterladen und das selbst mal
langsam ablaufen lassen.
Hoffe, das hilft.
Rainer |
|
|
|
|
|
|
|
|