Hardware Reference
In-Depth Information
Wir befassen uns nun mit Moglichkeiten, die Daten in einem Cache zu or-
ganisieren, sodass jederzeit festgestellt werden kann, welche Daten enthalten
sind.
7.2.2 Cache-Organisation
In einem Cache werden grundsatzlich Blocke gespeichert, deren Lange (An-
zahl enthaltener Bytes) eine Zweierpotenz ist. Auch die Anzahl der Blocke
in einem Cache ist stets eine Zweierpotenz. Statt von einem Cache-Block
spricht man oft auch von einer Cache-Line .DieBlockgroße wird in der Pra-
xis so gewahlt, dass ein Block mit einem Burst aus dem Hauptspeicher gefullt
werden kann (siehe Abschnitt 7.1.5)
Im Folgenden bezeichne m =2 b die Blockgroße in Bytes. Wir betrachten
zunachst einen Cache mit nur einem einzigen Block und beschranken uns auf
lesende Speicherzugriffe. In den Cache werden nur Blocke aus dem Hauptspei-
cher ubertragen, die an durch m teilbaren Adressen beginnen. Im Hinblick auf
den Cache wird also der Hauptspeicher so betrachtet, als ware er in Blocke
der Lange m =2 b Bytes unterteilt. Bei einem Zugriff auf die Speicheradresse
A werden m Bytes startend bei Adresse m ·A/m
aus dem Hauptspeicher in
den Cache ubertragen. Damit sich bei nachfolgenden Speicherzugriffen fest-
stellen lasst, zu welcher Hauptspeicheradresse der Cache-Block gehort, wird
die Adresse mit gespeichert. Es reicht aus, die hochstwertigen w − b Bits der
Adresse zu speichern. Dabei bezeichnet w die Lange einer Adresse in Bit.
Diese w − b Bits kann man als Speicheradresse des Blockes betrachten. Die
niederwertigen b Bits der Adresse ergeben sich durch die Lage (Offset) ei-
nes Bytes innerhalb des Blockes. Den mitgespeicherten Anteil der Adresse
bezeichnet man als Tag (Marke, Kennzeichen). Jeder lesende Speicherzugriff
erfordert also einen Vergleich der auszulesenden Speicheradresse mit dem
Tag. Bei Ubereinstimmen liegt ein Cache-Hit vor.
Nun verdoppeln wir die Große des Cache und betrachten zwei Cache-Blocke.
Zur Organisation des Cache bieten sich dabei zwei Moglichkeiten an. Im ers-
ten Fall ist jeder Block fur jeweils eine Halfte des Hauptspeichers zustandig.
Alternativ konnten beide Blocke Daten von beliebigen Speicheradressen auf-
nehmen.
Im ersten Fall werden die Daten in den ersten Cache-Block geschrieben, wenn
der Wert
gerade ist, und ansonsten in den zweiten Cache-Block. Ent-
sprechend ist zu jedem Cache-Block lediglich ein Tag der Lange w − b −
A/m
1zu
speichern. Weil dadurch der jeder Speicheradresse zugeordnete Cache-Block
festgelegt ist, nennt man diese Organisationsform auch einen direkt abbilden-
den Cache (direct mapped).
Search WWH ::




Custom Search