Memory-Ausrichtung auf einem 32-bit-Intel-Prozessor

Intel 32-bit Prozessoren wie Pentium 64-bit breiten Datenbus und daher Holen 8 bytes pro Zugriff. Auf dieser Basis gehe ich davon aus, dass die physikalischen Adressen, die diese Prozessoren emittieren, die auf dem Adressbus sind immer ein Vielfaches von 8.

Erstens, ist diese Schlussfolgerung richtig?

Zweitens, wenn es richtig ist, dann sollte man das ausrichten der Struktur der Daten, die Mitglieder auf eine 8-byte-Grenze. Aber ich habe Menschen gesehen, die mit einem 4-byte-Ausrichtung statt, die auf diesen Prozessoren.

Wie können Sie begründet werden, das zu tun?

Ich habe keine Ahnung, was diese Frage bedeutet, aber ich bin fasziniert darüber, wie dies bezieht sich auf die Programmierung, und wie könnte dies Auswirkungen auf mich. Wo kann ich Lesen, bis eine grundlegende Einführung zu dieser low-level-Typ Zeug?
Siehe "Was Jeder Programmierer Wissen Sollte, Über das Gedächtnis": people.redhat.com/drepper/cpumemory.pdf
How do yo uget aus "angefordert liest sind immer ein Vielfaches von 8" auf "Ihre Daten sollten immer auf einer 8-byte-Grenze"? Ich sehe nicht, die logische Verbindung zwischen diesen. Solange die Daten nicht durch Kreuz ein 8-byte-Grenze, sind wir gut, sind wir nicht?

InformationsquelleAutor Frederick The Fool | 2009-06-28

Schreibe einen Kommentar