论文部分内容阅读
内存管理单元是一种辅助中央处理器进行内存访问的基础硬件,功能包括虚拟内存的管理和保护、处理器高速缓存的控制等。随着高性能设备的不断推广,用于设备地址转换的设备内存管理单元在现代设备中广泛使用,例如英特尔图形处理器中的全局图形转换表和进程图形转换表。然而,设备内存管理单元虚拟化在传统虚拟化方案中并没有得到很好地分析和解决。典型地,受控直通(Mediated Pass-Through)技术中利用影子页表对设备页表进行虚拟化,不仅实现复杂,而且在设备内存密集型工作负载中性能极低。针对上述问题,本文提出了基于受控直通技术的设备内存管理单元虚拟化方案Demon(on-DEvice Memory management unit virtualizatiON)。Demon的主要目标是优化受控直通技术对设备内存管理单元虚拟化所采用的影子页表实现。Demon的关键技术是复用客户机的设备内存管理单元作为第一维地址转换,并利用系统IOMMU动态构建第二维地址转换,同时为每个客户机维护用于第二维地址转换的I/O页表候选。当设备拥有者调度切换时,Demon会相应地将物理I/O页表切换到合适的I/O页表候选。为了支持多执行单元设备的细粒度并行,Demon提出了一个新的硬件方案用以保证各个设备执行单元的地址空间互不重叠。在Demon提出的新硬件方案中,多个客户机可以细粒度地共享设备执行单元,同时进行设备地址的重映射。本文利用Demon技术实现了英特尔图形处理器内存管理单元的虚拟化原型gDemon。值得注意的是,Demon并不局限于英特尔图形处理器,任何拥有设备内存管理单元的高性能设备都可以采用Demon实现高效的虚拟化。综合的性能测试显示,gDemon在媒体转码工作负载中的性能相比未经优化的gVirt提升高达19.73倍,在2D基准测试和3D基准测试中的性能相比gVirt分别提升高达17.09%和13.73%。另外,gDemon相比gVirt缩减了37%的代码量,极大简化了英特尔图形处理器内存管理单元虚拟化的实现。本文的主要工作和贡献如下:·提出了基于受控直通技术的设备内存管理单元虚拟化方案Demon。Demon通过多路复用IOMMU构造高效的二维地址转换,并在设备拥有者调度切换时动态切换相应的I/O页表。·提出了新的硬件方案,使得Demon可以针对多执行单元设备为多个客户机同时进行设备地址的重映射。本文通过软件方法模拟实现了该硬件方案,并进行了详细的讨论与分析。·实现了英特尔图形处理器内存管理单元的虚拟化原型gDemon。gDemon基于英特尔图形处理器的全虚拟化方案gVirt,利用Demon技术优化了gVirt中的影子页表实现。gDemon目前已经在GitHub上开源。·进行了综合的性能测试,gDemon相比gVirt有显著的性能提升,同时简化了英特尔图形处理器内存管理单元的虚拟化实现。另外,gDemon的可扩展性和运行时开销也得到了详细的测试与分析。