指令翻译方法、代码翻译装置、处理器和片上系统与流程

摘要: 本申请涉及处理器领域,具体而言,涉及一种指令翻译方法、代码翻译装置、处理器和片上系统。背景技术:1、在计算领域,二进制翻译技术扮演着至关重要的角色,尤其是在架构...
指令翻译方法、代码翻译装置、处理器和片上系统与流程

本申请涉及处理器领域,具体而言,涉及一种指令翻译方法、代码翻译装置、处理器和片上系统。

背景技术:

1、在计算领域,二进制翻译技术扮演着至关重要的角色,尤其是在架构兼容性和移植性方面,通过二进制翻译技术,可以直接将源架构代码中的立即数,映射至目标架构中,以构建出对应的目标架构代码,从而实现将源架构代码可以移植到目标架构。而由于一些指令中可能会存在位宽较大的立即数,这些立即数可能不适用于目前二进制翻译技术中涉及的立即数映射方式,导致在对含有位宽较大的立即数进行二进制翻译时,会存在翻译效率低的问题。

2、针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

1、本申请实施例提供了一种指令翻译方法、代码翻译装置、处理器和片上系统,以至少解决相关技术中对存在大立即数的指令进行翻译的效率较低的技术问题。

2、根据本申请实施例的一个方面,提供了一种指令翻译方法,包括:获取待目标处理器执行的源架构代码,并将源架构代码翻译成目标架构代码,其中,源架构代码为源处理器对应的源架构下执行的代码,目标架构代码为目标处理器对应的目标架构下执行的代码;在将源架构代码翻译成目标架构代码的过程中,响应于源架构代码中的待翻译指令是预设指令,对待翻译指令进行解析,确定待翻译指令对应的数据加载方式,其中,预设指令中包含位宽大于预设位宽的目标数值;基于数据加载方式将目标数值加载至预设存储单元中,生成目标数值对应的指令序列;基于指令序列构建待翻译指令对应的目标指令。

3、根据本申请实施例的一个方面,提供了一种指令执行方法,包括:响应于接收到数据读取指令,从预设存储单元中读取目标指令,其中,目标指令用于表征幂根据指令序列构建的指令,指令序列用于表征根据预设存储单元中存储的目标数值生成的指令序列,目标数值通过数据加载方式加载至预设存储单元中,数据加载方式用于表征在将源架构代码翻译成目标架构代码的过程中,对源架构代码中的待翻译指令进行解析确定出的数据加载方式,待翻译指令为预设指令,预设指令包含目标数值,目标数值的位宽大于预设位宽,源架构代码为源处理器对应的源架构下执行的代码,目标架构代码为目标处理器对应的目标架构下执行的代码,目标指令属于目标架构代码;对目标指令进行解码,得到指令解码结果;基于指令解码结果执行目标指令,得到指令执行结果。

4、根据本申请实施例的另一个方面,还提供了一种指令翻译装置,包括:代码翻译模块,用于获取待目标处理器执行的源架构代码,并将源架构代码翻译成目标架构代码,其中,源架构代码为源处理器对应的源架构下执行的代码,目标架构代码为目标处理器对应的目标架构下执行的代码;指令解析模块,用于在将源架构代码翻译成目标架构代码的过程中,响应于源架构代码中的待翻译指令是预设指令,对待翻译指令进行解析,确定待翻译指令对应的数据加载方式,其中,预设指令中包含位宽大于预设位宽的目标数值;序列生成模块,用于基于数据加载方式将目标数值加载至预设存储单元中,生成目标数值对应的指令序列;指令构建模块,用于基于指令序列构建待翻译指令对应的目标指令。

