Frage zu Übung 5

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Frage zu Übung 5

Beitrag von jan_k »

Hallo,

Die Gesamtgröße (ohne Verwaltungsinformationen) des Caches soll 64 Kilobytes betragen. Heißt das, dass hier der Tag, Index und Validbit nicht mit einbezogen werden?

Die Blockgröße beträgt 1024 Wörter. Wird hierbei jetzt Tag, Index und Validbit mitbetrachtet?

Ist eine Cachezeile immer 32 bit breit?

VersuchEs
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 25. Mai 2008 11:21

Re: Frage zu Übung 5

Beitrag von VersuchEs »

Hallo,

guck dir 4.40 nochmal genauer an.

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Re: Frage zu Übung 5

Beitrag von jan_k »

So... nach mehrstündigem Anstarren der Folie 40 hab ich immer noch die gleichen Fragen..
Am besten find ich übrigens die vier Rechtecke auf der Folie ^^ Da wurds gleich viel klarer.

SLik_
Neuling
Neuling
Beiträge: 10
Registriert: 30. Nov 2009 15:10

Re: Frage zu Übung 5

Beitrag von SLik_ »

ok, vllt ein paar worte zum Cache-aufbau, damit es dir klarer wird:

Der Cache ordnet Daten in gewisser Struktur an. Um zu wissen, auf welchen Platz der Struktur du deine Daten schreibst bzw liest wird die Adresse der Daten in Abschnitte unterteilt:
|Tag | Index | Offset | <-- unterteilung
|xxxxxxx|xxxxxx|xxxxxx | <-- eigentliche Adresse in Bit

Durch den Index werden im Prinzip Zeilen markiert. Ist der Cache n-wege assoziativ, dann entspricht n der Anzahl der "Spalten".
Jede Spalte beinhaltet dabei:
einen Datenpart (die Daten, die an der Adresse im übergeordneten Speicher standen) und
einen Adresspart (den Tag)
sowie evtl Zusatzinformationen (valid Bit, dirty Bit).

Wird die Anzahl der Spalten erhöht (also der Cache n-wege assoziativ) heißt das nicht, dass die Zuordnung der Adressen in die Zeilen nach Index sich ändert, sondern nur, dass mehrere Datenblöcke mit selbem Index im Cache gehalten werden können.

Der Datenpart:
.. hat eine Gewisse Größe, nämlich genau 1 "Block", was wiederum einer Gewissen Anzahl an "Wörtern" entspricht. Die Wörter bestehen wiederum aus einer gewissen Anzahl an Byte (oft 4). Worte werden mit dem "Blockoffset" (erster Teil des Offset - also zB bei Blockgröße 8 Worte entsprechend 3Bit) und einzelne Byte mit dem "Byteoffset" (zweiter Teil des Offset - also bei Wortgröße 32Bit=4Byte entsprechend 2Bit) angesprochen; diese Offsets sind im Cache aber nirgends mehr zu finden und beschreiben einfach nur die innere Blockstruktur. Der Cache selbst arbeitet nur mit ganzen Blöcken.

Der Adresspart:
..ist der Rest der Adresse (genannt Tag - also Adresse ohne Index- und Offset-Bits), die zur Identifikation der Daten dient, die im Cache stehen, da ja verschiedene Daten an einem sestimmten Platz im Cache stehen können (nämlich alle mit dem selben Index).

Adresspart sowie Zusatzinformationen werden auch als Verwaltungsinformationen bezeichnet (da sie ja auch nur der Verwaltung des Caches dienen).
Die in der Aufgabenstellung genannten 64kB betreffen also nur Den Datenpart.

Cachegröße = Anz.d.Blöcke*Blockgröße = Anz.d.Blöcke*Anz.d.Wörter*Wortgröße
Anz.d.Blöcke = n(wegeassoziativ) * Anz.d.Zeilen = n(wegeassoziativ) * 2^Anz.IndexBits

Ok ganz schön lang geworden.. hoffe ich konnte halbwegs was erklären und verdeutlichen.

Grüße

mister_tt
Kernelcompilierer
Kernelcompilierer
Beiträge: 502
Registriert: 29. Sep 2008 15:54

Re: Frage zu Übung 5

Beitrag von mister_tt »

Vielen Dank für den ausführlichen Beitrag - ein super Text um Caches besser zu verstehen.

Mein weiterer Tipp für alle, die die Übung noch machen müssen: Vergesst die Folien und lest Patterson/Hennesy S. 405 - 410 (mengenassoziativer Cache = satzassoziativer Cache). Danach ist die Übung fast einfach :-)

Benutzeravatar
jan_k
Mausschubser
Mausschubser
Beiträge: 66
Registriert: 7. Jul 2009 15:39
Kontaktdaten:

Re: Frage zu Übung 5

Beitrag von jan_k »

Danke Slik! Das war hilfreich! :)

Antworten

Zurück zu „Archiv“