CN107193759A - 设备内存管理单元的虚拟化方法 - Google Patents

设备内存管理单元的虚拟化方法 Download PDF

Info

Publication number
CN107193759A
CN107193759A CN201710255246.7A CN201710255246A CN107193759A CN 107193759 A CN107193759 A CN 107193759A CN 201710255246 A CN201710255246 A CN 201710255246A CN 107193759 A CN107193759 A CN 107193759A
Authority
CN
China
Prior art keywords
page table
iommu
address
client computer
administrative unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710255246.7A
Other languages
English (en)
Inventor
管海兵
徐宇
董耀祖
姚建国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201710255246.7A priority Critical patent/CN107193759A/zh
Priority to PCT/CN2017/101807 priority patent/WO2018192160A1/zh
Priority to US16/606,689 priority patent/US20200125500A1/en
Publication of CN107193759A publication Critical patent/CN107193759A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

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

Description

设备内存管理单元的虚拟化方法
技术领域
本发明涉及内存管理单元技术领域,具体地,涉及一种设备内存管理单元的虚拟化方法。
背景技术
内存管理单元(MMU)能有效地执行虚拟存储器管理,一些现代设备也利用内存管理单元来进行设备内的地址翻译。典型的拥有内存管理单元的设备有图形处理器(GPU)、图像处理单元(IPU)、Infiniband、甚至现场可编程逻辑闸阵列(FPGA)。然而,目前并没有令人满意的解决方案能够很好地支持设备内存管理单元的虚拟化。在目前主流的IO虚拟化解决方案中,设备模拟(Device Emulation)和半虚拟化(Para-Virtualization)借助CPU来模拟进行设备地址翻译,这种做法复杂性很高,性能很低,很难支持模拟设备的全部功能;直传技术(Direct Pass-Through)引入了硬件IOMMU,通过牺牲设备的共享能力,将设备专用于单个客户机,以达到实现设备全部功能和最优性能的目的;单根虚拟化(SR-IOV)技术创建多个PCIe功能,并分配给多个客户机,从而达到同时对多个客户机进行设备地址翻译。但是单根虚拟化硬件复杂,受限于线路资源,可扩展性收到影响。
一种调解直传(Mediated Pass-Through)的技术最近脱颖而出,被gVirt采用实现了产品级的GPU全虚拟化。调解直传的核心是直传性能相关的关键资源,而捕获并模拟特权级资源。调解直传采用影子页表(Shadow Page Table)来虚拟化设备内存管理单元。但是影子页表的实现复杂,并且在内存密集型任务中导致严重的性能下降。以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-Domain Invalidation)策略对设备的IOTLB刷新;
所述页表选择域内刷新(Page-Selective-within-Domain Invalidation)策略具体为:
给设备分配一个特殊的Domain Id,只有在Domain Id这个域中的所有客户机覆盖到的内存空间的IOTLB项会被刷新。
与现有技术相比,本发明具有如下有益效果:
1、本发明提出的设备内存管理单元的虚拟化方法,能够高效地虚拟化设备内存管理单元。
2、本发明提出的设备内存管理单元的虚拟化方法,成功地将IOMMU结合到调解直传中,利用系统IOMMU来做第二层地址翻译,淘汰了复杂低效的影子页表。
3、本发明提出的设备内存管理单元的虚拟化方法,不仅提高了设备内存管理单元在虚拟化下的性能,而且实现简单,对客户机完全透明,是一个通用的高效的解决方案。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为时分复用IO页表示意图;
图2为gDemon整体架构示意图;
图3为GGTT偏移和重映射示意图;
图4为GMedia基准测试结果示意图;
图5为Linux 2D/3D基准测试结果示意图;
图6为Windows 2D/3D基准测试结果示意图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
实施例
本实施例提出的设备内存管理单元的虚拟化方法,称之为Demon(DEviceMmuvirtualizatiON)。Demon的主要思想是:复用客户机的内存管理单元作为第一层地址翻译,并利用IOMMU构造第二层地址翻译。当设备拥有者(Device Owner)切换时,Demon动态地切换第二层地址翻译。为了更好地支持拥有多个引擎的设备内细粒度并行,Demon提出了一项硬件提议,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。在Demon中,一个设备虚拟地址(Device Virtual Address)首先被客户机设备页表翻译成客户机物理地址(Guest Physical Address),然后被IOMMU通过对应的IO页表翻译成宿主机物理地址(Host Physical Address)。这里,第二层地址翻译对于客户机是透明的,这一特点使得Demon是一个通用的解决方案。接下来详细介绍Demon的设计细节。
首先是IO页表的动态切换。我们知道,从同一个设备发起的所有DMA请求只能被唯一确定的IO页表所重映射,该对应的IO页表是由设备的BDF号所决定的,因此一个IO页表只能为一个客户机服务。为了解决IOMMU的共享问题,Demon采用时分策略来复用IOMMU内对应该设备的IO页表,如图1所示。当一个客户机启动时,Demon会为之构造一个IO页表候选,该IO页表候选即客户机物理地址到宿主机物理地址的映射(Physical-to-Machine Mapping,P2M)。Demon将设备分配给特权级客户机(Dom0),而特权级客户机对应的IO页表会在各个IO页表候选中动态切换。完成切换的过程,只需要替换IOMMU重映射组件中上下文条目(Context Entry)中的根指针(L4页表根地址)即可;实际上,由于客户机的物理内存一般不会太大,因此只需要替换第3级页表中的几个页表项即可。
接着是IO页表的划分。IO页表的时分复用解决了IOMMU的共享问题,但是同时只有一个客户机能够处理任务,因为这时的IO页表填充了该客户机对应的IO页表候选。对于有多个能独立工作引擎的复杂设备,来自各个客户机的任务应当可以被同时分配到各个引擎上,利用并行进行加速。为了解决细粒度并行的问题,Demon提出一项硬件建议,即分散设备中各个引擎的地址空间。有很多方式可以消除各个引擎之间的地址空间重叠,例如,通过打开/关闭各个引擎页表项的一个或者多个位来扩展/限制各个引擎的地址空间。这里,第一层翻译的输出可以超过实际物理空间大小,因为第二层地址翻译会重映射到正确的机器物理地址。举例说明,如果置上页表项保留的33位,那么原来的GPA会变成GPA+4G,它将永远不会和原先的[0,4G]空间所重叠;另一方面,原来IO页表中(GPA,HPA)的映射现在变成(GPA+4G,HPA)来完成正确的地址重映射。IO页表的划分使得多个客户机的设备地址翻译成为可能,只要客户机所正在使用的引擎的地址空间互不重叠。
最后是高效的IOTLB刷新策略。在IOMMU中,有效的翻译会被缓存在IOTLB中,用以减少翻译时走IO页表带来的开销。但是在Demon中,由于时分复用的策略,为了消除脏的翻译缓存,IOTLB必须要刷新。这里,IOTLB的刷新势必会带来性能的下降。为了减少IOTLB刷新带来的开销,Demon采用Page-Selective-within-Domain Invalidation策略。在该策略下,Demon给(虚拟化)设备分配一个特殊的Domain Id,并且只有在Domain Id这个域中的所有客户机覆盖到的内存空间的IOTLB项会被刷新,而不是全局刷新。通过缩小IOTLB刷新的范围,使得IOTLB刷新带来的开销最小化。
为使本实施例的目的、技术方案和优点更加清楚,下面将结合GPU MMU虚拟化实例对本实施例进行详细描述。
GPU MMU有两种页表,分别是全局图形转换表(GGTT)和进程图形转换表(PPGTT)。gVirt采用影子页表的方式对GPU MMU进行虚拟化,而利用本实施例提供的Demon技术对GPUMMU的进行虚拟化得到的架构gDemon如图2所示。
将Demon应用到GPU MMU虚拟化中是比较直接的,在我们的测试平台上,GPU的BDF号是00∶02.0,它所确定的IO页表需要时分复用。具体地,在调度虚拟GPU设备时,gDemon会插入一个额外的超级调用(Hypercall)来显式地通知管理程序切换IO页表到相应的候选。PPGTT是位于内存的,是各个客户机所独有的,因此PPGTT在gDemon中可以直传。但是GGTT因为其独有的性质,需要进一步地调整。
GGTT位于MMIO区域,是特权级资源。由于分离的CPU和GPU调度策略,GGTT需要被切分;同时Ballooning的技术也被运用进来,从而显著地提高性能。这些原因导致GGTT只能用影子页表进行虚拟化。在gDemon环境中,要整合GGTT的影子页表实现,需要将GGTT影子页表项添加一个较大的偏移,使得它和PPGTT的地址空间互不重叠,同时IO页表中也要做相应的重映射,如图3所示(假设客户机内存为2GB,GGTT偏移为128GB)。
测试平台选取第5代CPU,i5-5300U,4核心,16GB内存,Intel HD Graphics 5500(Broadwell GT2)显卡,4GB显存,其中1GB是AGP Aperture。客户机选取64位的Ubuntu14.04和64位的Window 7,宿主机运行64位的Ubuntu 14.04系统,Xen 4.6为管理程序。所有的客户机都分配2个虚拟CPU、2GB内存和512MB显存(其中128MB是AGP Aperture)。基准测试选取GMedia、Cario-perf-trace、Phoronix Test Suite、PassMark、3DMark、Heaven和Tropics。
首先通过虚拟化模块代码量来测试gDemon的架构简洁性。在gVirt中用以虚拟化GPU MMU的代码共计3500行,其中GGTT子模块有1200行,PPGTT子模块有1800行,地址转换辅助模块500行。在gDemon中,GGTT子模块1250行,PPGTT子模块的影子页表被完全消除,增加了IO页表维护模块的450行代码,共计2200行代码,比gVirt少了37%的代码量。
接着在GMedia基准测试中,由于大量显存的使用,客户机页表操作频繁,对GPUMMU虚拟化的要求较高,因此GMedia能很好地反映gVirt和gDemon的性能。测试结果如图4所示。GMedia有两个参数,分别是通道数(channel)和分辨率(resolution),参数越大,GMedia的负载越高。从图4中可以看出,在通道数为15,分辨率为1080p的测试用例下,gDemon的性能高达gVirt的性能的19.73倍。
最后在一般的2D/3D任务中,客户机页表操作相对较少,GPU MMU虚拟化不是主要性能瓶颈,尽管如此,gDemon的性能几乎在所有测试用例中都优于gVirt的性能,性能提高最高可达17.09%(2D)和13.73%(3D),如图5和图6所示。
通过GPU MMU虚拟化的实现和测试,表明Demon是适用于设备内存管理单元虚拟化的一种高效的解决方案。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (7)

