Bonusübung 1.4 c)

Schildy
Windoof-User
Windoof-User
Beiträge: 27
Registriert: 21. Mai 2007 18:54
Wohnort: Darmstadt
Kontaktdaten:

Re: Bonusübung 1.4 c)

Beitrag von Schildy »

Aber "Wortadresse" sagt für mich nur aus, dass sie 32 Bit lang ist.
Gut, also Byteweise, wegen mir. Aber wenn ihr das byteweise macht, gibts bei euch dann Ersetzung oder nicht?

dstorck
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 26. Mär 2009 07:58

Re: Bonusübung 1.4 c)

Beitrag von dstorck »

Was ist denn eine Wortadresse? In der Tabelle habe ich einen Zugriff auf eine Wortadresse 1,5,120.... kann mir mal jemand sagen was das genau zu bedeuten hat?

mfG

Sascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 245
Registriert: 13. Apr 2004 19:23
Wohnort: Darmstadt
Kontaktdaten:

Re: Bonusübung 1.4 c)

Beitrag von Sascha »

glowhand hat geschrieben:allerdings handelt es sich in der tabelle um eine "wortadresse" (steht ja drüber).
Ja, finde ich auch. :wink:

Wir werden die Lösung zu erweitern, dass beide Lösungsmöglichkeiten als richtig anerkannt werden. Ich habe mittlerweile verstanden, dass der Aufgabenersteller hier tatsächlich Wortadressen im Sinn hatte, und es steht ja auch bei der Tabellen drüber. Mir war auch nicht bekannt, dass Sie in einer anderen Vorlesung nur mit Wortadressen gearbeitet haben. Von der Perspektive des Softwareentwicklers aus scheint mir das auch eher in Ausnahmen sinnvoll zu sein.

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

Re: Bonusübung 1.4 c)

Beitrag von mister_tt »

Jetzt muss ich noch ganz doof was dazu fragen...
Wortweise Adressierung heißt dann, dass wir keinen Byteoffset haben und somit die ganze "Wortadresse" aus der Tabelle unser Tag ist, richtig?

Bei byteweiser Adressierung würde ich mich dann auch fragen, was in die Spalte "eingelagert" bzw. "ersetzt" kommen soll - Tag oder die Adresse? Von daher macht worweise Adressierung auch Sinn ^^

samy-delux
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 21. Okt 2008 18:59

Re: Bonusübung 1.4 c)

Beitrag von samy-delux »

Mal zum Vergleichen:
Cache A: 5H/11M
Cache B: 6H/10M

Bei wortweiser Adressierung!

Benutzeravatar
Patr0rc
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 260
Registriert: 8. Feb 2008 11:43

Re: Bonusübung 1.4 c)

Beitrag von Patr0rc »

Ich hab bei beiden Caches 6H/10M, aber an unterschiedlichen Stellen.

samy-delux
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 21. Okt 2008 18:59

Re: Bonusübung 1.4 c)

Beitrag von samy-delux »

Stimmt, hast recht. Hatte mich beim ersten Cache verzählt beim ersetzen!

Benutzeravatar
Patr0rc
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 260
Registriert: 8. Feb 2008 11:43

Re: Bonusübung 1.4 c)

Beitrag von Patr0rc »

Puh, Glück gehabt ;-)

Benutzeravatar
Dennis
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 102
Registriert: 29. Sep 2008 21:15

Re: Bonusübung 1.4 c)

Beitrag von Dennis »

dstorck hat geschrieben:Was ist denn eine Wortadresse? In der Tabelle habe ich einen Zugriff auf eine Wortadresse 1,5,120.... kann mir mal jemand sagen was das genau zu bedeuten hat?

mfG
Steh gerade noch vor dem gleichen Problem - vielleicht.

Aktuell denke ich, dass wenn z.B. ein Block in Cache A zwei Worte schluckt und ich bei der "Wortadresse" 122 suche (-> miss) die Werte "122" nach Offset 0 und "123" nach Offset 1 geklatscht werden (im nächsten freien Block). Ist das so richtig?

Probleme habe ich auch noch damit, dass ich z.B. in Cache A 8 Blöcke habe. Ich spreche ja alle direkt an. Angenommen alle sind voll und ich hab wieder nen Miss... sagen wir mal ich suche jezt 73 und hab einen Miss, dann fliegt der älteste Eintrag mit 2 Worten raus -> und in dem Block landet die 73 jetzt an offset 1 und ich saug die 72 nach offset 0?

Mit der oben genannten Vorgehensweise kommen wir auch auf die 41 als erste Ersetzung.
...fragt stellvertretend für alle Freunde...

Telefonjoker
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 161
Registriert: 19. Apr 2008 21:02

Re: Bonusübung 1.4 c)

Beitrag von Telefonjoker »

Was darf ich eigentlich unter "eingelagert" und "ersetzt" verstehen?

Heißt "eingelagert", ich habe in einen leeren Block geschrieben, und "ersetzt" ich habe einen alten Wert rausgeschmissen? :roll:


