PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten ausrichten?


Gast
2007-12-02, 13:18:19
Compiler richten ja z.B. structs immer an Stellen aus, die durch die Größe des verwendeten Datentyps ausgerichtet ist.
Kann mir jemand technisch erklären warum das einen Geschwindigkeitsvorteil bringt?

Trap
2007-12-02, 13:57:06
Das wird gemacht, damit möglichst kein Wert in 2 verschiedenen Cachelines liegt. Darauf Zuzugreifen dauert nämlich deutlich länger.

Genauere Erklärungen gibt es bei Intel:
http://www.intel.com/products/processor/manuals/index.htm und speziell http://www.intel.com/design/processor/manuals/248966.pdf (Seite 125 im pdf)

Gast
2007-12-02, 14:27:23
Danke erstmal, aber so richtig versteh ich das noch nicht.

Also mal angenommen ein Integer wäre nicht ausgerichtet. Wenn jetzt auf den Zugegriffen wird, dann lädt der Prozessor doch einfach alles AB der Position dieses Integers in eine Cacheline. Dann kann das doch gar nicht in zwei verschiedenen Cache Lines liegen.
Oder arbeitet das laden in den Cache irgendwie anders?

Trap
2007-12-02, 14:32:50
Oder arbeitet das laden in den Cache irgendwie anders?
Ja, die Cachelines fangen immer bei durch 64 teilbaren Adressen an.

Gast
2007-12-02, 14:34:13
Achso, dann ist alles klar, danke :)