Hardware Reference
In-Depth Information
(englisch castoff, der Verstoßene). Daten, die zuruckgeschrieben werden sol-
len, kommen zunachst in einen Puffer, den Castoff-Buffer , von dem aus sie
in den Hauptspeicher ubertragen werden, so bald das moglich ist.
Im Hinblick auf die Ausfuhrungsgeschwindigkeit ist die Write-Back-Strategie
im Vorteil, sobald mehrere aufeinander folgende Schreibzugriffe in denselben
Cache-Block erfolgen. Andererseits ist diese Strategie aufwandiger zu imple-
mentieren. Es kann hierbei auch folgende Situation auftreten: Wenn ein le-
sender Zugriff einen als dirty gekennzeichneten Block verdrangt, so muss vor
dem eigentlichen Lesen erst noch ein schreibender Speicherzugriff erfolgen.
Ein Stillstand, den ein Zuruckschreiben bewirkt, heißt Write-Stall .
Weitere Alternativen gibt es hinsichtlich des Verhaltens eines Cache bei schrei-
benden Speicherzugriffen auf eine Stelle im Speicher, die gerade nicht im Ca-
che vorgehalten wird. Wird das zu schreibende Datum auch in den Cache
eingefugt, so spricht man von Write-Allocate ,ansonstenvon Write-Around .
Ublicherweise verwenden Write-Back Caches Write-Allocation. Caches vom
Typ Write-Through sind meist als Write-Around ausgefuhrt. Die Unterschie-
de treten dann zu Tage, wenn wir verschiedene Kombinationen von lesenden
und schreibenden Zugriffen an dieselbe Speicheradresse oder zumindest die-
selbe Cache-Line betrachten:
Zwei Reads hintereinander. Hier gibt es keinen Unterschied zwischen
Write-Allocate und Write-Around: Der erste Read fuhrt zu einem Miss.
Der Block wird daraufhin im Cache eingetragen und beim zweiten Read
wird der Block aus dem Cache gelesen (Hit).
Read gefolgt von Write. Auch hier besteht kein Unterschied zwischen
den beiden Strategien: Der erste Read fuhrt zu einem Miss. Der Block
wird im Cache eingetragen und beim darauffolgenden Write im Cache
aktualisiert (Bei Write-Through Caches daruber hinaus auch im Haupt-
speicher).
Ein Read nach einem Write. Nur bei einem Cache mit Write-Allocate
wird der Block beim ersten Write (Miss) im Cache eingetragen und beim
anschließenden Read von dort ausgelesen. Bei Write-Around ist der Block
beim Read aus dem Speicher zu laden.
Zwei Writes hintereinander. Bei Write-Allocate-Strategie wird der
Block beim ersten Write (Miss) im Cache eingetragen und beim zwei-
ten Write aktualisiert. Bei Write-Around wird der Block beide Male nur
in den Hauptspeicher geschrieben.
Bei haufigen Schreibzugriffen auf viele unterschiedliche Cache-Blocke fuhrt
Write-Allocation also eher zu einer Verlangsamung. Im Durchschnitt ist diese
Strategie aber ein wenig besser [37].
Search WWH ::




Custom Search