64-bit 모드(IA64, X64)
MS Windows가 지원하는 64bit 플랫폼은 x64와 IA64
IA64는 진정한 Real 64bit 운영체제를 위한 CPU로써 인텔 HP Microsoft의 공동 작품
x64는 AMD에서 인텔의 64비트 프로세서에 대응하기 위해 Memory Addressing 영역을 2의 64승까지 늘린 프로세서
■ X86: 우리가 흔히 알고 있는 IA32 명령어 기반의 프로세서를 말한다.
■ IA64(EPIC instruction set): 인텔 Itanium 프로세서부터 채용된 새로운 명령어 집합. 기존 IA32와 호환이 되지 않는다. EPIC(Explicitly Parallel Instruction Computing) instruction set을 가지며, 많은 차이점이 있겠지만, predicated instructions을 지원한다는 것과 최소 6개의 floating point unit은 기억할만하다.
MS Windows가 지원하는 64bit 플랫폼은 x64와 IA64
IA64는 진정한 Real 64bit 운영체제를 위한 CPU로써 인텔 HP Microsoft의 공동 작품
x64는 AMD에서 인텔의 64비트 프로세서에 대응하기 위해 Memory Addressing 영역을 2의 64승까지 늘린 프로세서
■ X64: AMD Opteron 프로세서부터 채용되었고, AMD64, Intel64(EM64T)으로 소개되었지만, 지금은 X64로 보통 부른다. IA32를 64-bit을 지원하기위해 확장한 것으로, IA32와 완전한 호환을 가지는 Compatibity mode와 64-bit mode를 지원한다. 우리가 흔히 말하는 64-bit 모드이다.
- 64-bit mode에서는 명령어에 8-bit REX prefix를 붙여서, 64-bit 레지스터를 사용할 수 있다. 또한, 64-bit mode에서는 레지스터 개수도 기존의 8개에서 16개로 다음과 같이 늘어났다.
- Long mode - Compatibility mode: eax, edx, exc, ebx, esi, edi, esp, ebp
- Long mode - 64-bit mode: rax, rdx, rxc, rbx, rsi, rdi, rsp, rbp, r8,r9,r10,r11,r12,r13,r14,r15
- AMD64에서는 Operating mode로서 총 5개가 지원된다.
- Long mode - Compatibility mode
- Long mode - 64-bit mode
- Legacy mode - Protected mode
- Legacy mode - Virtual 8086 mode
- Legacy mode - Real mode
- AMD64의 어드레스는 레지스터 값은 64bit으로 부호확장되어 보이며, 현재는 다음과 같은 범위를 가진다.
- physical address: 1TB (40-bit)
- virtual address: 256TB (48-bit) : 부호확장이 되었으므로, 유효한 virtual address는 다음 두 영역으로 된다.
- 0x0 ~ 0x00007FFF_FFFFFFFF
- 0xFFFF8000_00000000 ~ 0xFFFFFFFF_FFFFFFFF