一种异构虚拟化平台中虚拟机的迁移方法及系统技术方案

技术编号:36167210 阅读:16 留言:0更新日期:2022-12-31 20:17
本申请提供了一种异构虚拟化平台中虚拟机的迁移方法及系统,其中,该方法包括:静态翻译器对第一芯片的二进制源代码进行翻译得到第一翻译,并对第一翻译结果进行优化后得到目标虚拟机的可执行的本地码,并将本地码存储入文件;动态翻译执行器获取源二进制源代码以及从文件中获取本地码,并在当前待执行的代码为本地码的情况下基于虚拟机执行本地码,或在当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻译得到第二翻译结果,并对第二翻译结果基于虚拟机进行解释执行以实现虚拟机的迁移。通过本申请,解决了相关技术中通过单一的解释执行或静态翻译或动态翻译的方式进行虚拟机的迁移的问题。式进行虚拟机的迁移的问题。式进行虚拟机的迁移的问题。

【技术实现步骤摘要】
一种异构虚拟化平台中虚拟机的迁移方法及系统


[0001]本申请涉及虚拟机迁移
,尤其涉及一种异构虚拟化平台中虚拟机的迁移方法及系统。

技术介绍

[0002]当前异构虚拟化平台虚拟机迁移的方式包括:解释执行、静态翻译、动态翻译。其中,1)解释执行:解释器可以准确模拟源机器上各种功能且容易开发,但运行速度严重下降。2)静态翻译:在静态环境下对源机器上的可执行代码进行离线翻译和优化,然后执行传统编译器的代码生成,生成目标虚拟机上的可执行文件,其翻译过程不占用运行时间且代码质量高,但对于程序中普遍出现的间接调用、间接转移、代码自修改等问题较难处理。3)动态翻译:将解释和动态翻译、动态优化相结合的方法。但动态时的优化要增加程序的开销,因此很多较复杂的优化手段不便于利用,使得翻译出的本地代码的质量不如静态翻译高。
[0003]针对相关技术中的上述问题,目前尚未存在有效的解决方案。

技术实现思路

