Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Klausur 25.09.2013
Äh ja ich hab nochmal schnell eine Frage zu einer älteren Klausuraufgabe, mir ist das noch nicht ganz klar denk ich.
Wie weis man denn in welcher Bank man beim 4 fach Interleaving des Arbeitsspeichers ist, wenn man nur weis, dass die Breite 32 Bit ist und die Adresse die man anspricht heißt 0x12345678? Wie bekommt man das raus?
Wenn die Busbreite 32 Bit (4 Byte) ist und 4-fach Interleaving bedeutet, dass 4 Bausteine auf einer Bank sind dann ist der Aufbau: BA: ld(4)=2 BANK: ld(4)=2 =>> Bank ist bei 0x12345678 die 10 (00 = BA) und damit die „dritte“ Bank.
Macht kein Sinn. Ich schaus mir mal an
Ich denke die Antwort auf die Frage in welcher Bank von vorhandenen 4, mit vierfachem Interleaving wäre: Bank 2.
Denn eine Adresse ist in deinem Beispiel 32Bit lang. Nachdem immer 32Bit (also vier Byte) ausgegeben werden (die Breite), sind die “letzten” (also die Bit beim LSB) 2 Bit für die Byteauswahl zuständig. Danach kommt beim Interleaving die Bankauswahl, in deiner Angabe stehen 4 Bänke, also werden dafür auch 2 Bit benötigt. Die letzten 4 Bit deiner Adresse sind 0x8, also 0b1000. Daher befindet man sich in der Bank 0b10, also der zweiten.
Soweit wäre meine Anwort, hilft das weiter?
Das hatte ich auch gerade gesagt, aber 4-fach Interleaving bedeutet doch, dass 4 Chips in einer Bank sind - die BANKauswahl bedeutet aber ja, welche BANK ausgewaehlt wird, also macht das irgendwie keinen Sinn.
ODer verstehe ich da was falsch und hatte es richtgi?
Also ich sage dein erster gedanke war richtig. Wenn man sich die im kapitel 2 die folie 72 anschaut wird das auch klarer http://www3.informatik.uni-erlangen.de/Lehre/GRa/SS2013/Gra_Kap_2_67bis123.pdf
Okay so langsam legt sich zumindest der Nebel. Danke nochmal für den Folien Hinweis. Also damit ich das richtig verstehe. Interleaving 4fach bedeutet,
dass 4 Bytes hintereinander auf einer Bank sind die nächsten 4 Bytes auf der nächsten Bank usw. Um 4 Banken in Bit-Form bestimmen zu können braucht es 2 Bits für die Banken 00, 01, 10, 11 . Da du pro Bank hintereinander 4 Bytes hast braucht es auch da wieder 2 Bit um zu bestimmen welches der 4 Bytes 00, 01, 10 oder 11 gemeint ist. D.h. also von rechts nach links gelesen die ersten 2 Bits sind das Wort in der Bank und die darauffolgenden 2 Bits sind die Bank selbst. Eine Hex-Zahl = 4 Bits d.h. bei der Adresse 0x12345678 ist lediglich die 8 am Ende interessant d.h. 0x8 sagt uns welches Wort und welche Bank. Also Binär 1000 also müsste es sich dann um das 1. Wort 00 in der Bank 2 sein wobei ich jetz aber nochmal wissen muss man rechnet jetzt schon mit Bank 0,1,2,3 bei 4 Bänken und nicht Bank 1,2,3,4 weil man ja sonst bei 2 Bits nicht hinkäme mit einem Maximum von 11 = 3 Lieg ich also damit so richtig? Also es ist somit zwar die Bank 2 also 10 aber im Grunde die dritte Bank von den Vieren. Aber ich denk Bank 2 will man hören.