一种指令的相关性验证方法、装置、电子设备及存储介质与流程

文档序号:20917522发布日期:2020-05-29 13:43阅读:203来源:国知局
一种指令的相关性验证方法、装置、电子设备及存储介质与流程

本发明属于计算机图形领域,具体涉及一种指令的相关性验证方法、装置、电子设备及存储介质。



背景技术:

在计算机图形领域中,图形处理器中所运行的指令是否相关,是影响程序的执行效率和执行正确率的重要因素。这里,指令相关,包括数据相关、结构相关以及控制相关。其中,指令相关是指运行指令时所涉及的数据相关;结构相关是指运行指令时所需的硬件结构资源相关;控制相关是指指令的流水处理过程相关。为了提高程序的执行效率和执行正确率,有必要在图形处理器中预先进行指令相关的验证,进而以验证结果为指导,规避在图形处理器中容易出现的指令相关的情况。

相关技术中,应用于图形处理器中的指令的相关性验证方法中,通常针对每种类型的指令相关,单独编写验证程序;然后,依次运行所编写的各个验证程序,得到图形处理器中的指令的相关性验证结果。

然而,发明人发现,相关技术中所得到的指令的相关性验证结果,并不足以全面地获知图形处理器中容易出现的指令相关的各种情况,从而使得指令的相关性验证结果对于规避指令相关的情况的指导价值较低。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种相关性的验证方法、装置、电子设备及存储介质。本发明要解决的技术问题通过以下技术方案实现:

第一方面,本发明实施例提供了一种指令的相关性验证方法,应用于电子设备,所述电子设备包含有图形处理器,所述方法包括:

分别执行预设的多个第一验证程序,得到第一验证结果;其中,任一所述第一验证程序由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个所述激励测试程序均包含一组数据相关、结构相关或控制相关的指令,且构成任一第一验证程序的激励测试程序所包含指令的个数总和不大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

分别执行预设的多个第二验证程序,得到第二验证结果;其中,任一所述第二验证程序由从所述多个激励测试程序中选取的一个或多个激励测试程序构成,且构成任一所述第二验证程序的激励测试程序所包含指令的个数总和大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

分别执行预设的多个第三验证程序,得到第三验证结果;其中,任一所述第三验证程序,由随机选取的至少一个第一验证程序和至少一个第二验证程序构成。

在本发明的一个实施例中,所述分别执行预设的多个第二验证程序,得到第二验证结果的步骤,包括:

针对每个第二验证程序,按照所述指令发射窗口的大小所指示的指令发射个数,将该第二验证程序所包含的激励测试程序中的指令,成组的发射到所述图形处理器的指令执行单元中执行,得到每组指令的执行结果;

根据每组非第一组的指令的执行结果,确定该组指令中的指令与上一组指令中未执行写回操作的指令与是否相关的验证信息,得到多个验证信息,并将所述多个验证信息作为第二验证结果。

在本发明的一个实施例中,任一所述激励测试程序为以预设的多种参考信息中的至少一种作为参考所构建的程序;

其中,所述多种参考信息包括:所述图形处理器的寄存器读写通路、所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构、每种类型的指令执行单元的指令执行周期,以及每种类型的指令执行单元读写指令的读写操作类型。

在本发明的一个实施例中,当构建包含有数据相关的指令的激励测试程序时,作为参考的参考信息包括:

指令执行单元读写指令的读写操作类型、指令执行单元的流水处理结构,以及指令执行单元的指令执行周期。

在本发明的一个实施例中,包含有结构相关的指令的激励测试程序包括:包含有指令执行单元相关的指令的激励测试程序,以及包含有寄存器读写通路相关的指令的激励测试程序;

其中,当构建包含有指令执行单元相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构,以及每种类型的指令执行单元的指令执行周期;

当构建包含有寄存器读写通路相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器的寄存器读写通路、每种类型的指令执行单元读写指令的读写操作类型以及每种类型的指令执行单元的指令执行周期。

在本发明的一个实施例中,当构建包含有控制相关的指令的激励测试程序时,作为参考的参考信息包括:每个指令执行单元的处理流水结构和每个指令执行单元的指令执行周期。

在本发明的一个实施例中,所述指令具体为所述图形处理器中的染色器指令。

第二方面,本发明实施例提供了一种指令的相关性验证装置,应用于电子设备,所述电子设备包含有图形处理器,所述装置包括:

