一种基于Qemu虚拟环境的PCIeSwitch模拟器的实现方法和装置制造方法及图纸

技术编号:38357701 阅读:10 留言:0更新日期:2023-08-05 17:28
本发明专利技术提供一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法和装置,Qemu虚拟环境模拟一具有PCIe总线的计算机系统,其特征在于,所述方法提供一PCIe Switch模拟器,PCIe Switch模拟器提供:一上行接口,用以连接PCIe的根复合体;复数个下行接口,用以对应连接复数个PCIe设备;一第一拦截单元,用于拦截并代理系统自上行接口对复数个PCIe设备的访问;一第二拦截单元,用以拦截并代理复数个PCIe设备向系统转发的配置请求或中断信息。本发明专利技术有利于扩展虚拟PCIe设备,尤其是在其他独立程序中扩展设备,还有助于降低Qemu硬件资源需求,且便于业务平台进行设备管理、热插拔、迁移和性能监控等。能监控等。能监控等。

【技术实现步骤摘要】
一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法和装置


[0001]本专利技术属于云计算和设备虚拟化等
,尤其涉及一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法和装置。

技术介绍

[0002]设备虚拟化技术一直是云计算领域的最重要的基础技术之一。云平台通常基于虚拟化技术来实现资源的共享、管理和调度。常见的虚拟设备包括虚拟磁盘、虚拟网络适配器等。Qemu(Quick Emulator)是一款基于虚拟化技术的开源模拟器和虚拟机管理器,广泛应用于laaS(Infrastructure

as

a

Service,基础设施即服务)层级的云服务中。在虚拟化领域中,Qemu与KVM(Kernel

based Virtual Machine,基于内核的虚拟机)相结合,形成了Linux平台上的事实标准。
[0003]不同的计算机组件和设备差别非常大,从工作原理到使用方式都不相同,因此模拟物理设备也是非常复杂的工作。Qemu利用设备抽象模型QOM(Qemu Object Model,Qemu对象模型)来模拟各种设备。Qemu负责虚拟设备的创建、管理和销毁。运行期间每个Qemu进程代表一个客户操作系统(Guest OS),对虚拟设备的模拟操作也运行在同一个Qemu进程中,Qemu进程之外不能获取虚拟设备的内部状态。此外模拟设备还需要消耗额外的内存和CPU资源,因此对宿主机具有一定性能要求。
[0004]PCI总线标准最初由Intel公司推出,后来经过多次更新和改进,目前已经发展出多个标准。PCI总线标准被广泛应用于PC、服务器、工控设备等领域,成为计算机领域最重要的接口之一。Qemu模拟了多种计算机系统总线和设备,其中包括跟复合体(RC,Root Complex的简写)、PCI总线、PCIe总线、PCI桥(PCI Bridge)、PCIe Switch、网络适配器和磁盘设备等。Qemu实现的PCIe相关设备结构如图1所示。
[0005]但Qemu模拟设备时存在以下问题:设备扩展困难,扩展一种Qemu模拟设备需要熟悉Qemu项目代码和QOM设备模型;无法获取虚拟设备的内部状态;虚拟设备的配置寄存器、BAR(Base Address Register,基址寄存器)空间等数据都在Qemu进程中,外部系统无法对设备进行精细管理和控制。
[0006]因此,本领域迫切需要可以摆脱虚拟设备对Qemu的依赖,还能够实时获得下游的PCIe设备内部状态的技术方案。

技术实现思路

