Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten ausrichten?
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?
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)
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?
Oder arbeitet das laden in den Cache irgendwie anders?
Ja, die Cachelines fangen immer bei durch 64 teilbaren Adressen an.
Achso, dann ist alles klar, danke :)
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.