一种数据处理方法和电子设备与流程

文档序号:12886993阅读:166来源:国知局
一种数据处理方法和电子设备与流程

本发明涉及电子设备领域,特别涉及一种数据处理方法和电子设备。



背景技术:

虚拟机的io性能是虚拟机的关键技术指标,目前采用半虚拟化机制来提高虚拟机的io吞吐量。现有技术中,半虚拟化的io内存共享环是由虚拟机分配的,而对应的物理机上的物理内存是散碎的。每次在执行虚拟机的io操作时,都需要完成负责从gpa到hva的转换,处理过程繁琐且效率低。



技术实现要素:

本发明的实施方式提供了一种能够有效的提高虚拟机的io性能的数据处理方法和电子设备。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明的一个方面提供了一种数据处理方法,其包括:

在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数;

基于该地址参数从为所述虚拟机分配的连续地的第二地址空间中查询与该地址参数对应的物理内存的第二地址;以及

将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。

进一步地,作为非限定性的实施方式,根据本发明的数据处理方法还可包括:在虚拟机启动或者虚拟机在监测到需要写入或读出内存数据时,从cpu中读取其加载的关于虚拟机的第一地址空间的信息,所述第一地址空间的信息包括第一地址空间的首地址和第一地址空间的地址长度。

进一步地,作为非限定性的实施方式,根据本发明的数据处理方法还可包括:

在虚拟机未被运行的第一模式下,为虚拟机分配所述第二地址空间作为共享内存;

从虚拟机的虚拟内存中选择第一地址空间;以及

将所述第一地址空间的信息存储至虚拟机管理模块中。

进一步地,作为非限定性的实施方式,根据本发明的数据处理方法还可包括:在虚拟机运行的第二模式下,cpu从虚拟机管理模块中加载关于所述虚拟机的第一地址空间的信息。

根据本发明,所述在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数包括:

在在运行虚拟机并监测到需要写入或读出内存数据时,生成所述内存数据对应于第一地址空间的首地址的偏移地址信息;以及

基于所述偏移地址信息生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数。

本发明的另一个方面提供了一种电子设备,其包括:

处理器,其配置为在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数;

基于该地址参数从为所述虚拟机分配的连续地的第二地址空间中查询与该地址参数对应的物理内存的第二地址;以及

将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。

进一步地,作为非限定性的实施方式,根据本发明的电子设备中,所述处理器还进一步配置为在虚拟机启动或者虚拟机在监测到需要写入或读出内存数据时,从cpu中读取其加载的关于虚拟机的第一地址空间的信息,所述第一地址空间的信息包括第一地址空间的首地址和第一地址空间的地址长度。

进一步地,作为非限定性的实施方式,根据本发明的电子设备中,处理器还配置为在虚拟机未被运行的第一模式下,为虚拟机分配所述第二地址空间作为共享内存;

从虚拟机的虚拟内存中选择第一地址空间;以及

将所述第一地址空间的信息存储至虚拟机管理模块中。

进一步地,作为非限定性的实施方式,根据本发明的电子设备中,处理器还配置为在虚拟机运行的第二模式下,cpu从虚拟机管理模块中加载关于所述虚拟机的第一地址空间的信息。

进一步地,作为非限定性的实施方式,根据本发明的电子设备中,处理器还配置为在在运行虚拟机并监测到需要写入或读出内存数据时,生成所述内存数据对应于第一地址空间的首地址的偏移地址信息;以及

基于所述偏移地址信息生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数。

基于以上所述的根据本发明的数据处理方法和电子设备,本发明的实施方式可具备如下显著的有益效果:

本发明的实施方式通过在内存空间中为虚拟机分配连续的内存地址,而方便的建立虚拟机的虚拟地址与物理地址之间的映射关系,从而增加虚拟机io处理速率。

附图说明

图1为现有访问流程机制流程图图;

图2为根据本发明的实施方式的访问流程机制效果图;

图3为根据本发明的实施方式的访问流程机制原理示意图;

图4为本发明实施例的一种数据处理方法的流程图;

图5为本发明实施例中共享内存访问原理流程图;

图6为本发明实施例中的电子设备的原理结构示意图。

具体实施方式

下面,结合附图对本发明的具体实施方式进行详细的描述,但不作为本发明的限定。

应理解的是,可以对此处公开的实施方式做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施方式的范例。本领域的技术人员将想到在本公开的范围和精神内的其他修改。

包含在说明书中并构成说明书的一部分的附图示出了本公开的实施方式,并且与上面给出的对本公开的大致描述以及下面给出的对实施方式的详细描述一起用于解释本公开的原理。

