[发明专利]动静结合二进制翻译的程序迁移方法、系统及存储介质在审
申请号: | 202111458787.2 | 申请日: | 2021-12-02 |
公开(公告)号: | CN114115990A | 公开(公告)日: | 2022-03-01 |
发明(设计)人: | 张义磊;张雪玉;黄波;郭健美;周烜 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F8/76 | 分类号: | G06F8/76;G06F8/53;G06F8/41 |
代理公司: | 上海泰能知识产权代理事务所(普通合伙) 31233 | 代理人: | 宋缨 |
地址: | 200061 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动静 结合 二进制 翻译 程序 迁移 方法 系统 存储 介质 | ||
本发明涉及一种动静结合二进制翻译的程序迁移方法、系统及存储介质。其中,方法包括:采用静态二进制翻译器对待迁移程序进行预编译,并生成中间结果文件;建立所述中间结果文件与所述待迁移程序的映射关系;执行所述待迁移程序,当所述待迁移程序不是使用本平台代码时,则调用动态二进制翻译器,所述动态二进制翻译器基于所述映射关系加载所述待迁移程序对应的中间结果文件进行执行。本发明完成了动态二进制翻译器和静态二进制翻译器之间的高效串联,保证了程序翻译的可行性和平台的多样性。
技术领域
本发明涉及软件迁移技术领域,特别是涉及一种动静结合二进制翻译的程序迁移方法、系统及存储介质。
背景技术
处理器技术是信息产业的核心技术,处理器设计的好坏对计算机的效率、能耗起着决定性作用。处理器设计还要考虑应用场景的多样性。各大芯片厂商对如何设计契合不同应用场景的处理器有着各种各样的理解,并提出了不同的指令集架构(instruction setarchitecture,ISA)和相应产品。在个人电脑领域,有intel基于X86架构的酷睿系列处理器,Apple基于Arm架构的M1系列处理器,中科院计算所基于MIPS架构的龙芯系列处理器等等;在服务器领域,有华为基于Arm架构的鲲鹏系列处理器,intel基于X86架构的至强系列处理器等等;在嵌入式领域,有华为基于Arm架构的麒麟系列处理器,平头哥基于RISC-V架构的玄铁系列处理器等等。由于使用的指令集架构不同,一个指令集架构平台上的软件无法在另一个指令集架构平台上直接运行,同一指令集架构的不同版本之间有时也无法兼容。为了在软件层面解决程序的兼容性问题,减轻硬件设计上的负担,二进制翻译技术(binary translation)应运而生。
二进制翻译技术可以在没有源代码的情况下,将一个指令集架构平台上的程序翻译到另一个指令集架构平台上执行,实现程序的迁移。该技术是解决同一指令集架构平台升级后的软件兼容性问题和不同指令集架构之间的程序迁移问题的重要手段。二进制翻译技术可分为静态二进制翻译(static binary translation)和动态二进制翻译(dynamicbinary translation)。静态二进制翻译是一种离线编译技术,可以对待迁移的程序进行预编译,不占用运行时间,并进行深度优化,但需要解决代码发现、代码定位、代码和数据混合和自修改代码等问题。动态二进制翻译是一种实时编译技术,通过启动一个运行时环境边翻译边运行,能够解决静态二进制翻译较难解决的代码发现、代码定位、代码和数据混合和自修改代码等问题,但是由于占用运行时间进行翻译,只能实施较低开销的优化。动态二进制翻译器可以获取被翻译程序运行时的动态行为,有些静态二进制翻译中不能做的优化也可以在动态二进制翻译过程中进行。
动态二进制翻译和静态二进制翻译各有利弊,为了充分利用动态二进制翻译和静态二进制翻译的优点,可以使用动静结合的二进制翻译技术。动静结合的二进制翻译技术在静态二进制翻译离线编译的基础上,对静态二进制翻译难以解决的难题,如代码发现、代码定位、代码和数据混合和自修改代码等问题交由动态二进制翻译处理,并结合动态二进制翻译的运行时环境实现程序的高效翻译。
现有专利文献CN1716202A公开了一种动静结合二进制翻译中静态信息不完备的处理方法,但是该方法在可行性和平台的多样性方面有所欠缺,具体表现为:(1)针对可以被静态二进制翻译的代码和需要动态二进制翻译的代码都会访问的内存数据,其缺少一种能够确保翻译后访存地址一致性的机制;(2)其利用静态代码入口信息表和动态轮廓信息来处理被静态二进制翻译的源平台代码和翻译后目标平台代码的地址映射关系,这种方法需要先动态翻译目标程序,在动态翻译过程中收集静态翻译无法推测的跳转地址,根据收集到的地址再重新静态翻译目标程序,该方法造成第一遍运行的开销,且当前云服务场景下静态预编译和动态翻译可能在不同平台上,该方式的交互实现难度大;(3)没有提出如何解决源平台代码和数据混合的问题,使得该专利的平台多样性有所欠缺。
发明内容
本发明所要解决的技术问题是提供一种动静结合二进制翻译的程序迁移方法、系统及存储介质,保证了程序翻译的可行性和平台的多样性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111458787.2/2.html,转载请声明来源钻瓜专利网。