類似於 AMD SVM-V 和 Intel Xeon 5500 系列之類的 CPU 透過使用兩層分頁表,提供對記憶體虛擬化的硬體支援。

第一層分頁表儲存了客體虛擬-實體轉譯,而第二層分頁表儲存了客體實體-電腦轉譯。TLB (translation look-aside buffer,轉譯對應緩衝區) 是一個轉譯快取,由處理器的記憶體管理單元 (MMU) 硬體維護。TLB 遺漏是此快取中的遺漏,而且硬體需要移至記憶體 (可能是多次) 以尋找所需轉譯。如果 TLB 中沒有某個客體虛擬位址,則硬體會查看這兩個分頁表,將客體虛擬位址轉譯為機器位址。第一層分頁表由客體作業系統維護。VMM 僅維護第二層分頁表。

效能考量事項

使用硬體協助時,可消除軟體記憶體虛擬化的額外負荷。尤其是,硬體協助消除了使陰影分頁表與客體分頁表保持同步所需要的額外負荷。但是,使用硬體協助時,TLB 遺漏延遲明顯較長。依預設,Hypervisor 會在硬體輔助模式中使用大型分頁,以降低 TLB 遺漏的成本。因此,工作負載是否受益於硬體協助,主要取決於在使用軟體記憶體虛擬化時由記憶體虛擬化引起的額外負荷。如果工作負載涉及少量分頁表活動 (例如程序建立、對應記憶體或內容切換),則軟體虛擬化不會引起顯著的額外負荷。相反,具有大量分頁表活動的工作負載可能會受益於硬體協助。

硬體 MMU 的效能已改善,因為其第一次引入在硬體中實作大量快取的功能。使用軟體記憶體虛擬化技術,一般客體中的內容切換頻率可能為每秒 100 至 1000 次。在軟體 MMU 中,每次內容切換都將設陷 VMM。硬體 MMU 方法則會避免此問題。

依預設,Hypervisor 會在硬體輔助模式中使用大型分頁,以降低 TLB 遺漏的成本。透過在客體虛擬至客體實體以及客體實體至機器位址轉譯中使用大型分頁,可實現最佳效能。

選項 LPage.LPageAlwaysTryForNPT 可以變更在客體實體至機器位址轉譯中使用大型分頁的原則。​ 如需詳細資訊,請參閱 進階記憶體屬性

備註︰

二進位轉譯僅適用於以軟體為基礎的記憶體虛擬化。