第一执行模块,用于分别执行预设的多个第一验证程序,得到第一验证结果;其中,任一所述第一验证程序由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个所述激励测试程序均包含一组数据相关、结构相关或控制相关的指令,且构成任一第一验证程序的激励测试程序所包含指令的个数总和不大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

第二执行模块,用于分别执行预设的多个第二验证程序,得到第二验证结果;其中,任一所述第二验证程序由从所述多个激励测试程序中选取的一个或多个激励测试程序构成,且构成任一所述第二验证程序的激励测试程序所包含指令的个数总和大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

第三执行模块,用于分别执行预设的多个第三验证程序,得到第三验证结果;其中,任一所述第三验证程序,由随机选取的至少一个第一验证程序和至少一个第二验证程序构成。

在本发明的一个实施例中,所述第二执行单元,具体用于:

针对每个第二验证程序,按照所述指令发射窗口的大小所指示的指令发射个数,将该第二验证程序所包含的激励测试程序中的指令,成组的发射到所述图形处理器的指令执行单元中执行,得到每组指令的执行结果;

根据每组非第一组的指令的执行结果,确定该组指令中的指令与上一组指令中未执行写回操作的指令与是否相关的验证信息,得到多个验证信息,并将所述多个验证信息作为第二验证结果。

在本发明的一个实施例中,任一所述激励测试程序为以预设的多种参考信息中的至少一种作为参考所构建的程序;

其中,所述多种参考信息包括:所述图形处理器的寄存器读写通路、所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构、每种类型的指令执行单元的指令执行周期,以及每种类型的指令执行单元读写指令的读写操作类型。

在本发明的一个实施例中,当构建包含有数据相关的指令的激励测试程序时,作为参考的参考信息包括:

指令执行单元读写指令的读写操作类型、指令执行单元的流水处理结构,以及指令执行单元的指令执行周期。

在本发明的一个实施例中,包含有结构相关的指令的激励测试程序包括:包含有指令执行单元相关的指令的激励测试程序,以及包含有寄存器读写通路相关的指令的激励测试程序;

其中,当构建包含有指令执行单元相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构,以及每种类型的指令执行单元的指令执行周期;

当构建包含有寄存器读写通路相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器的寄存器读写通路、每种类型的指令执行单元读写指令的读写操作类型以及每种类型的指令执行单元的指令执行周期。

在本发明的一个实施例中,当构建包含有控制相关的指令的激励测试程序时,作为参考的参考信息包括:每个指令执行单元的处理流水结构和每个指令执行单元的指令执行周期。

在本发明的一个实施例中,所述指令具体为所述图形处理器中的染色器指令。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一指令的相关性验证方法所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一指令的相关性验证方法所述的方法步骤。

本发明的有益效果:

本发明实施例提供的指令的相关性验证方法中,预先设有多个第一验证程序、多个第二验证程序以及多个第三验证程序;其中,每个第一验证程序和每个第二验证程序,均由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个第三验证程序,均由随机选取的至少一个第一验证程序以及随机选取的至少一个第二验证程序构成。并且,任一第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数;任一第二验证程序的激励测试程序所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令发射个数由于每个激励测试程序可以用于验证一种相关性。由于每个激励测试程序均包含一组数据相关、结构相关或控制相关的指令,可以验证一种相关性,因此,通过执行预设的多个第一验证程序,可以全面地对指令发射窗口内,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第二验证程序,可以全面地对指令发射窗口间,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第三验证程序,可以全面地对指令发射窗口内以及指令发射窗口间,因指令执行时机的不同而导致的各种可能出现的指令相关的情况进行验证。可见,本方案可以全面地获知图形处理器中容易出现的指令相关的各种情况,从而提高了指令的相关性验证结果对于规避指令相关的情况的指导价值。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1是本发明实施例提供的一种指令的相关性验证方法的流程示意图;

图2是图1所述的方法中,各步骤所具体执行的相关性验证的示意图;

图3是图1所示的方法中,预设的多个第一验证程序、多个第二验证程序以及多个第三验证程序的构建方式的示意图;

图4是图1所示的方法中,预设的多个第一验证程序、多个第二验证程序以及多个第三验证程序所分别包含的激励测试程序的示意图;

图5是本发明实施例提供的另一种指令的相关性验证方法的流程示意图;

