一句话:提出 DMT,一种兼容 x86 的内存翻译软硬件扩展,通过 TEA 和 guest-host 协作降低虚拟化与嵌套虚拟化的页表遍历开销。
虚拟化云中内存密集型负载受虚拟内存翻译瓶颈制约,x86 嵌套翻译最多需顺序读取 24 个页表项(PTE)。论文提出 Direct Memory Translation(DMT),一种兼容 x86 的软硬件扩展。OS 将最后一级 PTE 放在连续物理内存的 Translation Entry Areas(TEA)中,并按虚拟内存区域(VMA)建立到 TEA 内 PTE 的直接映射;因进程通常只有少量主要 VMA,映射可存入少量专用寄存器。DMT 还通过 guest-host 协作直接在物理内存分配 guest TEA,绕过中间虚拟化层。它在原生、虚拟化和嵌套虚拟化下分别只需 1、2、3 次内存引用。评估显示,虚拟化下页表遍历平均加速 1.58x,应用执行平均加速 1.20x(THP 下为 1.65x 与 1.14x)。
Virtual memory translation has become a key performance bottleneck of memory-intensive workloads in virtualized cloud environments. On the x86 architecture, a nested translation needs to sequentially fetch up to 24 page table entries (PTEs). This paper presents Direct Memory Translation (DMT), a hardware-software extension for x86-based virtual memory that minimizes translation overhead while maintaining backward compatibility with x86. In DMT, the OS manages last-level PTEs in a contiguous physical memory region, termed Translation Entry Areas (TEAs). DMT establishes a direct mapping from each virtual page in a Virtual Memory Area (VMA) to the corresponding PTE in a TEA. Since processes manage memory with a handful of major VMAs, the mapping can be maintained per VMA and effectively stored in a few dedicated registers. DMT further optimizes virtualized memory translation via guest-host cooperation by directly allocating guest TEAs in physical memory, bypassing intermediate virtualization layers. DMT is inherently scalable---it takes one, two, and three memory references in native, virtualized, and nested virtualized setups. Its scalability enables hardware-assisted translation for nested virtualization. Our evaluation shows that DMT significantly speeds up page walks by an average of 1.58x (1.65x with THP) in a virtualized setup, resulting in 1.20x (1.14x with THP) speedup of application execution on average.