System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于virtio的虚拟化IO设备内存管理系统技术方案_技高网

一种基于virtio的虚拟化IO设备内存管理系统技术方案

技术编号:40243487 阅读:13 留言:0更新日期:2024-02-02 22:40
本发明专利技术提供一种基于virtio的虚拟化IO设备内存管理系统,包括virtio接口、控制单元和处理单元,所述virtio接口是基于virtio协议框架,实现virtio标准化接口;所述控制单元用于和virtio接口交互,获取进行地址转换所需的表项信息,所述处理单元用于将控制单元传入的表项信息进行分析、处理,并执行地址转换流程。所述处理单元包括调用逻辑单元和硬件加速引擎单元,所述调用逻辑单元用于将GuestOS中的页表同步到硬件加速引擎单元,所述硬件加速引擎单元为物理IOMMU的stage2阶段的地址翻译流程的硬件执行主体,实现处理单元执行地址转换流程时调用硬件加速引擎单元进行地址转换加速。

【技术实现步骤摘要】

本申请涉及虚拟化,尤其是一种基于virtio的虚拟化io设备内存管理系统。


技术介绍

1、随着云计算、虚拟化等技术的发展,要求虚拟化系统与物理io设备之间的交互要满足极速和低时延的需求,并且要尽可能的降低host主机(host主机即宿主机)的系统资源的开销。

2、在虚拟化系统中,将pcie硬件设备直通到虚拟机上的操作系统(guestos)中是一种问题解决思路,此技术基础基于iommu和sr-iov,所述iommu的主要功能为设备dma时刻能够访问机器的物理内存区,同时保证安全性,dma是指直接内存访问,所述sr-iov即singleroot i/o virtualization-单根i/o虚拟化,可允许windows操作系统和微软的hyper-v或vmware公司的esxi等管理程序(hypervisor)对服务器的磁盘i/o设备像对网卡设备一样进行封装、管理甚至共享技术。所述微软的hyper-v是一款虚拟化产品,所述vmware是一家计算机虚拟化软件研发与销售企业,所述esxi是一种虚拟化管理程序体系结构。

3、同时一些虚拟化场景下,会将直通到虚拟机中的设备透传到guestos的用户态,在guestos的用户态中运行用户态驱动,例如dpdk技术,dpdk是intel公司开发的一款高性能的网络驱动组件,旨在为数据面应用程序提供一个简单方便的,完整的,快速的数据包处理解决方案,主要技术有用户态、轮询取代中断、零拷贝、网卡rss、访存directio等,此时就需要viommu的参与,所述viommu是指虚拟iommu,所述iommu为计算机术语,表示input/outputmemory management unit-输入输出内存管理单元。

4、virtio是一种开源的io接口协议规范,其定义的virtio设备为软件实现的虚拟io设备,因此基于virtio协议规范的virtio设备硬件加速的探索,能够解决计算机系统对极速和低时延io设备的需求问题,同时也可以有效降低host主机的系统资源的开销。virtio-iommu是一种虚拟设备,能够管理一个或多个设备节点的直接内存访问(dma),它既可以管理物理pcie设备直通到虚拟机上的操作系统(guestos)的用户态,也可以管理全虚拟化设备和半虚拟化设备的dma访问。

5、在专利公开号cn 112612574 a,专利技术名称为“输入输出设备的内存访问管理单元、系统及地址转换方法”中,提供了一种输入输出设备的内存访问管理单元、系统及地址转换方法,用以实现对虚拟iommu的实现,如图1所示,其所述系统包括:运行于虚机的操作系统中的一种输入输出设备的内存访问管理单元;所述输入输出设备的内存访问管理单元包括:虚拟功能执行单元,被配置为执行输入输出设备的内存访问请求对应的虚拟地址向物理地址的转换,其中,所述输入输出设备为实现所述虚机上运行的应用程序的功能所需的设备,所述访问请求携带所述虚拟地址;虚拟功能操控单元,被配置为控制所述虚拟功能执行单元完成地址转换。其所述方法主要是采用软件模拟物理iommu的内存管理方法,达到将虚拟设备或直通的物理设备透传到guestos的用户态。该现有技术实施例提升了运行于各虚机的虚拟操作系统上的应用程序的安全性。

6、但该现有技术仍然存在很多不足之处,具体情况如下所述:

7、(1)对cpu架构有依赖性:具体表现为,该设计未考虑viommu的跨平台性,因不同cpu架构下,地址转换方法是有差异的,例如x86架构下和arm的aarch64架构下不同,不能适用于不同cpu架构下的虚拟机类型。

8、(2)地址转换阶段采用纯软件模拟,消耗host主机计算资源,具体表现为,地址转换阶段采用纯软件模拟,对host主机cpu计算、内存资源消耗比较多,尤其是页表查找流程对cpu计算资源消耗严重。