Und nochmal zur Wortadressierung: Ich habe jetzt den Arbeitsspeicher in Worte (32bit) eingeteilt; also, jede Adresse zeigt auf ein Wort. Dann hätte ich bei Cache A ein Offset-Bit, da ich gleich zwei Worte in den Block lade. Stimmt das so?

Benutzeravatar
Patr0rc
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 260
Registriert: 8. Feb 2008 11:43

Re: Bonusübung 1.4 c)

Beitrag von Patr0rc »

Dennis' Vorgehensweise ist auch die, mit der ich vorgegangen bin.
Du weißt doch, wieviele Worte pro Block man speichern kann (zwei-Wort-Blöcke bei Cache A z.B.). Also kann bei Cache A z.B. man zwei benachbarte Wortadressen in einen Block einlagern, bei Cache B sogar vier Worte in einen Block. Da braucht man nicht über Offset oder so nachdenken. Schreibt doch einfach rein, welche Wortadressen jeweils geladen werden.
Und unter einlagern verstehe ich erst einmal nur, dass etwas in den Cache geschrieben wird, ohne dass geklärt ist, was mit dem Wert bzw. den Werten passiert, die dort waren. Ersetzt heißt für mich explizit, dass dort Werte standen, die durch die einzulagernden Werte ersetzt werden, d.h. die alten Werte werden rausgeworfen und die neuen reingeschrieben (bzw. die alten einfach durch die neuen überschrieben).
Hilft das?

Telefonjoker
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 161
Registriert: 19. Apr 2008 21:02

Re: Bonusübung 1.4 c)

Beitrag von Telefonjoker »

Also, ich habe bei..

Cache A: 6 Hits / 2 Ersetzungen

Cache B: 9 Hits / keine Ersetzung

Benutzeravatar
Patr0rc
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 260
Registriert: 8. Feb 2008 11:43

Re: Bonusübung 1.4 c)

Beitrag von Patr0rc »

Ich hab dasselbe bei Cache A, jedoch 6 Hits und 6 Ersetzungen bei Cache B.

k_b
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 213
Registriert: 15. Mär 2009 12:06

Re: Bonusübung 1.4 c)

Beitrag von k_b »

Hallo,

ich muss jetzt mal "doof" fragen, warum muss man die einzuladenden adressen mit (adresse mod blockgröße) bestimmen? So kommt man ja bei Blockgröße 2 auf x und x+1, falls Adresse x gerede und x-1 und x, falls Adresse x ungerade. Und bei Blockgröße 4 muss man dann ja, falls Adresse x gerade ist x, x+1, x+2, x+3 einladen und falls x ungerade ist x - 1, x, x+1 und x+2. Ich habe momentan die Adressen immer so eingeladen wie ich es unter dem Fall Adresse x ist gerade bei beiden Blockgrößen beschrieben habe. Ich bekomme auf diese Weise bei Cache A 4H und 12M und bei Cace B 6H und 10M; natürlich an anderen Stellen. Ich habe es jetzt auch nochmal mit der "Methode" (adresse mod blockgröße). Aber mir fehlt gerade die Erklärung, warum welches richtig ist?

Danke schonmal ;)

Benutzeravatar
AlexPi11
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 154
Registriert: 18. Apr 2009 15:32

Re: Bonusübung 1.4 c)

Beitrag von AlexPi11 »

Wie kommt man auf "adresse mod blockgröße" für einzuladene Adressen? Also 3 % 4 = 3 und 7 % 4 = 3 => um 3 oder 7 zu laden, muss ich Adresse 3 laden? Ich hab' jetzt nicht nachgeschaut, aber da ist doch was faul.

Die Anfangsadresse von einem Eintrag muss durch die Blockgröße teilbar sein, wodurch man z.B. ab und zu [x-1, x] laden muss.
Vorstellen kann man sich die Speicheraufteilung mit einem Cache mit 4 Wörtern pro Block so:
[0, 3][4, 7][8, 11].....[n-3, n] wobei n das letzte adressierbare Wort im Speicher ist. Möchte man hier z.B. das Wort an Stelle 9 laden, bleibt einem nichts anderes übrig als [8, 11] zu laden. Durch das Offset wird dann genauer beschrieben was man nun eigentlich aus diesem Eintrag braucht. Hier wäre das Offset 01 (ohne Byteoffset)

Um die Startadresse zu bestimmen, muss man also nichts anderes machen als das Offset 00 zu nehmen. Oder mathmatisch: Adresse - (Adresse % Blockgröße)
(Rechnet man mit Byteoffset, müsste die Blockgröße in Byte statt in Wörter bestimmt werden. Aber wie schon gesagt wurde, handelt es sich ja um Wortadressen.)

EDIT:
Und bei Blockgröße 4 muss man dann ja, falls Adresse x gerade ist x, x+1, x+2, x+3 einladen
Stimmt von daher auch nicht immer. Zum Beispiel Wortadresse 2 würde [0,3] entsprechen. Oder eben x-2, x-1, x, x+1

Antworten

Zurück zu „Archiv“