基于半虚拟化设备的数据处理方法、装置和系统制造方法及图纸

技术编号:33849498 阅读:22 留言:0更新日期:2022-06-18 10:35
本申请公开了一种基于半虚拟化设备的数据处理方法、装置和系统。其中,该方法包括:获取半虚拟化设备的完成队列中存储的多个初始数据,其中,多个初始数据用于表征半虚拟化设备已经处理完成,但未提交至主机的原始数据的描述信息;确定多个初始数据中满足预设条件的多个第一数据;对多个第一数据进行聚合操作,生成第一聚合结果;发送携带有第一聚合结果的直接存储器访问请求至主机的内存。本申请解决了相关技术中半虚拟化设备与主机之前交互频繁,导致DMA性能下降的技术问题。导致DMA性能下降的技术问题。导致DMA性能下降的技术问题。

【技术实现步骤摘要】
基于半虚拟化设备的数据处理方法、装置和系统


[0001]本申请涉及虚拟化
,具体而言,涉及一种基于半虚拟化设备的数据处理方法、装置和系统。

技术介绍

[0002]目前,软硬结合的virtio设备虚拟化实现中,主机和设备之间通过PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)连接。根据virtio设备规范,当设备收到数据后,需要经过多个步骤提交给CPU(Central Processing Unit,中央处理器),每个步骤均是通过DMA(Direct Memory Access,直接存储器访问)的方式写主机内存。但是,当每个步骤过于频繁时,CPU PCIe子系统出现瓶颈,设备侧会看到PCIe接口反压,DMA性能下降。
[0003]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本申请实施例提供了一种基于半虚拟化设备的数据处理方法、装置和系统,以至少解决相关技术中半虚拟化设备与主机之前交互频繁,导致DMA性能下降的技术问题。
[0005]根据本申请实施例的一个方面,提供了一种基于半虚拟化设备的数据处理方法,包括:获取半虚拟化设备的完成队列中存储的多个初始数据,其中,多个初始数据用于表征半虚拟化设备已经处理完成,但未提交至主机的原始数据的描述信息;确定多个初始数据中满足预设条件的多个第一数据;对多个第一数据进行聚合操作,生成第一聚合结果;发送携带有第一聚合结果的直接存储器访问请求至主机的内存。
[0006]根据本申请实施例的另一方面,还提供了一种基于半虚拟化设备的数据处理装置,包括:数据获取模块,用于获取半虚拟化设备的完成队列中存储的多个初始数据,其中,多个初始数据用于表征半虚拟化设备已经处理完成,但未提交至主机的原始数据的描述信息;数据确定模块,用于确定多个初始数据中满足预设条件的多个第一数据;聚合模块,用于对多个第一数据进行聚合操作,生成第一聚合结果;发送模块,用于发送携带有第一聚合结果的直接存储器访问请求至主机的内存。
[0007]根据本申请实施例的另一方面,还提供了一种基于半虚拟化设备的数据处理系统,包括:主机,包括:内存和完成队列;半虚拟化设备,与主机连接,用于获取完成队列中存储的多个初始数据,其中,多个初始数据用于表征半虚拟化设备已经处理完成,但未提交至主机的原始数据的描述信息;确定多个初始数据中满足预设条件的多个第一数据;对多个第一数据进行聚合操作,生成第一聚合结果;发送携带有第一聚合结果的直接存储器访问请求至主机的内存。
[0008]根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的基于半虚拟化设备的数据处理方法。
[0009]根据本申请实施例的另一方面,还提供了一种计算机终端,包括:存储器和处理器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述的基于半虚拟化设备的数据处理方法。
[0010]在本申请实施例中,当需要更新used ring时,可以获取used中存储的多个初始数据,然后从多个初始数据中筛选出符合预设条件的多个第一数据,对多个第一数据进行聚合操作生成第一聚合结果,并发送携带有该第一聚合结果的DMA请求至内存,达到一次性更新used ring的多个队列项的目的。容易注意到的是,通过聚合操作的方式发起一次DMA请求,无需针对每个队列项发起一次DMA请求,从而达到了减少更新used ring所产生的操作次数,避免设备侧看到PCIe接口反压,提高DMA性能的技术效果,进而解决了相关技术中半虚拟化设备与主机之前交互频繁,导致DMA性能下降的技术问题。
附图说明
[0011]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0012]图1是根据现有技术的一种更新used ring的示意图;
[0013]图2是根据本申请实施例的一种用于实现基于半虚拟化设备的数据处理方法的计算机终端(或移动设备)的硬件结构框图;
[0014]图3是根据本申请实施例的一种基于半虚拟化设备的数据处理方法的流程图;
[0015]图4是根据本申请实施例的一种可选的软硬结合的virtio设备虚拟化实现架构的示意图;
[0016]图5是根据本申请实施例的一种可选的更新used ring的示意图;
[0017]图6是根据本申请实施例的一种可选的按queue调度的示意图;
[0018]图7是根据本申请实施例的一种基于半虚拟化设备的数据处理装置的示意图;
[0019]图8是根据本申请实施例的一种基于半虚拟化设备的数据处理系统的示意图;
[0020]图9是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
[0021]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0022]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023]首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
[0024]virtio:virtio是一种I/O半虚拟化解决方案,是一套通用I/O设备虚拟化的程序,是对半虚拟化Hypervisor中的一组通用I/O设备的抽象。使用virtio协议的设备称为virtio设备。
[0025]数据buffer:存储有设备收到的数据。
[0026]used ring:是virtio设备的完成队列,当设备完成了一个驱动下发的请求后,硬件通过提交used ring来通知驱动命令已经完成。used ring指向数据buffer的结构体,仅包含对数据的描述信息(地址、长度等等)。
[0027]used ring index:是used ring的指针。
[0028]目前,当前设备收到数据后,提交给CPU需要经过如下三个步骤:写数据buffer;写used ring;写used ring in本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于半虚拟化设备的数据处理方法,其特征在于,包括:获取所述半虚拟化设备的完成队列中存储的多个初始数据,其中,所述多个初始数据用于表征所述半虚拟化设备已经处理完成,但未提交至主机的原始数据的描述信息;确定所述多个初始数据中满足预设条件的多个第一数据;对所述多个第一数据进行聚合操作,生成第一聚合结果;发送携带有所述第一聚合结果的直接存储器访问请求至所述主机的内存。2.根据权利要求1所述的方法,其特征在于,确定所述多个初始数据中满足预设条件的多个第一数据包括如下至少之一:获取目标缓存中存储的数据,得到所述多个第一数据,其中,所述多个初始数据依次缓存至所述目标缓存;在预设定时时间到达的情况下,确定所述多个初始数据为所述多个第一数据;在所述多个初始数据的数量大于或等于预设数量的情况下,确定所述多个初始数据为所述多个第一数据。3.根据权利要求1所述的方法,其特征在于,对所述多个第一数据进行聚合操作,生成第一聚合结果包括:确定每个第一数据对应的第一传输队列,其中,所述第一传输队列用于传输所述原始数据;获取同一个第一传输队列对应的第一数据,得到所述第一聚合结果。4.根据权利要求3所述的方法,其特征在于,获取同一个第一传输队列对应的第一数据,得到所述第一聚合结果包括:确定所述多个第一数据中第一个第一数据对应的第一传输队列,得到目标传输队列;获取所述多个第一数据中所述目标传输队列对应的第一数据,得到所述第一聚合结果。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述完成队列对应的初始队列标识,确定所述多个初始数据中的多个第二数据,其中,所述初始队列标识用于表征已经提交完成的数据的标识信息,所述多个第二数据用于表征当前提交至所述主机的数据;对所述多个第二数据进行聚合操作,得到第二聚合结果;基于所述第二聚合结果对所述初始队列标识进行更新。6.根据权利要求5所述的方法,其特征在于,对所述多个第二数据进行聚合操作,得到第二聚合...

【专利技术属性】
技术研发人员:梁晨
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1