动静结合二进制翻译的程序迁移方法、系统及存储介质技术方案

技术编号:32487954 阅读:17 留言:0更新日期:2022-03-02 09:53
本发明专利技术涉及一种动静结合二进制翻译的程序迁移方法、系统及存储介质。其中,方法包括:采用静态二进制翻译器对待迁移程序进行预编译,并生成中间结果文件;建立所述中间结果文件与所述待迁移程序的映射关系;执行所述待迁移程序,当所述待迁移程序不是使用本平台代码时,则调用动态二进制翻译器,所述动态二进制翻译器基于所述映射关系加载所述待迁移程序对应的中间结果文件进行执行。本发明专利技术完成了动态二进制翻译器和静态二进制翻译器之间的高效串联,保证了程序翻译的可行性和平台的多样性。性。性。

【技术实现步骤摘要】
动静结合二进制翻译的程序迁移方法、系统及存储介质


[0001]本专利技术涉及软件迁移
,特别是涉及一种动静结合二进制翻译的程序迁移方法、系统及存储介质。

技术介绍

[0002]处理器技术是信息产业的核心技术,处理器设计的好坏对计算机的效率、能耗起着决定性作用。处理器设计还要考虑应用场景的多样性。各大芯片厂商对如何设计契合不同应用场景的处理器有着各种各样的理解,并提出了不同的指令集架构(instruction set architecture,ISA)和相应产品。在个人电脑领域,有intel基于X86架构的酷睿系列处理器,Apple基于Arm架构的M1系列处理器,中科院计算所基于MIPS架构的龙芯系列处理器等等;在服务器领域,有华为基于Arm架构的鲲鹏系列处理器,intel基于X86架构的至强系列处理器等等;在嵌入式领域,有华为基于Arm架构的麒麟系列处理器,平头哥基于RISC

V架构的玄铁系列处理器等等。由于使用的指令集架构不同,一个指令集架构平台上的软件无法在另一个指令集架构平台上直接运行,同一指令集架构的不同版本之间有时也无法兼容。为了在软件层面解决程序的兼容性问题,减轻硬件设计上的负担,二进制翻译技术(binary translation)应运而生。
[0003]二进制翻译技术可以在没有源代码的情况下,将一个指令集架构平台上的程序翻译到另一个指令集架构平台上执行,实现程序的迁移。该技术是解决同一指令集架构平台升级后的软件兼容性问题和不同指令集架构之间的程序迁移问题的重要手段。二进制翻译技术可分为静态二进制翻译(static binary translation)和动态二进制翻译(dynamic binary translation)。静态二进制翻译是一种离线编译技术,可以对待迁移的程序进行预编译,不占用运行时间,并进行深度优化,但需要解决代码发现、代码定位、代码和数据混合和自修改代码等问题。动态二进制翻译是一种实时编译技术,通过启动一个运行时环境边翻译边运行,能够解决静态二进制翻译较难解决的代码发现、代码定位、代码和数据混合和自修改代码等问题,但是由于占用运行时间进行翻译,只能实施较低开销的优化。动态二进制翻译器可以获取被翻译程序运行时的动态行为,有些静态二进制翻译中不能做的优化也可以在动态二进制翻译过程中进行。
[0004]动态二进制翻译和静态二进制翻译各有利弊,为了充分利用动态二进制翻译和静态二进制翻译的优点,可以使用动静结合的二进制翻译技术。动静结合的二进制翻译技术在静态二进制翻译离线编译的基础上,对静态二进制翻译难以解决的难题,如代码发现、代码定位、代码和数据混合和自修改代码等问题交由动态二进制翻译处理,并结合动态二进制翻译的运行时环境实现程序的高效翻译。
[0005]现有专利文献CN1716202A公开了一种动静结合二进制翻译中静态信息不完备的处理方法,但是该方法在可行性和平台的多样性方面有所欠缺,具体表现为:(1)针对可以被静态二进制翻译的代码和需要动态二进制翻译的代码都会访问的内存数据,其缺少一种能够确保翻译后访存地址一致性的机制;(2)其利用静态代码入口信息表和动态轮廓信息
来处理被静态二进制翻译的源平台代码和翻译后目标平台代码的地址映射关系,这种方法需要先动态翻译目标程序,在动态翻译过程中收集静态翻译无法推测的跳转地址,根据收集到的地址再重新静态翻译目标程序,该方法造成第一遍运行的开销,且当前云服务场景下静态预编译和动态翻译可能在不同平台上,该方式的交互实现难度大;(3)没有提出如何解决源平台代码和数据混合的问题,使得该专利的平台多样性有所欠缺。

技术实现思路