图6是本发明实施例提供的一种指令的相关性验证装置的结构示意图;

图7是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

需要说明的是,本发明实施例提供的指令的相关性验证方法的执行主体,可以为图形处理器,该图形处理器可以应用于电子设备中。在具体应用中,该电子设备可以是台式计算机、便携式计算机、智能移动终端、服务器或者其他具有图形处理器的电子设备等。另外,该电子设备还可以是半成品的电路单板。可以理解的是,当图形处理器应用于电路单板中时,该电路单板具有与图形处理器通信连接的外围电路,以支持电路单板的运行。

本发明实施例中,预先根据多种参考信息中一种或多种,构建多个激励测试程序。其中,每个激励测试程序均包含一组数据相关、结构相关或控制相关的指令。可以理解的是,由于激励测试程序包含有相关的指令,故激励测试程序是可以激发指令间的相关性的程序。其中,若一激励测试程序包含有一组数据相关的指令,则表明该激励测试程序所包含的该组指令所涉及的数据是相关的;若一激励测试程序包含有一组结构相关的指令,则表明执行该激励测试程序所包含该组指令时,所需的硬件结构资源是相关的;若一激励测试程序包含有一组控制相关的指令,则表明执行该激励测试程序所包含该组指令时,流水处理过程是相关的。这样,对于每个激励测试程序来说,可以用于验证数据相关性、结构相关性或控制相关性中的任意一种相关性。

然后,分多次从所构建的多个激励测试程序中,选取一个或多个激励测试程序,可分别构成多个第一验证程序以及多个第二验证程序。其中,构成第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数;构成第二验证程序的激励测试程序所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令发射个数。

可以理解的是,由于构成第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数,故图形处理器的指令发射窗口一次性便可以将第一验证程序所包含的各条指令发射到指令执行单元中执行。也就是说,第一验证程序,可以用于验证指令发射窗口内的指令的相关性。适应的,第二验证程序则可以用于验证指令发射窗口间的指令的相关性。

另外,可以理解的是,为了能够较为全面的获知图形处理器中容易出现的指令相关的各种情况,在构建多个激励测试程序时,可以针对可能出现的各种指令相关的情况,分别构建不同的激励测试程序。这样,当从所构建的多个激励测试程序中选取若干激励测试程序构成第一验证程序或第二验证程序时,所构建的第一验证程序或第二验证程序中,既可以包含能够验证一种相关性的激励测试程序,还可以包含能够同时验证多种相关性的激励测试程序,从而达到组合验证的效果。并且,为了全面的获知图形处理器中容易出现的各种组合形式的指令相关的情况,可以针对各种可能出现的组合形式的指令相关的情况,分别组成不同的第一验证程序,以及分别组成不同的第二验证程序。为了方案清楚及布局清晰,后续对预设的多个第一验证程序、多个第二验证程序所分别包含的激励测试程序进行示例性的说明。

实施例一

请参见图1,图1是本发明实施例提供的一种指令的相关性验证方法的流程示意图,该方法可以包括以下步骤:

步骤s101:分别执行预设的多个第一验证程序,得到第一验证结果。

其中,任一第一验证程序由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个激励测试程序均包含一组数据相关、结构相关或控制相关的指令,且构成任一第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数。

可以理解的是,对于每个第一验证程序而言,若该第一验证程序由一个激励测试程序构成,则该第一验证程序可以验证一种相关性;若该第一验证程序由多个激励测试程序构成,该第一验证程序便可以验证多种相关性,达到组合验证的效果。需要强调的是,由于构成任一第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数,故无论每个第一验证程序包含有几个激励测试程序,均可以在一个指令发射窗口内被发射到图形处理器的指令执行单元中执行。

该步骤中,可以是在图形处理器中,按照预定的排列顺序,分别执行多个第一验证程序。具体的,针对每个第一验证程序,按照图形处理器的指令发射窗口的大小所指示的指令发射个数,将该第一验证程序所包含的激励测试程序中的指令,成组的发射到图形处理器的指令执行单元中执行,得到每组指令的执行结果;根据每组指令的执行结果,确定该组指令中的指令是否相关的验证信息,得到多个验证信息,并将这些验证信息作为第一验证结果。

