System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别是涉及一种二进制翻译优化方法、装置、电子设备以及存储介质。
技术介绍
1、二进制翻译可以将运行在一种体系结构平台的源程序转换为运行在另一种体系结构平台的目标程序,以解决二进制层面的应用程序跨指令集架构运行的问题。二进制翻译是近年来计算机
的研究热点之一。
2、在x86体系结构中,sse(streaming simd extension)是simd(单指令多数据流)扩展指令集。x86 sse指令集中包括标量运算指令,用于替代原有的x87浮点运算指令。当运行这些标量运算指令时,向量寄存器的低位会保存运算结果,而高位则保留原值。而对于其他体系结构如risc体系结构的指令集来说,只会将低位运算结果计算出并存入目标寄存器,并不保证目标寄存器中的高位数据为原值。
3、因此,为了保证翻译语义的正确性,在每翻译一条标量运算指令时,都需要对向量寄存器中的高位数据执行“保存-恢复”操作,这会带来较大的开销,降低翻译后程序的性能。
技术实现思路
1、鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种二进制翻译优化方法,可以减少翻译标量运算指令产生的不必要的高位数据“保存-恢复”操作指令,从而提升翻译后程序的性能。
2、相应的,本专利技术实施例还提供了一种二进制翻译优化装置、电子设备、以及一种存储介质,用以保证上述方法的实现及应用。
3、第一方面,本专利技术实施例公开了一种二进制翻译优
4、识别待翻译的当前基本块中包含的指令的类型;所述指令的类型包括向量指令,所述向量指令包括向量运算指令和标量运算指令中的至少一种;
5、分析所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到所述当前基本块的高位数据分析结果;所述当前基本块的高位数据分析结果包含所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态;所述向量寄存器的高位数据的状态用于指示所述高位数据是否为预设值以及所述高位数据的来源;
6、根据所述当前基本块中包含的指令的类型以及所述当前基本块的高位数据分析结果,确定所述当前基本块的类型;所述当前基本块的类型用于指示对于所述当前基本块中存在的标量运算指令是否可以优化;
7、根据所述当前基本块的类型对所述当前基本块的翻译后指令进行优化。
8、第二方面,本专利技术实施例公开了一种二进制翻译优化装置,所述装置包括:
9、指令流分析模块,用于识别待翻译的当前基本块中包含的指令的类型;所述指令的类型包括向量指令,所述向量指令包括向量运算指令和标量运算指令中的至少一种;
10、数据流分析模块,用于分析所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到所述当前基本块的高位数据分析结果;所述当前基本块的高位数据分析结果包含所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态;所述向量寄存器的高位数据的状态用于指示所述高位数据是否为预设值以及所述高位数据的来源;
11、类型确定模块,用于根据所述当前基本块中包含的指令的类型以及所述当前基本块的高位数据分析结果,确定所述当前基本块的类型;所述当前基本块的类型用于指示对于所述当前基本块中存在的标量运算指令是否可以优化;
12、指令优化模块,用于根据所述当前基本块的类型对所述当前基本块的翻译后指令进行优化。
13、第三方面,本专利技术实施例公开了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如前述中任一所述的二进制翻译优化方法的步骤。
14、第四方面,本专利技术实施例公开了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时能够实现本专利技术实施例中任一所述的二进制翻译优化方法。
15、本专利技术实施例提供的二进制翻译优化方法、装置、电子设备及存储介质包括以下优点:
16、本专利技术实施例在二进制翻译过程中,对当前基本块进行分类,从而根据当前基本块的类型,确定是否可以对当前基本块中存在的标量运算指令进行优化,如删除翻译标量运算指令产生的不必要的“保存-恢复”操作指令,从而提升翻译后程序的性能。
17、进一步地,本专利技术实施例结合当前基本块中包含的指令的类型以及当前基本块的高位数据分析结果,对当前基本块进行分类,而不是单纯依据当前基本块中包含的指令的类型对当前基本块进行分类。通过当前基本块的高位数据分析结果,可以得知当前基本块中哪些向量指令对应的向量寄存器的高位数据是有意义的实际数据,是需要使用的,这样的高位数据仍然需要执行“保存-恢复”操作;以及得知当前基本块中哪些向量指令对应的向量寄存器的高位数据是不会被使用的,这样的高位数据则无需执行“保存-恢复”操作。由此,本专利技术实施例对当前基本块的类型识别更加精准,可以进一步减少冗余的“保存-恢复”操作指令,进一步提高翻译优化的效果。
本文档来自技高网...【技术保护点】
1.一种二进制翻译优化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述分析所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到所述当前基本块的高位数据分析结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前基本块中包含的指令的类型以及所述当前基本块的高位数据分析结果,确定所述当前基本块的类型,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述当前基本块的类型对所述当前基本块的翻译后指令进行优化,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
10.根据权利要求7所述的方法,其特征在于,所述根据所述当前基本块的类型和所述下一
11.根据权利要求7所述的方法,其特征在于,所述指令的类型还包括非向量指令,所述当前基本块的类型还包括普通类型,所述普通类型表示当前基本块中仅包含非向量指令;
12.根据权利要求8所述的方法,其特征在于,所述保存指定的向量寄存器的高位数据,包括:
13.根据权利要求9所述的方法,其特征在于,所述加载指定的向量寄存器的高位数据,包括:
14.一种二进制翻译优化装置,其特征在于,所述装置包括:
15.根据权利要求14所述的装置,其特征在于,所述数据流分析模块,包括:
16.根据权利要求15所述的装置,其特征在于,所述类型确定模块,包括:
17.根据权利要求14所述的装置,其特征在于,所述指令优化模块,具体用于:若确定所述当前基本块的类型为标量类型,则对于所述当前基本块中存在的标量运算指令,删除翻译所述标量运算指令产生的对向量寄存器的高位数据的保存及恢复操作指令。
18.根据权利要求14至17任一项所述的装置,其特征在于,所述装置还包括:
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
20.根据权利要求14至17任一项所述的装置,其特征在于,所述装置还包括:
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
22.根据权利要求20所述的装置,其特征在于,所述装置还包括:
23.根据权利要求20所述的装置,其特征在于,所述位置确定模块,具体用于:
24.根据权利要求20所述的装置,其特征在于,所述指令的类型还包括非向量指令,所述当前基本块的类型还包括普通类型,所述普通类型表示当前基本块中仅包含非向量指令;
25.根据权利要求21所述的装置,其特征在于,所述高位保存处理头处理模块,具体用于:获取所述当前基本块的高位数据分析结果;根据所述高位数据分析结果确定第一向量寄存器,所述第一向量寄存器的高位数据的状态为传递状态或者未定义状态;保存所述第一向量寄存器的高位数据。
26.根据权利要求22所述的装置,其特征在于,所述高位加载处理头处理模块,具体用于:获取所述当前基本块的高位数据初始信息;根据所述高位数据初始信息确定第二向量寄存器,所述第二向量寄存器的高位数据的状态为预设值状态;延迟加载所述第二向量寄存器的高位数据。
27.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1至13任一所述的二进制翻译优化方法的步骤。
28.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至13任一所述的二进制翻译优化方法的步骤。
...【技术特征摘要】
1.一种二进制翻译优化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述分析所述当前基本块中每条向量指令对应的向量寄存器的高位数据的状态,得到所述当前基本块的高位数据分析结果,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前基本块中包含的指令的类型以及所述当前基本块的高位数据分析结果,确定所述当前基本块的类型,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述当前基本块的类型对所述当前基本块的翻译后指令进行优化,包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
10.根据权利要求7所述的方法,其特征在于,所述根据所述当前基本块的类型和所述下一个基本块的类型,确定链接位置,包括:
11.根据权利要求7所述的方法,其特征在于,所述指令的类型还包括非向量指令,所述当前基本块的类型还包括普通类型,所述普通类型表示当前基本块中仅包含非向量指令;
12.根据权利要求8所述的方法,其特征在于,所述保存指定的向量寄存器的高位数据,包括:
13.根据权利要求9所述的方法,其特征在于,所述加载指定的向量寄存器的高位数据,包括:
14.一种二进制翻译优化装置,其特征在于,所述装置包括:
15.根据权利要求14所述的装置,其特征在于,所述数据流分析模块,包括:
16.根据权利要求15所述的装置,其特征在于,所述类型确定模块,包括:
17.根据权利要求14所述的装置,其特征在于,所述指令优化模块,具体用于:若确定所述当前基本块的类型为标量类型,则...
【专利技术属性】
技术研发人员:胡起,兰彦志,杨兆鑫,曾露,
申请(专利权)人:龙芯中科技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。