Frage von cimbomlu90, 68

Berechnung der Hauptspeicheradressen?

Ich studiere Informatik und ich werde eine Prüfung in Einführung in Betriebssysteme und Rechenarchitektur schreiben. Ich habe ein Problem mit der Berechnung von Hauptspeicheradressen. Bei der Frage zB geht es um eine Hauptspeicherkapazität von 128MB

Außerdem habe ich auch Probleme bei der Berechnung der Cache-Lines hier die Beispiel Frage: Ein Rechner besitze einen Datencache mit 1MB. Der Speicher ist in 16 Bit Worten organisiert. Der Cache ist in Lines zu je 64 Worten eingeteilt. Wieviel Cache Lines besitzt der Cache?

Kann mir einer Schritt für Schritt erklären, wie man das berechnen kann? Wenn es ne Formel geben sollte wäre es perfekt :P

Ich freue mich auf die Antworten, danke!

Antwort
von Zyrober, 42

cache = 2^20 bits = 1048576 bits

Words = cache / 16 = 65536 words

Lines = Words / 64 = 1024 lines

Kommentar von cimbomlu90 ,

Ich habe aber sowie Kiboman 2^13=8192 Lines raus

Kommentar von Zyrober ,

ach sh... MB nicht Mbit :)

Kommentar von cimbomlu90 ,

Habe dein Fehler gefunden. Am Ende wenn du die Lines rechnest darfst du die Words nicht durch 64 teilen, wenn du mit Bits rechnest. Falls du mit Bits rechnest muss du die 64 durch 8 teilen, also words / 8 = 8192 Lines

Kommentar von Zyrober ,

Das meinte ich mit "MB nicht Mbit" ... hatte mit einem Mbit (2^20) gerechnet.

Antwort
von cimbomlu90, 45

Die Frage mit den Cache-Lines habe ich versucht selber zu lösen. Hier mein Lösungsansatz:

16Bit Worte = 2 Byte.

2 Byte * 64 Worte = 2 * 2^6 = 2^7.

1MB = 2^20 Byte

2^20 / 2^7 = 2^13.

Der Cache besitzt 2^13 Cache Lines.

Ist das richtig so oder habe ich irgendw ein Denkfehler? :S

Antwort
von Kiboman, 38

1 wort 16bit

64 worte haben 1024 bit

also hat eine line 128byte

also sind's 8192 lines

Kommentar von cimbomlu90 ,

Kannst du mir auch erklären, wie ich diese Frage ausrechnen kann:

Ein Rechner besitze 128 MB Hauptspeicherkapazität. Wieviel Bit müssen die
Hauptspeicheradressen mindestens besitzen, damit alle Adressen angesprochen
werden können?

Kommentar von Zyrober ,

bist du sicher, dass du Informatik studierst?

Kommentar von cimbomlu90 ,

Auf solche Kommentare kann ich verzichten. Ich habe hier eine ganz normale Frage gestellt, wenn du sie nicht beantworten willst ist ok. Vorhin habe ich sogar eine Lösung von dir verbessert nurmal so.

Ich konnte nicht zu den Vorlesungen in diesem Semester, wegen privaten Gründen. Versuche es mir jetzt alles elbst beizubringen. Sry wenn das Leben aller nicht so glatt läuft wie bei dir. Manche Menschen haben halt manchmal sehr große Probleme und müssen in diesen Momenten Prioritäten setzen. Keine Ahnung wie alt du bist, aber hörst dich schon nach so einem an, der direkt nach dem Abi angefangen hat zu studieren und nicht wirklich Ahnung vom Lbene hat.

Kommentar von Zyrober ,

Naja, immerhin ist es Informatik... Psychologie würde ich mit der Menschenkenntnis nicht studieren wollen :o)

Die Aufgabe an sich ist schon komisch. Wenn man es einfach ausrechnen würde (wieviel bit muss die Adresse lang sein, um jedes einzelne Bit von 128 MB adressieren zu können?), käme 30 heraus (128MB sind 1Gbit = 2^30). Aber sowas würde in meinen Augen keinen Sinn machen. Auch hier würde man wieder words benutzen. Niemand adressiert einzelne Bits. Selbst der erste wirkliche Mikroprozessor (Intel 4004) hatte 4 bit als kleinste adressierbare Einheit.

Kommentar von cimbomlu90 ,

Ist eine Beispielklausur. Bei der Lösüng steht 27Bit, aber keine Ahnung wie man darauf kommt.

Du hast geschrieben, dass 128MB = 1GB sind. Kannst du mir kurz erklären wie du darauf kommst?

Kommentar von Zyrober ,

1 byte = 8 bit.  128 Megabyte = 1 Gigabit. (128 * 8 = 1024)

Deine Beispielklausur geht wahrscheinlich davon aus, dass Bytes addressiert werden müssen. (Was auch Quark ist...)

Mit 27 bits kann man 134.217.728 "Dinge" addressieren. Wenn diese Dinge Bytes sein sollen, dann reichen sie aus, um 128MB damit zu addressieren.

Kommentar von Kiboman ,

31 wobei die letzte adresse 1::0 ist, d.h. Nur das erste bit ist gekippt die anderen sind alle 0

Kommentar von cimbomlu90 ,

Danke Kiboman. Kanns du mir auch einen ausführlichen Ansatz geben, falls dir das nichts ausmacht.

Kommentar von Kiboman ,

quatsch die letzte adresse ist natürlich

0100::0000

kann ich wenn mein sohn im bett ist.

Kommentar von Zyrober ,

30 reichen... du fängst ja mit ::0 an, nicht mit ::1

Kommentar von Kiboman ,

ja auch aber wir wollen ja nicht jedes bit also doch 27

Kommentar von acdxx ,

27 Bit, denn bei einer Adresslänge von 27 Bit können 2^27 Byte angesprochen werden. (2^27 Byte)/1024/1024 = 128 MB

Kommentar von Kiboman ,

natürlich, du hast techt war mein fehler, Byte, bits, mega, mebi, bin am handy Durcheinander gekommen.

kam mir im nachhinein auch etwas komisch vor.

Keine passende Antwort gefunden?

Fragen Sie die Community