1.一种设备内存管理单元的虚拟化方法,其特征在于,包括:
复用客户机的内存管理单元作为第一层地址翻译:客户机设备页表将设备虚拟地址翻译成客户机物理地址;
利用IOMMU构造第二层地址翻译:IOMMU通过IOMMU内对应设备的IO页表将客户机物理地址翻译成宿主机物理地址;当设备拥有者切换时,第二层地址翻译动态地作相应的切换;
采用分散设备内各个引擎地址空间的方式,使得设备内各个引擎的地址空间互不重叠,继而使得IOMMU能够同时对多个客户机的设备地址进行重映射。
2.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,所述第二层地址翻译对于客户机是透明的。
3.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,第一层地址翻译输出的客户机物理地址允许超过实际物理空间大小。
4.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,采用时分策略复用IOMMU内对应设备的IO页表;所述时分策略具体为:
当一个客户机启动时,为该客户机构造一个IO页表候选,该IO页表候选即客户机物理地址到宿主机物理地址的映射;当设备分配给特权级客户机时,特权级客户机对应的IO页表在IO页表候选中动态切换。
5.根据权利要求4所述的设备内存管理单元的虚拟化方法,其特征在于,所述动态切换的过程,只需替换IOMMU重映射组件中上下文条目中的根指针。
6.根据权利要求1所述的设备内存管理单元的虚拟化方法,其特征在于,分散设备内各个引擎地址空间的方式采用如下方式:
通过打开或关闭设备内各个引擎IO页表项的一个或多个位来扩展或限制各个引擎的地址空间。
7.根据权利要求4所述的设备内存管理单元的虚拟化方法,其特征在于,还包括:
采用页表选择域内刷新策略对设备的IOTLB刷新;
所述页表选择域内刷新策略具体为:
给设备分配一个特殊的Domain Id,只有在Domain Id这个域中的所有客户机覆盖到的内存空间的IOTLB项会被刷新。
CN201710255246.7A 2017-04-18 2017-04-18 设备内存管理单元的虚拟化方法 Pending CN107193759A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710255246.7A CN107193759A (zh) 2017-04-18 2017-04-18 设备内存管理单元的虚拟化方法
PCT/CN2017/101807 WO2018192160A1 (zh) 2017-04-18 2017-09-15 设备内存管理单元的虚拟化方法
US16/606,689 US20200125500A1 (en) 2017-04-18 2017-09-15 Virtualization method for device memory management unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710255246.7A CN107193759A (zh) 2017-04-18 2017-04-18 设备内存管理单元的虚拟化方法

