二进制翻译方法技术

技术编号:39493139 阅读:6 留言:0更新日期:2023-11-24 11:18
本发明专利技术实施例提供了一种二进制翻译方法

【技术实现步骤摘要】
二进制翻译方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,特别是涉及一种二进制翻译方法

装置

电子设备以及存储介质


技术介绍

[0002]二进制翻译可以将运行在一种体系结构平台的源程序转换为运行在另一种体系结构平台的目标程序,以解决二进制层面的应用程序跨指令集架构运行的问题

二进制翻译是近年来计算机
的研究热点之一

[0003]二进制翻译过程中,由于两种架构指令集的差异,导致指令集语义表达层面的差距,如果将指令一条一条的对应翻译,可能会产生较多的冗余指令,从而影响翻译后程序的效率

[0004]通过指令优化可以减少冗余指令,提高翻译后程序的效率

指令优化指的是在翻译过程中识别多条指令组成的指令序列,替换为相同语义的目标指令,以减少冗余指令的产生

然而,指令优化通常是根据语义进行翻译,并不能覆盖指令的所有表达,因此优化过程中可能会丢失一部分信息

这样,如果在翻译过程中出现异常,将无法恢复至异常发生前的状态,可能导致程序崩溃


技术实现思路

[0005]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种二进制翻译方法,在指令优化过程中保留指令优化产生的差异信息,在出现异常等情况时可以根据记录的差异信息实现指令修正,以提高翻译后程序运行的正确性
。<br/>[0006]相应的,本专利技术实施例还提供了一种二进制翻译装置

电子设备

以及一种存储介质,用以保证上述方法的实现及应用

[0007]第一方面,本专利技术实施例公开了一种二进制翻译方法,所述方法包括:
[0008]在对基本块进行翻译的过程中,在所述基本块的指定区域记录优化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对应的位置信息,所述位置信息包括被优化指令的入口地址;
[0009]在执行翻译后的基本块的过程中捕获目标消息,并根据触发所述目标消息的指令位置确定目标位置;所述目标消息包括用于指示出现异常或自修改的消息;
[0010]根据所述目标位置对应的差异信息,对所述目标位置的优化后的指令序列进行修正

[0011]第二方面,本专利技术实施例公开了一种二进制翻译装置,所述装置包括:
[0012]差异记录模块,用于在对基本块进行翻译的过程中,在所述基本块的指定区域记录优化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对应的位置信息,所述位置信息包括被优化指令的入口地址;
[0013]目标确定模块,用于在执行翻译后的基本块的过程中捕获目标消息,并根据触发所述目标消息的指令位置确定目标位置;所述目标消息包括用于指示出现异常或自修改的消息;
[0014]指令修正模块,用于根据所述目标位置对应的差异信息,对所述目标位置的优化后的指令序列进行修正

[0015]第三方面,本专利技术实施例公开了一种电子设备,包括:处理器

存储器

通信接口和通信总线,所述处理器

所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如前述中任一所述的二进制翻译方法的步骤

[0016]第四方面,本专利技术实施例公开了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时能够实现本专利技术实施例中任一所述的二进制翻译方法

[0017]本专利技术实施例提供的二进制翻译方法

装置

电子设备及存储介质包括以下优点:
[0018]本专利技术实施例在二进制翻译过程中,通过主动保留优化后的指令序列与优化前的指令序列间的差异信息,在出现异常或自修改等特殊情况下,能够根据记录的差异信息对优化后的指令序列进行修正,从而恢复至正确的状态,以保证后续指令运行的正确性

本专利技术实施例在二进制翻译过程中加入异常恢复机制,可以有效解决出现异常或自修改等特殊情况下,因指令优化导致的信息丢失而无法恢复的问题,提高翻译后程序运行的高效性和正确性

附图说明
[0019]图1是本专利技术的一种二进制翻译方法实施例的步骤流程图;
[0020]图2是本专利技术的一种二进制翻译架构示意图;
[0021]图3是本专利技术示例二的翻译及优化过程示意图;
[0022]图4是本专利技术示例二中因自修改导致信息丢失的示意图;
[0023]图5是本专利技术示例二出现自修改时进行异常处理的示意图;
[0024]图6是本专利技术的一种二进制翻译装置实施例的结构框图;
[0025]图7是本专利技术实施例提供的电子设备的结构示意图

