二进制翻译方法技术

技术编号:39601483 阅读:7 留言:0更新日期:2023-12-03 20:01
本发明专利技术实施例提供了一种二进制翻译方法

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


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

装置

电子设备及可读存储介质


技术介绍

[0002]在计算机
中,随着微处理器工艺的不断发展,微处理器的性能已经变得越来越强,为了使得计算机可以同时处理不同中央处理器
(Central Processing Unit

CPU)
指令集,通常通过二进制翻译技术将一种架构的源程序运行在另一种架构上

[0003]而在二进制翻译场景下,由于不同指令集的寄存器数量可能不同,导致二进制翻译器需要使用额外的内存进行数据存储,而对内存进行访问的效率较低,造成翻译后的程序的执行性能较低


技术实现思路

[0004]本专利技术提供一种二进制翻译方法

装置

电子设备及可读存储介质,以便解决翻译后的程序的执行性能较低的问题

[0005]为了解决上述技术问题,本专利技术是这样实现的:
[0006]第一方面,本专利技术提供一种二进制翻译方法,所述方法应用于集成有新增寄存器的第二架构,所述方法包括:
[0007]在对源程序进行翻译的过程中,确定所述第二架构可使用的寄存器的第一数量以及翻译所述源程序所需的寄存器的第二数量;
[0008]在所述第一数量小于所述第二数量的情况下,基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令;所述预设指令为所述第二架构对应的指令集中预先定义的用于访问所述新增寄存器的指令,所述待选源指令为所述源程序中对第一架构中的寄存器进行访问的源指令,所述第一架构对应的指令集与所述第二架构对应的指令集之间不兼容;
[0009]其中,所述目标指令用于将所述待选源指令所指示的待存储数据存储至所述新增寄存器中,和
/
或,用于从所述待选源指令对应的新增寄存器中获取所述待选源指令所指示的数据

[0010]第二方面,本专利技术提供一种二进制翻译装置,所述装置应用于集成有新增寄存器的第二架构,所述装置包括:
[0011]数量确定模块,用于在对源程序进行翻译的过程中,确定所述第二架构可使用的寄存器的第一数量以及翻译所述源程序所需的寄存器的第二数量;
[0012]翻译模块,用于在所述第一数量小于所述第二数量的情况下,基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令;所述预设指令为所述第二架构对应的指令集中预先定义的用于访问所述新增寄存器的指令,所述待选源指令为所述源程序中对第一架构中的寄存器进行访问的源指令,所述第一架构对应的指令集与所述第二架构对
应的指令集之间不兼容;
[0013]其中,所述目标指令用于将所述待选源指令所指示的待存储数据存储至所述新增寄存器中,和
/
或,用于从所述待选源指令对应的新增寄存器中获取所述待选源指令所指示的数据

[0014]第三方面,本专利技术提供一种电子设备,包括:处理器

存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述二进制翻译方法

[0015]第四方面,本专利技术提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述二进制翻译方法

[0016]本专利技术实施例所提供的二进制翻译方法,应用于集成有新增寄存器的第二架构,通过在第二架构对应的指令集中预先定义用于访问新增寄存器的预设指令,从而在对源程序进行翻译的过程中,可以在第二架构可使用的寄存器的第一数量小于翻译源程序所需的寄存器的第二数量时,将对第一架构的寄存器进行访问的源指令翻译为目标指令,使目标指令对新增寄存器进行访问

由此,在二进制翻译场景下,增加了二进制翻译器可支配的寄存器数量,在一定程度上减少了翻译过程中寄存器不足时,将数据存储在内存中的情况

而对寄存器进行访问的效率相对于内存访问更高,因此可以一定程度上提高翻译后程序的访存效率,提升二进制翻译器的翻译性能

附图说明
[0017]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图

[0018]图1是本专利技术实施例提供的一种二进制翻译方法的步骤流程图;
[0019]图2是本专利技术实施例提供的一种二进制翻译装置的结构图;
[0020]图3是本专利技术实施例提供的一种电子设备的结构图

具体实施方式
[0021]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0022]图1是本专利技术实施例提供的一种二进制翻译方法的步骤流程图,该方法应用于集成有新增寄存器的第二架构,二进制翻译器可以运行于第二架构上,二进制翻译器用于将第一架构对应的源程序翻译为第二架构对应的目标程序,所述源程序及目标程序均为二进制码

在翻译过程中,二进制翻译器只能拿到待翻译的

运行于第一架构的经过编译处理的二进制代码
(
即源程序
)
,对源程序中的各个段进行映射,统一纳入二进制翻译器对应数据结构管理,基于映射信息对源程序中的代码段进行反汇编处理,转化为内部的
IR1
数据结构

