12 Stimmen

Wie lang ist eine Speicheradresse in der Regel in Bits?

Ich bin verwirrt von so vielen Begriffen, über die mein Lehrer spricht, wie Wort, Byte-Adressierung und Speicherort.

Ich war der Meinung, dass ein 32-Bit-Prozessor bis zu 2^32 Bits adressieren kann, was 4,29 x 10^9 Bits (NICHT BYTES) entspricht.

So denke ich jetzt:

Der Speicher ist wie ein Array von Eimern jeweils von 1 Byte Länge.

Wenn wir von Byte-Adressierung sprechen (was ich vermute, am häufigsten vorkommt), ist jedes Charakter 1 Byte und wird aus dem ersten Eimer abgerufen (sagen wir zum Beispiel). für Int werden die nächsten 4 Bytes in Little-Endian-Reihenfolge zusammengefügt, um den Ganzzahl-Wert zu berechnen.

Also sehe ich jeden Speicher als 8 Bits1 Byte, der bis zu 2^8 Speicherorte liefern kann, was weit weniger ist als das, was die CPU adressieren kann.

Hier gibt es ein sehr grundlegendes Missverständnis meinerseits, das Experten vielleicht in einfachen Worten erklären können, damit ein angehender CS-Hauptstudent es einmal für immer verstehen kann.

Ich habe verschiedene Seiten gelesen, einschließlich dieser über Wort und hier wird die Einheit der Adressauflösung als 8b für ARM angegeben, was meine Verwirrung noch steigert.

28voto

TypeIA Punkte 16427

(Für einen typischen 32-Bit-Prozessor, wie er in der Frage vorgeschlagen wird) - Der Prozessor verwendet 32 Bits, um eine Adresse zu speichern. Mit 32 Bits können Sie 2^32 verschiedene Zahlen speichern, die von 0 bis 2^32 - 1 reichen. "Byte-Adressierung" bedeutet, dass jedes Byte im Speicher einzeln adressierbar ist, d.h. es gibt eine Adresse x, die auf dieses spezifische Byte zeigt. Da es 2^32 verschiedene Zahlen gibt, die Sie in eine 32-Bit-Adresse einsetzen können, können wir bis zu 2^32 Bytes oder 4 GB adressieren.

Es scheint, dass das Hauptmissverständnis die Bedeutung von "Byte-Adressierung" ist. Das bedeutet nur, dass jedes einzelne Byte seine eigene Adresse hat. Adressen selbst bestehen dennoch aus mehreren Bytes (4 in diesem Fall, da vier 8-Bit-Bytes zusammen genommen und als eine einzige 32-Bit-Zahl interpretiert werden).

Ich war der Meinung, dass ein 32-Bit-Prozessor bis zu 2^32 Bits adressieren kann, was 4,29 x 10^9 Bits (NICHT BYTES) sind.

Dies ist in der Regel nicht der Fall - die Adressierung auf Bit-Ebene ist recht selten. Byte-Adressierung ist weitaus häufiger. Sie könnten jedoch eine CPU entwerfen, die auf diese Weise funktioniert. In diesem Fall könnten Sie wie gesagt bis zu 2^32 Bits = 2^29 Bytes (512 MiB) adressieren.

-1voto

Fatma Orsun Punkte 1

Für ein Bit hätten Sie 0 oder 1 und für zwei Bits hätten Sie 00, 01, 10, 11. Für 8 Bits hätten Sie 2^8, das sind 256 Adresswerte. Adresse und Daten sind separate Begriffe. Adresse ist der Standort und Daten sind der Inhalt an diesem Standort. Datenbreite (Inhalt) gibt an, wie viele Bits Sie in einer Speicherzelleadresse speichern könnten. (Denken Sie an eine Wohnung mit Schlafzimmern - jede Wohnung in einem Gebäude hat zwei Schlafzimmer) und Daten tiefe (Adresse) gibt an, wie viele Adressen Sie hätten (In einem Gebäude, wie viele Wohnungen Sie hätten, z. B. #1 bis #1400 usw.). Ein Bit im CPU-Register kann auf ein einzelnes Byte im Speicher verweisen, wie eine Nummer in einer Wohnung eine Wohnung verweisen kann. SIMM-Modul-RAMs hatten eine Datenbreite von 32 Bit und DIMM-Module haben eine Datenbreite von 64 Bit. Das bedeutet, dass in einer Speicheradresse im DIMM 64 Bit Daten gespeichert werden können. Wie viele Adressen von zwei Drähten multiplex sein können (zweibitige Verarbeitung), könnten Sie 4 Adressen erstellen. (Jede dieser Adressen könnte 64 Bit speichern, wenn es sich um ein DIMM-Modul handelt). Eine 32-Bit-Verarbeitung bedeutet 32 Drähte, 2^32 Adressoptionen. Obwohl die 64-Bit-Verarbeitung 64-Bit-Register und internen Bus (Drähte) hat, http://www.tech-faq.com/address-bus.html, ist der maximal mögliche Adressbus 44 Bit. Dies bedeutet, dass Intel Super Server CPU Itanium 2 eine maximale Adressierung von 2^44 erreichen kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X