[0004]本申请提供了一种异构虚拟化平台中虚拟机的迁移方法及系统,以至少解决相关技术中通过单一的解释执行或静态翻译或动态翻译的方式进行虚拟机的迁移的问题。
[0005]在本申请实施的第一方面,首先提供了一种异构虚拟化平台中虚拟机的迁移方法,所述异构虚拟化平台包括由第一芯片和第二芯片组成的异构芯片、静态翻译器以及动态翻译执行器,所述方法包括:所述静态翻译器对所述第一芯片的二进制源代码进行翻译得到第一翻译,并对所述第一翻译结果进行优化后得到目标虚拟机的可执行的本地码,并将所述本地码存储入文件;其中,所述目标虚拟机基于所述第二芯片执行所述本地码;所述动态翻译执行器获取所述源二进制源代码以及从所述文件中获取所述本地码,并在当前待执行的代码为所述本地码的情况下基于所述虚拟机执行所述本地码,或在当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻译得到第二翻译结果,并对所述第二翻译结果基于所述虚拟机进行解释执行以实现所述虚拟机的迁移。
[0006]在本申请实施的第二方面,还提供了一种异构虚拟化平台中虚拟机的迁移系统,所述异构虚拟化平台包括由第一芯片和第二芯片组成的异构芯片、静态翻译器以及动态翻译执行器;所述静态翻译器,用于对所述第一芯片的二进制源代码进行翻译得到第一翻译,并对所述第一翻译结果进行优化后得到目标虚拟机的可执行的本地码,并将所述本地码存储入文件;其中,所述目标虚拟机基于所述第二芯片执行所述本地码;所述动态翻译执行器,用于获取所述源二进制源代码以及从所述文件中获取所述本地码,并在当前待执行的代码为所述本地码的情况下基于所述虚拟机执行所述本地码,或在当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻译得到第二翻译结果,并对所述第二翻译结果基于所述虚拟机进行解释执行以实现所述虚拟机的迁移。
[0007]在本申请实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法。
[0008]在本申请实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的称方法。
[0009]通过本申请,该异构虚拟化平台采用的是一个动静结合的架构,由静态翻译器和动态翻译执行器组成,其中,静态翻译器对第一芯片的源代码进行翻译、优化,产生目标虚拟机可执行代码,并以文件的形式存储,进而动态翻译执行器的作用则是利用静态翻译结果,通过翻译、本地码执行和解释执行第二芯片的进制程序。通过本申请既有静态翻译过程不占用运行时间,代码质量高的效果,又有动态翻译和动态优化的效果,从而解决了现有技术中通过单一的解释执行或静态翻译或动态翻译的方式进行虚拟机的迁移的问题。
[0010]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
[0011]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。
[0012]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0013]图1为本申请实施例提供的异构虚拟化平台中虚拟机的迁移方法的流程图;图2为本申请优选实施例提供的动静结合的二进制翻译系统的结构示意图;图3为本申请实施例提供的动态翻译执行器结构示意图。
具体实施方式
[0014]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0015]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0016]本申请实施例提供了一种异构虚拟化平台中虚拟机的迁移方法,其中,该异构虚拟化平台包括由第一芯片和第二芯片组成的异构芯片、静态翻译器以及动态翻译执行器。需要说明的是,该第一芯片和第二芯片为不同类型的芯片,在具体示例中该第一芯片可以是ARM芯片,第二芯片可以是申威芯片(SW64),当然其他类型的芯片也是在本申请的保护范围之内的,只要是两种不同类型可组成异构芯片的芯片均是在本申请的保护范围之内的。
[0017]此外,在本申请实施例中第一芯片和第二芯片中所涉及到的代码为二进制的代码。
[0018]如图1所示,本申请实施例的异构虚拟化平台中虚拟机的迁移方法的步骤包括:步骤102,静态翻译器对第一芯片的二进制源代码进行翻译得到第一翻译,并对第一翻译结果进行优化后得到目标虚拟机的可执行的本地码,并将本地码存储入文件;其中,目标虚拟机基于第二芯片执行本地码;在具体示例中,以第一芯片为ARM芯片为例,则静态翻译器可借助profiling信息对ARM源二进制代码进行翻译、优化,产生目标虚拟机可执行的代码并以文件的形式存储。
[0019]步骤104,动态翻译执行器获取源二进制源代码以及从文件中获取本地码,并在当前待执行的代码为本地码的情况下基于虚拟机执行本地码,或在当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻译得到第二翻译结果,并对第二翻译结果基于虚拟机进行解释执行以实现虚拟机的迁移。
[0020]在具体示例中,以第二芯片为申威芯片为例,动态翻译执行器则是利用静态翻译结果,通过翻译、本地码执行和解释等手段执行申威芯片的进制程序。
[0021]通过上述步骤102和步骤104可知,该异构虚拟化平台采用的是一个动静结合的架构,由静态翻译器和动态翻本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异构虚拟化平台中虚拟机的迁移方法,其特征在于,所述异构虚拟化平台包括由第一芯片和第二芯片组成的异构芯片、静态翻译器以及动态翻译执行器,所述方法包括:所述静态翻译器对所述第一芯片的二进制源代码进行翻译得到第一翻译,并对所述第一翻译结果进行优化后得到目标虚拟机的可执行的本地码,并将所述本地码存储入文件;其中,所述目标虚拟机基于所述第二芯片执行所述本地码;所述动态翻译执行器获取源二进制源代码以及从所述文件中获取所述本地码,并在当前待执行的代码为所述本地码的情况下基于所述虚拟机执行所述本地码,或在当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻译得到第二翻译结果,并对所述第二翻译结果基于所述虚拟机进行解释执行以实现所述虚拟机的迁移。2.根据权利要求1所述的方法,其特征在于,所述静态翻译器对所述第一芯片的二进制源代码进行翻译,并对翻译结果进行优化后得到目标虚拟机的可执行的本地码,包括:所述静态翻译器基于入口地址对将所述二进制源代码进行反汇编,得到待翻译或待解释执行的基本块;所述静态翻译器对所述基本块进行翻译,得到所述第一翻译结果;所述静态翻译器基于在基本块内的寄存器分配算法或跨越基本块的寄存器分配算法对所述第一翻译结果进行处理,并对处理结果进行跨越基本块的编译常规优化得到所述目标虚拟机的可执行的本地码。3.根据权利要求2所述的方法,其特征在于,所述静态翻译器基于入口地址对将所述二进制源代码进行反汇编,得到待翻译或待解释执行的基本块,包括:所述静态翻译器将所述入口地址赋值给所述第一芯片的程序计数器;所述静态翻译器对所述程序计数器所对应的所述本地码进行反汇编,并将反汇编结果记录在中间表示IR1中直到识别出所述基本块的控制转移指令,以得到待翻译或待解释执行的基本块。4.根据权利要求3所述的方法,其特征在于,所述静态翻译器对所述程序计数器所对应的所述本地码进行反汇编,并将反汇编结果记录在中间表示IR1中直到识别出所述基本块的控制转移指令,以得到待翻译或待解释执行的基本块包括:在所述程序计数器为零且基本块的IR1数量在预设范围内的情况下,所述静态翻译器对所述本地码进行反汇编得到所述第一芯片指令;所述静态翻译器将所述第一芯片指令记录到所述IR1中,并判断所述第一芯片指令是否为控制转移指令;在判断为是的情况下,所述静态翻译器确定反汇编结束得到待翻译或待解释执行的基本块。5.根据权利要求4所述的方法,其特征在于,所述动态翻译执行器当前待执行的代码为未翻译的代码的情况下,对未翻译的代码进行翻...

【专利技术属性】
技术研发人员:黄平张洪明陈小鹏黄海峰杨家豪
申请(专利权)人:北京太极信息系统技术有限公司
类型:发明
国别省市:

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

1