Publications (1)

Publication Number Publication Date
CN107193759A true CN107193759A (zh) 2017-09-22

Family

ID=59871716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710255246.7A Pending CN107193759A (zh) 2017-04-18 2017-04-18 设备内存管理单元的虚拟化方法

Country Status (3)

Country Link
US (1) US20200125500A1 (zh)
CN (1) CN107193759A (zh)
WO (1) WO2018192160A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN111309649A (zh) * 2020-02-11 2020-06-19 支付宝(杭州)信息技术有限公司 一种数据传输和任务处理方法、装置及设备
CN112363824A (zh) * 2020-10-12 2021-02-12 北京大学 一种申威架构下的内存虚拟化方法与系统
CN112817756A (zh) * 2021-01-25 2021-05-18 上海壁仞智能科技有限公司 计算机可读取存储介质、内存管理单元的虚拟化方法和装置
CN114201269A (zh) * 2022-02-18 2022-03-18 阿里云计算有限公司 内存换页方法、系统及存储介质
CN114996176A (zh) * 2022-07-29 2022-09-02 飞腾信息技术有限公司 访存方法、计算设备以及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198202B2 (en) * 2017-02-24 2019-02-05 Red Hat, Inc. Safe userspace device access for network function virtualization using an IOMMU to map supervisor memory to a reserved range of application virtual addresses
US11630782B2 (en) 2021-09-14 2023-04-18 Red Hat, Inc. Hardware offloading for an emulated IOMMU device
CN116563089B (zh) * 2023-07-11 2023-10-13 南京砺算科技有限公司 一种图形处理器的内存管理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN104685479A (zh) * 2012-08-29 2015-06-03 超威半导体公司 客户虚拟机内的虚拟输入/输出存储器管理单元
CN104750623A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种内存虚拟化的方法及装置
GB201521250D0 (en) * 2015-12-02 2016-01-13 Imagination Tech Ltd GPA virtualisation
US20160179696A1 (en) * 2014-12-23 2016-06-23 Krystof C. Zmudzinski Method and apparatus to allow secure guest access to extended page tables

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
US8458434B2 (en) * 2010-03-12 2013-06-04 Qualcomm Innovation Center, Inc. Unified virtual contiguous memory manager
CN103577250A (zh) * 2013-11-15 2014-02-12 浪潮(北京)电子信息产业有限公司 一种应用于虚拟机的设备直通方法
CN105095108A (zh) * 2014-05-06 2015-11-25 展讯通信(上海)有限公司 输入输出存储器管理单元及控制方法、装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567275A (zh) * 2010-12-08 2012-07-11 中国科学院声学研究所 一种多核处理器上多个操作系统间内存访问的方法及系统
CN104685479A (zh) * 2012-08-29 2015-06-03 超威半导体公司 客户虚拟机内的虚拟输入/输出存储器管理单元
CN104750623A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种内存虚拟化的方法及装置
US20160179696A1 (en) * 2014-12-23 2016-06-23 Krystof C. Zmudzinski Method and apparatus to allow secure guest access to extended page tables
GB201521250D0 (en) * 2015-12-02 2016-01-13 Imagination Tech Ltd GPA virtualisation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHISNALLDAVID著: "《Xen虚拟化技术完全导读》", 31 January 2014 *
KUN TIAN,等: "A Full GPU Virtualization Solution with", 《2014 USENIX ANNUAL TECHNICAL CONFERENCE》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442389A (zh) * 2019-08-07 2019-11-12 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN110442389B (zh) * 2019-08-07 2024-01-09 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法
CN111309649A (zh) * 2020-02-11 2020-06-19 支付宝(杭州)信息技术有限公司 一种数据传输和任务处理方法、装置及设备
CN112363824A (zh) * 2020-10-12 2021-02-12 北京大学 一种申威架构下的内存虚拟化方法与系统
CN112363824B (zh) * 2020-10-12 2022-07-22 北京大学 一种申威架构下的内存虚拟化方法与系统
CN112817756A (zh) * 2021-01-25 2021-05-18 上海壁仞智能科技有限公司 计算机可读取存储介质、内存管理单元的虚拟化方法和装置
CN112817756B (zh) * 2021-01-25 2022-05-27 上海壁仞智能科技有限公司 计算机可读取存储介质、内存管理单元的虚拟化方法和装置
CN114201269A (zh) * 2022-02-18 2022-03-18 阿里云计算有限公司 内存换页方法、系统及存储介质
CN114996176A (zh) * 2022-07-29 2022-09-02 飞腾信息技术有限公司 访存方法、计算设备以及存储介质

