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!
3 Antworten
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
cache = 2^20 bits = 1048576 bits
Words = cache / 16 = 65536 words
Lines = Words / 64 = 1024 lines
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
Das meinte ich mit "MB nicht Mbit" ... hatte mit einem Mbit (2^20) gerechnet.
1 wort 16bit
64 worte haben 1024 bit
also hat eine line 128byte
also sind's 8192 lines
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?
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.
31 wobei die letzte adresse 1::0 ist, d.h. Nur das erste bit ist gekippt die anderen sind alle 0
Danke Kiboman. Kanns du mir auch einen ausführlichen Ansatz geben, falls dir das nichts ausmacht.
quatsch die letzte adresse ist natürlich
0100::0000
kann ich wenn mein sohn im bett ist.
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.
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?
27 Bit, denn bei einer Adresslänge von 27 Bit können 2^27 Byte angesprochen werden. (2^27 Byte)/1024/1024 = 128 MB
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.
Ich habe aber sowie Kiboman 2^13=8192 Lines raus