Klausur September 2012

Speicherverwaltung

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 September 2012
Ein 512 MiB großes Speichermodul soll aus 1 Byte breiten Speicherbausteinen der Gr¨oße
32 MiB aufgebaut werden. Das Modul sei 64 Bit breit. Es werden 32 Bit breite Adressen
verwendet. Sequentielle Zugriffe sollen durch Interleaving performant durchfuhrbar sein. ¨
Auf welches Byte in welcher Zeile welcher Hauptspeicherbank wird zugegriffen, wenn von der
Adresse 0xCAFEBABE gelesen werden soll?

is es richtig dass ich 16 speicherbausteine habe á 32Mib ich brauche kein Bit für byteauswahl …Bin mir da nicht sicher


die antwort sieht ungefähr so aus:

512 Mib = 2²⁹ byte , ein Speicherbausstein hat 2²⁵ byte => 2⁴ Speicherbausteine = 16 die insgesamt 16 byte haben
das Modul ist 64 bit = 8 Byte breit
=> es gibt zwei Bänke
da das modul 8 byte (64bit) breit ist brauchen wir 2³ = 3 bits für die Addressierung der bytes

es ergibt sich folgende Logik der Adresse die 32 bit lang ist
29 bit brauchen wir um 512 Mib zu adressieren
=> das Modul schneidet die ersten 3 bit von der Adresse ab von dem C der Adresse bleibt nurnoch 0 übrig

wir brauchen 3 bits für die Adressierung (bits 0,1,2)
und 1 bit für die Auswahl der Bank (3)
=> der letzte Hex wert ist für die Bank und Byteauswahl Zuständig

=> E = 1110
=> Byte 6
von bank 2
die restlichen 25 bit für die Zeilenauswahl
=> Zeile: 0xAFEBAB


danke!!!