设备内存管理单元的虚拟化方法技术

技术编号:16269872 阅读:55 留言:0更新日期:2017-09-22 21:32
本发明专利技术提供了一种设备内存管理单元的虚拟化方法,包括:复用客户机的内存管理单元作为第一层地址翻译:客户机设备页表将设备虚拟地址翻译成客户机物理地址;利用IOMMU构造第二层地址翻译:IOMMU通过IOMMU内对应设备的IO页表将客户机物理地址翻译成宿主机物理地址。本发明专利技术提出的设备内存管理单元的虚拟化方法,能够高效地虚拟化设备内存管理单元;成功地将IOMMU结合到调解直传中,利用系统IOMMU来做第二层地址翻译,淘汰了复杂低效的影子页表;不仅提高了设备内存管理单元在虚拟化下的性能,而且实现简单,对客户机完全透明,是一个通用的高效的解决方案。

【技术实现步骤摘要】
设备内存管理单元的虚拟化方法
本专利技术涉及内存管理单元
,具体地,涉及一种设备内存管理单元的虚拟化方法。
技术介绍
内存管理单元(MMU)能有效地执行虚拟存储器管理,一些现代设备也利用内存管理单元来进行设备内的地址翻译。典型的拥有内存管理单元的设备有图形处理器(GPU)、图像处理单元(IPU)、Infiniband、甚至现场可编程逻辑闸阵列(FPGA)。然而,目前并没有令人满意的解决方案能够很好地支持设备内存管理单元的虚拟化。在目前主流的IO虚拟化解决方案中,设备模拟(DeviceEmulation)和半虚拟化(Para-Virtualization)借助CPU来模拟进行设备地址翻译,这种做法复杂性很高,性能很低,很难支持模拟设备的全部功能;直传技术(DirectPass-Through)引入了硬件IOMMU,通过牺牲设备的共享能力,将设备专用于单个客户机,以达到实现设备全部功能和最优性能的目的;单根虚拟化(SR-IOV)技术创建多个PCIe功能,并分配给多个客户机,从而达到同时对多个客户机进行设备地址翻译。但是单根虚拟化硬件复杂,受限于线路资源,可扩展性收到影响。一种调解直传(MediatedPass-Through)的技术最近脱颖而出,被gVirt采用实现了产品级的GPU全虚拟化。调解直传的核心是直传性能相关的关键资源,而捕获并模拟特权级资源。调解直传采用影子页表(ShadowPageTable)来虚拟化设备内存管理单元。但是影子页表的实现复杂,并且在内存密集型任务中导致严重的性能下降。以gVirt为例,尽管gVirt在普通的任务中表现良好,但是对于内存密集型的图像处理任务,最差能达到90%的性能下降。由于管理程序(Hypervisor)的接入,影子页表的维护成本很高。此外,影子页表实现相当复杂,gVirt包含大约3500行代码用来虚拟化GPU内存管理单元,这么大的代码量很难维护并且容易导致潜在的程序错误。再者,影子页表需要客户端驱动程序(Driver)显式地告知管理程序客户机页表的释放,从而使得管理程序能正确地去除相应页的写保护。修改客户机驱动程序尚能接受,但是当客户机页表的释放动作由客户机内核(OS)负责时,修改内核来支持设备MMU虚拟化,就显得不合适。目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到国内外类似的资料。
技术实现思路
针对现有技术中存在的上述不足,本专利技术旨在提出一种高效的设备内存管理单元的虚拟化解决方案,即,设备内存管理单元的虚拟化方法,用以取代调解直传中的影子页表实现。本专利技术是通过以下技术方案实现的。一种设备内存管理单元的虚拟化方法,包括:复用客户机的内存管理单元作为第一层地址翻译:客户机设备页表将设备虚拟地址翻译成客户机物理地址;利用IOMMU构造第二层地址翻译:IOMMU通过IOMMU内对应设备的IO页表将客户机物理地址翻译成宿主机物理地址;当设备拥有者切换时,第二层地址翻译动态地作相应的切换;采用分散设备内各个引擎地址空间的方式,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。优选地,所述第二层地址翻译对于客户机是透明的。优选地,第一层地址翻译输出的客户机物理地址允许超过实际物理空间大小。优选地,采用时分策略复用IOMMU内对应设备的IO页表;所述时分策略具体为:当一个客户机启动时,为该客户机构造一个IO页表候选,该IO页表候选即客户机物理地址到宿主机物理地址的映射;当设备分配给特权级客户机时,特权级客户机对应的IO页表在IO页表候选中动态切换。优选地,所述动态切换的过程,只需替换IOMMU重映射组件中上下文条目中的根指针。优选地,分散设备内各个引擎地址空间的方式采用如下方式:通过打开或关闭设备内各个引擎IO页表项的一个或多个位来扩展或限制各个引擎的地址空间。优选地,在采用时分策略复用客户机IO页表时,还包括:采用页表选择域内刷新(Page-Selective-within-DomainInvalidation)策略对设备的IOTLB刷新;所述页表选择域内刷新(Page-Selective-within-DomainInvalidation)策略具体为:给设备分配一个特殊的DomainId,只有在DomainId这个域中的所有客户机覆盖到的内存空间的IOTLB项会被刷新。与现有技术相比,本专利技术具有如下有益效果:1、本专利技术提出的设备内存管理单元的虚拟化方法,能够高效地虚拟化设备内存管理单元。2、本专利技术提出的设备内存管理单元的虚拟化方法,成功地将IOMMU结合到调解直传中,利用系统IOMMU来做第二层地址翻译,淘汰了复杂低效的影子页表。3、本专利技术提出的设备内存管理单元的虚拟化方法,不仅提高了设备内存管理单元在虚拟化下的性能,而且实现简单,对客户机完全透明,是一个通用的高效的解决方案。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为时分复用IO页表示意图;图2为gDemon整体架构示意图;图3为GGTT偏移和重映射示意图;图4为GMedia基准测试结果示意图;图5为Linux2D/3D基准测试结果示意图;图6为Windows2D/3D基准测试结果示意图。具体实施方式下面对本专利技术的实施例作详细说明:本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变形和改进,这些都属于本专利技术的保护范围。实施例本实施例提出的设备内存管理单元的虚拟化方法,称之为Demon(DEviceMmuvirtualizatiON)。Demon的主要思想是:复用客户机的内存管理单元作为第一层地址翻译,并利用IOMMU构造第二层地址翻译。当设备拥有者(DeviceOwner)切换时,Demon动态地切换第二层地址翻译。为了更好地支持拥有多个引擎的设备内细粒度并行,Demon提出了一项硬件提议,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。在Demon中,一个设备虚拟地址(DeviceVirtualAddress)首先被客户机设备页表翻译成客户机物理地址(GuestPhysicalAddress),然后被IOMMU通过对应的IO页表翻译成宿主机物理地址(HostPhysicalAddress)。这里,第二层地址翻译对于客户机是透明的,这一特点使得Demon是一个通用的解决方案。接下来详细介绍Demon的设计细节。首先是IO页表的动态切换。我们知道,从同一个设备发起的所有DMA请求只能被唯一确定的IO页表所重映射,该对应的IO页表是由设备的BDF号所决定的,因此一个IO页表只能为一个客户机服务。为了解决IOMMU的共享问题,Demon采用时分策略来复用IOMMU内对应该设备的IO页表,如图1所示。当一个客户机启动时,Demon会为之构造一个IO页表候选,该IO页表候选即客户机物理地址到宿主机物理地址的映射(Physical-to-MachineMapping,P2M)。Demon将设备分配给特权级客户机(Dom0),而特本文档来自技高网
...
设备内存管理单元的虚拟化方法

