Die Größe eines Wortes und Adressierung
Ich war erfrischend selbst auf dem Speicher information, und ich bin verwirrt über die Größe eines Wortes. Von meinem Verständnis, ein Wort ist nicht eine universell definierte Größe, sondern eine Größe, definiert durch die spezifischen system (in Bezug auf die Anzahl der bytes).
Laut wikipedia:
Daher, ein Prozessor mit 32-bit-Speicher-Adressen kann direkt auf 4 GB byte-adressierbaren Speicher.
Bedeutet das, dass ein 32-bit Prozessor adressieren kann 4,294,967,295 Worte? 32-bit-windows ist auf 4 GB RAM begrenzt, aber das Lesen über die Bedeutung des Wortes hätte mich auch gewundert. Nicht jedes Wort in windows entspricht 1 byte? Könnte die Größe eines Wortes nur sein, eine größere Anzahl von bytes und 32-bit-Prozessor in der Lage sein zu Adresse, 8 GB, 10 GB, 12 GB oder noch mehr Speicher?
4GiB of **byte-addressable** memory
, das heißt, dass: bytes. Nicht Worte, oder DWORDS, aber byte.Wenn ich mich richtig erinnere, wird word die Größe hängt von der CPU und der Prozessor die word-Größe wird bestimmt durch die Breite der externen Daten-bus (obwohl es sein kann, schmaler.)
Daher meine Verwirrung. Das ist, warum ich bin Entsendung. Warum gibt es Byte und nicht mit Worten. Ich denke, das ist, warum Sie downvoted mich?
Ich habe nicht downvote Sie. Wenn ich hatte, hätte ich gesagt, also in meinem letzten Kommentar. Jedoch, der Grund für deine Verwirrung ist unklar. Deine Frage fragt "heißt das,...$, 294,967,295 Worte?", das ist, was ich kommentiert. Deine Frage in deinem Kommentar zu mir sagt "Warum ist es Byte und nicht Worte?", das ist etwas ganz anderes. Die Antwort auf die von Ihnen gestellte Frage ist "Nein, es sind nicht meine Worte. Es bedeutet, bytes, genauso wie dein Zitat sagt, es tut.".
InformationsquelleAutor Justin | 2013-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hängt es von der CPU und, wie man es betrachtet.
Gibt es CPUs, die können nicht auf alles, was kleiner als ein Wort. Texas Instruments 16-bit Digital-Signal-Prozessoren sind ein gutes Beispiel. Ihre C/C++
char
(AKAbyte
),short
undint
Typen sind alle von der gleichen Größe, 16 bit. Und das ist die kleinste Speichereinheit angesprochen werden kann, mit einer eindeutigen Adresse (Zeiger), und das ist das Wort Maschine an der gleichen Zeit. Da die Daten-Adressen/Zeiger sind 16-bit-auf diese Prozessoren, Sie können die Adresse bei den meisten 216 16-bit-Worte im Daten-Speicher.Nun, wenn Sie gehen zurück auf x86-CPUs in 32-bit-Betriebsmodi, die Dinge ein wenig anders. Die kleinste adressierbare Speichereinheit ist ein 8-bit-byte, und die größte ist eine 32-bit-Wort (Wort Maschine). Adressen und Zeiger 32-bit-als auch (wenn wir ignorieren, Segmentierung und Seite übersetzung). Dies ermöglicht uns die 232 einzigartige Speicher-Adressen. Und, trivial, mit Ihnen können Sie auf bis zu 232 - 8-bit-bytes an Speicher. Aber wie viele 32-bit Wörter, können Sie die Adresse mit 232 eindeutige Adressen? Die Antwort hängt davon ab, ob Sie nicht-überlappende oder überlappende Wörter. Sie sehen, der x86-CPU zugreifen können 32-bit-Einheiten der Erinnerung an eine Adresse, nicht nur bei Adressen, die Vielfaches von 4 bytes.
Sind Sie nicht nur beschränkt auf x86:
Diese sind alle gültigen Adressen für 32-bit-Wort-Zugriffe auf x86:
So, wie viele 32-bit Wörter, können Sie die Adresse mit 232 eindeutige Adressen auf x86? Wenn Sie über alles reden, eindeutig adressierbar und überlappend, die 232. Wenn OTOH, Sie sprechen alle eindeutig adressierbar sind und sich nicht überlappen, so ist 230.
OTOH, wenn Sie Ihre 32-bit-CPU benutzt, die nicht 32-bit-Adressen, die Gesamtzahl wird anders sein.
Ich bin mir nicht sicher, was du redest.
Ausgezeichnete Antwort ! Danke. Ich finde, dass die zweite ascii-Zeichnung ziemlich verwirrend, aber der text ist glatt und klar 🙂
Nur einem Zeiger für die anderen Surfer, es ist eine ausgezeichnete video-Erklärung zu diesem Thema hier.
InformationsquelleAutor Alexey Frunze
Du verwechselst word-Größe und byte-Größe, da word die Größe hängt von der Prozessor-und byte-Größe ist universal.
Ohne Verwendung von PAE (Physical Address Extension) auf 32-bit-Prozessor kann nur mit 4GB RAM, da es nur 2 ^ 32 = 4,294,967,296 verschiedene zahlen dargestellt werden kann, mit 32 bits. Dies ist ein hardware-Einschränkung.
32-bit-Systeme mit PAE adressieren kann, die größer als 4GB sind, durch die Zuordnung von Prozessen zu Seite Tabellen. Dies gewährt jeder Prozess Zugang zu 4 GB Arbeitsspeicher. Über Unterstützung von PAE, 32-bit-version von Windows Server 2003 Datacenter unterstützt bis zu 64 GB RAM auf x86-basierten Computern.
Edit
Wort Größe bezeichnet die Menge der bits, die eine CPU gleichzeitig verarbeitet werden können. Also 32 bit = 4 bytes. Allerdings, word-Größe und Adresse Größe werden Häufig Synonym verwendet, das führt zu Verwirrung, da Sie in der Tat anders. Der Pentium Pro war ein 32-bit-CPU mit einem 36 bit breiten Adressbus, so dass 64 GB Verfügbarer Speicher (via PAE.)
Auch etwas näher, eine CPU in der Lage die Erfüllung der Frage in Ihrem Kommentar konkret würde eine 48-bit-Adress-bus. Was ich glaube ist, was den aktuellen 64-bit-Prozessoren verwenden.
Sorry für die Berufung auf diese Frage von 2013. Jedenfalls um deine Frage zu beantworten, Während jede Adresse hat 8 bit-Raum = 1 byte, um die Daten dort speichern, hängt davon ab, was Sie speichern möchten. Wenn Sie sparen wollen, ein Zeichen benötigt 1 byte, aber wenn Sie speichern möchten, eine Int müssten Sie 32 bits = 4 bytes, also 4 Adressen "Raum". Die 32-bit-proccessor liest 4 bytes, die von jeder Zeit, also 32 bit
InformationsquelleAutor b1nary.atr0phy