CN119512719A 内存资源的访问方法、地址翻译方法、装置、设备及介质 (杭州阿里云飞天信息技术有限公司)_第1页
CN119512719A 内存资源的访问方法、地址翻译方法、装置、设备及介质 (杭州阿里云飞天信息技术有限公司)_第2页
CN119512719A 内存资源的访问方法、地址翻译方法、装置、设备及介质 (杭州阿里云飞天信息技术有限公司)_第3页
CN119512719A 内存资源的访问方法、地址翻译方法、装置、设备及介质 (杭州阿里云飞天信息技术有限公司)_第4页
CN119512719A 内存资源的访问方法、地址翻译方法、装置、设备及介质 (杭州阿里云飞天信息技术有限公司)_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

部设备对虚拟机下挂载的内存资源的直接内存部设备通过访问目标物理地址执行对目标内存机管理组件预先针对内存资源的虚拟地址翻译中模拟的通信驱动与虚拟机管理组件进行数据能造成的内存管理单元的共享内存资源(IOTLB)2获取外部设备对虚拟机下挂载的内存资源的直接内存访问请求中携带有所需访问的目标内存资源对应在所述虚拟从数据处理单元查找与所述目标内存资源的目标虚拟地址对应的目处理单元通过所述虚拟机管理组件中模拟的通信驱动与所述虚拟机管理组件进行数据通在数据处理单元中未查找到与所述目标内存资源的目标虚拟地址对应的目标物理地在数据处理单元中未查找到与所述目标内存资源的目标虚拟地址对应的目标物理地调用虚拟机管理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址通过所述虚拟机管理组件中模拟的通信驱动与数据处理单元之间进行通信拟地址以及物理地址的地址翻译缓存发送至所通过所述数据处理单元存储所述地址翻译缓存,以供访问所述内址翻译缓存查找与内存资源的虚拟地址对应机管理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的调用所述数据处理单元获取所述内存资源的机管理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的调用所述虚拟机管理组件监测所述内存资源的底层虚机管理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的调用所述虚拟机管理组件监测所述内存资源的底层虚拟地址以及所述底层虚拟地址调用所述虚拟机管理组件从所述关联虚拟地址3使用所述虚拟机管理组件监测所述热点虚拟地址的调用频次访问请求获取模块,用于获取外部设备对虚拟机下挂载的内物理地址查找模块,用于从数据处理单元查找与所述目标内存地址翻译模块,用于调用虚拟机管理组件将部署于所述计算设备的虚地址翻译缓存发送模块,用于通过所述虚拟机管理组件中模拟的通信地址翻译缓存存储模块,用于通过所述数据处理单元存储所述地在执行所述计算机程序时实现权利要求1_9算机程序被处理器执行时实现权利要求1_94内存管理单元)可以将设备访问的虚拟地址转化成实际的物理地址,并将虚拟地址到物理[0003]为了提高查询IOMMU页表的效率,可以引入IOTLB(Input/OutputtranslationIOTLB为共享内存资源,可以被PCI总线上所有的PCI设备共享,当多个I/O设备同时访问[0008]从数据处理单元查找与所述目标内存资源的目标虚拟地数据处理单元通过所述虚拟机管理组件中模拟的通信驱动与所述虚拟机管理组件进行数[0010]调用虚拟机管理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟述虚拟地址以及物理地址的地址翻译缓存发送至所述数5述地址翻译缓存查找与内存资源的虚拟地址对应供访问所述内存资源时根据所述地址翻译缓存查找与内存资源的虚拟地址对应的物理地对应的目标物理地址,以使外部设备通过访问目标物理地址执行对目标内存资源的访问。址,数据处理单元通过虚拟机管理组件中模拟的通信驱动与虚拟机管理组件进行数据通无需使用内存管理单元(IOMMU)进行翻译和页表查询,可以避免超量的地址查询访问内存6[0024]上述说明仅是本申请技术方案的概述,为了能够更清楚[0033]为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说[0034]传统的处理IO设备直接内存访问请求(DMA)的方式,是通过IOMMU(Input/OutputMemoryManagementUnit,内存管理单元)将设备(device)访问的虚拟地址(IOVA)转化成别页表组成,通过查询IOMMU页表可以得到IOVA到PA的映射关系。而使用IOTLB(Input/(PeripheralComponentInterconnect,外设部件互连标准)总线上所有的PCI设备共享,[0035]在本申请之前的一种相关技术中,可以在I/O(Input/Output)设备中实现PCIe4.0标准中的ATS(AddressTranslationService,地址翻译服务),也即I/O(Input/7内存资源IOTLB,设备内部的MMU也对应有自己的内存资源TLB(TranslationLookaside么便可以将本来通过查询IOTLB中的页表获得物理地址的方式,转变为通过查询设备中的TLB(DeviceTLB)中的页表获得物理地址的方式。这种DeviceTLB的方式相当于将设备的外部设备对虚拟机下挂载的内存资源的直接内存访问时可能造成的IOTLB消耗和拥堵。本申请的方案可以在设备不支持ATS的情况下实现不使用IOMMU[0037]图1是示例性的用于实现本申请实施例中提供的一种地址翻译方案的示意图。在据处理单元(DPU),其中,数据处理单元可以包括但不限于图形处理器GPU(Graphics理器DPU(DeeplearningProcessingUnit)、通用图形处理器GPGPU(General_purposecomputingongraphicsprocessingunits)、AI加速器、现场可编程逻辑门阵列FPGA数据处理单元可以通过部署在虚拟机管理组件中模拟的通信驱动与虚拟机管理组件进行数据通信,这种模拟的通信驱动可以是使用PVAT(Para_VirtualizationAddress是通过PV前端和后端驱动程序在虚拟机管理组件和计算设备操作系统之间打开额外的通8供外部设备例如IO外设等访问内存资源时根据地址翻译缓存查找与内存资源的虚拟地址单元可以通过模拟的通信驱动(PVAT)通知虚拟机管理组件对该底层虚拟地址进行翻译以供外部设备访问内存资源时根据地址翻译缓存查找与内存资源的虚拟地址对应的物理拟地址直接引用或间接引用的关联虚拟地址(IObuffer),并调用虚拟机管理组件从这些元中保存有采用上述地址翻译的方法得到的虚拟机管理组件预先针对内存资源的虚拟地点虚拟地址的访问无需通过内存管理单元(IOMMU)对应的共享内存空间(IOTLB)中的页表aService,基础设施即服务)、PaaS(PlatformasaService,平台即服务)、SaaS提供SaaS软件即服务(SoftwareasaService)为例,云计算平台可以利用自身的计算资源提供内存资源访问或地址翻译模型的训练或内存资源访问或地址翻译模块的功能执行,9源访问或地址翻译请求调用上述模型和实现在线或离线内存资源访[0045]下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决前述[0046]本申请实施例提供了一种应用于虚拟机管理组件的内存资源的访问方法,如图2[0047]在步骤S201中,获取外部设备对虚拟机下挂载的内存资[0049]直接内存访问请求可以是DMA(DirectMemoryAccess)访问请求,这种请求可以[0050]在计算机的虚拟化技术中,DMA携带的是所需访问的目标内存资源对应在虚拟机单元通过虚拟机管理组件中模拟的通信驱动与虚拟机管理组件进行[0052]本申请实施例中涉及到的数据处理单元,可以包括但不限于图形处理器GPUVirtualizationAddressTranslation,半虚拟化)的技术模拟出来的通信驱动,在架构拟化)的技术模拟出的一个虚拟的PCI设备(总线设备),PCI设备(总线设备)可以通过总线线设备可以是通过PCIe总线连接到主机上的PCIe设备。PCIe总线上可存在若干PCIe设备,块(VirtioDriver),中间用于前后端通信的virtio层(Virtqueue)和virtio_ring层了两个环形缓冲区,分别用于保存前端驱动程序和后端处理程序执行的信息。严格来说,Virtqueue和vring可以看做是一层,vring实现了Virtqueue的具体通信机制和数据流程,体数据流转发。作为一种示例,虚拟设备驱动程序可以是虚拟块设备驱动程序,可以为翻译时操作系统调用内存管理单元IOMMU对地址进行翻译而占用共享内存空间IOTLB的内理单元从对应的共享内存空间中的页表查找到与目标内存资源的目标虚拟地址对应的目地址和虚拟地址的地址翻译缓存预先存储在数据处理单元中的方式是对虚拟地址进行提单元从对应的共享内存空间中的页表查找到与目标内存资源的目标虚拟地址对应的目标理单元将目标虚拟地址翻译为对应的目标物[0061]由于共享内存空间IOTLB的缓存空间有限,IOTLB缓存的只是IOMMU虚拟地址和物请求时,会在请求中携带包含总线(Bus)、设备(Device)、功能(Func)标识的设备源标识[0064]这种采用内存管理单元IOMMU对目标虚拟地址进行实时翻译的方式,可以是在数应的共享内存空间IOTLB中查找到与目标内存资源的目标虚拟地址对应的目标物理地址的[0065]本申请实施例还提供了一种应用于计算设备的地址翻译方法,如图3所示为本申地址翻译缓存查找与内存资源的虚拟地址对应与DPU进行管理消息的交互。在虚拟机管理组件hypervisor监测到虚拟机(VM)内部关键的虚拟地址和物理地址的地址翻译缓存IOVA_>PA)发送给数据处理单元(DPU)。DPU可以为虚拟机管理组件发送过来的地址翻译缓存分配相应的存储空间,并对地址翻译缓存进行存设备可以通过访问存储在数据处理单元中的地址翻译缓存IOVA_>PA中与目标虚拟地址对应的目标物理地址的方式,执行对目标内存资源的访问(即[0071]在传统的使用内存管理单元(IOMMU)处理IO设备直接内存访问请求(DMA)的方式拟地址属于底层虚拟地址(IOring),这类底层虚拟地址中包含有指向其他虚拟地址的指[0073]由于底层虚拟地址(IOring)多在对虚拟机进行初始化的过程中产生,可以被数拟机管理组件对底层虚拟地址(IOri在虚拟机内部驱动销毁设备时候,数据处理单元DPU也可以感知到此类底层虚拟地址(IOring)被销毁,因此数据处理单元可以直接销毁其内部存储的地址翻译缓存中与被销毁的可以先调用虚拟机管理组件监测内存资源的底层虚拟地址以及底层虚拟地址直接引用或间接引用的关联虚拟地址,再调用虚拟机管理组件从关联虚拟地址中确定出热点虚拟地一定的时间段内经常被访问,这类虚拟地址一般是底层虚拟地址(IOring)的直接或间接(DPU)可能无法感知到这类虚拟地址,但可以通过虚拟机管理组件进行监测的方式获取到对重要的虚拟地址(底层虚拟地址IOring)以及高利用率的虚拟地址)进行精准识别和地址翻译,并通过translatedDMA(即从DPU中读取翻译后的物一种应用于虚拟机管理组件的内存资源的访问装置。如图4所示为本申请一实施例的内存[0085]访问请求获取模块401,用于获取外部设备对虚拟机下挂载的内存资源的直接内[0086]物理地址查找模块402,用于从数据处理单元查找与所述目标内存资源的目标虚[0092]地址翻译模块501,用于调用虚拟机管理组件将部署于所述计算设备的虚拟机下[0093]地址翻译缓存发送模块502,用于通过所述虚拟机管理组件中模拟的通信驱动与以供访问所述内存资源时根据所述地址翻译缓存查找与内存资源的虚拟地址对应的物理理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的物理理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的物理理组件将部署于所述计算设备的虚拟机下挂载的内存资源的虚拟地址翻译成对应的物理虚拟地址以及所述底层虚拟地址直接引用或间接引通信接口603可以通过总线相互连接并完成相互间的通信。该总线可以是工业标准体系结Interconnect,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandard路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field易失性存储器可以包括只读存储器(Read_OnlyMemory,ROM)、可编程只读存储器问存储器(Dynamic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论