Open main menu

CDOT Wiki β

Changes

Endian

1,548 bytes added, 11:31, 26 September 2019
Bi-endian
[[Category:Computer Architecture]]{{Chris Tyler Draft}}
The ''Endian''-ism of a processor refers to the order in which multi-byte values are stored in memory.
0x1006 0xEE
0x1007 0xFF
 
== Big-Endian ==
== Bi-endian ==
Bi-endian CPUs can store data in either format (though sometimes not instructions). ARM [[Aarch32AArch32]] and [[Aarch64AArch64]] systems, PowerPC, Alpha, recent SPARC, MIPS, and Itanium systems are bi-endian.
== Other Memory Sequences ==
There are a few, rare architectures which store values in a sequence other than strict little-endian or big-endian format. For example, the 32-bit value FFEEDDCCh would be stored by a PDP-11 at address 1000h in this manner:  1000h EEh 1001h FFh 1002h CCh 1003h DDh That is, each 16-bit word is stored in little-endian format, but the two 16-bit words are in big-endian sequence. == Significance of Byte Order == Byte order can introduce ambiguity and complexity when transferring binary data between dissimilar systems; in network protocols and file specifications, it is critical to specify the order of multi-byte values. Some platform-independent remote procedure call (RPC) systems provide functions to ensure that data is always represented "on the wire" in a particular byte order. Byte order can be significant for performance in some contexts. The 6502 processor, for example, loads the byte following an [[OpCode|opcode]] in memory while the opcode is being decoded. Due to little-endian encoding, this byte can be safely assumed to represent bit positions 0-7 regardless of whether the opcode's argument is 1 byte or 2 bytes; if big-endian encoding was used, the first byte read after the opcode might have to be shifted to bit positions 8-15 in the case of a 2-byte argument. Binary fields in internet protocol (IP) packets are in big-endian order. For this reason, the processors on many routers and other high-speed network devices are big-endian (e.g., MIPS) or run in big-endian order (ARM).
== Origin of the Term Terms ==
The terms ''Big-Endian'' and ''Little-Endian'' originally appeared in ''the classic satirical tale [https://www.gutenberg.org/files/829/829-h/829-h.htm Gulliver's Travels''] by Jonathan Swift, where they referred to which end of a boiled egg was to be opened first-- a distinction which led to ongoing conflict between small-minded people.