通过下面参照附图对给定为非限制性实例的实施方式的优选形式的描述,本发明的这些和其它特性将会变得显而易见。

还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。

当结合附图时,鉴于以下详细说明,本公开的上述和其他方面、特征和优势将变得更为显而易见。

此后参照附图描述本公开的具体实施方式;然而,应当理解,所公开的实施方式仅仅是本公开的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本公开模糊不清。因此,本文所公开的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本公开。

本说明书可使用词组“在一种实施方式中”、“在另一个实施方式中”、“在又一实施方式中”或“在其他的实施方式中”,其均可指代根据本公开的相同或不同实施方式中的一个或多个。

下面,结合附图详细的说明本发明的实施方式。

虚拟机的数据的输入输出(io)性能是虚拟机的关键技术指标,现有技术中,在作为电信级的虚拟机中,大多使用的是半虚拟化机制来进行数据的输入输出(io)操作。如果加速半虚拟化机制,则可以提高虚拟机的io吞吐量,满足电信级需求。例如,提高虚拟机的报文收发效率或者使其达到线速等需求。针对上述问题的现有的解决方案包括virtio半虚拟化驱动,然而,该方案存在着一定的缺点,包括:半虚拟化的io内存共享环是虚拟机(guest)分配的,但在host上的内存是散碎分布的,这就增加了物理机(host)上的内存碎片;同时每次处理io内存完时,都需要完成从虚拟内存到物理内存地址的转换过程。图1为现有访问流程机制效果图。如图1所示,在现有机制中,共享内存在host上是非连续且分散的,这会很容易地形成内存碎片。并且,现有机制中每次访问物理地址需要经过如图1示出的12个步骤才可以访问到目标内存,效率低下,不能满足电信级需求。

在现有技术的基础上,本发明实施例提供了一种可省略冗余的步骤操作,可以方便的从虚拟内存映射到物理内存上,可以方便直接的进行读写,从而大大简化了io操作。

如图2所示,为根据本发明的一个实施方式的访问流程机制的原理示意图。图3为根据本发明的实施方式的访问流程机制原理示意图;图4为本发明实施例的一种数据处理方法的流程图。

根据本发明实施例,处理器(例如cpu)可以为虚拟机分配物理内存供虚拟机作为虚拟机虚拟内存使用,以用于虚拟机的运行。该分配的共享内存在host的物理地址空间上是连续的,这将不易出现内存碎片,并且,虚拟机在使用内存地址时可以直接根据首地址以及与首地址的偏移信息或者直接可以根据虚拟内存地址gpa的索引可以直接对应到物理机上的物理内存的地址hpa。在此基础上,使用索引即可以得到实际的物理地址,因而只需要进行1步操作即可访问到共享内存,效率相较于现有技术有了极大的提高,可以充分满足电信级需求。

如图4所示,本发明实施例中的数据处理方法可以包括:

在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数;

基于该地址参数从为所述虚拟机分配的连续地的第二地址空间中查询与该地址参数对应的物理内存的第二地址;以及

将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。

本发明实施例中,虚拟机运行时,处理器可以通过前端驱动监测到虚拟机的内存访问请求,该访问请求可以在需要向内存写入数据或者从内存读出内存数据的情况下生成,并且该访问请求中包括关于所需访问的内存地址的索引信息,该索引信息可以是相对于首地址的偏移量,也可以是唯一对应于物理内存地址和虚拟内存地址的标识。上述索引信息作为第一地址空间的地址参数。处理器在接收到访问请求后会从第二模式切换到第一模式,并通过后端驱动基于上述第一地址空间的地址参数查询对应映射的物理内存中的第二地址空间的地址,从而将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。由此,本发明实施例在物理内存上的共享地址是连续的,从而大大避免了内存碎片的产生;以及guest和host直接通过地址索引信息即可直接访问到目标内存,这也充分避免了每次gap到hva的软件转换。

另外,本发明实施例中,在虚拟机启动或者虚拟机在监测到需要写入或读出内存数据时,可以从处理器读取其加载的关于虚拟机的第一地址空间的信息,所述第一地址空间的信息包括第一地址空间的首地址和第一地址空间的地址长度。

具体的,在虚拟机未运行时,处理器可以通过后端驱动为虚拟机分配虚拟内存,并将该虚拟内存的首地址和地址长度信息加载到虚拟机管理模块(vmcs)中,该虚拟机管理模块可以为构造为增加了两个扩展域,该两个扩展域分别用于存储首地址和地址长度信息。同时,处理器还可以从物理内存中选择出一连续地址作为第二地址空间,以用于虚拟机的运行使用,并建立第一地址空间的地址和第二地址空间的地址的映射关系表,该映射关系表可以存储在处理器中也可以存储在其他的存储器中,处理器可以基于上述第一地址空间的地址参数对应的查询到第二地址空间的地址信息,从而直接执行数据的写入或读出。本发明实施例中第一地址空间的长度大于第二地址空间的长度。

