3 Arbeitsspeicher- und Bussysteme
3 Arbeitsspeicher- und Bussysteme
3 Arbeitsspeicher- und Bussysteme
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
C3.2 Caches 215<br />
Virtuelle Adressierung wird aus diesen Überlegungen überwiegend bei prozessorinternen<br />
Befehls-Caches eingesetzt.<br />
Bei sog. physischen Caches muß erst der Vorgang der Adreßumsetzung abgewartet<br />
werden, bis das Vorliegen des referenzierten Wortes im Cache an Hand der realen Adresse<br />
geprüft werden kann. Allerdings sind physische Caches bezüglich der Dateninkonsistenz<br />
wesentlich günstiger. Beispielsweise kann eine DMA-Einheit für die Konsistenz zwischen<br />
Haupt- <strong>und</strong> Cache-Speicher sorgen, da beide real adressiert sind. Ebenso kann in<br />
einem Multiprozessorsystem die Kohärenz mehrerer Caches sichergestellt werden (Verweis<br />
auf Volkert). Reale Adressierung ist daher meist bei prozessorexternen Caches vorzufinden.<br />
3.2.4 Organisationsformen<br />
Die Organisationsform eines Caches legt fest, in welchem Cache-Block ein Hauptspeicherblock<br />
abgelegt wird (Plazierungsproblem; mapping problem) <strong>und</strong> wie ein gewünschter<br />
Block im Cache aufzufinden ist (Identifikationsproblem; identification problem).<br />
Drei Organisationsformen sind gebräuchlich: direkte Abbildung (direct mapped), voll assoziative<br />
Abbildung (fully associative) <strong>und</strong> n-fach assoziative Abbildung (n-way set associative<br />
cache). Bild 3 verdeutlicht für diese Möglichkeiten beispielhaft, wo ein Hauptspeicherblock<br />
im Cache gespeichert werden kann.<br />
Blocknummern<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
Direkte<br />
Abbildung<br />
Vollassoziative<br />
Abbildung<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
Caches<br />
2-fach assoziative<br />
Abbildung<br />
0<br />
1<br />
Satz 0<br />
2<br />
3<br />
Satz 1<br />
4<br />
5<br />
Satz 2<br />
6<br />
Satz 3<br />
7<br />
Bild 3 Plazierung eines Hauptspeicherblocks für die drei Cache-Organisationsformen<br />
. . . . .<br />
. . . . .<br />
Hauptspeicher<br />
In einem direkt abbildenden Cache mit einer Kapazität von N Blöcken wird ein Hauptspeicherblock<br />
B im Cache-Block B mod N gespeichert. In einem voll assoziativen Cache<br />
kann ein Hauptspeicherblock in jede Cache-Zeile übernommen werden. Ein n-fach assoziativer<br />
Cache ist in M = N/n sog. Sätze (sets) mit jeweils n Blöcken untergliedert; Block<br />
B kann im Satz B mod M in jeder der darin enthaltenen n Cache-Zeilen abgelegt werden.<br />
Damit ist die n-fach assoziative Abbildung die allgemeine Organisationsform, die mit<br />
n=N (nur ein Satz) zur vollassoziativen <strong>und</strong> mit n=1 (M=N Sätze) zur direkten (auch: einfach<br />
assoziativen) Form wird.<br />
Jeder Cache-Zeile ist eine große Anzahl von Hauptspeicherblöcken zugeordnet, d.h., es<br />
können verschiedene Hauptspeicherblöcke in einer Cache-Zeile gespeichert werden.<br />
Daher wird ein Mechanismus benötigt, der einen Hauptspeicherblock eindeutig kennzeichnet<br />
<strong>und</strong> seine Identifikation im Cache erlaubt. Dies wird im weiteren für den allgemeinen<br />
Fall eines n-fach assoziativen Caches erläutert.<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
C3