并且,分别执行多个第一验证程序所得到的第一验证结果,可以根据多个第一验证程序的执行结果确定。具体的,对于图形处理器而言,若所执行的第一验证程序中,出现了指令相关的情况,则图形处理器处理指令的流程可能发生改变,甚至产生处理错误,此时,图形处理器便可以检测到这些流程改变或者错误。在实际应用中,将图形处理器所属的电路单板或电子设备与安装有仿真软件的计算机相连,便可以在仿真软件中,直观地观测到图形处理器所检测到的流程改变或错误。可以理解的是,第一验证程序的执行结果中,除了包含有指令是否相关的验证信息,还可以包括指令本身的运算结果等其他信息,由于其他信息与本方案无关,故这里不做赘述。

步骤s102:分别执行预设的多个第二验证程序,得到第二验证结果。

其中,任一个第二验证程序由从多个激励测试程序中选取的一个或多个激励测试程序构成,且构成任一第二验证程序的激励测试程序所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令发射个数。

可以理解的是,由于构成任一第二验证程序的激励测试程序所包含指令的个数总和均大于图形处理器的指令发射窗口的大小所指示的指令发射个数,故每个第二验证程序均是在多个指令发射窗口内被发射到图形处理器的指令执行单元中执行的。

并且,对于每个第二验证程序而言,若该第二验证程序由一个激励测试程序构成,则该第二验证程序可以验证一种相关性;若该第二验证程序由多个激励测试程序构成,则该第二验证程序便可以验证多种相关性,达到在指令发射窗口间实现多种相关性的组合验证的效果。

该步骤中,可以是在图形处理器中,按照预定的排列顺序,分别执行多个第二验证程序。具体的,针对每个第二验证程序,按照指令发射窗口的大小所指示的指令发射个数,将该第二验证程序所包含的激励测试程序中的指令,成组的发射到图形处理器的指令执行单元中执行,得到每组指令的执行结果;根据每组非第一组的指令的执行结果,确定该组指令中的指令与上一组指令中未执行写回操作的指令与是否相关的验证信息,得到多个验证信息,并将这些验证信息作为第二验证结果。

这里,根据每组非第一组的指令的执行结果,确定该组指令中的指令与上一组指令中未执行写回操作的指令与是否相关的验证信息,与步骤s101中,根据多个第一验证程序的执行结果确定第一验证结果的具体实现方式相似,这里不再赘述。

可以理解的是,组成第二验证结果的多个验证信息,均为在多个指令发射窗口之间的指令是否相关的验证信息,这一点,与步骤s101中所得到的第一验证结果不同。当然,在另一种实现方式中,步骤s102中所得到的第二验证结果,可以既包含在同一指令发射窗口内所发射的指令之间是否相关的验证信息,也包含在多个指令发射窗口之间的指令是否相关的验证信息。

另外,可以理解的是,第二验证程序的执行结果中,除了包含有指令是否相关的验证信息,还可以包括指令本身的运算结果等其他信息,由于其他信息与本方案无关,故这里不做赘述。

步骤s103:分别执行预设的多个第三验证程序,得到第三验证结果。

其中,任一个第三验证程序,由随机选取的至少一个第一验证程序和至少一个第二验证程序构成。

可以理解的是,由于第三验证程序既包含有第一验证程序,也包含有第二验证程序,因此,在执行第三验证程序时,可以分别参照步骤s101中,执行第一验证程序的具体实现方式,执行第三验证程序中所包含的第一验证程序;参照步骤s102中,执行第二验证程序的具体实现方式,执行第三验证程序中所包含的第二验证程序。并且,根据所执行的每个第一验证程序的执行结果和每个第二验证程序的执行结果,确定第三验证结果。这里,根据各种验证程序的执行结果,确定第三验证结果的具体实现方式,同样可参照步骤s101中,根据多个第一验证程序的执行结果确定第一验证结果的具体实现方式相似,此处不再赘述。

在实际应用中,受图形处理器的指令执行单元可支持的指令的个数及类型等因素的影响,当程序被执行的时机不同时,相同的一段程序在图形处理器中的流水处理过程存在差异,这些差异可能使得该程序中的指令相关与否的结果存在不同。因此,本发明实施例中,从已有的多个第一验证程序和多个第二验证程序中,随机地选取至少一个第一验证程序和至少一个第二验证程序,构成第三验证程序;这样,当在图形处理器中运行这些第三验证程序时,可以模拟在不同的时机,执行该第三验证程序中所包含的第一验证程序和第二验证程序的不同情况,从而达到类似于压力测试的验证效果。这里,压力测试是软件领域中常见的软件测试手段。执行压力测试的目的在于,在非常规条件下运行软件程序,从而激发软件程序中的潜在故障。

