指令功能模型的实现方法和装置、电子设备和存储介质制造方法及图纸

技术编号:39326937 阅读:9 留言:0更新日期:2023-11-12 16:04
本公开的实施例提供了指令功能模型的实现方法和装置、电子设备和存储介质。该指令功能模型的实现方法包括:获取符合第一指令集且要从第一指令集翻译为第二指令集的对象指令,其中,第一指令集是对第二指令集的扩展;向目标计算机的内存空间填写目标计算机支持的系统操作代码和功能与对象指令对应的目标指令代码,其中,目标计算机支持运行第二指令集;执行系统操作代码和目标指令代码以实现对对象指令的功能的模拟。该方法能够通过二进制翻译实现例如AVX

【技术实现步骤摘要】
指令功能模型的实现方法和装置、电子设备和存储介质


[0001]本公开的实施例涉及一种指令功能模型的实现方法、指令功能模型的实现装置、电子设备和存储介质。

技术介绍

[0002]二进制翻译(binary translation)是一种二进制机器码的重编译方式,使指令序列从源指令集机器码翻译至目标指令集机器码。在功能模型或指令集仿真中,目标指令集和源指令集可能相同,利用仿真计算机支持的指令集模拟源指令集功能。例如,在实现X86指令集功能模型时,可以通过二进制翻译,对指令序列进行翻译加工得到对应的X86指令序列并运行在具有X86微架构的计算机上,得到模拟的指令序列结果;或者在实现ARMv9指令集功能模型时,可以通过二进制翻译,对指令序列进行翻译加工得到对应的ARMv9指令序列并运行在具有ARMv9微架构的计算机上,得到模拟的指令序列结果。但是,即使源指令集和目标指令集相同,二进制翻译也要处理模拟环境和计算机环境之间的切换传递,指令集系统功能实现等问题。

技术实现思路

[0003]本公开的至少一个实施例提供了一种指令功能模型的实现方法,包括:获取符合第一指令集且要从所述第一指令集翻译为第二指令集的对象指令,其中,所述第一指令集是对所述第二指令集的扩展;向目标计算机的内存空间填写所述目标计算机支持的系统操作代码和功能与所述对象指令对应的目标指令代码,其中,所述目标计算机支持运行所述第二指令集;执行所述系统操作代码和所述目标指令代码以实现对所述对象指令的功能的模拟。
[0004]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述向目标计算机的内存空间填写所述目标计算机支持的系统操作代码和功能与所述对象指令对应的目标指令代码,包括:当所述对象指令的向量长度小于相应长度时,用符合所述第二指令集的一条目标指令代替所述对象指令,当所述对象指令的向量长度等于所述相应长度时,用符合所述第二指令集的至少两条目标指令代替所述对象指令。
[0005]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法,还包括:将所述至少两条目标指令分别计算得到的至少两部分计算结果进行拼接并写回目的操作数。
[0006]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,当用所述目标计算机支持的两条目标指令代替所述对象指令时,所述指令功能模型的实现方法还包括:将所述对象指令的向量操作数的有效位宽对半划分为第一部分和第二部分;使用所述两条目标指令中的第一目标指令对所述第一部分进行计算,并将所得到的第一计算结果进行暂存;使用所述两条目标指令中的第二目标指令对所述第二部分进行计算,并将所得到的第二计算结果与所述第一计算结果进行拼接以形成最终计算结果;以及将所述最终计算
结果一次写回目的操作数。
[0007]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述使用所述两条目标指令中的第二目标指令对所述第二部分进行计算,并将所得到的第二计算结果与所述第一计算结果进行拼接以形成最终计算结果,包括:将所述第一计算结果和所述第二计算结果中的任何一个作为所述最终计算结果的连续高位,并且将所述第一计算结果和所述第二计算结果中的另一个作为所述最终计算结果的连续低位。
[0008]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:当所述对象指令使能了静态舍入控制时,将所述目标计算机中用于存储指示静态舍入控制的字段的寄存器的值改写为指示静态舍入控制的舍入模式的值。
[0009]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:当所述对象指令使能了异常抑制时,将所述目标计算机中用于存储指示异常抑制的字段的寄存器的值改写为指示异常抑制模式的值。
[0010]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:对所述对象指令进行译码,以识别所述对象指令并得到所述对象指令的指令信息,其中,所述指令信息包括指令功能,所述指令功能包括所述第一指令集相对于所述第二指令集的扩展功能。
[0011]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述扩展功能包括使指定数据元素不参与计算和异常标志更新的运算掩码功能,所述执行所述系统操作代码和所述目标指令代码以实现对所述对象指令的功能的模拟,包括:在执行读写操作之前,根据所述对象指令使用的掩码寄存器值计算出指令的读写的有效范围,并对所述读写操作进行异常检查。
[0012]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:若所述读写操作为对源操作数的读取操作且所述读取操作不存在异常,在执行所述读取操作之前,根据所述掩码寄存器值判断是否需要对所述源操作数的每一个数据元素并读取,或者若所述读写操作为对目的操作数的写入操作且所述写入操作不存在异常,在执行所述写入操作之前,根据所述掩码寄存器值判断是否需要对写入的所述目的操作数的每一个数据元素并写入。
[0013]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:当所述源操作数中存在被掩码寄存器值掩盖的数据元素时,不读取所述源操作数的被掩码寄存器值掩盖的数据元素;当所述目的操作数中存在被掩码寄存器值掩盖的数据元素时,不写入所述目的操作数的被掩码寄存器值掩盖的数据元素。
[0014]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:当所述源操作数为浮点格式且所述对象指令没有开启静态舍入控制或异常抑制时,根据所述掩码寄存器值对所述源操作数中被掩码覆盖的浮点数据元素进行替换,以使得被掩码覆盖的浮点数据元素在计算中不会产生异常。
[0015]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述指令功能模型的实现方法还包括:当所述对象指令开启了内嵌广播功能时,对所述读取操作读取得到的操作数进行复制以得到最终有效的操作数向量。
[0016]例如,在本公开的至少一个实施例提供的指令功能模型的实现方法中,所述对象指令符合AVX

