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