另外,在运行虚拟机的第二模式下,处理器可以从虚拟机管理模块中加载关于第一地址空间的信息,其中包括虚拟内存的长度length,以及首地址信息。从而使得虚拟机运行时能够对应的查询到第一地址空间的信息。

也就是说,根据本发明的数据处理方法可以包括:在虚拟机未被运行的模式(第一模式)下,为虚拟机分配所述guest物理地址空间作为共享内存;从虚拟机的虚拟内存中选择host物理地址空间,长度可为length,并利用共享内存在host上的起始地址hva和未使用的guest地址段的起始地址gap建立一一映射的关系表,从而完成hva至gpa的映射关系的建立。由此,上述共享内存在guest物理地址空间中的起始地址可以为gap,且长度可以为length;以及还可以将共享内存在guest的起始地址gap及长度length等信息存储至虚拟机管理模块vmcs的两个扩展域,如ringbase_gpa和ringlen域中。

在运行虚拟机(第二模式),处理器将自动加载虚拟机管理模块vmcs的ringbase_gpa和ringlen两个与域中的信息加载到两个寄存器中,如vrbr寄存器和vrlr寄存器。在启动虚拟机或者在虚拟机监测到需要写入或读出内存数据(共享内存)时,从处理器的寄存器中读取其加载的ringbase_gpa和ringlen中储存的第一地址空间的信息,所述信息包括guest的起始地址gap及地址长度length,然后即可在虚拟机中预留出共享内存所占用的空间。

所述在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的host物理地址空间内所对应的地址参数包括:在在运行虚拟机并监测到需要写入或读出内存数据时,生成所述内存数据对应于host物理地址空间的起始地址hva的偏移地址信息;以及基于所述偏移地址信息生成需要被写入或读出的内存数据在虚拟机的host物理地址空间内所对应的地址参数。

具体地,如图5所示,为本发明实施例中共享内存访问原理流程图,其中可以包括:

在判断为需要访问第一地址空间时,获得目标内存的索引index;

根据gpa和hap之间的映射关系并基于所述索引index,即可以得到目标内存(第二地址空间内的目标地址)。

通过本发明的上述数据处理方法,在内存空间中为虚拟机分配连续的内存地址,而方便的建立虚拟机的虚拟地址与物理地址之间的映射关系,从而增加虚拟机io处理速率。

另外,本发明实施例还提供了一种电子设备,该电子设备可以应用上述数据处理方法,其可省略冗余的步骤操作,可以方便的从虚拟内存映射到物理内存上,可以方便直接的进行读写,从而大大简化了io操作。

如图6所示为本发明实施例中的电子设备的原理结构示意图,其中该电子设备可以包括:处理器100和虚拟机管理模块200。其中处理器100可以在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的第一地址空间内所对应的地址参数;基于该地址参数从为所述虚拟机分配的连续地的第二地址空间中查询与该地址参数对应的物理内存的第二地址;以及将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。

处理器100(例如cpu)可以为虚拟机分配物理内存供虚拟机作为虚拟机虚拟内存使用,以用于虚拟机的运行。该分配的共享内存在host的物理地址空间上是连续的,这将不易出现内存碎片,并且,虚拟机在使用内存地址时可以直接根据首地址以及与首地址的偏移信息或者直接可以根据虚拟内存地址gpa的索引可以直接对应到物理机上的物理内存的地址hpa。在此基础上,使用索引即可以得到实际的物理地址,因而只需要进行1步操作即可访问到共享内存,效率相较于现有技术有了极大的提高,可以充分满足电信级需求。

虚拟机管理模块200可以用于管理虚拟机的相关程序,本发明实施例中在虚拟机管理模块200中增加了两个扩展域,分别用于存储第一地址空间的首地址和地址长度,在启动虚拟机时,处理器100可以从该两个扩展域中分别加载第一地址空间的首地址和地址长度到两个寄存器中进行存储,以便虚拟机对第一地址空间的访问时使用。

