Es fällt mir schwer, die Datenausrichtung zu verstehenC++

Programme in C++. Entwicklerforum
Guest
 Es fällt mir schwer, die Datenausrichtung zu verstehen

Post by Guest »

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 ...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post