Niemand hat geantwortet, WARUM dies getan werden könnte, viele Dinge über die Konsequenzen.
Stellen Sie sich einen 8-Bit-Prozessor vor, der in einem bestimmten Taktzyklus ein einzelnes Byte aus dem Speicher laden kann.
Wenn Sie nun einen 16-Bit-Wert in das einzige 16-Bit-Register, dh den Programmzähler, laden möchten, ist dies auf einfache Weise möglich:
- Laden Sie ein Byte vom Abrufort
- Verschieben Sie dieses Byte um 8 Stellen nach links
- Speicherabrufposition um 1 erhöhen
- lade das nächste Byte (in den niederwertigen Teil des Registers)
das Ergebnis: Sie erhöhen immer nur den Abrufort, laden immer nur in den unteren Bereich Ihres breiteren Registers und müssen nur nach links verschieben können. (Natürlich ist das Verschieben nach rechts für andere Operationen hilfreich, so dass dies eine kleine Nebenschau ist.)
Dies hat zur Folge, dass die 16-Bit-Daten (Doppelbyte) in der Reihenfolge Most..Least gespeichert werden. Dh die kleinere Adresse hat das höchstwertige Byte - also Big Endian.
Wenn Sie stattdessen versuchen würden, mit Little Endian zu laden, müssten Sie ein Byte in den unteren Teil Ihres Wide-Registers laden, dann das nächste Byte in einen Staging-Bereich laden, es verschieben und dann in den oberen Teil Ihres Wide-Registers einfügen . Oder verwenden Sie eine komplexere Anordnung von Gattern, um selektiv in das obere oder untere Byte zu laden.
Das Ergebnis von Little Endian ist, dass Sie entweder mehr Silizium (Switches und Gates) oder mehr Operationen benötigen.
Mit anderen Worten, in Bezug auf das Geldverdienen in den alten Zeiten hat man mehr Geld für die meiste Leistung und die kleinste Siliziumfläche.
Heutzutage sind diese Überlegungen so gut wie irrelevant, aber Dinge wie das Füllen von Pipelines können immer noch eine große Sache sein.
Wenn es um das Schreiben von S / W geht, ist das Leben häufig einfacher, wenn Little-Endian-Adressen verwendet werden.
(Und die Big-Endian-Prozessoren sind in der Regel Big-Endian in Bezug auf die Bytereihenfolge und Little-Endian in Bezug auf die Bits in Bytes. Einige Prozessoren sind jedoch seltsam und verwenden sowohl die Big-Endian-Bitreihenfolge als auch die Bytereihenfolge. Dies macht das Leben sehr kompliziert Interessant für den H / W-Designer, der speicherabgebildete Peripheriegeräte hinzufügt, aber für den Programmierer keine andere Konsequenz hat.)