Also Published As

Publication number Publication date
US20200125500A1 (en) 2020-04-23
WO2018192160A1 (zh) 2018-10-25

Similar Documents

Publication Publication Date Title
CN107193759A (zh) 设备内存管理单元的虚拟化方法
US11822945B2 (en) Security of dynamic I/O virtualization system having a bidirectional extended hybrid address space (EHAS) for allowing host kernel to access guest memory
US11768781B2 (en) Apparatus and method for memory management in a graphics processing environment
Tian et al. A Full {GPU} Virtualization Solution with Mediated {Pass-Through}
US8078827B2 (en) Method and apparatus for caching of page translations for virtual machines
DE102007063960B3 (de) Synchronisieren eines Übersetzungspufers (TLB) mit einer erweiterten Seitenwechseltabelle
US9104594B2 (en) Operational efficiency of virtual TLBs
CN100527098C (zh) 一种虚拟机管理器的动态内存映射方法
CN108694072A (zh) 用于高效图形虚拟化的设备及方法
US10983821B2 (en) Apparatus and method for a hybrid layer of address mapping for a virtualized input/output (I/O) implementation
US20080134174A1 (en) Reduction of operational costs of virtual TLBs
US10891237B2 (en) Apparatus and method for mediate pass through and shared memory page merge
US20040064668A1 (en) Memory addressing for a virtual machine implementation on a computer processor supporting virtual hash-page-table searching
WO2009001153A1 (en) Memory protection unit in a virtual processing environment
US10055136B2 (en) Maintaining guest input/output tables in swappable memory
US10769076B2 (en) Distributed address translation in a multi-node interconnect fabric
Xue et al. {gScale}: Scaling up {GPU} Virtualization with Dynamic Sharing of Graphics Memory Space
WO2013148441A1 (en) Memory heaps in a memory model for a unified computing system
Hirofuchi et al. The preliminary evaluation of a hypervisor-based virtualization mechanism for intel optane dc persistent memory module
US20140208034A1 (en) System And Method for Efficient Paravirtualized OS Process Switching
US20220398017A1 (en) Independently controlled dma and cpu access to a shared memory region
Xu et al. Demon: An efficient solution for on-device MMU virtualization in mediated pass-through
Sriramakrishnan et al. IO Virtualization for Real Time Automotive Systems
鈴木勇介 et al. GPU の完全仮想化
Kehne Transparent Memory Extension for Shared GPUs

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170922

RJ01 Rejection of invention patent application after publication