Ausrichtung hilft die CPU auf eine effiziente Weise Daten aus dem Speicher holen: weniger Cache-Fehltreffer/flush, weniger Bustransaktionen usw.
einige Speichertypen (zB RDRAM, DRAM etc.) müssen in einem strukturierten zugegriffen werden soll, Weise (ausgerichtete "Wörter" und "Burst-Transaktionen", dh viele Wörter gleichzeitig), um effiziente Ergebnisse zu erzielen. Dies ist auf viele Dinge, unter welchen:
- Rüstzeit: Zeit, die für die Speichervorrichtungen die Speicherplätze zugreifen zu
- Bus Schiedskopf dh viele Geräte möglicherweise Zugriff auf die Speichereinrichtung wollen
"Padding" wird verwendet, um die Ausrichtung von Datenstrukturen zu korrigieren, um die Übertragungseffizienz zu optimieren.
Mit anderen Worten, der Zugriff auf eine "falsch ausgerichtete" Struktur führt zu einer niedrigeren Gesamtleistung. Ein gutes Beispiel für eine solche Fallstricke: Angenommen, eine Datenstruktur ist falsch ausgerichtet und erfordert, dass die CPU/Speichersteuerung 2 Bustransaktionen durchführt (anstelle von 1), um die genannte Struktur zu holen, ist die Leistung folglich folglich geringer.
Es gibt zwei getrennte, aber miteinander verbundene Probleme: die Datenausrichtung und die Datenstruktur padding –
gcc dobules auf 8 Bytes als auch auf x86-Rechner ‚Compiler jedoch gleiche wie Microsoft ausrichtet. – nos
Warum werden Doppelbyte 8 Byte ausgerichtet, wenn die CPU Daten in Blöcken von 4 Bytes liest? Es ist dann egal, ob das Double 8 oder 4 Byte ausgerichtet ist, oder? – Mat