Übung 6 : Aufgabe 3 & 5

charfi90
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 8. Sep 2010 15:40

Übung 6 : Aufgabe 3 & 5

Beitrag von charfi90 » 18. Mär 2012 12:47

Hallo ,
ich habe zwei Fragen bezüglich der 3 Aufgabe teil c und 5 Aufgabe a
1 Frage: 3-c) wie kann ich wissen ob es Valid bit ist oder nicht?
wie kann man die Tags bits berechnen ?
2: Frage 5-a) wie kann man wissen ob es sich um ein Hit oder miss handelt ?
Vielen Dank
Gruß
Dateianhänge
3c.png
3c.png (36.28 KiB) 986 mal betrachtet
5a.png
5a.png (55.2 KiB) 986 mal betrachtet

Kristoffer
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 4. Okt 2010 21:29

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von Kristoffer » 18. Mär 2012 13:32

Zur 5a) Im ersten Fall (0x9A44) ist es ein miss, da noch nichts im Cache steht. Im zweiten Fall ist die Adresse auch noch nicht im Cache, also wieder ein miss und die Adresse wird die Cache hinzugefügt. Genauso geht das auch im dritten Fall weiter.
Im vierten Fall ist die Adresse auf die zugegriffen wird schon im Cache (Eintrag 2) daher ist es ein Hit und die Adresse wird dem Cache natürlich nicht hinzugefügt.
Genauso geht das dann immer weiter. Dabei ist noch zu beachten, dass es sich um die FIFO Ersetzungsstrategie handelt.

Bei der 3 denke ich, dass das Valid-Bit gesetzt wird, wenn sich die Hauptspeicheradressen im Cache befinden.
Zuletzt geändert von Kristoffer am 18. Mär 2012 13:34, insgesamt 1-mal geändert.

charfi90
Mausschubser
Mausschubser
Beiträge: 61
Registriert: 8. Sep 2010 15:40

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von charfi90 » 18. Mär 2012 13:33

Vielen Dank

nairolf
Erstie
Erstie
Beiträge: 18
Registriert: 31. Jul 2011 13:58

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von nairolf » 18. Mär 2012 15:50

An Aufgabe 3c) hänge ich auch grad.
Kann mir einer erklären, wie sich die einzelnen Spalten zusammensetzen, insbesondere „Data“, bzw. woher man weiß was da am Ende drinnen steht?
Und auch wie man die Tags berechnet?

Benutzeravatar
zimpfer
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 15. Mär 2009 01:07

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von zimpfer » 19. Mär 2012 00:39

nairolf hat geschrieben:An Aufgabe 3c) hänge ich auch grad.
Kann mir einer erklären, wie sich die einzelnen Spalten zusammensetzen, insbesondere „Data“, bzw. woher man weiß was da am Ende drinnen steht?
Und auch wie man die Tags berechnet?
Eine Speicheradresse (welche ein Byte adressiert) wird zerlegt nach dem Muster Tag|Index|Offset.

Ein Eintrag im Cache beinhaltet immer einen ganzen Block vorgegebener Größe, in diesem Fall 1 Block = 1 Byte. Das heißt der Offset hat Länge 0.
Da es 8 Einträge gibt, brauchst du 3 Indexbits (I) und der Rest ist der Tag (T). --> TTTTT|III
Nun wird die Tabelle "gefüllt" indem du die Speicheradressen zerlegst nach obigem Muster und bereits besetzte Einträge je nach Ersetzungsstrategie evtl. ersetzst: 0x01, 0x02, 0x03, 0x13, 0xF8, 0xF9, 0xAA, 0xCC, 0x57
Dann kommt das Ergebnis wie auf dem Blatt raus. In diesem Fall hast du keinen Offset, sodass du die Adresse der dort gespeicherten Speicherbytes über Zusamensetzen des Tags und des Index errechnest. Damit kommst du z.B. beim ersten Eintrag zu den Speicher(0xF8), denn 0xF8 = 0b(11111)(000) = (Tag)(Index).

Wenn der Block größer als 1 Byte ist, (z.B. 4 Byte pro Block) dann ist der Speicherbereich (Tag)(Index)00 - (Tag)(Index)11

willK
Erstie
Erstie
Beiträge: 19
Registriert: 12. Aug 2011 17:08

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von willK » 20. Mär 2012 14:50