可以理解的是,得到第一验证结果、第二验证结果,以及第三验证结果之后,便得到了完整的图形处理器的指令的相关性验证结果。

为了更好地体现本发明实施例提供的指令的验证方法的全面性,采用图2对本发明实施例提供的指令的相关性验证方法中,各步骤所具体执行的相关性验证进行说明。

如图2所示,步骤s101中具体执行的相关性验证包括:在图形处理器的指令发射窗口内执行指令的数据相关性验证、结构相关性验证、控制相关性验证,以及三种相关性的组合验证;

步骤s102中具体执行的相关性验证包括:在图形处理器的指令发射窗口间执行指令的数据相关性验证、结构相关性验证、控制相关性验证,以及三种相关性的组合验证;

步骤s103中具体执行的相关性验证包括:将图像处理器的指令发射窗口内的各种相关性验证以及指令发射窗口间的各种相关性验证进行随机组合后,所形成的组合验证。

由此可见,本发明实施例所提供的指令的相关性验证方法中,所进行的相关性验证较为全面。

本发明实施例提供的指令的相关性验证方法中,预先设有多个第一验证程序、多个第二验证程序以及多个第三验证程序;其中,每个第一验证程序和每个第二验证程序,均由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个第三验证程序,均由随机选取的至少一个第一验证程序以及随机选取的至少一个第二验证程序构成。并且,任一第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数;任一第二验证程序的激励测试程序所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令发射个数由于每个激励测试程序可以用于验证一种相关性。由于每个激励测试程序均包含一组数据相关、结构相关或控制相关的指令,可以验证一种指令的相关性,因此,通过执行预设的多个第一验证程序,可以全面地对指令发射窗口内,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第二验证程序,可以全面地对指令发射窗口间,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第三验证程序,可以全面地对指令发射窗口内以及指令发射窗口间,因指令执行时机的不同而导致的各种可能出现的指令相关的情况进行验证。可见,本方案可以全面地获知图形处理器中容易出现的指令相关的各种情况,从而提高了指令的相关性验证结果对于规避指令相关的情况的指导价值。

实施例二

为了方案清楚,下面对预设的多个第一验证程序、多个第二验证程序以及多个第三验证程序的构建方式进行示例性的说明。如图3所示,该构建方式可以包括以下步骤:

步骤s301:获取多种参考信息。

其中,多种参考信息可以包括:图形处理器的寄存器读写通路、图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构、每种类型的指令执行单元的指令执行周期,以及每种类型的指令执行单元读写指令的读写操作类型。

该步骤中,获取多种参考信息的具体实现方式存在多种。示例性的,在一种实现方式中,可以运行预先编写的用于测试图形处理器的各项配置参数的代码,得到测试结果;然后,根据测试结果,确定上述的各种参考信息。在另一种实现方式中,可以采用人工获取的方式,从图形处理器的用户手册中获取上述的多种参考信息。

步骤s302:以所获取的多种参考信息作为参考,分别构建多个包含有数据相关的指令的激励测试程序、多个包含有结构相关的指令的激励测试程序,以及多个包含有控制相关的指令的激励测试程序。

其中,当构建包含有数据相关的指令的激励测试程序时,作为参考的参考信息可以包括:指令执行单元读写指令的读写操作类型、指令执行单元的流水处理结构,以及指令执行单元的指令执行周期。其中,指令执行单元读写指令的读写操作类型,可以包括指令执行单元读写寄存器时是几读几写的类型,当然,并不局限于此。

当构建包含有控制相关的指令的激励测试程序时,作为参考的参考信息可以包括:每个指令执行单元的处理流水结构和每个指令执行单元的指令执行周期。

另外,为了细化激励测试程序所能够验证的相关性的类型,包含有结构相关的指令的激励测试程序还可以细分为:包含有指令执行单元相关的指令的激励测试程序,以及包含有寄存器读写通路相关的指令的激励测试程序。

其中,当构建包含有指令执行单元相关的指令的激励测试程序时,作为参考的参考信息可以包括:

