Big-endian / Little-endian의 CPU별 역사
걸리버 여행기의 빅엔디언/리틀엔디언 풍자에서 유래한 컴퓨터 용어의 역사를 살펴봅니다.
초기 컴퓨터 시대 (1960~1970년대)
| 시스템 | 엔디언 | 출시 연도 | 비고 |
|---|---|---|---|
| IBM System/360 | Big-endian | 1964 | 메인프레임의 표준 |
| PDP-11 | Little-endian | 1970 | DEC의 선택 |
| PDP-10 | Big-endian | 1966 | 36비트 워드 |
1980년대: 분열의 시대
Danny Cohen이 1980년 논문을 쓸 당시, 컴퓨터 세계는 혼란 그 자체였습니다.
Big-endian 진영 Little-endian 진영
───────────────── ─────────────────
IBM 메인프레임 Intel 8080/8086
Motorola 68000 DEC VAX
Sun SPARC
왜 이런 분열이 생겼나?
- Big-endian 지지자: “사람이 읽는 순서와 같다. 0x1234는 12 34로 저장되어야 자연스럽다.”
- Little-endian 지지자: “하위 바이트가 낮은 주소에 있으면 타입 캐스팅이 쉽다. 32비트 → 16비트 변환 시 주소 변경 불필요.”
주요 CPU 아키텍처별 엔디언 역사
Intel x86 (Little-endian)
1978: 8086 출시 - Little-endian 채택
이유: 8비트 8080과의 호환성 + 하드웨어 설계 단순화
0x12345678 저장 시:
주소: 0x00 0x01 0x02 0x03
값: 0x78 0x56 0x34 0x12
↑ 최하위 바이트가 가장 낮은 주소
Motorola 68000 (Big-endian)
1979: 68000 출시 - Big-endian 채택
Apple Macintosh, Amiga, Atari ST에 사용
0x12345678 저장 시:
주소: 0x00 0x01 0x02 0x03
값: 0x12 0x34 0x56 0x78
↑ 최상위 바이트가 가장 낮은 주소
MIPS (양쪽 지원)
1985: MIPS R2000 출시
특징: Bi-endian - 부팅 시 엔디언 선택 가능
SGI 워크스테이션: Big-endian으로 운영
PlayStation 1/2: Little-endian으로 운영
ARM (양쪽 지원, 기본 Little-endian)
1985: ARM1 출시 - Little-endian 기본
2000년대 이후: Bi-endian 지원하지만 Little-endian이 사실상 표준
iPhone, Android 기기: 모두 Little-endian
참고 자료
- Danny Cohen, “On Holy Wars and a Plea for Peace”, IEEE Computer, 1981
- Intel 64 and IA-32 Architectures Software Developer’s Manual