문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 x86 (문단 편집) === 64비트: [[AMD64]](x86-64) === [include(틀:상세 내용, 문서명=AMD64)] [include(틀:문서 가져옴, this=문단, title=AMD64, version=184)] AMD64는 AMD가 1999년에 발표한 x86의 64비트 확장 아키텍처로, 현시점인 2020년대 기준으로 절대다수의 CPU가 채택하고 있는 아키텍처이다. 표준 명칭은 AMD64이지만 x86-64, x64, EM64T, Intel64 등 여러 이름으로도 불린다. 주요 변경점은 다음과 같다: * 범용 레지스터의 크기가 32비트에서 64비트로 확장되었고 SSE2가 기본으로 편입되었다. * 범용 레지스터 8개(R8-R15)가 추가되어 범용 레지스터의 수가 8개에서 16개로 늘어나 x86의 고질적인 레지스터 부족이 크게 완화되었다. SSE 레지스터 또한 XMM0-XMM7 8개에서 XMM8-XMM15 16개로 늘어났다. * 레거시 모드와 롱 모드를 제공한다. 레거시 모드에서는 [[IA-32]]와 완전한 호환성을 유지하였으며, 실제 모드와 보호 모드를 지원한다. 64비트 운영 체제에서 활성화 가능한 롱 모드에서는 [[IA-32]]의 보호 모드까지 지원하며 실제 모드는 지원하지 않는다. 또한 롱 모드에서는 일부 레거시 명령어가 비활성화된다. 실제 모드는 [[MS-DOS]] 시절에 쓰이던 x86 CPU 모드였고, 이 기능이 꼭 필요한 경우라면 32비트 운영 체제로 레거시 모드를 사용하면 되었기 때문에 롱 모드에서 지원하지 않게 만들었다. 가상 8086 모드는 AMD64 CPU들이 등장한 2003년에는 지원하지 않았으나, 2005년 인텔 VT-x를 시작으로 2006년 AMD의 SVM(現 AMD-V) 같은 가상화 기술로 지원하고 있다. * 가상 메모리 공간은 48비트(256TiB), 물리 메모리 공간은 40비트(1TiB)로 확장되었다. 프로그램 카운터가 64비트임에도 불구하고 메모리공간에 제약을 두는 이유는 메모리 포인터 숫자가 클 경우 페이지 테이블의 오버헤드가 커지기 때문에 굳이 너무 값을 높게 잡을 필요가 없기 때문이다. AMD64가 처음 등장할 당시에는 48/40비트였고 1TB라는 메모리는 매우 큰 용량이었으나 2021년 표준은 가상 64비트(16EiB), 물리 52비트(4PiB)로 확장되었다. [* AMD64 Architecture Programmer’s Manual: Volumes 1-5 | 40332 § 5.1 Page Translation Overview & § 2.2.1 Memory Addressing] * 메모리 할당 방식도 바뀌었는데 커널 영역은 메모리 주소 기준으로 맨 끝부분에, 사용자 영역은 처음 부분에 배치하고 점차 중앙으로 갉아먹어가는 구조를 사용한다. * NX bit가 추가되었다. 이는 메모리 안정성과 보안성 향상을 위한 기능으로 특히 [[버퍼 오버런]] 공격에 대한 취약성을 개선하기 위한 것으로, 2012년 가을에 출시된 [[Windows 8]]부터는 이 기능이 필수로 요구되기 시작했다. 인텔 CPU에서는 XD bit라는 이름으로 사용하고 있다. [각주]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기