图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构,以及每种类型的指令执行单元的指令执行周期。

当构建包含有寄存器读写通路相关的指令的激励测试程序时,作为参考的参考信息可以包括:

图形处理器的寄存器读写通路、每种类型的指令执行单元读写指令的读写操作类型以及每种类型的指令执行单元的指令执行周期。

在实际应用中,以上述所列举的参考信息为参考,构建相应的激励测试程序的具体实现方式存在多种。举例而言,可以构建操作类型、流水处理结构均相同,且指令执行周期存在重叠时间段的两条或多条指令,作为一个包含有数据相关的指令的激励测试程序;构建处理流水结构相同,且指令执行周期存在重叠时间段的两条或多条指令,作为一个包含有控制相关的指令的激励测试程序;构建指令执行单元相同,且指令执行周期存在重叠时间段的多条指令,作为一个包含有指令执行单元相关的指令的激励测试程序;构建寄存器读写通路相同,且指令执行周期存在重叠时间段的多条指令,作为一个包含有寄存器读写通路相关的指令的激励测试程序。

需要说明的是,这里所列举的构建激励测试程序的具体实现方式,仅仅作为示例,并不应该构成对本发明实施例的限定。

步骤s303:根据所构建的多个激励测试程序,构建多个第一验证程序以及多个第二验证程序。

该步骤中,根据所构建的多个激励测试程序,构建多个第一验证程序以及多个第二验证程序,具体可以是从已构建的多个激励测试程序中,每次均选取一个或多个激励测试程序,组成一个第一验证程序或一个第二验证程序,从而得到多个第一验证程序以及多个第二验证程序。在选取时,对于每个第一验证程序来说,所选取的一个或多个激励测试程序的所包含指令的个数总和小于等于图形处理器的指令发射窗口的大小所指示的指令个数;对于每个第二验证程序来说,所选取的一个或多个激励测试程序的所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令个数。

为了方案清楚,下面对步骤s303中所构建的多个第一验证程序、多个第二验证程序以及多个第三验证程序所分别包含的激励测试程序进行举例说明。

首先,对步骤s303中所构建的多个第一验证程序进行举例说明。如图4所示,步骤s303中所构建的多个第一验证程序可以包括:

第一验证程序a,构成该第一验证程序a的激励测试程序包括:包含有一组数据相关的指令的激励测试程序1;

第一验证程序b,构成该第一验证程序b的激励测试程序包括:包含有一组结构相关的指令的激励测试程序2;

第一验证程序c,构成该第一验证程序c的激励测试程序包括:包含有一组控制相关的指令的激励测试程序3;

第一验证程序d,构成该第一验证程序d的激励测试程序包括:包含有一组数据相关的指令的激励测试程序4和包含有一组结构相关的指令的激励测试程序5;

第一验证程序e,构成该第一验证程序e的激励测试程序包括:包含有一组结构相关的指令的激励测试程序6和包含有一组控制相关的指令的激励测试程序7;

第一验证程序f,构成该第一验证程序f的激励测试程序包括:包含有一组数据相关的指令的激励测试程序8和包含有一组控制相关的指令的激励测试程序9;

第一验证程序g,构成该第一验证程序g的激励测试程序包括:包含有一组数据相关的指令的激励测试程序10、包含有一组控制相关的指令的激励测试程序11,以及包含有一组控制相关的指令的激励测试程序12;

第一验证程序h,构成该第一验证程序h的激励测试程序包括:上述的激励测试程序1和上述的激励测试程序4;

第一验证程序i,构成该第一验证程序i的激励测试程序包括上述的激励测试程序6和上述的激励测试程序9。

可以看到,在不同的第一验证程序中,验证同一种相关性的激励测试程序,可以是相同的,也可以是不同的。其中,对于相同的情况,如第一验证程序a和第一验证程序h,在这两个第一验证程序中,均包含有可以验证数据相关性的激励测试程序1;对于不同的情况,如第一验证程序e和第一验证程序i,在这两个第一验证程序中,用于验证控制相关性的激励测试程序,一个为激励测试程序7,另一个为激励测试程序9。

然后,对步骤s303中所构建的多个第二验证程序进行举例说明。如图4所示,步骤s303中所构建的多个第二验证程序可以包括:

