Ia64에 대한 전반적인 궁금증

요즘 아키텍쳐 스타일에 대한 궁금증이 늘어가는 군요…
뭐… 여기 글을 자주 올리는 건 아니지만(아니 거의 안올리지만;;:wink: 궁금한점이 있어 글을 올려 봅니다.
인텔 아키텍쳐가 IA32, IA64, 그리고, IA32에서 업그레이드된 x64라는게 있는걸로 보입니다만,
전,
그 세부적인 차이점이 궁금하네요.
IA32는 기본적으로 리얼모드라든지, 보호모드라든지 이런것들이 프로세서 기능으로 가지고 있는듯 합니다만,
IA64에서는 이런 프로세서의 기능들이 달라지던가, 더 추가되었던가 하는게 있는거죠?
인텔사의 공식홈피(영문)에 가면 아키텍쳐에 대한 공식 문서가 있습니다만,
이놈의 영어는 제가 넘볼만큼 만만치 않더군요;;
그래서 좀 도움을 얻어볼까 합니다.

IA64와 IA32의 다른 점과 IA64의 독보적인 기능? 기술에 대해 좀 알고 싶네요;;;
x86과 달라진 x64의 기능과 기술에 대해서도 알고 싶구요.
이런걸 종합적으로 답해주셔도 되지만, 아는것이라도 알려주시면 감사~~ =_=

자기는 알려주는거 없으면서 단물만 쏙쏙 빼가겠다는 심보로군, 이라고 생각하신다면,
네 그렇습니다(뻔뻔;;;).
하하하, 미안합니다. 그래도 알고싶은건 알고싶어서요;;;
영어 울렁증이 죽일놈이죠… .ㅠ.ㅠ.

IA64 는 x86 하고는 전혀 다른 별개의 CPU 구조입니다. 인텔이 굉장한 투자를 해서 개발한 것인데 아주 실패했죠.

그사이 AMD에서 x86을 64비트로 확장을 해서 내놨고 인텔은 결국 이것을 울며겨자먹기로 받아들여서 64비트 CPU 시장도 서버건 데스크탑이건 x86 계열이 지배하게 되었습니다.

IA64는 CPU 구조를 공부하는 경우라면 관련 문서를 찾아봐도 되지만 실용적으로는 현장에서 직접 구경하기조차 힘들정도로 적으니깐 신경안써도 됩니다.

그렇군요. itanium 같은 게 막 깔려 있을 줄 알았는데…

[quote="ahavatar":1dmlt5xj]IA64 는 x86 하고는 전혀 다른 별개의 CPU 구조입니다. 인텔이 굉장한 투자를 해서 개발한 것인데 아주 실패했죠.

그사이 AMD에서 x86을 64비트로 확장을 해서 내놨고 인텔은 결국 이것을 울며겨자먹기로 받아들여서 64비트 CPU 시장도 서버건 데스크탑이건 x86 계열이 지배하게 되었습니다.

IA64는 CPU 구조를 공부하는 경우라면 관련 문서를 찾아봐도 되지만 실용적으로는 현장에서 직접 구경하기조차 힘들정도로 적으니깐 신경안써도 됩니다.[/quote:1dmlt5xj]

안타깝게도 그 CPU 구조를 공부하는 사람이 접니다;;;
관련문서를 보고 있지만, 역시나 언어의 장벽은 높습니다.
제대로 해석을 못하니 읽을때마다 다른 이야기를 듣고 있는듯합니다 ㅠ.ㅠ
X86을 확장한 AMD의 AMD64에 대해서 알면 좋겠지만, 전 순수하게 인텔의 아키텍쳐만을 보고 있어서 영역을 확장하기가 쉽지 않네요.
인텔의 x64-86가 AMD64를 라이센싱하여 내놓은 제품군이라고 하니, 이걸 좀 알고 싶구요.
x64-86엔 있고, x86에는 없는 그런 기능에 대해서 궁금하죠.
그리고 IA64가 가진 기술들, 아니면, 기술문서의 링크도 좋습니다.
인텔 홈피의 기술문서들은 IA64에 관한 내용이 여기저기 흩어져 있는지 찾기가 쉽지 않네요…ㅠ.ㅠ

아키텍쳐에 대해 많이 알지는 못하지만 미친 척하고 글 남깁니다.

IA-32의 경우 우리가 익히 알고 있는대로 32bits 기반의 레지스터를 사용하게 됩니다.
하지만 64비트로의 이전을 원한 인텔은 IA-64라는 64bits 기반의 아키텍쳐를 내놓게 됩니다.

사실 IA-64는 HP와의 공동연구로 개발된 아키텍쳐죠.
IA-64의 초창기의 인텔의 행보를 보면요 End-User에게는 IA-32를
서버급을 위해서는 IA-64를 사용하게 하려 했던 것으로 보입니다.

IA-64는 언급하신대로 IA-32와의 하위호환성이 없습니다.
더 정확히 말해서는 IA-64의 초창기 모델은 IA-32층을 에뮬레이션 하는
기능을 갖고 있었죠. 물론 지금은 없어졌다고 하구요.

IA-64가 Itanium이라는 상표명으로 인텔에서 출시되자마자 뜨는 듯하다가
이 녀석이 시장성이 없는 물건인 관계로 거의 서버시장에서도 퇴출되다시피 했죠.
그 이유는 ‘물건이 너무 비싸고, 구할 곳이 없어서’ 입니다. HP와 같은 대기업 서버
제조회사를 빼고는 물건을 넣지도 않았거든요.

우리나라의 경우 IA-32서버를 수백대를 쓰는 환경이 있을지언정 대기업 서버에 게다가 생소한
아키텍쳐의 대형 서버를 사용하는 회사는 거의 없는 관계로 이름조차 모르시는 분들이 많을 겁니다(아마도).
시도조차 안했겠죠… -_-;

인텔은 이렇게 시장에서 완죤히 발리고 있을 때, 과연 AMD의 행보는 어땠을까요?
AMD는 한창 K7코어의 후기 버전 AthlonXP로 상한가 치고 있고 또한
인텔이 장담했던 ‘고성능 CPU는 Socket형식이 아닌 Slot형식이 적합하다.’ 라는 호언장담을
Socket A라는 넘으로 인텔을 때려엎고 있었습니다.

하지만 이걸로는 무언가 부족한 듯 IA-64의 대항마 AMD64라는 64bits 아키텍쳐를 선보입니다.
이것이 무엇이냐? 32bits 호환 64bits 아키텍쳐입니다.

IA-64가 하위호환을 포기한 반면에 AMD64는 '레거시 모드’라는 IA-32용 호환모드를 가지고 있었더랩니다.
하지만 이는 단순 에뮬레이션이 아닌 Native형식으로 구현되었다죠. 이로인해 기존의 IA-32를 사용하고있던
사용자들이 자연스레 64bits로 이전할 수 있는 숨통을 트여준거죠. 물론 Full 64bits 모드도 있는데
이걸 ‘롱모드’ 라고 부릅니다.

또한 시장성에 있어서도 물건 구하기 무지 쉬웠으니…

그런데 문제는 여기서 끝나는게 아니었으니 바로 운영체제, 정확히 말해서 M$윈도우용 응용프로그램이
걸림돌이 되었죠.

사람들이 64bits 운영체제를 설치한다손 치더라도 64bits용 응용프로그램이 없다면 설치하나마나겠죠…
그래서 Windows XP 32bits 버전을 설치해서 4GB의 대용량 메모리 달아놔도 소용없죠.

Mac OS X 의 경우를 보더라도 운영체제와 응용프로그램의 64bits 이전을 위해서 얼마나 노력했는지
알 수 있죠. 그래서 그 피날레를 장식한 것이 Mac OS X 10.6 Snow Leopard라는 녀석이죠.

AMD64가 출시되고 난 후 인텔도 이에 질세라 AMD64와 호환되는 아키텍쳐를 만들기(솔직히 주워먹기)
시작했더랍니다. 바로 그 이름 하야 ‘EM64T’ (Extended Memory 64 Technology) 라고 명명했습니다.

x86-64라는 이름은 AMD64와 EM64T를 합쳐서 부르는 말이므로 사용에 주의해야 합니다.

[url=http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64:tv2rkmu1]AMD64와 EM64T의 차이점[/url:tv2rkmu1]은 클릭해주세요. (물론 영문이지만요)

대충 이 정도 까지만…

덧니: 혹시라도 틀렸으면 정정을… 부탁드립니다…

[quote="unixcruiser":31w35vt6]아키텍쳐에 대해 많이 알지는 못하지만 미친 척하고 글 남깁니다.

IA-32의 경우 우리가 익히 알고 있는대로 32bits 기반의 레지스터를 사용하게 됩니다.
하지만 64비트로의 이전을 원한 인텔은 IA-64라는 64bits 기반의 아키텍쳐를 내놓게 됩니다.

사실 IA-64는 HP와의 공동연구로 개발된 아키텍쳐죠.
IA-64의 초창기의 인텔의 행보를 보면요 End-User에게는 IA-32를
서버급을 위해서는 IA-64를 사용하게 하려 했던 것으로 보입니다.

IA-64는 언급하신대로 IA-32와의 하위호환성이 없습니다.
더 정확히 말해서는 IA-64의 초창기 모델은 IA-32층을 에뮬레이션 하는
기능을 갖고 있었죠. 물론 지금은 없어졌다고 하구요.

IA-64가 Itanium이라는 상표명으로 인텔에서 출시되자마자 뜨는 듯하다가
이 녀석이 시장성이 없는 물건인 관계로 거의 서버시장에서도 퇴출되다시피 했죠.
그 이유는 ‘물건이 너무 비싸고, 구할 곳이 없어서’ 입니다. HP와 같은 대기업 서버
제조회사를 빼고는 물건을 넣지도 않았거든요.

우리나라의 경우 IA-32서버를 수백대를 쓰는 환경이 있을지언정 대기업 서버에 게다가 생소한
아키텍쳐의 대형 서버를 사용하는 회사는 거의 없는 관계로 이름조차 모르시는 분들이 많을 겁니다(아마도).
시도조차 안했겠죠… -_-;

인텔은 이렇게 시장에서 완죤히 발리고 있을 때, 과연 AMD의 행보는 어땠을까요?
AMD는 한창 K7코어의 후기 버전 AthlonXP로 상한가 치고 있고 또한
인텔이 장담했던 ‘고성능 CPU는 Socket형식이 아닌 Slot형식이 적합하다.’ 라는 호언장담을
Socket A라는 넘으로 인텔을 때려엎고 있었습니다.

하지만 이걸로는 무언가 부족한 듯 IA-64의 대항마 AMD64라는 64bits 아키텍쳐를 선보입니다.
이것이 무엇이냐? 32bits 호환 64bits 아키텍쳐입니다.

IA-64가 하위호환을 포기한 반면에 AMD64는 '레거시 모드’라는 IA-32용 호환모드를 가지고 있었더랩니다.
하지만 이는 단순 에뮬레이션이 아닌 Native형식으로 구현되었다죠. 이로인해 기존의 IA-32를 사용하고있던
사용자들이 자연스레 64bits로 이전할 수 있는 숨통을 트여준거죠. 물론 Full 64bits 모드도 있는데
이걸 ‘롱모드’ 라고 부릅니다.

또한 시장성에 있어서도 물건 구하기 무지 쉬웠으니…

그런데 문제는 여기서 끝나는게 아니었으니 바로 운영체제, 정확히 말해서 M$윈도우용 응용프로그램이
걸림돌이 되었죠.

사람들이 64bits 운영체제를 설치한다손 치더라도 64bits용 응용프로그램이 없다면 설치하나마나겠죠…
그래서 Windows XP 32bits 버전을 설치해서 4GB의 대용량 메모리 달아놔도 소용없죠.

Mac OS X 의 경우를 보더라도 운영체제와 응용프로그램의 64bits 이전을 위해서 얼마나 노력했는지
알 수 있죠. 그래서 그 피날레를 장식한 것이 Mac OS X 10.6 Snow Leopard라는 녀석이죠.

AMD64가 출시되고 난 후 인텔도 이에 질세라 AMD64와 호환되는 아키텍쳐를 만들기(솔직히 주워먹기)
시작했더랍니다. 바로 그 이름 하야 ‘EM64T’ (Extended Memory 64 Technology) 라고 명명했습니다.

x86-64라는 이름은 AMD64와 EM64T를 합쳐서 부르는 말이므로 사용에 주의해야 합니다.

[url=http://en.wikipedia.org/wiki/X86-64#Differences_between_AMD64_and_Intel_64:31w35vt6]AMD64와 EM64T의 차이점[/url:31w35vt6]은 클릭해주세요. (물론 영문이지만요)

대충 이 정도 까지만…

덧니: 혹시라도 틀렸으면 정정을… 부탁드립니다…[/quote:31w35vt6]

오호호호, 이렇게 친절한 설명을 달아주시다니…
감사합니다… 우헤~
진작 답글을 달아 드렸어야 했는데, 다른일로 바쁘다보니… 이런 친절한 답변에 감사의 인사도 못해드렸네요.
늦었지만, 감사합니다. ^^
덕분에 많이 배워 갑니다. 지금은 EM64T와 AMD64간의 차이를 비교 검색 중입니다. ^^&

최근의 양 진영의 구현비교

[list:1aibpti4][:1aibpti4]인텔 EM64T의 BSF 및 BSR 명령어는 소스가 0이거나 오퍼랜드 크기가 32비트일때 다르게 동작한다. 이 동작으로 인해 프로세서는 Zero 플래그를 선언하고 상위 32비트를 정의하지 않게 한다.[/:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]인텔 EM64T는 (FXSAVE 그리고 FXRSTOR 명령을 포함해서) 부동소수점 처리능력의 향상에도 불구하고 이의 상태 복구 및 저장능력이 부족하다.[/:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]인텔 EM64T는 (SYSCFG, TOP_MEM 그리고 TOP_MEM2와 같은) AMD64 아키텍쳐에 있어서 구조적으로 중요한
MSR (즉, 문서화 되지 않고 특정 CPU모델에만 존재하는 레지스터)가 부족하다.[/
:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]AMD64는 (기존 과는) 다른 종류의 마이크로코드 업데이트 형식과 제어 MSR이 필요하지만
EM64T의 경우 기존의 32비트 전용 프로세서와 별반 차이가 없다.[/
:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]인텔 EM64T는 SYSCALL과 SYSRET 명령어는 오직 롱모드에서만 허용된다.
반면에 SYSENTER와 SYSEXIT 명령어는 레거시모드 및 롱모드 양 쪽 모두 허용된다.[/
:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]AMD64는 레거시모드와 롱모드 양 쪽에서 SYSENTER와 SYSEXIT의 기능이 부족하다.[/:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]프리픽스가 66H인 경우 인텔과 AMD의 구현은 다르게 작동한다.
EM64T의 경우 상위 32비트를 삭제하지만 AMD64의 경우 상위 48비트를 삭제한다. [/
:m:1aibpti4][/list:u:1aibpti4]

[list:1aibpti4][:1aibpti4]가장 최근에 나온 AMD64 프로세서는 캐쉬가 4kB에서 2MB 까지 확장됨으로써 1GB의 대용량 페이지를 지원한다.[/:m:1aibpti4][/list:u:1aibpti4]

[quote="unixcruiser":10c14xau]최근의 양 진영의 구현비교

[list:10c14xau][:10c14xau]인텔 EM64T의 BSF 및 BSR 명령어는 소스가 0이거나 오퍼랜드 크기가 32비트일때 다르게 동작한다. 이 동작으로 인해 프로세서는 Zero 플래그를 선언하고 상위 32비트를 정의하지 않게 한다.[/:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]인텔 EM64T는 (FXSAVE 그리고 FXRSTOR 명령을 포함해서) 부동소수점 처리능력의 향상에도 불구하고 이의 상태 복구 및 저장능력이 부족하다.[/:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]인텔 EM64T는 (SYSCFG, TOP_MEM 그리고 TOP_MEM2와 같은) AMD64 아키텍쳐에 있어서 구조적으로 중요한
MSR (즉, 문서화 되지 않고 특정 CPU모델에만 존재하는 레지스터)가 부족하다.[/
:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]AMD64는 (기존 과는) 다른 종류의 마이크로코드 업데이트 형식과 제어 MSR이 필요하지만
EM64T의 경우 기존의 32비트 전용 프로세서와 별반 차이가 없다.[/
:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]인텔 EM64T는 SYSCALL과 SYSRET 명령어는 오직 롱모드에서만 허용된다.
반면에 SYSENTER와 SYSEXIT 명령어는 레거시모드 및 롱모드 양 쪽 모두 허용된다.[/
:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]AMD64는 레거시모드와 롱모드 양 쪽에서 SYSENTER와 SYSEXIT의 기능이 부족하다.[/:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]프리픽스가 66H인 경우 인텔과 AMD의 구현은 다르게 작동한다.
EM64T의 경우 상위 32비트를 삭제하지만 AMD64의 경우 상위 48비트를 삭제한다. [/
:m:10c14xau][/list:u:10c14xau]

[list:10c14xau][:10c14xau]가장 최근에 나온 AMD64 프로세서는 캐쉬가 4kB에서 2MB 까지 확장됨으로써 1GB의 대용량 페이지를 지원한다.[/:m:10c14xau][/list:u:10c14xau][/quote:10c14xau]

감사합니다.
댓글들이 제게 큰 공부가 되고 있네요.
이를 기반으로 어떤 :lol: 내용을 찾아봐야 하는지 알게되어서 좋습니다.
즐거운 하루되세요~~ ^^