AMD SVM-V 및 Intel Xeon 5500 시리즈와 같은 일부 CPU는 두 계층의 페이지 테이블을 사용하여 메모리 가상화에 대한 하드웨어 지원을 제공합니다.

첫 번째 페이지 테이블 계층에는 게스트 V2P(가상에서 물리로) 변환이 저장되며 두 번째 페이지 테이블 계층에는 게스트 P2M(물리에서 시스템으로) 변환이 저장됩니다. TLB(Translation Look-aside Buffer)는 프로세서의 MMU(메모리 관리 유닛) 하드웨어가 유지하는 변환의 캐시입니다. TLB 누락은 이 캐시의 누락이며 하드웨어는 필요한 변환을 찾기 위해 메모리로 이동해야 할 경우가 많습니다. 특정 게스트 가상 주소에 대한 TLB 누락의 경우 하드웨어는 게스트 가상 주소를 호스트 물리적 주소로 변환하기 위해 두 페이지 테이블을 모두 확인합니다.

이 그림에서는 메모리 가상화의 ESXi 구현을 보여 줍니다.

그림 1. ESXi 메모리 매핑


이 그림에서는 메모리 가상화의 구현을 보여 줍니다.

  • 상자는 페이지를 나타내며 화살표는 여러 메모리 매핑을 보여 줍니다.

  • 게스트 가상 메모리에서 게스트 물리적 메모리로의 화살표는 게스트 운영 체제에서 페이지 테이블에 유지되는 매핑을 보여 줍니다. x86 아키텍처 프로세서에 대한 가상 메모리에서 선형 메모리로의 매핑은 표시되어 있지 않습니다.

  • 게스트 물리적 메모리에서 시스템 메모리로의 화살표는 VMM에서 유지하는 매핑을 보여 줍니다.

  • 점선 화살표는 마찬가지로 VMM에서 유지하는 섀도우 페이지 테이블에서 게스트 가상 메모리로부터 시스템 메모리로의 매핑을 보여 줍니다. 가상 시스템을 실행하는 기본 프로세서는 섀도우 페이지 테이블 매핑을 사용합니다.

가상화를 통해 추가적인 수준의 메모리 매핑이 적용되기 때문에 ESXi는 모든 가상 시스템에 대해 효과적으로 메모리를 관리할 수 있습니다. 가상 시스템의 물리적 메모리 일부는 매핑되지 않거나 스왑되지 않은 페이지로 매핑되거나 공유 페이지로 매핑될 수 있습니다.

호스트는 게스트 운영 체제를 인식하지 않으며 게스트 운영 체제의 자체 메모리 관리 하위 시스템을 방해하지 않고 가상 메모리 관리를 수행합니다.

성능 고려 사항

하드웨어 지원을 사용하면 소프트웨어 메모리 가상화의 오버헤드가 제거됩니다. 특히 하드웨어 지원은 섀도우 페이지 테이블과 게스트 페이지 테이블의 동기화 상태 유지에 필요한 오버헤드를 제거합니다. 하지만 하드웨어 지원을 사용할 때는 TLB 누락 지연 시간이 조금 더 높습니다. 이로 인해 하드웨어 지원을 사용할 때 워크로드에 이점이 있는지 여부는 소프트웨어 메모리 가상화를 사용할 때 메모리 가상화가 초래하는 오버헤드에 따라 달라집니다. 프로세스 생성, 메모리 매핑 또는 컨텍스트 전환 등과 같이 페이지 테이블 작업의 양이 적은 워크로드의 경우에는 소프트웨어 가상화로 인해 발생하는 오버헤드가 크지 않습니다. 이와 반대로 페이지 테이블 작업의 양이 많은 워크로드의 경우 하드웨어 지원을 사용하면 이점을 얻을 수 있습니다.