1. 컴퓨터의 처리 단위
컴퓨터의 처리 단위 | |||||
4비트 | 8비트 | 16비트 | 32비트 | 64비트 | 128비트 |
64-bit. 0부터 18,446,744,073,709,551,615[1]까지의 정수를 나타낼 수 있고, 8 비트가 1 바이트이기에 64비트 프로세서는 정보를 싱글 코어 기준으로 클럭 1회에 8 바이트씩 처리할 수 있다. 즉 듀얼 코어이면 16 바이트, 쿼드 코어이면 32 바이트인 식이다.
CPU의 레지스터를 64비트로 확장시킨 것이다. x86의 경우 16비트 프로세서에서는 확장된 레지스터가 없는 기본 범용 레지스터가 존재한다(AX, BX 등). 나중에 이것은 32비트로 확장되면서 EAX, EBX(Extended -)의 이름을 가지게 되었다. 이것이 또 확장된 것이 RAX, RBX 등의 64비트 확장 레지스터이다. 레지스터가 확장되어 레지스터의 크기 한계로 인해 여러 번 나눠서 연산할 것을 한 번에 하게 되어 성능 향상이 발생하고, 또 64비트 레지스터를 다루는 명령어를 사용할 수 있게 되므로 프로그램은 더 발전할 수 있게 되는 것이다.
하드웨어는 이미 2000년대 초반부터 64비트 전환이 꾸준히 이루어져 왔으며, 소프트웨어의 경우 2010년대 초반까지도 32비트 운영체제와 프로그램이 널리 사용되어 왔으나 주 메모리를 4 GiB 이상 쓸 수 없는 32비트의 주소할당 문제 때문에 2010년대 중반 이후로 스마트폰등의 모바일 기기들을 포함하여 많은 하드웨어/소프트웨어들이 32비트에서 64비트로 전환되었다.[2] 2020년대 초반 기준 절대 다수의 하드웨어들이 64비트를 지원하며, 소프트웨어 역시 64비트에 기반한다. 또한 32비트는 날짜 표시와 밀접한 문제 때문에 2038년 이후로는 쓰기가 어려워진다.[3]
128비트, 256비트 등도 있는데, 암호학에서는 자주 언급되지만, 64비트가 본 궤도로 진입한 시기도 얼마 지나지 않으며 현 시점에서 128비트 이상은 효용성도 낮기에 이를 워드 길이로 사용하는 CPU는 아직 없다. x86 CPU들의 경우 처리속도 향상을 위해 128비트~256비트 병렬 연산인 SSE, AVX 등의 SIMD를 이용할 수 있다.[4]
2. 하드웨어
- Tom 칩(보조 연산 장치)
- 아타리 재규어(1993년) - 실제로는 DSP(CPU)와 GPU가 32비트이고 객체 프로세서와 블리터가 64비트인데, 억지 논리를 내세워 64비트라고 주장했다. 자세한 내용은 문서 참고.
- UEFI( 펌웨어) - 16비트 BIOS 다음에 쓰이는 UEFI는 64비트 코드를 사용한다.
2.1. CPU
- 인텔
- AMD
- AMD64(2003년) 기술이 적용된 VPU들
- 슬레지해머 기반 옵테론 및 애슬론 64 시리즈(2003년 이후)
- ARM
- ARM Cortex-A 시리즈( AArch64를 지원하는 v8 이후 프로세서(Cortex-A32 제외))
- ARM Cortex-X 시리즈
- IBM
- POWER(마이크로프로세서)(2 이후 시리즈)
- PowerPC(5 이후 시리즈)
- IBM z/Architecture( 메인프레임용)
- 썬/ 오라클 SPARC(버전 9 이후)
- 옐브루스 프로세서(E2K 아키텍처 사용 제품 시리즈)
- Alpha(최초의 64비트 전용 아키텍처 CPU)
- MIPS(R4000 이후 제품 시리즈)
-
RISC-V(RV64I 지원 필요)
해당 문서의 문단 참고.
2.2. GPU
- 리얼리티 코프로세서
- 닌텐도 64(1996년)
- Seta Aleck 64(1998년)
3. 소프트웨어
되도록 64비트 전용 소프트웨어만 작성한다.- Visual Studio: 2022부터.
- 어도비 프리미어 프로, 어도비 애프터 이펙트: CS5 버전부터.
- 언리얼 엔진: 언리얼 엔진 4의 개발 환경.
- 유니티 엔진: 유니티 5.6부터.
- MAGIX 베가스(구 소니 베가스): 베가스 12부터.
- Atom(에디터)
- Blender: 2.81부터 64비트 전용.
- VRoid Studio
- 64비트 전용 에뮬레이터
- 이 밖에도 64비트용으로 만들어진 exe 파일이 있다. 32비트 윈도우로 64비트 exe 파일을 실행시키면 '올바른 Win32 응용 프로그램이 아닙니다.'라는 창을 띄운다.
3.1. 운영체제
- Android: 5.x부터 64비트 버전이 나오기 시작했다. 2019년 8월부터는 유니티 5.6 미만 버전을 쓰는 앱을 제외한 나머지 모든 앱이 64비트 바이너리를 제공하여야 한다. 2021년 8월부터 모든 앱이 64비트를 지원하여야 하며, 지원하지 못하면 일정 유예 기간이 지나고 스토어에서 삭제된다.[5] 32비트 CPU를 쓰거나 64비트 OS를 쓰기 어려울 만큼 메모리가 부족한 기기들은 안드로이드 Go를 써야 한다.
3.1.1. Apple의 운영체제
하위 호환은 Apple답게 씹는다.macOS 쪽에서는 2005년에 나온 Mac OS X Tiger부터 작업하여 2007년에 거의 갈아탔고, 2009년부턴 64비트만 지원하여 모든 앱이 64비트로 구동된다.[6]
iOS 쪽에서는 2013년에 나온 iOS 7부터 64비트를 지원시키며, 2016년에 나온 iOS 10까지는 32비트도 지원시켜 호환 운영체제로 만들었다.
iOS 쪽에서는 2017년에 나온 iOS 11부터, macOS 쪽에서는 2019년에 나온 macOS Catalina부터 64비트가 아닌 앱들은 동작하지 않으며, 2018년부터 App Store에 올리는 모든 앱에 64비트 강제 의무가 붙고 2019년에 iOS 10 지원이 종료되어 32비트 앱은 점점 도태된 상태이다.
3.1.2. Microsoft Windows
일반용은 Windows XP x64 Edition부터[7], 서버용은 Windows Server 2003 x64부터 64비트를 지원하며, 일반용은 Windows XP부터 Windows 10까지 32비트와 64비트가 함께 있고, 서버용은 2003과 2008에 32비트와 64비트가 함께 있다.2010년대 이후로 64비트 하드웨어가 보편화되면서 차츰 32비트 환경은 호환 용도로만 사용되고 있어 64비트 지원에 집중하고 있다. 2020년에는 아예 OEM용 32비트 윈도우 10 판매를 중단하고 차츰 32비트 사용자들을 64비트로 유도하고 있다. 일반용은 Windows 11부터 64비트만 있고, 서버용은 2008 R2부터 2022까지 64비트만 있다.
다른 OS보다 32비트 호환성은 우수한 편이다. 운영체제 수준으로 호환 레이어인 WoW64(Windows on Windows 64)를 씌워 32비트를 지원하기에 일반적인 프로그램은 32비트여도 잘 돌아간다. 64비트 운영체제로 32비트 프로그램을 돌릴 때의 가장 큰 이점은 32비트 프로그램에 들일 수 있는 메모리 한계치인 2,147,483,648 바이트를 넘겨서도 사용할 수 있는 것이다. 다만, 16비트[8]는 지원하지 않아 아쉬워하는 사람이 많다.[9] 문제는 커널에 붙어야 하는 구조의 드라이버와 ActiveX로서 커널이 64비트이면 32비트 드라이버와 ActiveX가 작동하지 않는다. 드라이버야 어지간해선 64비트+운영체제별 지원을 해 주니 낫지만.[10]
3.1.3. Linux
오픈 소스의 첨병에 선 운영체제답게 64비트를 가장 먼저 지원을 시작한 운영체제이기도 하다. x86-64 명령어셋을 지원하는 Linux 커널의 배포판 리눅스들이 64비트를 지원하는데, 64비트용 프로그램이 없어도 소스 받아서 컴파일하면 장땡이고, 64비트 환경 설정을 제대로 맞추면 제대로 돌아간다.또한 필요하다거든 Windows의 WoW64와 같이 i686이나 AArch32 라이브러리를 별도로 설치하면 64비트 환경에서 32비트 코드를 실행할 수 있다.
4. 관련 문서
[1]
1844경 6744조 737억 955만 1615이다.
[2]
RAM/주소할당 문제에도 있듯이, 메모리의 용량이 16 EiB(엑시바이트)를 초과하면 인식 못 한다. 즉, 근본적인 문제가 해결된 것이 아니므로 64비트 프로그램이 완전한 해결법은 아니다. 다만,
EB가 워낙 큰 단위이고 지금 램은 기가바이트 단위에서 놀고 있기 때문에 향후 몇 년에서 몇 십 년 동안은 걱정하지 않아도 될 가능성이 높다.
EB(엑사바이트)는
MB(메가바이트),
GB(기가바이트),
TB(테라바이트),
PB(페타바이트)의 다음 단위이다.
[3]
하드웨어가 32비트라서가 아닌 시간을 나타내는 변수를 저장할 때 32비트 정수형을 사용하기 때문이다.
[4]
아와 유사하게 32비트 시절에도 MMX나 3DNow! 등의 SIMD 명령어를 통해 64비트 연산이 가능했다.
[5]
후에 64비트를 지원하게 되면 다시 스토어에 등록할 수는 있지만, 다운로드 횟수 및 리뷰가 모두 날아간다.
[6]
다만 실질적으로 애플리케이션이 64비트를 지원하기 시작한 건 2009년 Mac OS X Snow Leopard부터이다. Apple의 앱들도 이 시기부터 64비트로 포팅되기 시작하였고.
[7]
Windows Vista부터 제대로 지원한다.
[8]
MS-DOS와
Windows 3.1에서 돌아가는
고전게임 등
소프트웨어가 대표적이다.
[9]
32비트 OS도
Windows XP 이상의 운영체제에서는 특유의 테마가 아닌 고전 테마로 나오고,
Windows Vista 이후로는 특유의 아이콘도 없이 exe 파일의 기본 아이콘 상태로 나온다.
DOSBox(MS-DOS EXE/COM)와
OTVDM(Win16 EXE)의 힘을 빌려야 한다.
[10]
만약에 지원을 못 하면
단종된 하드웨어이거나 회사가
도산한 것이다.