第二验证程序j,构成该第二验证程序j的激励测试程序包括:包含有一组数据相关的指令的激励测试程序13;

第二验证程序k,构成该第二验证程序k的激励测试程序包括:包含有一组结构相关的指令的激励测试程序14;

第二验证程序l,构成该第二验证程序l的激励测试程序包括:包含有一组控制相关的指令的激励测试程序15;

第二验证程序m,构成该第二验证程序m的激励测试程序包括:上述的激励测试程序13和包含有一组结构相关的指令的激励测试程序16;

第二验证程序n,构成该第二验证程序n的激励测试程序包括:上述的激励测试程序14和上述的激励测试程序15;

第二验证程序o,构成该第二验证程序o的激励测试程序包括:上述的激励测试程序13和上述的激励测试程序14;

第二验证程序p,构成该第二验证程序p的激励测试程序包括:上述的激励测试程序13、上述的激励测试程序14,以及上述的激励测试程序15。

可以看到,在不同的第二验证程序中,验证同一种相关性的激励测试程序,可以是相同的,也可以是不同的。其中,对于相同的情况,如第二验证程序j和第二验证程序m,在这两个第二验证程序中,均包含有可以验证数据相关性的激励测试程序13;对于不同的情况,如第二验证程序k和第二验证程序m,在这两个第二验证程序中,用于验证结构相关性的激励测试程序,一个为激励测试程序14,另一个为激励测试程序16。

可以理解的是,在实际应用中,步骤s303中所构建的多个第一验证程序和多个第二验证程序,并不局限于上述所列举的示例,这里限于篇幅,不再一一列举。

步骤s304:根据已构建的多个第一验证程序和已构建的多个第二验证程序,构建多个第三验证程序。

该步骤中,具体可以从已构建的多个第一验证程序和已构建的多个第二验证程序中,每次随机选取至少一个第一验证程序和至少一个第二验证程序,组成一个第三验证程序,从而得到多个第三验证程序。

举例而言,如图4所示,步骤s304中所构建的多个第三验证程序可以包括:

第三验证程序q,该第三验证程序q由上述的第一验证程序a和上述的第二验证程序j组成;

第三验证程序r,该第三验证程序r由上述的第一验证程序b、第一验证程序c以及上述的第二验证程序k组成;

第三验证程序s,该第三验证程序s由上述的第一验证程序d以及上述的第二验证程序l和第二验证程序m组成。

可以理解的是,由于步骤s304中所构建的第三验证程序是随机组建而成,这里所列举的第三验证程序,仅仅用于举例说明第三验证程序的组成,并不构成对第三验证程序的数量的限定。在实际应用中,为了更为全面地获知图形处理器中容易出现的指令相关的各种情况,可以开发用于随机构建第三验证程序的程序代码,从而构建较多数量的第三验证程序。当然,也可以采用人工构建的方式来构建多个第三验证程序。

可选地,在一种实现方式中,如图5所示,在执行步骤s101之前,本发明实施例提供的指令的相关性验证方法,还可以包括:

步骤s100:判断图形处理器的指令发射窗口的大小是否大于1;

当判断结果为是时,继续执行步骤s101;

当判断结果为否时,跳过步骤s101,执行步骤s102。

可以理解的是,若图形处理器的指令发射窗口的大小为1,则该图形处理器的指令发射窗口每次仅能够发射一条指令,不存在指令发射窗口内具有指令相关的情况,故直接执行步骤s102,对指令发射窗口间的指令相关的情况进行验证。

可选地,在一种实现方式中,上述的包含于各个激励测试程序中的指令,可以具体为染色器指令。

其中,染色器是指图形处理器中,用于实现纹理坐标计算、光栅位置计算以及光照计算等功能的模块。

实施例三

相应于上述的指令的相关性验证方法,本发明实施例还提供了一种指令的相关性验证装置,如图6所示,该装置可以包括:

第一执行模块601,用于分别执行预设的多个第一验证程序,得到第一验证结果;其中,任一所述第一验证程序由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个所述激励测试程序均包含一组数据相关、结构相关或控制相关的指令,且构成任一第一验证程序的激励测试程序所包含指令的个数总和不大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

第二执行模块602,用于分别执行预设的多个第二验证程序,得到第二验证结果;其中,任一所述第二验证程序由从所述多个激励测试程序中选取的一个或多个激励测试程序构成,且构成任一所述第二验证程序的激励测试程序所包含指令的个数总和大于所述图形处理器的指令发射窗口的大小所指示的指令发射个数;

