-
公开(公告)号:CN116126350B
公开(公告)日:2023-09-12
申请号:CN202310407639.0
申请日:2023-04-17
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供一种二进制翻译方法、二进制翻译器及电子设备,该方法包括:在翻译到源代码中的第一类指令时,在目标代码中的当前地址处将所述第一类指令翻译为宿主平台的第一目标指令;在翻译到源代码中的第二类指令时,在预置的翻译代码段中将所述第二类指令翻译为宿主平台的第二目标指令,并且在目标代码中的当前地址处设置预置跳转指令,所述预置跳转指令用于跳转至所述翻译代码段中的所述第二目标指令的代码段入口地址。本发明实施例提供的二进制翻译方法具有静态翻译的优点,并且可以保证静态二进制翻译中指令跳转的正确性,使得一次翻译得到的目标程序可以被多次使用,具有较低的运行成本。
-
公开(公告)号:CN116610325A
公开(公告)日:2023-08-18
申请号:CN202310898019.1
申请日:2023-07-20
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、装置、电子设备及存储介质,其中的方法包括:对于待翻译的基本块,根据所述基本块中各指令之间的依赖关系,构建依赖关系链;所述依赖关系链中的每条包含具有依赖关系的至少两条指令;基于所述依赖关系链和翻译模板库中的翻译模板,确定所述基本块包含的待优化指令序列;所述待优化指令序列来自所述依赖关系链中具有相匹配的翻译模板的指令序列;基于所述待优化指令序列对应的翻译模板,翻译所述待优化指令序列,得到优化后的指令序列。本发明实施例可以减少冗余指令的产生,提高翻译后程序的效率。
-
公开(公告)号:CN117369829A
公开(公告)日:2024-01-09
申请号:CN202311300686.1
申请日:2023-07-20
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、电子设备及存储介质,其中的方法包括:对于待翻译的基本块,根据所述基本块中第一指令集架构的指令之间的依赖关系,构建依赖关系链,所述依赖关系链中的指令顺序与所述基本块的指令流顺序不同;将所述依赖关系链中的指令序列与翻译模版库中的翻译模板进行匹配,所述翻译模板用于按照语义将第一指令集架构的指令序列翻译为第二指令集架构的指令序列;以及利用匹配的翻译模板,对所述依赖关系链中的第一指令集架构的指令序列进行整体翻译。本发明实施例可以减少冗余指令的产生,提高翻译后程序的效率。
-
公开(公告)号:CN117075913A
公开(公告)日:2023-11-17
申请号:CN202310929744.0
申请日:2023-07-26
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、装置、电子设备及存储介质,其中的方法包括:在对基本块进行翻译的过程中,在基本块的指定区域记录优化后的指令序列与优化前的指令序列之间产生的差异信息,以及差异信息对应的位置信息,所述位置信息包括被优化指令的入口地址;在执行翻译后的基本块的过程中捕获目标消息,并根据触发目标消息的指令位置确定目标位置;目标消息包括用于指示出现异常或自修改的消息;根据目标位置对应的差异信息,对目标位置的优化后的指令序列进行修正。本发明实施例在指令优化过程中保留指令优化产生的差异信息,在出现异常等情况时可以根据记录的差异信息实现指令修正,以提高翻译后程序运行的正确性。
-
公开(公告)号:CN116126350A
公开(公告)日:2023-05-16
申请号:CN202310407639.0
申请日:2023-04-17
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供一种二进制翻译方法、二进制翻译器及电子设备,该方法包括:在翻译到源代码中的第一类指令时,在目标代码中的当前地址处将所述第一类指令翻译为宿主平台的第一目标指令;在翻译到源代码中的第二类指令时,在预置的翻译代码段中将所述第二类指令翻译为宿主平台的第二目标指令,并且在目标代码中的当前地址处设置预置跳转指令,所述预置跳转指令用于跳转至所述翻译代码段中的所述第二目标指令的代码段入口地址。本发明实施例提供的二进制翻译方法具有静态翻译的优点,并且可以保证静态二进制翻译中指令跳转的正确性,使得一次翻译得到的目标程序可以被多次使用,具有较低的运行成本。
-
公开(公告)号:CN118012506B
公开(公告)日:2024-06-07
申请号:CN202410417400.6
申请日:2024-04-08
Applicant: 龙芯中科技术股份有限公司
IPC: G06F9/30
Abstract: 本发明实施例提供了一种二进制翻译优化方法、装置、电子设备及存储介质,其中的方法包括:识别待翻译的当前基本块中包含的指令的类型;指令的类型包括向量指令,向量指令包括向量运算指令和/或标量运算指令;分析当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到当前基本块的高位数据分析结果;根据当前基本块中包含的指令的类型以及当前基本块的高位数据分析结果,确定当前基本块的类型;当前基本块的类型用于指示当前基本块中存在的标量运算指令是否可以优化;根据当前基本块的类型对当前基本块进行优化。本发明实施例可以减少翻译标量运算指令产生的高位数据“保存‑恢复”的冗余指令,提升翻译后程序的性能。
-
公开(公告)号:CN116661808B
公开(公告)日:2023-11-10
申请号:CN202310925338.7
申请日:2023-07-26
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、装置、电子设备及存储介质,其中的方法包括:翻译前序基本块并确定翻译后的前序基本块中存在的不确定优化指令;所述不确定优化指令表示该指令的优化条件在翻译后续基本块的过程中才能确定是否可被满足;记录所述不确定优化指令的相关信息;所述相关信息包括所述不确定优化指令的优化条件;在翻译后续基本块的过程中,若确定所述优化条件被满足,则对所述前序基本块中的所述不确定优化指令进行优化。本发明实施例不用提前翻译后续基本块即可实现跨基本块的指令优化,可以提高翻译效率,还可以减少二进制翻译过程中冗余指令的产生,进而可以提高翻译后程序的运行效率。
-
公开(公告)号:CN116610325B
公开(公告)日:2023-11-10
申请号:CN202310898019.1
申请日:2023-07-20
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、装置、电子设备及存储介质,其中的方法包括:对于待翻译的基本块,根据所述基本块中各指令之间的依赖关系,构建依赖关系链;所述依赖关系链中的每条包含具有依赖关系的至少两条指令;基于所述依赖关系链和翻译模板库中的翻译模板,确定所述基本块包含的待优化指令序列;所述待优化指令序列来自所述依赖关系链中具有相匹配的翻译模板的指令序列;基于所述待优化指令序列对应的翻译模板,翻译所述待优化指令序列,得到优化后的指令序列。本发明实施例可以减少冗余指令的产生,提高翻译后程序的效率。
-
公开(公告)号:CN118012506A
公开(公告)日:2024-05-10
申请号:CN202410417400.6
申请日:2024-04-08
Applicant: 龙芯中科技术股份有限公司
IPC: G06F9/30
Abstract: 本发明实施例提供了一种二进制翻译优化方法、装置、电子设备及存储介质,其中的方法包括:识别待翻译的当前基本块中包含的指令的类型;指令的类型包括向量指令,向量指令包括向量运算指令和/或标量运算指令;分析当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到当前基本块的高位数据分析结果;根据当前基本块中包含的指令的类型以及当前基本块的高位数据分析结果,确定当前基本块的类型;当前基本块的类型用于指示当前基本块中存在的标量运算指令是否可以优化;根据当前基本块的类型对当前基本块进行优化。本发明实施例可以减少翻译标量运算指令产生的高位数据“保存‑恢复”的冗余指令,提升翻译后程序的性能。
-
公开(公告)号:CN117369830A
公开(公告)日:2024-01-09
申请号:CN202311302584.3
申请日:2023-07-26
Applicant: 龙芯中科技术股份有限公司
Abstract: 本发明实施例提供了一种二进制翻译方法、电子设备及存储介质,方法包括:在翻译前序基本块的过程中,将第一指令集的源指令序列中的运算指令和条件跳转指令的组合翻译为第二指令集的目标指令序列的条件跳转指令和标志位计算指令;以及在翻译后续基本块的过程中,若后续基本块中的源指令序列产生的标志位覆盖前序基本块中的运算指令产生的标志位,则对前序基本块对应的目标指令序列中的标志位计算指令进行优化。本发明实施例不用提前翻译后续基本块即可实现跨基本块的指令优化,可以提高翻译效率,还可以减少二进制翻译过程中冗余指令的产生,进而可以提高翻译后程序的运行效率。
-
-
-
-
-
-
-
-
-