Hallo,
wie kann ich denn bei der 5a die Anzahl der Tagging-Bits berechnen?

Danke & Grüße

Volkan
Erstie
Erstie
Beiträge: 18
Registriert: 16. Okt 2010 19:50

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von Volkan » 20. Mär 2012 15:17

zimpfer hat geschrieben:
nairolf hat geschrieben:An Aufgabe 3c) hänge ich auch grad.
Kann mir einer erklären, wie sich die einzelnen Spalten zusammensetzen, insbesondere „Data“, bzw. woher man weiß was da am Ende drinnen steht?
Und auch wie man die Tags berechnet?
Eine Speicheradresse (welche ein Byte adressiert) wird zerlegt nach dem Muster Tag|Index|Offset.

Ein Eintrag im Cache beinhaltet immer einen ganzen Block vorgegebener Größe, in diesem Fall 1 Block = 1 Byte. Das heißt der Offset hat Länge 0.
Da es 8 Einträge gibt, brauchst du 3 Indexbits (I) und der Rest ist der Tag (T). --> TTTTT|III
Nun wird die Tabelle "gefüllt" indem du die Speicheradressen zerlegst nach obigem Muster und bereits besetzte Einträge je nach Ersetzungsstrategie evtl. ersetzst: 0x01, 0x02, 0x03, 0x13, 0xF8, 0xF9, 0xAA, 0xCC, 0x57
Dann kommt das Ergebnis wie auf dem Blatt raus. In diesem Fall hast du keinen Offset, sodass du die Adresse der dort gespeicherten Speicherbytes über Zusamensetzen des Tags und des Index errechnest. Damit kommst du z.B. beim ersten Eintrag zu den Speicher(0xF8), denn 0xF8 = 0b(11111)(000) = (Tag)(Index).

Wenn der Block größer als 1 Byte ist, (z.B. 4 Byte pro Block) dann ist der Speicherbereich (Tag)(Index)00 - (Tag)(Index)11
Heißt das dass wir dann bei der Aufgabe 4 Blöcke adreessieren, die 16 Byte groß sind?

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von Drno » 20. Mär 2012 15:23

Zu 5a) Schau dir einfach die Blockgröße an um zu wissen was als Tag noch übrig bleibt.
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

hstr
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 128
Registriert: 14. Apr 2011 22:52

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von hstr » 21. Mär 2012 22:09

zimpfer hat geschrieben: Eine Speicheradresse (welche ein Byte adressiert) wird zerlegt nach dem Muster Tag|Index|Offset.

Ein Eintrag im Cache beinhaltet immer einen ganzen Block vorgegebener Größe, in diesem Fall 1 Block = 1 Byte....
Wieso ist hier 1 Block = 1 Byte?
Mir ist insgesamt nicht ganz klar wie man bei dieser Aufgabe auf Offset = 0 kommt. :/

Benutzeravatar
zimpfer
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 15. Mär 2009 01:07

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von zimpfer » 22. Mär 2012 01:45

Hallo,
wie kann ich denn bei der 5a die Anzahl der Tagging-Bits berechnen?

Danke & Grüße
Die sind einfach der Rest der Adresse, nachdem du Index und Offset bestimmt hast.

Heißt das dass wir dann bei der Aufgabe 4 Blöcke adreessieren, die 16 Byte groß sind?
Du musst unterscheiden zwischen adressieren (also konkrete Bytes lesen) und prüfen, ob ein Eintrag im Cache ist.
Zum Prüfen reicht es zu schauen, ob der Block im Cache ist, zum Laden/Schreiben aus/in eine konkrete Adresse wird byteweise adressiert.
Wieso ist hier 1 Block = 1 Byte?
Mir ist insgesamt nicht ganz klar wie man bei dieser Aufgabe auf Offset = 0 kommt. :/
Das steht in der Aufgabe nicht dabei, weil die uralt ist, normalerweise ist die Blockgröße angegeben.
Dadurch dass im Block nur ein einziges Byte existiert brauchst du auch keinen Offset, um innerhalb eines Blockes alle Bytes zu adresseren, da man nur eine Möglichkeit hat...

hstr
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 128
Registriert: 14. Apr 2011 22:52

Re: Übung 6 : Aufgabe 3 & 5

Beitrag von hstr » 22. Mär 2012 07:11

Danke!

Antworten

Zurück zu „Archiv“