【技术保护点】
一种设备内存管理单元的虚拟化方法,其特征在于,包括:复用客户机的内存管理单元作为第一层地址翻译:客户机设备页表将设备虚拟地址翻译成客户机物理地址;利用IOMMU构造第二层地址翻译:IOMMU通过IOMMU内对应设备的IO页表将客户机物理地址翻译成宿主机物理地址;当设备拥有者切换时,第二层地址翻译动态地作相应的切换;采用分散设备内各个引擎地址空间的方式,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。

【技术特征摘要】
1.一种设备内存管理单元的虚拟化方法,其特征在于,包括:复用客户机的内存管理单元作为第一层地址翻译:客户机设备页表将设备虚拟地址翻译成客户机物理地址;利用IOMMU构造第二层地址翻译:IOMMU通过IOMMU内对应设备的IO页表将客户机物理地址翻译成宿主机物理地址;当设备拥有者切换时,第二层地址翻译动态地作相应的切换;采用分散设备内各个引擎地址空间的方式,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。2.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,所述第二层地址翻译对于客户机是透明的。3.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,第一层地址翻译输出的客户机物理地址允许超过实际物理空间大小。4.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,采用时分策略复用IOMMU内对应设备的IO页表;所述时...

【专利技术属性】
技术研发人员:管海兵徐宇董耀祖姚建国
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1