技术实现思路

1、本专利技术提供了一种基于virtio的虚拟化io设备内存管理系统,用以解决虚拟机对于io设备的地址转换的两个问题:1)viommu的跨平台不可用;2)io设备进行地址转换阶段采用纯软件模拟,消耗host主机计算资源。其技术方案如下所述:

2、一种基于virtio的虚拟化io设备内存管理系统,包括virtio接口、控制单元和处理单元,所述virtio接口是基于virtio协议框架实现的virtio标准化接口,所述控制单元用于和virtio接口交互,获取进行地址转换所需的表项信息,所述处理单元用于将控制单元传入的表项信息进行分析处理,并执行地址转换流程。

3、所述处理单元包括调用逻辑单元和硬件加速引擎单元,所述调用逻辑单元用于将guestos中的页表同步到硬件加速引擎单元,所述硬件加速引擎单元采用host主机iommu的stage2阶段地址翻译流程的硬件执行主体,实现所述处理单元执行地址转换流程时调用硬件加速引擎单元进行地址转换加速。

4、所述页表是mmu或iommu记录地址翻译信息的表。

5、所述基于virtio的虚拟化io设备内存管理系统的工作流程,包括以下步骤:

6、s11:虚拟机创建,guestos中的虚拟化io设备内存管理系统进行初始化;

7、s12:控制单元将初始化的页表相关表项信息获取,并将页表相关表项信息发给处理单元;

8、s13:处理单元中的调用逻辑单元将页表相关表项信息通过vfio接口和硬件加速引擎驱动发送给硬件加速引擎,所述vfio接口是指虚拟机io接口;

9、s14:硬件加速引擎获取需要地址翻译的页表相关表项信息,准备翻译任务。

10、所述处理单元通过硬件加速引擎单元实现硬件加速的地址转换,包括以下步骤:

11、s21:虚拟化io设备内存管理系统的控制单元将guestos所需的页表的表项信息分享给处理单元的调用逻辑单元;

12、s22:处理单元在进行地址翻译时,调用硬件加速引擎单元对页表进行分析。

13、本申请与现有技术相比,通过提供标准化的virtio接口,基于virtio协议规范可以使得系统更好的适应虚拟化技术生态,硬件加速引擎单元可以加快设备的转换速度,减少物理计算机系统的cpu计算资源的消耗。

本文档来自技高网...

【技术保护点】

1.一种基于virtio的虚拟化IO设备内存管理系统,其特征在于:包括virtio接口、控制单元和处理单元,所述virtio接口是基于virtio协议框架实现的virtio标准化接口,所述控制单元用于和virtio接口交互,获取进行地址转换所需的表项信息,所述处理单元用于将控制单元传入的表项信息进行分析处理,并执行地址转换流程。

2.根据权利要求1所述的基于virtio的虚拟化IO设备内存管理系统,其特征在于:所述处理单元包括调用逻辑单元和硬件加速引擎单元,所述调用逻辑单元用于将GuestOS中的页表同步到硬件加速引擎单元,所述硬件加速引擎单元采用Host主机IOMMU的stage2阶段地址翻译流程的硬件执行主体,实现所述处理单元执行地址转换流程时调用硬件加速引擎单元进行地址转换加速。

3.根据权利要求2所述的基于virtio的虚拟化IO设备内存管理系统,其特征在于:所述页表是MMU或IOMMU记录地址翻译信息的表。

4.根据权利要求1所述的基于virtio的虚拟化IO设备内存管理系统,其特征在于:所述基于virtio的虚拟化IO设备内存管理系统的工作流程,包括以下步骤:

5.根据权利要求1所述的基于virtio的虚拟化IO设备内存管理系统,其特征在于:所述处理单元通过硬件加速引擎单元实现硬件加速的地址转换,包括以下步骤:

...

【技术特征摘要】

1.一种基于virtio的虚拟化io设备内存管理系统,其特征在于:包括virtio接口、控制单元和处理单元,所述virtio接口是基于virtio协议框架实现的virtio标准化接口,所述控制单元用于和virtio接口交互,获取进行地址转换所需的表项信息,所述处理单元用于将控制单元传入的表项信息进行分析处理,并执行地址转换流程。

2.根据权利要求1所述的基于virtio的虚拟化io设备内存管理系统,其特征在于:所述处理单元包括调用逻辑单元和硬件加速引擎单元,所述调用逻辑单元用于将guestos中的页表同步到硬件加速引擎单元,所述硬件加速引擎单元采用host主机iommu的st...

【专利技术属性】
技术研发人员:侯英乐
申请(专利权)人:北京数渡信息科技有限公司
类型:发明
国别省市:

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

1