本申请涉及微架构,具体而言,本申请涉及一种指令执行方法、装置、设备及存储介质。
背景技术:
1、微架构又称为微体系结构/微处理器体系结构。是在计算机工程中,将一种给定的指令集架构在处理器中执行的方法。一种给定指令集可以在不同的微架构中执行。实施中可能因应不同的设计目的和技术提升而有所不同。计算机架构是微架构和指令集设计的结合。在微架构中,为了提升指令处理速度和效率,常采用流水线(pipeline)技术,该流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。
2、随着技术的发展,计算机架构中cpu(central processing unit,中央处理器)、vpu(vector processing unit、矢量处理器)这些专注于不同数据处理的对象。然而,在使用流水线技术时,采取所有对象共同参与到同一个指令的处理的方式,这未能充分利用不同对象的数据处理特性,且容易造成计算资源的浪费,限制计算性能的提升。
技术实现思路
1、本申请实施例提供了一种指令执行方法、装置、设备及存储介质,可以解决计算机机构不能充分利用不同对象的数据处理特性,容易浪费计算资源的问题。为了实现该目的,本申请实施例提供了如下几个方案。
2、根据本申请实施例的一个方面,提供了一种指令执行方法,该方法包括:
3、接收到目标指令,获取目标系统中用于执行所述目标指令的目标对象,所述目标对象包括中央处理器、矢量处理器,所述中央处理器与所述矢量处理器之间设有用于数据交互的预设缓存;
4、利用所述目标对象对应的流水线执行所述目标指令,并将目标指令执行中产生的交互数据写入预设缓存,以在目标指令执行过程中完成所述中央处理器与所述矢量处理器之间的数据交互。
5、在一个可能的实现方式中,所述获取目标系统中用于执行所述目标指令的目标对象包括:
6、识别所述目标指令的类型,根据所述类型确定执行所述目标指令的目标对象;
7、所述类型包括处理器指令、矢量处理器指令、第一指令中的至少一种,所述第一指令被所述中央处理器、所述矢量处理器中的任一个执行。
8、在一个可能的实现方式中,所述目标系统包括指令拾取单元,所述根据所述类型确定执行所述目标指令的目标对象,包括:
9、通过所述指令拾取单元对所述目标指令执行指令译码操作;
10、根据译码结果和所述类型,确定执行所述目标指令的目标对象。
11、在一个可能的实现方式中,所述利用所述目标对象对应的流水线执行所述目标指令,包括以下至少一项:
12、若所述目标指令为处理器指令,则通过所述中央处理器的数据处理流水线执行译码后的所述目标指令;
13、若所述目标指令为矢量处理器指令,且根据译码结果确定译码后的目标指令正常,则将译码后的目标指令发送给矢量处理器以通过所述矢量处理器对应的流水线执行译码后的目标指令;
14、若所述目标指令为矢量处理器指令,且根据译码结果确定译码后的目标指令异常,则将译码后的目标指令发送给所述中央处理器;
15、若所述目标指令为第一指令,则获取所述目标指令对应的目标对象,根据所述目标对象对应的流水线执行译码后的目标指令,其中,若所述目标对象为矢量处理器,则通过所述中央处理器的刷新信号刷新异常的目标指令。
16、在一个可能的实现方式中,所述将译码后的目标指令发送给所述中央处理器,还包括:
17、在访存阶段,通过所述矢量处理器将目标指令的标识信息发送至预设缓存;
18、所述利用所述目标对象对应的流水线执行所述目标指令,还包括:
19、通过所述中央处理器接收所述矢量处理器提交的目标指令的标识信息,并在写回阶段根据所述标识信息以及所述目标指令的类型对所述目标指令进行退休处理。
20、在一个可能的实现方式中,所述在写回阶段根据所述标识信息以及所述目标指令的类型对所述目标指令进行退休处理,包括:
21、所述中央处理器在写回阶段保存退休标识信息,在写回阶段或退休阶段将所述标识信息发送给所述矢量处理器,以使所述矢量处理器根据所述退休标识信息进行目标指令的退休检查,其中,所述退休标识信息的更新包括写回阶段的数据清除、执行阶段的分支预测错误中的至少一种。
22、在一个可能的实现方式中,所述预设缓存包括第一缓存、第二缓存,所述中央处理器通过所述第一缓存将交互数据写入所述矢量处理器,所述矢量处理器通过所述第二缓存将交互数据写入所述中央处理器;
23、所述将目标指令执行中产生的交互数据写入预设缓存,包括:
24、根据获取的所述交互数据的写入对象、来源信息确定待写入的预设缓存的分类;
25、根据所述交互数据的类型将所述交互数据写入相应分类的预设缓存中。
26、本申请提供一种指令执行装置,所述装置,包括:
27、目标对象获取模块,用于接收到目标指令,获取目标系统中用于执行所述目标指令的目标对象,所述目标对象包括中央处理器、矢量处理器,所述中央处理器与所述矢量处理器之间设有用于数据交互的预设缓存;
28、指令执行模块,用于利用所述目标对象对应的流水线执行所述目标指令,并将目标指令执行中产生的交互数据写入预设缓存,以在目标指令执行过程中完成所述中央处理器与所述矢量处理器之间的数据交互。
29、本申请提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上所述方法的步骤。
30、根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
31、本申请实施例提供的技术方案带来的有益效果是:
32、本申请提供的指令执行方法接收到目标指令后,获取目标系统中用于执行该目标指令的目标对象,该目标对象包括中央处理器、矢量处理器,中央处理器与矢量处理器之间设有用于数据交互的预设缓存,利用该目标对象对应的流水线执行目标指令,并将目标指令执行中产生的交互数据写入预设缓存,实现中央处理器与矢量处理器之间的数据交互。本申请实施例获取目标指令后,获取指令该目标指令的目标对象,通过该目标对象对应的流水线进行执行目标指令,解耦中央处理器与矢量处理器的流水线,并通过预设缓存存储交互数据,便于目标指令相关的结构进行数据交互。本申请实施例通过目标指令相关的目标对象执行目标指令的方式,解决需要全部对象参与指令处理的问题,便于利用对应的处理器的数据处理特性,减少计算资源的浪费,并通过预设缓存进行数据交互,实现中央处理器与矢量处理器之间的数据同步和减少二者的相互干扰,提升计算机架构的计算性能。
1.一种指令执行方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取目标系统中用于执行所述目标指令的目标对象包括:
3.根据权利要求2所述的方法,其特征在于,所述目标系统包括指令拾取单元,所述根据所述类型确定执行所述目标指令的目标对象,包括:
4.根据权利要求3所述的方法,其特征在于,所述利用所述目标对象对应的流水线执行所述目标指令,包括以下至少一项:
5.根据权利要求4所述的方法,其特征在于,所述将译码后的目标指令发送给所述中央处理器,还包括:
6.根据权利要求5所述的方法,其特征在于,所述在写回阶段根据所述标识信息以及所述目标指令的类型对所述目标指令进行退休处理,包括:
7.根据权利要求2所述的方法,其特征在于,所述预设缓存包括第一缓存、第二缓存,所述中央处理器通过所述第一缓存将交互数据写入所述矢量处理器,所述矢量处理器通过所述第二缓存将交互数据写入所述中央处理器;
8.一种指令执行装置,其特征在于,所述装置,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。