本发明实施例中,虚拟机运行时,处理器100可以通过前端驱动监测到虚拟机的内存访问请求,该访问请求可以在需要向内存写入数据或者从内存读出内存数据的情况下生成,并且该访问请求中包括关于所需访问的内存地址的索引信息,该索引信息可以是相对于首地址的偏移量,也可以是唯一对应于物理内存地址和虚拟内存地址的标识。上述索引信息作为第一地址空间的地址参数。处理器在接收到访问请求后会从第二模式切换到第一模式,并通过后端驱动基于上述第一地址空间的地址参数查询对应映射的物理内存中的第二地址空间的地址,从而将需要被输入的内存数据输入至第二地址中,或者从所述第二地址中输出需要被输出的内存数据。由此,本发明实施例在物理内存上的共享地址是连续的,从而大大避免了内存碎片的产生;以及guest和host直接通过地址索引信息即可直接访问到目标内存,这也充分避免了每次gap到hva的软件转换。

另外,本发明实施例中,在虚拟机启动或者虚拟机在监测到需要写入或读出内存数据时,可以从处理器100读取其加载的关于虚拟机的第一地址空间的信息,所述第一地址空间的信息包括第一地址空间的首地址和第二地址空间的地址长度。

具体的,在虚拟机未运行时,处理器100可以通过后端驱动为虚拟机分配虚拟内存,并将该虚拟内存的首地址和地址长度信息加载到虚拟机管理模块(vmcs)200中,该虚拟机管理模块200可以为构造为增加了两个扩展域,该两个扩展域分别用于存储首地址和地址长度信息。同时,处理器还可以从物理内存中选择出一连续地址作为第二地址空间,以用于虚拟机的运行使用,并建立第一地址空间的地址和第二地址空间的地址的映射关系表,该映射关系表可以存储在处理器中也可以存储在其他的存储器中,处理器可以基于上述第一地址空间的地址参数对应的查询到第二地址空间的地址信息,从而直接执行数据的写入或读出。本发明实施例中第一地址空间的长度大于第二地址空间的长度。

另外,在运行虚拟机的第二模式下,处理器100可以从虚拟机管理模块中加载关于第一地址空间的信息,其中包括虚拟内存的长度length,以及首地址信息。从而使得虚拟机运行时能够对应的查询到第一地址空间的信息。

也就是说,根据本发明的数据处理方法可以包括:在虚拟机未被运行的模式(第一模式)下,为虚拟机分配所述guest物理地址空间作为共享内存;从虚拟机的虚拟内存中选择host物理地址空间,长度可为length,并利用共享内存在host上的起始地址hva和未使用的guest地址段的起始地址gap建立一一映射的关系表,从而完成hva至gpa的映射关系的建立。由此,上述共享内存在guest物理地址空间中的起始地址可以为gap,且长度可以为length;以及还可以将共享内存在guest的起始地址gap及长度length等信息存储至虚拟机管理模块vmcs的两个扩展域,如ringbase_gpa和ringlen域中。

在运行虚拟机(第二模式),处理器将自动加载虚拟机管理模块vmcs的ringbase_gpa和ringlen两个与域中的信息加载到两个寄存器中,如vrbr寄存器和vrlr寄存器。在启动虚拟机或者在虚拟机监测到需要写入或读出内存数据(共享内存)时,从处理器的寄存器中读取其加载的ringbase_gpa和ringlen中储存的第一地址空间的信息,所述信息包括guest的起始地址gap及地址长度length,然后即可在虚拟机中预留出共享内存所占用的空间。

所述在运行虚拟机并监测到需要写入或读出内存数据时,生成需要被写入或读出的内存数据在虚拟机的host物理地址空间内所对应的地址参数包括:在在运行虚拟机并监测到需要写入或读出内存数据时,生成所述内存数据对应于host物理地址空间的起始地址hva的偏移地址信息;以及基于所述偏移地址信息生成需要被写入或读出的内存数据在虚拟机的host物理地址空间内所对应的地址参数。

具体地,处理器在第二模式下判断为需要访问第一地址空间时,获得目标内存的索引index;并在第一模式下根据gpa和hap之间的映射关系并基于所述索引index,即可以得到目标内存(第二地址空间内的目标地址)。

通过本发明的上述电子设备,可在内存空间中为虚拟机分配连续的内存地址(host物理地址空间),防止了内存的散碎分布,从而方便地建立起虚拟机的虚拟地址与物理地址之间的映射关系,减少了中间操作步骤,从而显著增加了虚拟机的io处理速率,提高了数据处理效率。

本发明所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理方法以及所应用于的电子设备,仅仅是根据本发明的一种实施方式。此外,本发明还可以存在其它符合本发明精神的实施方式,其原理与上述说明书中公开的相同,因而在此不再赘述。

此外,本发明所属领域的技术人员应当知晓,以上所述的实施方式仅为本发明的示例性实施方式,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1