2007년 02월 26일
Hardware Virtualization Support 기능에 대한 간단한 정리
처음 하드웨어 에뮬레이터가 나왔을 때는 CPU 명령 처리를 포함한 모든 하드웨어의 기능을 VM이 수행했었습니다. 하지만 가장 중요한 CPU 명령 처리를 소프트웨어단에서 수행을 했기 때문에, 초기 에뮬레이터들의 성능은 결코 좋다고 할 수가 없었죠.
이런 에뮬레이터들이 점차 성능 개선을 향한 노력을 하면서, 지금 VMware, Virtual PC 같은 유명한 에뮬레이터들은 대부분 사용자 모드 코드는 native cpu에서 직접 수행을 하고, 커널 모드 코드는 소프트웨어에서 기본적으로 처리를 하고 있습니다.
그리고 해당 에뮬레이터에서 지원하는 addition을 설치함으로써 커널 모드 코드까지도 직접 native cpu에서 수행을 하도록 지원을 하고 있죠. VMware tools나 Virtual Machine Additions를 설치하면 Guest OS의 성능이 대폭 올라가는 것이 이런 이유 때문입니다. (다만 몇몇 에뮬레이터는 32bit에서는 이 기능이 디폴트로 꺼져있는 경우도 있습니다. 소프트웨어 최적화를 통해서 커널 모드 명령을 native CPU에서 수행하는 것보다 더 나은 성능을 보여준다고 하는군요.)
Hardware Virtualization Support (HVS)는 가상 머신이 native CPU를 통해서 모든 명령을 수행할 수 있도록 지원을 하는 것을 말합니다. 즉, 커널 모드의 코드들도 별도의 addition없이 직접 native CPU에서 실행 할 수가 있다는 얘기죠.
음.. 네, 그렇습니다. 당장 사용자 입장에서는 HVS로 인해 얻는 이득은 그다지 없습니다. Guest OS에 Addition을 설치해서 사용하는 것과 동일한 효과를 얻으니까요. 다만 에뮬레이터에서 해당 OS에 대한 addition을 지원하지 않는 경우에는 유용할 겁니다. 아참, OS 설치시간은 확실히 빨라지겠군요. -_-;
현재 인텔과 AMD에서 Intel VT(IVT), AMD virtualization(AMD-V)라는 이름으로 CPU에서 virtualization을 지원하고 있습니다. AMD는 Socket AM2, Socket F 타입은 모두 virtualization을 지원합니다. 시중에 판매되고 있는 AMD CPU의 경우 대부분 virtualization을 지원한다고 보시면 됩니다.
인텔의 경우는 의외로 virtualization을 지원하지 않는 CPU들이 있는데 Pentium D 8xx 모델과 코어2듀오 T5xxx, E4xxx 모델이 virtualization을 지원하지 않습니다. 같은 프레스캇이라도 672는 지원을 하고 670은 지원을 하지 않죠.
인텔 공식 사이트 CPU 상세 스펙의 Other Intel Technologies에서 'VT±' 유무로 virtualization을 지원 여부를 알 수 있으니 참고하시기 바랍니다. (다행히, 제 CPU는 이 기능을 지원하는군요. ^^)
이런 에뮬레이터들이 점차 성능 개선을 향한 노력을 하면서, 지금 VMware, Virtual PC 같은 유명한 에뮬레이터들은 대부분 사용자 모드 코드는 native cpu에서 직접 수행을 하고, 커널 모드 코드는 소프트웨어에서 기본적으로 처리를 하고 있습니다.
그리고 해당 에뮬레이터에서 지원하는 addition을 설치함으로써 커널 모드 코드까지도 직접 native cpu에서 수행을 하도록 지원을 하고 있죠. VMware tools나 Virtual Machine Additions를 설치하면 Guest OS의 성능이 대폭 올라가는 것이 이런 이유 때문입니다. (다만 몇몇 에뮬레이터는 32bit에서는 이 기능이 디폴트로 꺼져있는 경우도 있습니다. 소프트웨어 최적화를 통해서 커널 모드 명령을 native CPU에서 수행하는 것보다 더 나은 성능을 보여준다고 하는군요.)
Hardware Virtualization Support (HVS)는 가상 머신이 native CPU를 통해서 모든 명령을 수행할 수 있도록 지원을 하는 것을 말합니다. 즉, 커널 모드의 코드들도 별도의 addition없이 직접 native CPU에서 실행 할 수가 있다는 얘기죠.
음.. 네, 그렇습니다. 당장 사용자 입장에서는 HVS로 인해 얻는 이득은 그다지 없습니다. Guest OS에 Addition을 설치해서 사용하는 것과 동일한 효과를 얻으니까요. 다만 에뮬레이터에서 해당 OS에 대한 addition을 지원하지 않는 경우에는 유용할 겁니다. 아참, OS 설치시간은 확실히 빨라지겠군요. -_-;
현재 인텔과 AMD에서 Intel VT(IVT), AMD virtualization(AMD-V)라는 이름으로 CPU에서 virtualization을 지원하고 있습니다. AMD는 Socket AM2, Socket F 타입은 모두 virtualization을 지원합니다. 시중에 판매되고 있는 AMD CPU의 경우 대부분 virtualization을 지원한다고 보시면 됩니다.
인텔의 경우는 의외로 virtualization을 지원하지 않는 CPU들이 있는데 Pentium D 8xx 모델과 코어2듀오 T5xxx, E4xxx 모델이 virtualization을 지원하지 않습니다. 같은 프레스캇이라도 672는 지원을 하고 670은 지원을 하지 않죠.
인텔 공식 사이트 CPU 상세 스펙의 Other Intel Technologies에서 'VT±' 유무로 virtualization을 지원 여부를 알 수 있으니 참고하시기 바랍니다. (다행히, 제 CPU는 이 기능을 지원하는군요. ^^)
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 간단한 CPU 보는 법 by 냥이
- 콘로에 관심이 없는 이유들 by 로리
- CPU... by RUIN
- 인텔의 테라플롭스 80-코어 연구용 CPU by object
- 컴퓨터 부품에 대한 잡상 - CPU편 by 리스
# by | 2007/02/26 19:17 | Computer Code | 트랙백 | 덧글(0)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]