具体实施方式
[0026]为使本专利技术的上述目的

特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明

[0027]本专利技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序

应该理解这样使用的数据在适当情况下可以互换,以便本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个

此外,说明书以及权利要求中的术语“和
/
或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,
A

/

B
,可以表示:单独存在
A
,同时存在
A

B
,单独存在
B
这三种情况

字符“/”一般表示前后关联对象是一种“或”的关系

本专利技术实施例中术语“多个”是
指两个或两个以上,其它量词与之类似

[0028]二进制翻译可以用来解决二进制层面的应用程序跨指令集架构
(Instruction Set Architecture

ISA)
运行的问题

具体而言,二进制翻译技术可将一种指令集架构中的指令序列转化成另一种指令集架构中的指令序列

例如,二进制翻译可以将
x86
指令集架构中的指令序列翻译成
arm
指令集架构
(

arm64)
中的指令序列,反之亦然

二进制翻译包括静态翻译和动态翻译两种

静态翻译本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种二进制翻译方法,其特征在于,所述方法包括:在对基本块进行翻译的过程中,在所述基本块的指定区域记录优化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对应的位置信息,所述位置信息包括被优化指令的入口地址;在执行翻译后的基本块的过程中捕获目标消息,并根据触发所述目标消息的指令位置确定目标位置;所述目标消息包括用于指示出现异常或自修改的消息;根据所述目标位置对应的差异信息,对所述目标位置的优化后的指令序列进行修正
。2.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现异常的消息的情况下,所述对所述目标位置的优化后的指令序列进行修正,包括:对所述目标位置的优化后的指令序列的运行状态进行恢复;在所述目标消息为用于指示出现自修改的消息的情况下,所述对所述目标位置的优化后的指令序列进行修正,包括:对所述目标位置的优化后的指令序列的运行状态进行恢复,以及将所述目标位置的优化后的指令序列恢复为优化前的指令序列
。3.
根据权利要求2所述的方法,其特征在于,所述差异信息包括所述优化前的指令序列的运行状态,所述运行状态包括目标环境和目标现场;所述目标环境包括优化前的内存数据和操作系统状态,所述目标现场包括优化前的寄存器数据和处理器状态;所述对所述目标位置的优化后的指令序列的运行状态进行恢复,包括:将所述目标位置的优化后的指令序列的运行状态恢复至优化前的指令序列的运行状态
。4.
根据权利要求3所述的方法,其特征在于,所述差异信息还包括差异指令,所述差异指令包括所述优化后的指令序列相对于所述优化前的指令序列缺失的指令,所述将所述目标位置的优化后的指令序列恢复为优化前的指令序列,包括:在所述目标环境和所述目标现场下,在所述目标位置处恢复所述差异指令,得到优化前的指令序列
。5.
根据权利要求4所述的方法,其特征在于,所述在所述目标位置处恢复所述差异指令,包括:若所述目标位置满足原位修正条件,则在所述目标位置处插入所述差异指令;若所述目标位置不满足原位修正条件,则对所述目标位置的后续指令进行移位改写后在所述目标位置处插入所述差异指令,或者,对所述目标位置所在的基本块进行重新翻译
。6.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现异常的消息的情况下,所述根据触发所述目标消息的指令位置确定目标位置,包括:确定触发所述目标消息的指令位置以及该指令位置所在基本块内的前序指令位置为目标位置
。7.
根据权利要求1所述的方法,其特征在于,在所述目标消息为用于指示出现自修改的消息的情况下,所述根据触发所述目标消息的指令位置确定目标位置,包括:确定触发所述目标消息的基本块的前序基本块中各指令位置为目标位置
。8.
一种二进制翻译装置,其特征在于,所述装置包括:差异记录模块,用于在对基本块进行翻译的过程中,在所述基本块的指定区域记录优
化后的指令序列与优化前的指令序列之间产生的差异信息,以及所述差异信息对...

【专利技术属性】
技术研发人员:胡起兰彦志曾露
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

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

1