[0007]针对现有技术中Qemu模拟设备扩展困难且无法获取虚拟设备的内部状态的技术问题,现提供一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法和装置。
[0008]在本专利技术的较佳实施方式中,本申请实施例提供了基于Qemu虚拟环境的PCIe Switch模拟器的实现方法,所述Qemu虚拟环境模拟一具有PCIe总线的计算机系统,其特征
在于,提供一PCIe Switch模拟器,所述PCIe Switch模拟器提供:一上行接口,用以连接PCIe的根复合体;复数个下行接口,用以对应连接复数个PCIe设备;一第一拦截单元,用于拦截并代理系统自所述上行接口对复数个所述PCIe设备的访问;一第二拦截单元,用以拦截并代理复数个所述PCIe设备向所述系统转发的配置请求或中断信息。
[0009]进一步,所述第一拦截单元拦截所述系统自所述上行接口对复数个所述PCIe设备的访问的方法包括以下步骤:步骤S1、查找对应需访问的所述PCIe设备对应的虚拟对象;步骤S2、判断所述虚拟对象对应的所述PCIe设备的上游设备是否为所述PCIe Switch模拟器;步骤S3、如否,则通过所述Qemu虚拟环境提供的访问机制进行访问,并退出;步骤S4、如是,则拦截所述系统对对应的所述PCIe设备的访问。
[0010]进一步,所述第二拦截单元拦截复数个所述PCIe设备向所述系统转发的所述配置请求或所述中断信息的方法包括以下步骤:步骤T1、查找产生所述配置请求或所述中断信息的所述PCIe设备对应的虚拟对象;步骤T2、判断所述虚拟对象对应的所述PCIe设备的上游设备是否为所述PCIe Switch模拟器;步骤T3、如否,则通过所述Qemu虚拟环境提供的转发机制进行所述配置请求或所述中断信息的转发,并退出;步骤T4、如是,则拦截所述PCIe设备向所述系统发送的所述配置请求或所述中断信息。
[0011]进一步,所述方法还包括提供一PCIe配置空间读写单元,用以代理系统对复数个所述PCIe设备对应的所述PCIe配置空间进行读写。
[0012]进一步,所述PCIe配置空间读写单元代理所述系统对复数个所述PCIe设备对应的所述PCIe配置空间进行读写的方法包括;步骤A1、所述第一拦截单元拦截所述系统对对应的所述PCIe设备的访问;步骤A2、通过对应的所述PCIe设备的上游设备的所述PCIe配置空间读写单元对所述PCIe配置空间进行读写。
[0013]进一步,所述复数个PCIe设备包括PCIe桥(PCIe bridge),级联的PCIe Switch以及PCIe终端设备。
[0014]进一步,所述方法还包括提供一基址寄存器空间配置单元,用以根据所述配置请求,配置对应的所述PCIe设备的基址寄存器空间。
[0015]进一步,所述基址寄存器空间配置单元配置对应的所述PCIe设备的基址寄存器空间的方法包括以下步骤:步骤B1、所述第二拦截单元拦截所述PCIe设备向所述系统发送的所述配置请求;步骤B2、所述基址寄存器空间配置单元根据对应的所述PCIe设备的请求向所述
Qemu虚拟环境注册对应的储存区域,并维护对应的所述PCIe设备的基址寄存器空间与所述储存区域的映射关系。
[0016]进一步,所述方法还包括提供一中断转发单元,用以向所述系统转发对应的所述PCIe设备产生的所述中断信息。
[0017]进一步,所述中断转发单元向所述系统转发对应的所述PCIe设备产生的所述中断信息的方法包括以下步骤:步骤C1、所述第二拦截单元拦截所述PCIe设备向所述系统发送的所述中断信息;步骤C2、所述中断转发单元将所述中断信息写入所述Qemu虚拟环境的客户操作系统的中断信息处理区域。
[0018]在本专利技术的较佳实施方式中,本申请实施例提供了一种基于Qemu虚拟环境的PCIe Switch模拟器装置,包括:一上行接口,用以连接PCIe的根复合体;复数个下行接口,用以对应连接复数个PCIe设备;一第一拦截单元,连接所述上行接口,用以拦截并代理系统自所述上行接口对复数个所述PCIe设备的访问;一第二拦截单元,连接复数个所述下行接口,用以拦截并代理复数个所述PCIe设备向所述系统转发的配置请求或中断信息。
[0019]进一步,所述装置还包括一PCIe配置空间读写单元,连接所述第一拦截单元,用以代理所述系统对复数个所述PCI本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法,所述Qemu虚拟环境模拟一具有PCIe总线的计算机系统,其特征在于,提供一PCIe Switch模拟器,所述PCIe Switch模拟器提供:一上行接口,用以连接PCIe的根复合体;复数个下行接口,用以对应连接复数个PCIe设备;一第一拦截单元,用于拦截并代理系统自所述上行接口对复数个所述PCIe设备的访问;一第二拦截单元,用以拦截并代理复数个所述PCIe设备向所述系统转发的配置请求或中断信息。2.如权利要求1所述的实现方法,其特征在于,所述第一拦截单元拦截所述系统自所述上行接口对复数个所述PCIe设备的访问的方法包括以下步骤:步骤S1、查找对应需访问的所述PCIe设备对应的虚拟对象;步骤S2、判断所述虚拟对象对应的所述PCIe设备的上游设备是否为所述PCIe Switch模拟器;步骤S3、如否,则通过所述Qemu虚拟环境提供的访问机制进行访问,并退出;步骤S4、如是,则拦截所述系统对对应的所述PCIe设备的访问;和/或所述第二拦截单元拦截复数个所述PCIe设备向所述系统转发的所述配置请求或所述中断信息的方法包括以下步骤:步骤T1、查找产生所述配置请求或所述中断信息的所述PCIe设备对应的虚拟对象;步骤T2、判断所述虚拟对象对应的所述PCIe设备的上游设备是否为所述PCIe Switch模拟器;步骤T3、如否,则通过所述Qemu虚拟环境提供的转发机制进行所述配置请求或所述中断信息的转发,并退出;步骤T4、如是,则拦截所述PCIe设备向所述系统发送的所述配置请求或所述中断信息。3.如权利要求1所述的实现方法,其特征在于,还提供一PCIe配置空间读写单元,用以代理系统对复数个所述PCIe设备对应的所述PCIe配置空间进行读写;所述PCIe配置空间读写单元代理所述系统对复数个所述PCIe设备对应的所述PCIe配置空间进行读写的方法包括:步骤A1、所述第一拦截单元拦截所述系统对对应的所述PCIe设备的访问;步骤A2、通过对应的所述PCIe设备的上游设备的所述PCIe配置空间读写单元对所述PCIe配置空间进行读写。4.如权利要求1所述的实现方法,其特征在于,...

【专利技术属性】
技术研发人员:王可恩
申请(专利权)人:北京大禹智芯科技有限公司
类型:发明
国别省市:

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

1