이글을 읽으시는 분이라면 x86이라는 이야기는 자주 듣고 계실겁니다.
특히 맥 사용자라면 애플이 인텔로 오면서 더더욱 많이 듣게 됐죠.
하지만 지금의 CPU들이 64 지원이 가능한지의 여부에 대해서
확실하게 말씀하시는 분의 거의 없으시더군요... (아직까지도요.)
오히려 확신을 하시고 답해 주시는 분은 잘못 아시고 계시는 경우가 많습니다.
일단 x86..
x86의 기원은 인텔에 개발한 80계열의 명령어셋을 사용하는 CPU를 말합니다.
대표적으로 인텔이 생산하고 있고 호환으로 AMD가 생산하고 있죠.
8086, 80286, 80386, 80486, Pentium ~~~
여담으로 486정도까지 매킨토시는 모토롤라의 68계열 CPU를 쓰고 있었습니다.
68000, 68020, 68030, 68040으로 이쪽 계열은 68계열이라 불렀습니다.
이후 486의 소유권을 지키고자 했던 인텔이
소유권에 대해 인정 받지 못하면서 Pentium이라는 명칭을 사용하게 됩니다.
그당시 비슷한 시기에(꼭 같지는 않지만) 애플이 PowerPC를 채용하게 됩니다.
그 이후 차츰 80계열이라는 말보다 x86이라는 말이 더 일반화 되어 사용됩니다.
그리고 덧붙여 Intel Architecture를 뜻하는 IA도 계속 사용되어 왔습니다.
IA-8, IA-16, IA-32, IA-64 ~~~
인텔은 64비트 시장을 먼저 석권하고자 IA-64라는 아키텍쳐를 제안하고
이것을 아이테니엄 CPU에 적용, 개발하게 됩니다.
이때 HP와 같이 작업을 진행하게 되는데, 이것의 결과물로 HP의 슈퍼돔에 탑재되게 되고
보다 향상된 제어를 위해 기존에 사용하던 BIOS를 버리고 EFI를 사용합니다.
지금 여러분들의 맥에 BIOS가 아닌 EFI가 사용되고 있는데 바로 이것입니다.
이때 이후로 인텔은 BIOS에서 EFI로 이동되기를 원했습니다만 시장이 계속 버티고 있는 중이죠...
하지만 AMD는 달랐습니다. 기존의 호환성을 계속 유지하는 것을 목표로 했지요.
IA-64의 결정적인 문제는 IA-32와 전혀 다른 명령어셋을 가지고 있으며 전혀 호환이 되지 않다는 것입니다.
IA-32 명령어들이 실행되기는 합니다만 네이티브가 아닌 에뮬레이션으로 구동되요.
그래서 AMD는 32비트와 호환 가능한 64비트 규격을 발표하게 되고 이것이 AMD64입니다.
기존의 x86 명령어를 확장한 형태로 32비트 명령어도 에뮬레이션없이 그대로 수행되며
64비트로 수행되는 작업들을 수행할 수 있으며 64비트 기반의 하드웨어 제어가 가능합니다.
그리고 이러한 대응에 인텔은 발빠르게 반응하여 EM64T라는 것을 발표합니다.
AMD64와 호환되는 명령어셋으로 지금의 Core 2 Duo, i7 등에 채택되어 있지요.
현재 Windows는 IA-64와 x64를 동시에 지원하고 있습니다만
애플은 아이테니엄을 채택하지 않았기 때문에 IA-64는 지원하지 않고 있습니다.
(모... 나중에 채용하면 금방 포팅할 겁니다.
그동안 플랫폼 옮겨 다닌 거 보면 애플의 포팅 실력도 상당하고
인텔 플랫폼 개발해 놓고도 5년동안 안한다 안한다 했으니
이미 해 놨는지도 모릅니다...)
x64라는 단어는 주로 마이크로소프트가 AMD와 인텔의 중립적인 위치에서 이야기할 때 사용합니다.
결과적으로 현재는 x86과 호환되는 64비트 기반의 칩을 통칭하는 용어로 일반화 되었지요.
체감하시고 계시겠지만 x64가 x86 어플리케이션의 수행을 완벽하게 보장하지는 않습니다만
애플의 경우 OS X으로 오면서 기존 클래식과의 호환성도 버렸고
로제타를 이용해 에뮬레이션 하는 부분도 있으므로
윈도우 보다 이동에 대한 충격이 상당히 감소합니다.
마이크로소프트는 하위 호환성 중시때문에 고민이 많겠지요.
결과적으로
현재 애플은 아이테니엄을 사용하고 있지 않습니다.
코어 2 듀오 또는 제온을 사용하고 있지요.
따라서 현재 출하되는 기종은 모두 IA-64가 아닌 x64를 지원합니다.
기존의 기종중 제온 및 메롬이후는 x64를 지원합니다.