Grundsätzlich fällt es mir schwer, die Datenausrichtung zu verstehen. Ich verstehe nicht, warum es beispielsweise in einer 64-Bit-Architektur wichtig ist, 4-Byte-Daten in einem Vielfachen der Adresse 0x0, 0x4, 0x8, 0xC zu speichern. Beginnt der Abruf der CPU bei jedem Vielfachen der Wortgröße (hier 8 Byte)? und warum müssen 2-Byte-Daten unter den Adressen 0x0, 0x2, 0x4, 0x6, 0x8, 0xA, 0xC, 0xE gespeichert werden? Die CPU könnte in einem Takt 2-Byte-Daten laden, selbst wenn sie bei 0x1 gespeichert sind... Warum sollten sie also an der Adresse 0x0, 0x2, 0x4, 0x6, 0x8, 0xA, 0xC, 0xE sein?
Und wenn die CPU-Cache-Zeile beispielsweise 64 Byte groß ist, warum sollte ich mich dann um die Datenausrichtung kümmern, wenn sich die Daten nicht zwischen den Adressen überschneiden? 0x...00 und 0x...40 ?
es ist verwirrend ...
Es fällt mir schwer, die Datenausrichtung zu verstehen ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Könnte mir bitte jemand helfen, diesen Java -Code zu verstehen? [geschlossen]
by Anonymous » » in Java - 0 Replies
- 12 Views
-
Last post by Anonymous
-