512指令集,所述目标指令代码符合与AVX

512指令集不同的矢量扩展指令集。
[0017]本公开的至少一个实施例还提供了一种指令功能模型的实现装置,所述指令功能模型的实现装置包括:获取单元,配置为获取符合第一指令集且要从所述第一指令集翻译为第二指令集的对象指令,其中,所述第一指令集是对所述第二指令集的扩展;填写单元,配置为向目标计算机的内存空间填写所述目标计算机支持的系统操作代码和功能与所述对象指令对应的目标指令代码,其中,所述目标计算机支持运行所述第二指令集;执行单元,配置为执行所述系统操作代码和所述目标指令代码以实现对所述对象指令的功能的模拟。
[0018]本公开的至少一个实施例还提供了本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令功能模型的实现方法,包括:获取符合第一指令集且要从所述第一指令集翻译为第二指令集的对象指令,其中,所述第一指令集是对所述第二指令集的扩展;向目标计算机的内存空间填写所述目标计算机支持的系统操作代码和功能与所述对象指令对应的目标指令代码,其中,所述目标计算机支持运行所述第二指令集;执行所述系统操作代码和所述目标指令代码以实现对所述对象指令的功能的模拟。2.根据权利要求1所述的指令功能模型的实现方法,其中,所述向目标计算机的内存空间填写所述目标计算机支持的系统操作代码和功能与所述对象指令对应的目标指令代码,包括:当所述对象指令的向量长度小于相应长度时,用符合所述第二指令集的一条目标指令代替所述对象指令,当所述对象指令的向量长度等于所述相应长度时,用符合所述第二指令集的至少两条目标指令代替所述对象指令。3.根据权利要求2所述的指令功能模型的实现方法,还包括:将所述至少两条目标指令分别计算得到的至少两部分计算结果进行拼接并写回目的操作数。4.根据权利要求3所述的指令功能模型的实现方法,其中,当用所述目标计算机支持的两条目标指令代替所述对象指令时,所述指令功能模型的实现方法还包括:将所述对象指令的向量操作数的有效位宽对半划分为第一部分和第二部分;使用所述两条目标指令中的第一目标指令对所述第一部分进行计算,并将所得到的第一计算结果进行暂存;使用所述两条目标指令中的第二目标指令对所述第二部分进行计算,并将所得到的第二计算结果与所述第一计算结果进行拼接以形成最终计算结果;以及将所述最终计算结果一次写回目的操作数。5.根据权利要求4所述的指令功能模型的实现方法,其中,所述使用所述两条目标指令中的第二目标指令对所述第二部分进行计算,并将所得到的第二计算结果与所述第一计算结果进行拼接以形成最终计算结果,包括:将所述第一计算结果和所述第二计算结果中的任何一个作为所述最终计算结果的连续高位,并且将所述第一计算结果和所述第二计算结果中的另一个作为所述最终计算结果的连续低位。6.根据权利要求1

5中任一所述的指令功能模型的实现方法,还包括:当所述对象指令使能了静态舍入控制时,将所述目标计算机中用于存储指示静态舍入控制的字段的寄存器的值改写为指示静态舍入控制的舍入模式的值。7.根据权利要求1

5中任一所述的指令功能模型的实现方法,还包括:当所述对象指令使能了异常抑制时,将所述目标计算机中用于存储指示异常抑制的字段的寄存器的值改写为指示异常抑制模式的值。8.根据权利要求1

5中任一所述的指令功能模型的实现方法,还包括:对所述对象指令进行译码,以识别所述对象指令并得到所述对象指令的指令信息,其中,所述指令信息包括指令功能,所述指令功能包括所述第一指令集相对于所述第二指令
集的扩展功能。9.根据权利要求8所述的指令功能模型的实...

【专利技术属性】
技术研发人员:赵炎
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1