Übung H5.2

Bigge
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 26. Okt 2005 07:27
Wohnort: Wiesbaden
Kontaktdaten:

Übung H5.2

Beitrag von Bigge »

Hallo,

ich komme gerade irgendwie nicht mit der Aufgabenstellung von der 5.2 von der Hausübung zurecht - vielleicht liegt es aber auch nur daran, dass ich die Beschreibung in der Vorlesung nicht ganz so dolle fand...

Also, wenn jetzt ein Zugriff auf die Speicherstelle 0x17280001 erfolgt wird doch ein 64KB großer Block gelesen, oder? Aber von wo genau wird gelesen? Wird ein 64KB großer Block von 0x17280001 bis 0x17290001 gelesen oder wird das "aligned" gemacht (also immer am Beginn der 64KB Blocks, hier: 0x17280000 - 0x17290000)?

Jetzt nehmen wir mal, der Block wurde gelesen. In das Tag-Feld kommen dann doch die ersten N Bits der Adresse, der Rest ist Offset (N ergibt sich glaube ich aus der Adressbreite und der Größe des Caches, wollte hier nur nicht das (hoffentlich) richtige Ergebnis hinschreiben). Ein Hit passiert jetzt also, falls eine Adresse gelesen wird, deren Tag gleich dem eines Cache-Eintrags ist, denn dann befindet sich das gesuchte byte irgendwo in dem Datensatz, si?
Wozu brauche ich dann aber genau den Offset? Da steh ich dann irgendwie auf dem Schlauch - nach meiner Beschreibung hab ich doch eh den ganzen Block da, wo genau ich dann lese ist doch jedes Mal unterschiedlich *verwirrtbin*

Hoffe es kann mir jemand helfen,
(zumindest was das Cache-Problem angeht :P)
Gruß,
Bigge
Was ist weiß und versteckt sich hinter'm Baum?
- 'Ne schüchterne Milch!

Benutzeravatar
Báka
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 16. Feb 2006 15:47
Wohnort: Odenwald || DA

Beitrag von Báka »

gleich ne frage hinterher:
lieg ich richtig ,
wenn ich annehme dass die N,vom biggie genannten, bits offset,
sich aus block- und byteoffset zusammensetzen?
[align=center]
Bild
Bild
[/align]

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Übung H5.2

Beitrag von Thorti »

Hallo,
Bigge hat geschrieben:Also, wenn jetzt ein Zugriff auf die Speicherstelle 0x17280001 erfolgt wird doch ein 64KB großer Block gelesen, oder? Aber von wo genau wird gelesen? Wird ein 64KB großer Block von 0x17280001 bis 0x17290001 gelesen oder wird das "aligned" gemacht (also immer am Beginn der 64KB Blocks, hier: 0x17280000 - 0x17290000)?
Es werden immer ganze 64kb Blöcke eingelagert. Hier also 0x1728. Anders wäre die Verwaltung sehr schwer realisierbar, wie willst du dann was wiederfinden wenn du "krumme" Blöcke speicherst...
Jetzt nehmen wir mal, der Block wurde gelesen. In das Tag-Feld kommen dann doch die ersten N Bits der Adresse, der Rest ist Offset (N ergibt sich glaube ich aus der Adressbreite und der Größe des Caches, wollte hier nur nicht das (hoffentlich) richtige Ergebnis hinschreiben). Ein Hit passiert jetzt also, falls eine Adresse gelesen wird, deren Tag gleich dem eines Cache-Eintrags ist, denn dann befindet sich das gesuchte byte irgendwo in dem Datensatz, si?
Hört sich gut an.
Wozu brauche ich dann aber genau den Offset? Da steh ich dann irgendwie auf dem Schlauch - nach meiner Beschreibung hab ich doch eh den ganzen Block da, wo genau ich dann lese ist doch jedes Mal unterschiedlich *verwirrtbin*
Du musst doch innerhalb des Blockes noch die einzelnen Bytes ansprechen können. Auch wenn du ganze 64kb Blöcke im Cache hast, willst du ja nicht immer den ganzen Block verarbeiten.

Gruss Thorti
Assistent zur Vorlesung TGDI im WS 11/12

Bigge
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 26. Okt 2005 07:27
Wohnort: Wiesbaden
Kontaktdaten:

Re: Übung H5.2

Beitrag von Bigge »

Thorti hat geschrieben:
Wozu brauche ich dann aber genau den Offset? Da steh ich dann irgendwie auf dem Schlauch - nach meiner Beschreibung hab ich doch eh den ganzen Block da, wo genau ich dann lese ist doch jedes Mal unterschiedlich *verwirrtbin*
Du musst doch innerhalb des Blockes noch die einzelnen Bytes ansprechen können. Auch wenn du ganze 64kb Blöcke im Cache hast, willst du ja nicht immer den ganzen Block verarbeiten.
Ja schon, aber wieso muss ich dass denn im Cache speichern können? Bzw. wird da einfach die genaue Stelle des letzten Zugriffs gespeichert?
*immernochaufdemschlauchsteh*

Die ersten beiden Antworten haben aber schon mal sehr geholfen, danke! :)

Viele Grüße,
Bigge
Was ist weiß und versteckt sich hinter'm Baum?
- 'Ne schüchterne Milch!

