本公开涉及处理器,特别涉及一种乱序处理器中队列的队列项选择方法及装置。
背景技术:
1、在程序员编写程序的时候,认为程序的执行都是按照串行的顺序运行的,只有前面的一条指令执行完了,后面的指令才可以执行,因此处理器在执行程序的时候,也必须保证这种串行的结果,否则就会和程序最初的预想行为不一致。为了提高指令执行效率,现代的处理器都是乱序处理器,乱序处理器的指令就不会按照程序中指定的顺序在处理器中流动,只要满足执行条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。
2、乱序处理器中的乱序队列用来缓存一定数量的指令和数据,负责为进入队列的指令和数据分配空项,将符合一定条件的指令和数据从队列中选择出来执行。其中,指令可以是程序的指令,也可以是处理器内部译码成的内部操作,一条指令可能翻译成一个操作也可能翻译成多个操作。从乱序队列中选择队列项的硬件处理过程比较复杂,一般时序都处于处理器的关键路径上,直接影响着处理器的频率,从而导致处理器的性能较差,而且耗费比较多的功耗和面积。
技术实现思路
1、本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
2、为此,本公开的目的在于提出一种乱序处理器中队列的队列项选择方法及装置,可以减少从队列中选择可执行队列项时的选择逻辑,降低选择的复杂度,从而减小选择的延时,有效提高乱序处理器的性能,并且降低功耗、节约面积。
3、本公开第一方面实施例提供一种乱序处理器中队列的队列项选择方法,方法包括:获取队列中各队列项的标签值;根据各所述队列项的标签值,生成所述队列的掩码位向量;根据所述队列中各所述队列项的指示信息,生成所述队列的可执行位向量,所述指示信息用于指示所述队列项是否满足可执行条件;根据所述掩码位向量和所述可执行位向量,生成所述队列的选择位向量;将所述选择位向量中的目标位对应的队列项,确定为可执行队列项,其中,所述目标位为所述选择位向量中首个对应值为第一预设值的位。
4、根据本公开实施例的乱序处理器中队列的队列项选择方法,通过获取队列中各队列项的标签值,根据各队列项的标签值,生成队列的掩码位向量,根据队列中各队列项的指示信息,生成队列的可执行位向量,指示信息用于指示队列项是否满足可执行条件,根据掩码位向量和可执行位向量,生成队列的选择位向量,将选择位向量中的目标位对应的队列项,确定为可执行队列项,其中,目标位为选择位向量中首个对应值为第一预设值的位,能够减少从队列中选择可执行队列项时的选择逻辑,降低选择的复杂度,从而减小选择的延时,有效提高乱序处理器的性能,并且降低功耗、节约面积。
5、本公开第二方面实施例提供一种乱序处理器中队列的队列项选择装置,所述装置包括:标签值获取模块,用于获取队列中各队列项的标签值;第一生成模块,用于根据各所述队列项的标签值,生成所述队列的掩码位向量;第二生成模块,用于根据所述队列中各所述队列项的指示信息,生成所述队列的可执行位向量,所述指示信息用于指示所述队列项是否满足可执行条件;第三生成模块,用于根据所述掩码位向量和所述可执行位向量,生成所述队列的选择位向量;队列项确定模块,用于将所述选择位向量中的目标位对应的队列项,确定为可执行队列项,其中,所述目标位为所述选择位向量中首个对应值为第一预设值的位。
6、根据本公开实施例的乱序处理器中队列的队列项选择装置,通过获取队列中各队列项的标签值,根据各队列项的标签值,生成队列的掩码位向量,根据队列中各队列项的指示信息,生成队列的可执行位向量,指示信息用于指示队列项是否满足可执行条件,根据掩码位向量和可执行位向量,生成队列的选择位向量,将选择位向量中的目标位对应的队列项,确定为可执行队列项,其中,目标位为选择位向量中首个对应值为第一预设值的位,能够减少从队列中选择可执行队列项时的选择逻辑,降低选择的复杂度,从而减小选择的延时,有效提高乱序处理器的性能,并且降低功耗、节约面积。
7、本公开第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的乱序处理器中队列的队列项选择方法。
8、本公开第四方面实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述实施例所述的乱序处理器中队列的队列项选择方法。
9、本公开第五方面实施例提供一种计算机程序,包括计算机程序,所述计算机程序在被处理器执行时实现如上述实施例所述的乱序处理器中队列的队列项选择方法的步骤。
10、本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
1.一种乱序处理器中队列的队列项选择方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,各所述队列项具有对应的标号,各所述队列项中的队尾项随指令写入所述队列进行切换,其中,在所述队尾项从所述队列的末项切换到首项时,所述队尾项对应的标号翻转;
3.根据权利要求2所述的方法,其特征在于,所述根据所述翻转次数,确定所述队列中各所述队列项的标签值,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述翻转次数,确定所述队列中各所述队列项的标签值,还包括:
5.根据权利要求1所述的方法,其特征在于,所述根据各所述队列项的标签值,生成所述队列的掩码位向量,包括:
6.根据权利要求1-5中任一项所述的方法,其特征在于,每个所述队列项的指示信息包括有效位的值和准备好位的值;
7.根据权利要求6所述的方法,其特征在于,各所述队列项依次标号为0到n-1之间的整数,n为所述队列中各所述队列项的数量;
8.根据权利要求7所述的方法,其特征在于,所述根据所述有效准备位向量,生成位数为m的可执行位向量,包括:
9.根据权利要求8所述的方法,其特征在于,所述掩码位向量的位数为n;所述根据所述掩码位向量和所述可执行位向量,生成所述队列的选择位向量,包括:
10.根据权利要求9所述的方法,其特征在于,所述将所述选择位向量中的目标位对应的队列项,确定为可执行队列项,包括:
11.根据权利要求7所述的方法,其特征在于,所述将所述选择位向量中的目标位对应的队列项,确定为可执行队列项之后,还包括:
12.一种乱序处理器中队列的队列项选择装置,其特征在于,所述装置包括:
13.一种电子设备,包括:
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-11中任一项所述的方法。