0 Daumen
1,1k Aufrufe

Guten Tag,

ein direktabgebildeter cache hat eine speicherkapazitaet von 32 bytes und wird in bloecken von je 4 bytes geladen. Die Hauptspeicheradresse umfasst 32 bits.

Warum brauche ich fuer die byteauswahl 2 bits ich haette eig gedacht ich brauche 3 bit fuer die byteauswahl da es ja bloecke von 4 bytes sind???


MfG,

Danyboy

Avatar von

Da fragst du vielleicht besser in einem Informatikforum.

Was bedeutet genau "direktabgebildeter Cache". 

Kann es sein, dass die 2 bits nötig sind um innerhalb der 4er-Blöcke die Byte-Auswahl zu machen? 

Genau um die byteauswahl innerhalbt der 4byte-bloecke zu machen. Also man muss 1 byte aus den 4 auswaehlen koennen.

Aber mit 2 bit kommst du max auf 3 also 11=3

Mit 3 bit kommst du auch auf 4 denn 100=4

Mir ist nicht klar warum 2 bit fuer die byteauswahl reichen..


MfG,

Danyboy

2 Antworten

+1 Daumen

Davon ausgehend dass du mit einem Bit genau 2 Byte adressieren kannst, kannst du mit 2 Bit 4 Byte adressieren.

00: erstes Byte

01: zweites Byte

10: drittes Byte

11: viertes Byte

Mit 3 Bit kannst du demnach bis zu 8 Byte adressieren, mit 4 Bit 16 Byte usw. Eigentlich alles nicht wirklich schwer...

Das was du mit Blöcken meinst, sind Bytewörter, dafür benötigst du natürlich 3 Bit. 32/4 Byte sind 8 Blöcke. 8 log 2 = 3 Bit um alle Bytewörter adressieren zu können. Du solltest demnach weitere 3 Bit in deiner Adresszeile haben um auch die Blöcke selektieren zu können. Wir reden hier aber von etwas anderem als von der direkten Byteadressierung, und das scheinst du zu verwechseln...

Sieh dir einfach mal den Adressaufbau von einem Direct Mapped Cache an, und du wirst sehen dass du beide Indexierungen benötigst. Ein mal um in das Wort zu gelangen, das andere Mal um das gewünschte Byte zu adressieren.


P.S. Dani: Dein eigener Kommentar unter deiner Frage ist absolut falsch. Lu hatte dir schon die richtige Antwort gegeben. Setze dich damit bitte auseinander!

Du hast weder verstanden dass 2 Bit 2^2 Möglichkeiten sind, geschweige denn, dass man in der Informatik beginnt bei Null zu zählen. Dafür dass es eine zweitsemester Vorlesung ist, würde ich mir mal ernsthafte Gedanken machen, was ein Stellenwertsystem ist, und was dies insbesondere im binären bedeutet. Ab dann werden Adressierungen zu Kinderspiel, und sind auf Paging, Segmentation, Swapping, usw ganz einfach übertragbar.


Ansonsten kann auch ich dir nur raten, die Fragen dort zu stellen, wo es 1. Leute gibt die sich damit auskennen, und 2. die technische Möglichkeit besteht dir auch gescheit zu antworten. Ich hoffe meine Antwort kann von Mods in deine Frage editiert werden.

Avatar von

EDIT: Habe die "Frage" des Gastes hierhin umgeleitet. Momentan kann ich das nur als Kommentar, nicht als Antwort umleiten. (@gast: Man kann sich auch mit einer E-Mail-Adresse anmelden, die man nicht regelmässig nutzt.)

EDIT: Umwandlung nun gelungen. 

Stand total auf dem Schlauch jetzt ist's klar, Danke!
0 Daumen

Mit 2 Bit hast du doch die folgenden vier Möglichkeiten

00

01

10

11

Genügt das denn nicht? 

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community