Benutzeravatar
Báka
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 16. Feb 2006 15:47
Wohnort: Odenwald || DA

Beitrag von Báka »

gut,
dass meine frage so umfangreich beantwortet wurde......o0
[align=center]
Bild
Bild
[/align]

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Übung H5.2

Beitrag von Thorti »

Hallo,
Bigge hat geschrieben:Ja schon, aber wieso muss ich dass denn im Cache speichern können? Bzw. wird da einfach die genaue Stelle des letzten Zugriffs gespeichert?
*immernochaufdemschlauchsteh*
Nein, das wird eben NICHT gespeichert. Deshalb werden die Index-Bits ja auch abgezogen und kommen nicht in das Tag-Feld.

Gruss Thorti
Assistent zur Vorlesung TGDI im WS 11/12

Bigge
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 26. Okt 2005 07:27
Wohnort: Wiesbaden
Kontaktdaten:

Re: Übung H5.2

Beitrag von Bigge »

Thorti hat geschrieben:Hallo,
Bigge hat geschrieben:Ja schon, aber wieso muss ich dass denn im Cache speichern können? Bzw. wird da einfach die genaue Stelle des letzten Zugriffs gespeichert?
*immernochaufdemschlauchsteh*
Nein, das wird eben NICHT gespeichert. Deshalb werden die Index-Bits ja auch abgezogen und kommen nicht in das Tag-Feld.
Und was steht denn im dann im Block-Offset? (irgendwie wirds nicht besser :o))

Gruß,
Bigge
Was ist weiß und versteckt sich hinter'm Baum?
- 'Ne schüchterne Milch!

Benutzeravatar
mantra
Computerversteher
Computerversteher
Beiträge: 385
Registriert: 23. Okt 2005 23:56
Wohnort: Wiesbaden

Beitrag von mantra »

Hast du ein Glueck, nicht heute schon abgeben zu muessen. Wenn sich jetzt rausstellt, dass meine Antwort falsch ist, koennte das ein Problem fuer mich geben :)

Also ich verstehe es so: Wenn du ein Wort liest, das noch nicht im Cache ist und es in einem gewissen Blockbereich liegt, wird der gesamte Block in den Cache geladen. Greifst du erneut auf dieses Wort zu, liegt es im Cache und du findest es, indem du das Tag-Feld aufsuchst, das mit dem Tag-Bereich der Adresse uebereinstimmt. Dann hast du deinen 64kb Block. Da du aber nur ein bestimmtes Wort willst, suchst du in diesem Block anhand des Block-Offset-Teils von der Wortadresse (der inkonsequenter Weise das Wort innerhalb des Blocks adressiert, waehrend der Byte-Offset tatsaechlich das Byte adressiert) und hast dein Wort gefunden.

Benutzeravatar
Skylo
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 149
Registriert: 7. Nov 2006 20:08
Wohnort: Darmstadt (Woogsviertel)
Kontaktdaten:

Beitrag von Skylo »

Ich hab da ein Problem!
wir haben ja nur wenige Fälle wo alle 4 Felder belegt werden!
Wo kommt dann das FIFO Prinzip zum Tragen!?

Hoffe um schnelle Hilfe,
tschöö!!
Junge, geh kacken! Echt jetzt!

Bigge
Mausschubser
Mausschubser
Beiträge: 56
Registriert: 26. Okt 2005 07:27
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Bigge »

Skylo hat geschrieben:Ich hab da ein Problem!
wir haben ja nur wenige Fälle wo alle 4 Felder belegt werden!
Wo kommt dann das FIFO Prinzip zum Tragen!?

Hoffe um schnelle Hilfe,
tschöö!!
Äh, wie soll ich das verstehen? Sobald der Cache einmal mit 4 Einträgen belegt ist (also nach dem 4. Miss), nimmt die Zahl der Einträge nicht mehr ab. Bei jedem weiteren Miss kommt als FIFO zum Tragen...

Gruß,
Bigge
Was ist weiß und versteckt sich hinter'm Baum?
- 'Ne schüchterne Milch!

Benutzeravatar
DC-GS
Computerversteher
Computerversteher
Beiträge: 330
Registriert: 2. Mär 2006 13:18

Beitrag von DC-GS »

Also ich hab auch ned verstanden, von was der wirklich spricht.
Hut abnehmen sollte da schon weiterhelfen.

Nene... ich glaube, er meint den Fall, wenn wir unseren Vollassoziativen Cache nicht gefüllt haben. Wenn wir zB Kapazität 4 haben, aber nur 2 Einträge drin.
Lösung: In dem Fall ist es egal, welches Prinzip wir nutzen. Ob FIFO oder was es noch gibt. In jedem Fall speichern wir beim weiterem Miss den neuen Datensatz an der unbenutzen Stelle im Cache. Wir ersetzen dabei nichts.

Benutzeravatar
Skylo
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 149
Registriert: 7. Nov 2006 20:08
Wohnort: Darmstadt (Woogsviertel)
Kontaktdaten:

Beitrag von Skylo »

ah ok danke ;)
Junge, geh kacken! Echt jetzt!

Antworten

Zurück zu „Archiv“