第三执行模块603,用于分别执行预设的多个第三验证程序,得到第三验证结果;其中,任一所述第三验证程序,由随机选取的至少一个第一验证程序和至少一个第二验证程序构成。

可选地,所述第二执行模块602,具体可以用于:

针对每个第二验证程序,按照所述指令发射窗口的大小所指示的指令发射个数,将该第二验证程序所包含的激励测试程序中的指令,成组的发射到所述图形处理器的指令执行单元中执行,得到每组指令的执行结果;

根据每组非第一组的指令的执行结果,确定该组指令中的指令与上一组指令中未执行写回操作的指令与是否相关的验证信息,得到多个验证信息,并将所述多个验证信息作为第二验证结果。

可选地,任一所述激励测试程序为以预设的多种参考信息中的至少一种作为参考所构建的程序;

其中,所述多种参考信息包括:所述图形处理器的寄存器读写通路、所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构、每种类型的指令执行单元的指令执行周期,以及每种类型的指令执行单元读写指令的读写操作类型。

可选地,当构建包含有数据相关的指令的激励测试程序时,作为参考的参考信息包括:

指令执行单元读写指令时的读写操作类型、指令执行单元的流水处理结构,以及指令执行单元的指令执行周期。

可选地,包含有结构相关的指令的激励测试程序包括:包含有指令执行单元相关的指令的激励测试程序,以及包含有寄存器读写通路相关的指令的激励测试程序;

其中,当构建包含有指令执行单元相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器包含的各个指令执行单元的种类、每种类型的指令执行单元的数量、每种类型的指令执行单元的处理流水结构,以及每种类型的指令执行单元的指令执行周期;

当构建包含有寄存器读写通路相关的指令的激励测试程序时,作为参考的参考信息包括:

所述图形处理器的寄存器读写通路、每种类型的指令执行单元读写指令时的读写操作类型以及每种类型的指令执行单元的指令执行周期。

可选地,当构建包含有控制相关的指令的激励测试程序时,作为参考的参考信息包括:每个所述指令执行单元的处理流水结构和每个所述指令执行单元的指令执行周期。

可选地,所述指令具体为所述图形处理器中的染色器指令。

本发明实施例提供的指令的相关性验证装置中,预先设有多个第一验证程序、多个第二验证程序以及多个第三验证程序;其中,每个第一验证程序和每个第二验证程序,均由从预设的多个激励测试程序中选取的一个或多个激励测试程序构成;每个第三验证程序,均由随机选取的至少一个第一验证程序以及随机选取的至少一个第二验证程序构成。并且,任一第一验证程序的激励测试程序所包含指令的个数总和不大于图形处理器的指令发射窗口的大小所指示的指令发射个数;任一第二验证程序的激励测试程序所包含指令的个数总和大于图形处理器的指令发射窗口的大小所指示的指令发射个数由于每个激励测试程序可以用于验证一种相关性。由于每个激励测试程序均包含一组数据相关、结构相关或控制相关的指令,可以验证一种相关性,因此,通过执行预设的多个第一验证程序,可以全面地对指令发射窗口内,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第二验证程序,可以全面地对指令发射窗口间,各种可能出现的指令相关的情况进行验证;通过执行预设的多个第三验证程序,可以全面地对指令发射窗口内以及指令发射窗口间,因指令执行时机的不同而导致的各种可能出现的指令相关的情况进行验证。可见,本方案可以全面地获知图形处理器中容易出现的指令相关的各种情况,从而提高了指令的相关性验证结果对于规避指令相关的情况的指导价值。

实施例四

本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,

存储器703,用于存放计算机程序;

处理器701,用于执行存储器703上所存放的程序时,实现上述任一所示的指令的相关性验证方法。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明还提供了一种计算机可读存储介质。在该计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一实施例所述的指令的相关性验证方法。

可选地,该计算机可读存储介质可以为非易失性存储器(non-volatilememory,nvm),例如为至少一个磁盘存储器。

可选的,所述计算机可读存储器还可以是至少一个位于远离前述处理器的存储装置。

本发明实施例中,对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本说明书的描述中,参考术语“实施例”、“示例”或“具体实现方式”等的描述意指结合实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1