제 컴퓨터는 AMD64비트 인데
인텔 메뉴얼을 보면서 MSR이나 기타 레지스터를 사용해도 되는 걸까요?
VMX 기능을 켜보려고 하는데 갑자기 인텔과 AMD가 어떤 차이가 있는지
먼저 알아야 되겠다는 생각이 들었습니다.
구글에 물어보니 몇몇 레지스터가 차이가 있다고 하는데
VMX 기능이나 롱 모드 사용에는 문제가 없는건지 혹시 아시나요?
인텔 메뉴얼을 보면서 MSR이나 기타 레지스터를 사용해도 되는 걸까요?
VMX 기능을 켜보려고 하는데 갑자기 인텔과 AMD가 어떤 차이가 있는지
먼저 알아야 되겠다는 생각이 들었습니다.
구글에 물어보니 몇몇 레지스터가 차이가 있다고 하는데
VMX 기능이나 롱 모드 사용에는 문제가 없는건지 혹시 아시나요?
댓글 7
-
정성욱
2008.02.25 10:05
-
이일렬
2008.02.25 13:19
우선 기본적으로 arch에 x86_64 이외의 폴더나 파일이 따로 분리(AMD용)되어 있지 않은걸로 봐서는 아직까지 분석한 소스는 두CPU의 경우에 동일하지 않을지요... ^^
/xen/arch/x86/cpu 폴더 밑에 있는 내용이 CPU별로 다른 내용에 대해서
언급하고 있네요... 분석하셨던 부분중에 이부분에 속한 코드가 호출된적이 없다면 아직까지는 두CPU의 차이가 없지 않을까 하는... ^^ -
송형주
2008.02.25 14:06
예전에 저희 x86_64 3기팀도 비슷한 고민을 한것 같네요..
그래서 참고삼아 적습니다.
인텔에는 두 종류의 64비트를 지원하는 프로세서가 있는 것 같네요.
Itanium(아이테니움) 계열과 EM64T 계열이 있습니다.
- Itanium 계열은 IA-64 프로세서 구조를 구현한 아키텍처로서, 인텔과 HP가 공동 개발했습니다. 기존의 x86과는 전혀 다른 아키텍처로 구성되어 있으며, 기존의 32비트 애플리케이션을 실행하기 위해서는 소프트웨어 에뮬레이션이 필요하다구 하네요.
출처 : http://en.wikipedia.org/wiki/Ia64
이에 반해
EM64T 계열은 AMD에서 개발한 기존의 x86아키텍처에서 64비트 어드레싱을 지원하게끔 확장한 x86-64 구조를 인텔이 구현한 것입니다. 지난 스터디에서 알 수 있었듯이, 32비트 호환 모드와 Legacy 모드를 통해 기존 32비트 응용프로그램과의 호환이 가능하죠.
출처 : http://en.wikipedia.org/wiki/AMD64
http://www.dal.co.kr/blog/archives/000810.html
따라서 원래 x86-64는 AMD에서 디자인 된 것이었습니다. 따라서 EM64T는 인텔이 AMD 64를 따라한 구조이므로, 아키텍처상의 차이는 거의 없다고 보면 될 듯 싶은데요.
리눅스의 창시자인 리누스도 인텔이 EM64T 매뉴얼에서 조차 x86-64를 개발한 AMD에 대한 어떠한 기술적인 언급도 하지 않은 것이 정말 역겹다며, 리눅스 커널의 x86-64의 모든 부분을 AMD64로 이름을 바꿔버렸다고 하네요.. 그래서 리눅스 소스에서 EM64T 에 대한 부분을 찾기 어려운게 아닌지 ^^
출처 : http://kerneltrap.org/node/2466 -
이일렬
2008.02.25 17:26
(동문 서답이네요... 지송 ^^;;)
그래서 다시 찾아봤어요 저도 좀 궁금해서요
INTEL - xenarchx86hvmvmx
AMD - xenarchx86hvmsvm
소스가 다릅니다.
참고1. X86, AMD64 차이점(AMD 매뉴얼에 기술되어 있네요)
AMD64 Architecture Programmer's Manual Volume 2 System Programming - x86 and AMD64 Architecture Differences
참고2. IO Virtualization은 (3.2.0)
INTEL - xenarchx86hvmvmxvtd
AMD - xenarchx86hvmsvmamd_iommu
소스가 다릅니다. -
김기오
2008.02.25 17:36
매뉴얼을 잠깐 비교해보니까 일반 커널이 64비트로 동작하는데는
별 차이가 없는것 같아 보였습니다.
정확한 것은 일단 직접 만들어보면서 생각해봐야겠습니다만
인텔의 명령어나 레지스터 설정이 AMD64의 부분집합으로 보였습니다.
xen에서 사용하는 vt 기능은 프로세서별로 좀 다를 수도 있을것 같습니다.
좀더 공부하면서 알아봐야겠습니다...
제가 갠히 싼맛에 AMD 프로세서를 사서 이 고생입니다.. ㅜ,.ㅜ -
김기오
2008.02.25 19:51
x86과 AMD64의 차이점에 대한 매뉴얼을 읽어보니까
32비트 프로세서와 64비트 프로세서의 차이점에 대한 내용인것 같습니다.
인텔과 AMD의 차이점보다는 64비트로 넘어오면서 달라진 것들에 대한
내용이 주로 나와있어 보입니다.
페이지 테이블 구조에 대해서 보니까 테이블 엔트리에 주소를 저장할 때
비트 크기가 좀 다르네요. 그 외에 설정 비트들은 거의 같은것 같습니다..
이거 볼수록 아리송 한데요.. 계속 읽어보겠습니다. -
이일렬
2008.02.26 11:14
매뉴얼은 제가 잘못 올렸네요... 그냥 타이틀만 보고 -_- 지송
그렇담 "송형주"님이 말씀하셨듯이 큰차이가 없다고 보아야 겠네요...
레지스터의 차이가 있다고 하는 것은 어느 사이트에서 보셨는지요?
사실 저의 생각으로는 long mode와 관련해서는 차이가 있다 하더라도
미미할것이고 이해하는데는 큰 문제가 없다 보여집니다.
단지 가상화 지원과 관련해서는 차이가 있는듯 하니 필요하다면 확인이
필요할거 같습니다 ^^
어쨋든 잘못된 정보 올려서 지송 ^^
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 하이퍼바이져 스터디 관련 Q&A 게시판 입니다. | woos | 2016.04.09 | 237 |
55 | 오늘 스터디 잘 하셨남요? [2] | 김기오 | 2008.03.01 | 4793 |
54 | 2월 23일날 분석된 소스 커밋좀 해주세요~ [1] | 박세율 | 2008.02.29 | 4434 |
53 | 오늘 삽질 | 정성욱 | 2008.02.26 | 4426 |
52 | vimrc 파일 | 김기오 | 2008.02.25 | 5083 |
» | 인텔에서 64비트와 AMD에서 64비트가 동일한건가요? [7] | 김기오 | 2008.02.24 | 7738 |
50 | VMX 기능 켜기 문제 [4] | 김기오 | 2008.02.21 | 5703 |
49 | 이번주 스터디 정리 [3] | 김기오 | 2008.02.20 | 4347 |
48 | xen 3.2 에서는 intel vt-d 기술이 적용된거 같은데요 [6] | 이일렬 | 2008.02.19 | 8567 |
47 | 오늘 삽질 [1] | 김기오 | 2008.02.03 | 4731 |
46 | 스터디 정리 [5] | 김기오 | 2008.01.30 | 5057 |
45 | [정보] XEN 설치 가이드 [1] | 박세율 | 2008.01.29 | 5662 |
44 | vmware에서 vt 기능이 되나봅니다 [2] | 김기오 | 2008.01.29 | 10677 |
43 | vmware 최신 버전 가지고 계시나요? | 김기오 | 2008.01.29 | 5087 |
42 | vim + ctags + cscope 사용법 [3] | 백창우 | 2008.01.28 | 7548 |
41 | 삭신이 다 쑤십니다. | 백창우 | 2008.01.26 | 4340 |
40 | 오늘 참석하기 힘들 것 같습니다 죄송합니다 ㅠ | 정찬호 | 2008.01.26 | 4422 |
39 | 이번주 | 정성욱 | 2008.01.26 | 4385 |
38 | x86 시뮬레이터 [2] | 백창우 | 2008.01.25 | 6153 |
37 | 인텔 매뉴얼 신청하세요 [4] | 김기오 | 2008.01.25 | 5409 |
36 | 자료 정리와 관련해서. [3] | 백창우 | 2008.01.22 | 4851 |
.
정확히는 모르겠지만요