Information Technology Reference
In-Depth Information
des Satzes wird durch Tag-Vergleich und Auswertung der Gültigkeit jeweils über-
prüft, ob sich der adressierte Eintrag in einem der beiden Wege befindet. Die so
erzeugten Suchergebnisse (e und f) werden anschließend durch Veroderung (b) zu
einem einzelnen Hit-Signal zusammengefasst. Da sich ein Eintrag nur in einem der
beiden Wege befinden kann (weil man nur dann einen Eintrag im Cache erzeugt,
wenn er nicht bereits darin enthalten ist), wird bei einem Cache-Hit auch nur eines
der beiden Signale e oder f den Erfolg der Suche anzeigen. Sie verhalten sich also
jeweils invers zueinandern, weshalb es ausreicht, den zur Wegeauswahl erforderli-
chen Multiplexer (c) nur mit dem Suchergebnis aus einem der beiden Wege (hier f)
anzusteuern.
Bei einem Zugriff auf das im Bild grau unterlegte Datum, wird über den Multiplexer
c eine Verbindung zum Multiplexer g und über diesen zum adressierten Datum
innerhalb der Zeile hergestellt. Letzteres geschieht, genau wie bei den zuvor
beschriebenen Caches, indem zur Byteauswahl die unteren Bits der Adresse (h) und
zur Definition der Zugriffsweite das vom Prozessor in codierter Form gelieferte
Width-Signal (i) ausgewertet werden. - Der n-fach assoziative Cache impliziert alle
andere Cache-Organisationsformen. Falls n gleich Eins gewählt wird, reduziert sich
der n-fach auf einen einfach assoziativen oder direkt zuordnenden Cache. Falls man
umgekehrt n gleich der Anzahl der vorhandenen Zeilen annimmt, ergibt sich statt
des n-fach assoziativen ein vollassoziativer Cache.
Beispiel 2.10. Einsatz n-fach assoziativer Caches . Die n-fach assoziativen Caches werden in vie-
len realen Prozessoren bevorzugt für die Zwischenspeicherung von Daten und Befehlen verwendet.
Oft sind diese 4-fach (z.B. beim MIPS64 20Kc von MIPS [106]) oder 8-fach assoziativ organisiert
(z.B. der PowerPC MPC750 von Motorola [128]). Eine ungewöhnliche Ausnahme bildet der nicht
mehr gefertigte Transputer T9000 von Inmos [84], der über einen für Daten und Befehle gemeinsa-
men 256-fach assoziativen Cache mit insgesamt 16 KByte Kapazität verfügt, wobei jede Zeile
jeweils 16 Byte breit ist 1 . Die hohe Weganzahl ist hier deshalb sinnvoll, weil der Prozessor für die
Ausführung von Programmen mit mehreren parallelen Kontrollflüssen (threads) optimiert ist und
deshalb Kollisionen in einzelnen Cache-Zeilen häufiger erwartet werden müssen als bei Ausfüh-
rung von Programmen, in denen nur einem einzelnen Kontrollfluss gefolgt wird [96].
Ersetzungsstrategien
Eine Zeile im Cache repräsentiert im geladenen Zustand einen begrenzten Bereich
des Befehls-, Daten- oder Hauptspeichers. Im Folgenden wird dieser Bereich als
Speicherblock bezeichnet. Die Zuordnung der Cache-Zeile zu einem Speicherblock
ist, wie zuvor beschrieben wurde, von der Organisationsform abhängig. Beim direkt
zuordnenden Cache wird jedem Speicherblock eindeutig eine bestimmte Zeile des
Caches zugeordnet, so dass eine Zeilenauswahl entfällt. Beim vollassoziativen oder
n-fach assoziativen Cache kann hingegen ein bestimmter Speicherblock in unter-
schiedlichen Zeilen gespeichert werden, und zwar beim vollassoziativen Cache in
allen verfügbaren Zeilen und beim n-fach assoziativen Cache in den n Zeilen der n
möglichen Wege.
1.
Tatsächlich spricht man bei Inmos von einem vollassoziativen Cache, der in vier Bänken orga-
nisiert ist. Die vier Bänke entsprechen in ihrer Funktion aber vier Sätzen eines n-fach assoziati-
ven Caches.
Search WWH ::




Custom Search