2017-02-08 15 views
0

Ich überprüfe nur, um sicherzustellen, dass ich ein richtiges Verständnis davon habe, wie der Speicherzugriff funktioniert.Speicherzugriff mit 32-Bit-Adresse

Angenommen, ich habe ein wortadressierbares Speichersystem mit 64-Bit-Wörtern. Wie viel Speicher könnte mit einer 32-Bit-Adresse zugegriffen werden?

Ein 64-Bit-Wort ist 8 Bytes, also haben wir es mit einem 8-Byte-Wort zu tun. Ein 8-Byte-Wort kann bis zu 2^8 (256) enthalten.

Da wir eine 32-Bit-Adresse haben, haben wir 2^32, aber da jedes Wort 256 davon aufnimmt, (2^32)/256 = 1677216 Bytes.

Um das in metrische Begriffe zu setzen, haben wir 2^24 = (2^4) * (2^20) = 16 Mb.

Ist dies der richtige Weg, dies zu tun? Ich habe keine Möglichkeit, die Antwort zu überprüfen, und habe ein paar Fragen, die so aussehen. Würde gerne sicherstellen, dass ich keinen Müll bringe!

+0

Werte nehmen Adressraum nicht auf. Sie haben 2^32 Mailboxen, in denen jeweils 64 Ein/Aus-Schalter gespeichert sind. Wie viele Schalter hast du insgesamt? – doynax

Antwort

1

Eine 32-Bit-Adresse bietet 4.294.967.296 mögliche Adressen. Wenn das kleinste adressierbare Element ein 64 Bit = = 8 Byte Wort (gegenüber einem Byte) ist, dann wäre die Gesamtmenge an adressierbarem Speicherplatz 4.294.967.296 × 8 = 34.359.738.368 Bytes = 34 GB.

Wie für die Kapazität eines 8-Byte-Wortes ist es 8 Bytes, nicht 2^8 = 256 Bytes.

Hinweis: Einige alte Computer hatten ein einfaches Adressierungssystem, das nur Wörter adressierte. Der Bytezugriff erforderte einen Byte-Index oder einen Offset von einer wortbasierten Adresse. Ich glaube nicht, dass aktuelle Computer ein solches Schema verwenden.

+0

Oh wow, ich war nicht einmal in der Nähe. – Podo

+0

Ich weiß, das ist eine andere Frage, nur um zu überprüfen, ob ich verstehe, was Sie umgekehrt gesagt haben. Also, wenn jedes Wort 64 Bits ist, wie viele Adressbits werden für 512 Mb benötigt? Ist es 512mb = 2^29, also 2^29/8 = 2^26 Bits benötigt? – Podo

+0

@ JeffreyDilley - Mb bedeutet in der Regel Mega-Bits, meinst du MB - Mega-Bytes? Unter der Annahme von MB stellt jede Adresse 8 Bytes dar, also würden Sie für 512 MB 512 MB/8 = 2^9 (512) x 2^20 (Megabyte)/2^3 (8 Bytes pro Wort) = 2^(9 + 20) benötigen -3) = 2^26 = 67.108.864 Adressen oder eine 26-Bit-Adresse. – rcgldr

1

Sie nehmen 32-Bit-Adresse, was bedeutet, 2^32 Bits adressiert werden können, aber wenn Sie möchten, wie viele Bytes-Adresse sein kann dann einfach teilen wie 2^32/8 = 2^29, da 1 Byte haben 8 Bit und wenn Sie möchten, wie viele Wörter adressiert werden können, dann 2^29/8, weil 1 Wort 8 Bytes enthält, so können 2^26 Wörter adressiert werden.

Und da ein Wort 8 Byte ist, können wir (2^26) * 8 Bytes adressieren. Hoffe, es könnte helfen!

Verwandte Themen