Information Technology Reference
In-Depth Information
anstehenden Lesezugriffe vorzuziehen und die Ausführung der vom Ladebefehl
abhängigen nachfolgenden Befehle zu beginnen, bevor die zwischengespeicherten
Schreibzugriffe wirklich zur Ausführung gelangen.
Im Gegensatz zu einem Ringpuffer muss ein Schreibpuffer auch Leseanforderungen
bearbeiten können, nämlich dann, wenn auf einen Hauptspeicherinhalt zugegriffen
werden soll, zu dem ein Schreibzugriff im Schreibpuffer eingetragen ist. Zur Erken-
nung eines solchen „Konflikts“ vergleicht man die zu den Daten im Schreibpuffer
gespeicherten mit den für einen Lesezugriff benutzten Hauptspeicheradressen. Bei
Gleichheit wird die Bearbeitung des Lesezugriffs entweder verzögert, bis der Inhalt
des Schreibpuffers in den Hauptspeicher übertragen wurde, oder der Zugriff wird
auf den gefundenen Eintrag im Schreibpuffer umgeleitet. Es sei noch angemerkt,
dass Schreibpuffer insbesondere in Caches verwendet werden, in denen die Aktuali-
sierungsstrategie Copy-Back realisiert ist. Dies ermöglicht das Laden einer Cache-
Zeile, bevor deren alter Inhalt in den Hauptspeicher geschrieben wird.
Streaming. Streaming bezeichnet eine Technik, die es ermöglicht, Inhalte zwischen
Hauptspeicher und Prozessor am Cache vorbei bzw. unter expliziter Berücksichti-
gung des Caches zu transportieren. Dies lässt sich nutzen, um zu vermeiden, dass
der Cache mit Daten gefüllt wird, auf die möglicherweise nur ein einziger Zugriff
erfolgt und so ggf. häufig adressierte Inhalte aus dem Cache verdrängt werden.
Beim Lesen von Daten (sog. non temporal datas ) speichert man dabei i.Allg. eine
im Hauptspeicher gelesene Einheit, z.B. einen Speicherblock, in einem Puffer zwi-
schen. Dies ist deshalb von Vorteil, weil aufeinander folgende Zugriffe auf örtlich
lokale Daten keinen erneuten Zugriff auf den Hauptspeicher verursachen.
Der Puffer ist natürlich auch für Schreibzugriffe verwendbar und hat dann eine dem
Schreibpuffer vergleichbare Funktion, allerdings mit zusätzlichen Fähigkeiten:
Durch das sog. Write-Combining werden mehrere sequentiell aufeinander folgende
Schreibzugriffe zunächst nur auf dem Puffer (den man oft auch als Write-Combi-
ning-Buffer oder WC-Buffer bezeichnet) ausgeführt und dessen Inhalt später, falls er
für andere Zwecke benötigt wird, in einem Schritt in den Hauptspeicher übertragen.
Durch das sog. Write-Collapsing werden mehrere Schreibzugriffe auf dieselbe
Adresse zusammengefasst, so dass aus Sicht des Hauptspeichers nur der jeweils
letzte Zugriff sichtbar ist. Sollte dies unerwünscht sein, z.B. weil auf Peripherie-
Bausteine zugegriffen wird oder weil Programme parallel auf den entsprechenden
Daten arbeiten, sind entweder Befehle zu verwenden, die nicht durch den hier
beschriebenen Puffer führen, oder es ist explizit dafür zu sorgen, dass sein Inhalt
rechtzeitig in den Hauptspeicher übertragen wird. Zu diesem Zweck besitzt z.B. der
Pentium 4 von Intel [77] bzw. der Athlon64 von AMD [2, 3, 4, 5, 6] den Befehl
sfence ( store fence ).
2.3.2 Speicherverwaltung (memory management)
In modernen Anwendungen werden von einem einzelnen Prozessor mehrere Pro-
gramme quasiparallel unter Regie eines Betriebssystems ausgeführt. Jedem Pro-
gramm ordnet man hierzu Bereiche des realen Hauptspeichers zu, in denen sich
Search WWH ::




Custom Search