5、根据本申请实施例的一个方面,提供了一种指令执行装置,包括:指令读取模块,用于响应于接收到数据读取指令,从预设存储单元中读取目标指令,其中,目标指令用于表征幂根据指令序列构建的指令,指令序列用于表征根据预设存储单元中存储的目标数值生成的指令序列,目标数值通过数据加载方式加载至预设存储单元中,数据加载方式用于表征在将源架构代码翻译成目标架构代码的过程中,对源架构代码中的待翻译指令进行解析确定出的数据加载方式,待翻译指令为预设指令,预设指令包含目标数值,目标数值的位宽大于预设位宽,源架构代码为源处理器对应的源架构下执行的代码,目标架构代码为目标处理器对应的目标架构下执行的代码,目标指令属于目标架构代码;指令解码模块,用于对目标指令进行解码,得到指令解码结果;指令执行模块,用于基于指令解码结果执行目标指令,得到指令执行结果。

6、根据本申请实施例的另一个方面,还提供了一种代码翻译装置,用于执行上述指令翻译方法。

7、根据本申请实施例的另一个方面,还提供了一种处理器,包括上述代码翻译装置。

8、根据本申请实施例的另一个方面,还提供了一种片上系统,包括上述代码翻译装置。

9、根据本申请实施例的另一方面,还提供了一种计算设备,包括:存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行本申请各个实施例中的方法。

10、根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序被处理器执行时实现本申请各个实施例中的方法。

11、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括计算机指令,计算机指令在被处理器执行时实现本申请各个实施例中的方法。

12、根据本申请实施例的另一方面,还提供了一种计算机程序产品,包括非易失性计算机可读存储介质,非易失性计算机可读存储介质存储计算机程序,计算机程序被处理器执行时实现本申请各个实施例中的方法。

13、根据本申请实施例的另一方面,还提供了一种计算机程序,计算机程序被处理器执行时实现本申请各个实施例中的方法。

14、在本申请实施例中,采用获取待目标处理器执行的源架构代码,并将源架构代码翻译成目标架构代码;在将源架构代码翻译成目标架构代码的过程中,响应于源架构代码中的待翻译指令是预设指令,对待翻译指令进行解析,确定待翻译指令对应的数据加载方式;基于数据加载方式将目标数值加载至预设存储单元中,生成目标数值对应的指令序列;基于指令序列构建待翻译指令对应的目标指令的方式,通过在确定待翻译指令包含位宽较大的目标数值的情况下,对目标数值的数值特性进行分析,以确定合适的用于将目标数值加载至预设存储单元的数据加载方式,可以保证确定出的数据加载方式的合理性,从而提高将目标数值加载至预设存储单元的效率和稳定性,进而解决了相关技术中对存在大立即数的指令进行翻译的效率较低的技术问题。

15、容易注意到的是,上面的通用描述和后面的详细描述仅仅是为了对本申请进行举例和解释,并不构成对本申请的限定。

1.一种指令翻译方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述对所述待翻译指令进行解析,确定所述待翻译指令对应的数据加载方式,包括:

3.根据权利要求2所述的方法,其特征在于,所述至少一个扩展指令集包括:标准扩展指令集和增强扩展指令集,所述标准扩展指令集中的指令用于对所述目标数值的位字段进行处理,所述增强扩展指令集中的指令用于直接将所述目标数值从源架构映射至所述目标架构;所述获取所述至少一个扩展指令集对应的使用条件,包括:

4.根据权利要求3所述的方法,其特征在于,所述响应于所述数值特征满足所述使用条件,基于所述至少一个扩展指令集包括的至少一个扩展指令,构建所述数据加载方式,包括:

5.根据权利要求3所述的方法,其特征在于,所述方法还包括:

6.根据权利要求2所述的方法,其特征在于,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.一种指令执行方法,其特征在于,包括:

10.一种代码翻译装置,其特征在于,所述代码翻译装置用于执行权利要求1至9中任意一项所述的方法。

11.一种处理器,其特征在于,包括:权利要求10所述的装置。

12.一种片上系统,其特征在于,包括:权利要求10所述的装置。

13.一种计算设备,其特征在于,包括:

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的可执行程序,其中,在所述可执行程序被处理器执行时实现根据权利要求1至9中任意一项所述的方法。

15.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令在被处理器执行时实现根据权利要求1至9中任意一项所述的方法。