[0006]本专利技术所要解决的技术问题是提供一种动静结合二进制翻译的程序迁移方法、系统及存储介质,保证了程序翻译的可行性和平台的多样性。
[0007]本专利技术解决其技术问题所采用的技术方案是:提供一种动静结合二进制翻译的程序迁移方法,包括以下步骤:
[0008](1)采用静态二进制翻译器对待迁移程序进行预编译,并生成中间结果文件;所述中间结果文件包括第一代码块和第二代码块,所述第一代码块为所述静态二进制翻译器能够翻译的代码块,所述第二代码块为所述静态二进制翻译器无法翻译的代码块,所述第一代码块和第二代码块的连接点处设置有标识;
[0009](2)建立所述中间结果文件与所述待迁移程序的映射关系;
[0010](3)执行所述待迁移程序,当所述待迁移程序不是使用本平台代码时,则调用动态二进制翻译器,所述动态二进制翻译器基于所述映射关系加载所述待迁移程序对应的中间结果文件进行执行,执行时根据所述标识采用执行引擎对所述第一代码块进行直接执行,对所述第二代码块调用翻译引擎进行翻译后再由所述执行引擎执行。
[0011]所述静态二进制翻译器能够识别并标记无法翻译的代码块以交由动态二进制翻译器处理;所述无法静态翻译的原因是由代码发现问题、代码定位问题、代码和数据混合问题或自修改代码问题导致的。
[0012]所述步骤(1)采用静态二进制翻译器对待迁移程序进行预编译具体为:所述静态二进制翻译器读取所述待迁移程序,以基本块为单位对所述待迁移程序进行反汇编,解码成源平台的汇编代码,并对解码后的汇编代码进行解析,生成控制流图,并将所述源平台的汇编代码提升为中间表示。
[0013]所述的动静结合二进制翻译的程序迁移方法还包括对所述中间表示进行优化的步骤,具体为:所述静态二进制翻译器基于所述中间表示进行各类优化,并在目标代码生成时进行目标平台相关的优化。
[0014]所述步骤(1)中静态二进制翻译器在离线阶段对待迁移程序进行预编译。
[0015]所述中间结果文件中还包括第一地址映射关系和第二地址映射关系,所述第一地址映射关系为源平台指令和翻译后目标平台指令的地址映射关系,所述第二地址映射关系为程序所访问的内存数据在源平台和目标平台间的地址映射关系;所述步骤(3)中的动态二进制翻译器利用所述第一地址映射关系和第二地址映射关系确保动态二进制翻译过程中对内存数据的访问和静态二进制翻译中对同一内存地址的访问的一致性。
[0016]所述中间结果文件中还包括描述信息,所述描述信息用于描述所述待迁移程序中哪些代码块为被所述静态二进制翻译器翻译的代码块以及哪些代码块为未被所述静态二进制翻译器翻译的代码块。
[0017]所述步骤(3)中动态二进制翻译器在执行过程中还包括动态优化步骤,具体为:所述动态二进制翻译器对代码缓存区中的代码块进行链接,并预先设定所述代码缓存区替换算法保证所述代码缓存区的高效利用。
[0018]所述步骤(3)中动态二进制翻译器通过收集执行时的程序行为的动态画像对代码进行动态优化。
[0019]本专利技术解决其技术问题所采用的技术方案是:还提供一种动静结合二进制翻译的程序迁移系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的动静结合二进制翻译的程序迁移方法。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动静结合二进制翻译的程序迁移方法,其特征在于,包括以下步骤:(1)采用静态二进制翻译器对待迁移程序进行预编译,并生成中间结果文件;所述中间结果文件包括第一代码块和第二代码块,所述第一代码块为所述静态二进制翻译器能够翻译的代码块,所述第二代码块为所述静态二进制翻译器无法翻译的代码块,所述第一代码块和第二代码块的连接点处设置有标识;(2)建立所述中间结果文件与所述待迁移程序的映射关系;(3)执行所述待迁移程序,当所述待迁移程序不是使用本平台代码时,则调用动态二进制翻译器,所述动态二进制翻译器基于所述映射关系加载所述待迁移程序对应的中间结果文件进行执行,执行时根据所述标识采用执行引擎对所述第一代码块进行直接执行,对所述第二代码块调用翻译引擎进行翻译后再由所述执行引擎执行。2.根据权利要求1所述的动静结合二进制翻译的程序迁移方法,其特征在于,所述静态二进制翻译器能够识别并标记无法静态翻译的代码块以交由动态二进制翻译器处理;所述无法静态翻译的原因是由代码发现问题、代码定位问题、代码和数据混合问题或自修改代码问题导致的。3.根据权利要求1所述的动静结合二进制翻译的程序迁移方法,其特征在于,所述步骤(1)采用静态二进制翻译器对待迁移程序进行预编译具体为:所述静态二进制翻译器读取所述待迁移程序,以基本块为单位对所述待迁移程序进行反汇编,解码成源平台的汇编代码,并对解码后的汇编代码进行解析,生成控制流图,并将所述源平台的汇编代码提升为中间表示。4.根据权利要求3所述的动静结合二进制翻译的程序迁移方法,其特征在于,还包括对所述中间表示进行优化的步骤,具体为:所述静态二进制翻译器基于所述中间表示进行各类优化,并在目标代码生成时进行目标平台相关的优化。5.根据权利要求1所述的动静结合二进制翻译的程序迁移方法,其特征在于,所述步骤(1)中静态二进制翻译器在离线阶...

【专利技术属性】
技术研发人员:张义磊张雪玉黄波郭健美周烜
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1