基于
IR1
数据结构翻译出
IR2
数据结构并对其进行汇编,生成基于第二架构的汇编指令
编码
(
二进制代码形式
)
,并存储在映射的内存地址中

最后将内存中的各个段重新按照可执行文件的格式写入目标文件,完成翻译,得到目标程序

所述第二架构对应的指令集中预先定义有用于访问所述新增寄存器的预设指令,如图1所示,该方法可以包括如下步骤:
[0023]步骤
101、
在对源程序进行翻译的过程中,确定所述第二架构可使用的寄存器的第一数量以及翻译所述源程序所需的寄存器的第二数量

[0024]步骤
102、
在所述第一数量小于所述第二数量的情况下,基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令;所述预设指令为所述第二架构对应的指令集中预先定义的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种二进制翻译方法,其特征在于,所述方法应用于集成有新增寄存器的第二架构,所述方法包括:在对源程序进行翻译的过程中,确定所述第二架构可使用的寄存器的第一数量以及翻译所述源程序所需的寄存器的第二数量;在所述第一数量小于所述第二数量的情况下,基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令;所述预设指令为所述第二架构对应的指令集中预先定义的用于访问所述新增寄存器的指令,所述待选源指令为所述源程序中对第一架构中的寄存器进行访问的源指令,所述第一架构对应的指令集与所述第二架构对应的指令集之间不兼容;其中,所述目标指令用于将所述待选源指令所指示的待存储数据存储至所述新增寄存器中,和
/
或,用于从所述待选源指令对应的新增寄存器中获取所述待选源指令所指示的数据
。2.
根据权利要求1所述方法,其特征在于,所述预设指令包括第一预设指令,在所述待选源指令指示将待存储数据存储至第一寄存器中的情况下,所述基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令,包括:基于所述第一寄存器确定对应的新增寄存器以及第二寄存器;所述第二寄存器属于所述第二架构的原寄存器;基于所述待选源指令以及所述第二寄存器生成第一目标指令,所述第一目标指令用于将所述待选源指令指示的待存储数据存储至所述第二寄存器中;基于所述新增寄存器以及所述第一预设指令生成第二目标指令,所述第二目标指令用于将所述第二寄存器中的数据加载至所述新增寄存器中
。3.
根据权利要求1所述方法,其特征在于,所述预设指令包括第二预设指令,在所述待选源指令指示对第一寄存器中的数据进行运算操作的情况下,所述基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令,包括:基于所述第一寄存器确定对应的新增寄存器以及第二寄存器;所述第二寄存器属于所述第二架构的原寄存器;基于所述新增寄存器以及所述第二预设指令生成第三目标指令,所述第三目标指令用于将所述新增寄存器中的数据加载至所述第二寄存器中;基于所述待选源指令以及所述第二寄存器生成第四目标指令,所述第四目标指令用于对所述第二寄存器中的数据进行运算操作
。4.
根据权利要求1所述方法,其特征在于,所述预设指令包括第三预设指令,在所述待选源指令指示跳转至第一目标地址的情况下,所述基于预设指令将所述源程序中的至少一条待选源指令,翻译为目标指令,包括:确定所述待选源指令所指示的第一寄存器以及跳转偏移值;基于所述第一寄存器确定对应的新增寄存器;基于所述第一寄存器对应的新增寄存器

所述跳转偏移值以及所述第三预设指令生成第五目标指令;所述第五目标指令用于指示跳转至第二目标地址,所述第一目标地址为基于所述待选源指令中的跳转偏移值以及所述第一寄存器中的数据构成的目标地址,所述第二目标地址为基于所述第一寄存器对应的新增寄存器中的数据以及所述跳转偏移值构成
的目标地址
。5.
根据权利要求1所述方法,其特征在于,所述目标指令还用于指示生成目标信号,所述目标信号用于指示所述第二架构的处理器在接收到针对其他线程的调用操作的情况下,将所述新增寄存器中的数据存储至当前线程对应的线程数据区中;所述其他线程为与所述当前线程不同的线程;所述目标信号还用于指示所述第二架构的处理器在返回至所述当前线程的情况下,将所述当前线程对应的线程数据区中的数据存储至所述新增寄存器中
。6.
根据权利要求1‑5任一所述方法,其特征在于,所述新增寄存器与所述第二架构的通用寄存器的数据长度相同
。7.
一种二进制翻译装置,其特征在于,所述装置应用于集成有新增寄存器的第二架构,所述装置包括:数量确定模块,用于在对源程序进行翻译的过程中,确定所述第二架构可使用的寄存器的第一数量以及翻译所述源程序所需的寄存器的第二数量;翻译模块,用于在所述第一数量小...

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

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

1