乱序处理器中队列的访问方法及装置制造方法及图纸

技术编号:33624120 阅读:21 留言:0更新日期:2022-06-02 00:51
本公开提供了一种乱序处理器中队列的访问方法及装置,涉及处理器技术领域,包括N项的队列分为L个体,每个体包括N/L项,N为L的整数倍;方法包括:获取当前拍的最大可出队项的数量M;确定队头指针所在的体以及在所在体中所在的项;根据队头指针所在的体、在所在体中所在的项、数量M以及指定的指令退出顺序,确定M个出队项中各出队项所在的目标体、在所在目标体中所在的目标项;根据各出队项所在的目标体以及目标项,分别从对应目标体中选出对应的项,并将对应的项的信息读出。可以减少队列中信息读出时的选择逻辑,从而减少延迟和功耗,提高处理器的性能,以解决因队列项内容的选择读出逻辑复杂而导致的处理器性能差、功耗高的问题。问题。问题。

【技术实现步骤摘要】
乱序处理器中队列的访问方法及装置


[0001]本公开涉及处理器
,特别涉及一种乱序处理器中队列的访问方法及装置。

技术介绍

[0002]在程序员编写程序的时候,认为程序的执行都是按照串行的顺序运行的,只有前面的一条指令执行完了,后面的指令才可以执行,因此处理器在执行程序的时候,也必须保证这种串行的结果,否则就会和程序最初的预想行为不一致。为了提高指令执行效率,现代的处理器都是乱序处理器,乱序处理器的指令就不会按照程序中指定的顺序在处理器中流动,只要满足执行条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。
[0003]为保证乱序处理器的程序执行结果跟顺序处理器串行执行的结果一致,在处理器中需要用多进多出的连续队列,按照进入流水线的顺序记录处理器中的所有指令,以保证处理器能够乱序执行指令,顺序提交指令。这些多进多出连续队列包括ROB(Reorder Buffer,重定序缓存)、B

ROB(Branch Reorder Buffer,转移重定序缓存)、FTQ(Fetch Target Queue,转移队列)等。多进多出连续队列的项数都比较多,比如当前的高性能处理器中,ROB一般为256项以上,而且每项存储的位数也非常多,包括指令在ROB中是否有效、指令操作码、指令逻辑目的寄存器号、指令物理目的寄存器号、指令旧物理目的寄存器号、程序计数器、指令的状态、指令在转移队列FTQ中的索引、异常的类型等。这些多进多出的连续队列的队列项内容的选择读出逻辑复杂,时序处于处理器的关键路径上,直接影响着处理器的频率,从而导致处理器的性能较差,而且耗费比较多的功耗。

技术实现思路

[0004]本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]为此,本公开的目的在于提出一种乱序处理器中队列的访问方法及装置,可以减少队列中信息读出时的选择逻辑,从而减少延迟和功耗,提高处理器的性能。
[0006]本公开第一方面实施例提供一种乱序处理器中队列的访问方法,包括N项的队列分为L个体Bank,且每个所述体Bank包括N/L项,其中,L为大于1的整数,N为L的整数倍;方法包括:获取当前拍的最大可出队项的数量M,其中,M为大于1的整数;从所述L个体Bank中确定队头指针Head所在的体,以及确定所述队头指针Head在所在体中所在的项;根据所述队头指针Head所在的体、在所在体中所在的项、所述数量M,以及指定的指令退出顺序,确定M个出队项中的各所述出队项所在的目标体,以及在所在目标体中所在的目标项;根据各所述出队项所在的目标体以及在所在目标体中所在的目标项,分别从对应的目标体中选出对应的项,并将对应的项的信息读出。
[0007]根据本公开实施例的乱序处理器中队列的访问方法,可以减少队列中信息读出时的选择逻辑,从而减少延迟和功耗,提高处理器的性能。
[0008]本公开第二方面实施例提供一种乱序处理器中队列的访问装置,包括N项的队列
分为L个体Bank,且每个所述体Bank包括N/L项,其中,L为大于1的整数,N为L的整数倍;所述装置包括:第一获取模块,用于获取当前拍的最大可出队项的数量M,其中,M为大于1的整数;第一确定模块,用于从所述L个体Bank中确定队头指针Head所在的体,以及确定所述队头指针Head在所在体中所在的项;第二确定模块,用于根据所述队头指针Head所在的体、在所在体中所在的项、所述数量M,以及指定的指令退出顺序,确定M个出队项中的各所述出队项所在的目标体,以及在所在目标体中所在的目标项;第一处理模块,用于根据各所述出队项所在的目标体以及在所在目标体中所在的目标项,分别从对应的目标体中选出对应的项,并将对应的项的信息读出。
[0009]根据本公开实施例的乱序处理器中队列的访问装置,可以减少队列中信息读出时的选择逻辑,从而减少延迟和功耗,提高处理器的性能。
[0010]本公开第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的乱序处理器中队列的访问方法。
[0011]本公开第四方面实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上述实施例所述的乱序处理器中队列的访问方法。
[0012]本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
[0013]本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为相关技术中ROB的示例图;图2为相关技术中包括N项的队列的示例图;图3为本公开一实施例中的队列的示例图;图4为本公开一实施例中的队列的另一示例图;图5为本公开一实施例中的队列的另一示例图;图6为本公开一实施例所提供的一种乱序处理器中队列的访问方法的流程示意图;图7为本公开一实施例中的队列的另一示例图;图8为本公开一实施例所提供的一种乱序处理器中队列的访问方法的另一流程示意图;图9为本公开一实施例所提供的一种乱序处理器中队列的访问方法的另一流程示意图;图10为根据本公开一实施例所提供的队列的另一示例图;图11为根据本公开一实施例所提供的队列的另一示例图;图12为根据本公开一实施例所提供的队列的另一示例图;图13为本公开一实施例所提供的一种乱序处理器中队列的访问方法的流程示意
图;图14为根据本公开一实施例所提供的队列的另一示例图;图15为根据本公开一实施例所提供的队列的另一示例图;图16为本公开一实施例所提供的一种乱序处理器中队列的访问装置的结构示意图;图17为用于实现本公开实施例的乱序处理器中队列的访问方法的示例性电子设备的框图。
具体实施方式
[0014]下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
[0015]可以理解的是,当一条指令到达流水线的提交阶段后,会将这条指令在ROB中标记为已完成的状态,表示这条指令已经计算完毕,并不表示它可以离开流水线。流水线中所有指令都按照进入流水线的顺序在重定序缓存中进行了记录,只有在重定序缓存中这条指令之前的最旧的那些条指令都变成已完成的状态时,这条指令才允许离开流水线,并使用它的结果对处理器的状态进行更新,此时这条指令退休(retire)了,从这个过程可以看出,一条指令需要在流水线的提交阶段等待一段时间,才可以从流水线中退休,这样可以使程序在乱序处理器中执行的时候有串行的结果。对于一个每拍(每周期)允许多条指令退出ROB的乱序处理器来说,所有离开流水线的指令要根据程序中原始的顺序来更新处理器的状态,ROB是多进多出的连续队列。
[0016]指令从队列中退出时,需要把本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种乱序处理器中队列的访问方法,其特征在于,包括N项的队列分为L个体Bank,且每个所述体Bank包括N/L项,其中,L为大于1的整数,N为L的整数倍;所述方法包括:获取当前拍的最大可出队项的数量M,其中,M为大于1的整数;从所述L个体Bank中确定队头指针Head所在的体,以及确定所述队头指针Head在所在体中所在的项;根据所述队头指针Head所在的体、在所在体中所在的项、所述数量M,以及指定的指令退出顺序,确定M个出队项中的各所述出队项所在的目标体,以及在所在目标体中所在的目标项;根据各所述出队项所在的目标体以及在所在目标体中所在的目标项,分别从对应的目标体中选出对应的项,并将对应的项的信息读出。2.根据权利要求1所述的方法,其特征在于,所述L个体Bank依次编号为0至L

1之间的整数;每个体Bank包括的N/L项分别对应所述Bank的第0行至第N/L

1行;M个所述出队项按照所述指定的指令退出顺序,依次编号为0至M

1之间的整数;所述根据所述队头指针Head所在的体、在所在体中所在的项、所述数量M,以及指定的指令退出顺序,确定M个出队项中的各所述出队项所在的目标体,以及在所在目标体中所在的目标项,包括:对于编号为m的出队项,在m为0的情况下,将所述队头指针Head所在的体确定为所述出队项所在的目标体,并将所述队头指针Head在所在体中所在的行,确定为所述出队项在目标体中所在的目标行;对于编号为m的出队项,在m不为0的情况下,根据编号为m

1的出队项所在的体、在所在体中所在的行,以及所述指定的指令退出顺序,确定编号为m的出队项所在的目标体以及在所在目标体中所在的目标行;其中,m为大于等于0且小于等于M

1的整数。3.根据权利要求2所述的方法,其特征在于,所述根据编号为m

1的出队项所在的体、在所在体中所在的行,以及所述指定的指令退出顺序,确定编号为m的出队项所在的目标体以及在所在目标体中所在的目标行,包括:在所述指令退出顺序为先行后体,编号为m

1的出队项所在体的编号i小于L

1,在所在体中所在行为第j行,j大于等于0且小于等于N/L

1的情况下,将编号为i+1的体,确定为编号为m的出队项所在的目标体,将编号为i+1的体中第j行,确定为编号为m的出队项在所在目标体中的目标行;在所述指令退出顺序为先行后体,编号为m

1的出队项所在体的编号等于L

1,在所在体中所在行为第j行,j大于等于0且小于N/L

1的情况下,将编号为0的体,确定为编号为m的出队项所在的目标体,将编号为0的体中第j+1行,确定为编号为m的出队项在所在目标体中的目标行;在编号为m

1的出队项所在体的编号等于L

1,在所在体中所在行为第j行,j等于N/L

1的情况下,基于所述指令退出顺序为先行后体,将编号为0的体,确定为编号为m的出队项所在的目标体,将编号为0的体中第0行,确定为编号为m的出队项在所在目标体中的目标行。4.根据权利要求1所述的方法,其特征在于,所述L个体Bank依次编号为0至L

1之间的整数;每个体Bank包括的N/L项分别对应所述Bank的第0行至第N/L

1行;所述指令退出顺序
为先行后体;M个所述出队项按照所述指定的指令退出顺序,依次编号为0至M

1之间的整数;所述L大于等于所述数量M;所述队头指针Head所在的体的编号为i

,在所在体中所在行为第j

行;所述根据所述队头指针Head所在的体、在所在体中所在的项、所述数量M,以及指定的指令退出顺序,确定M个出队项中的各所述出队项所在的目标体,以及在所在目标体中所在的目标项,包括:对于编号为m的出队项,在i

+m小于或等于L

1的情况下,基于所述指令退出顺序为先行后体,将编号为i

+m的体,确定为所述出队项所在的目标体,将编号为i

+m的体中第j

行,确定为所述出队项在所在目标体中的目标行;对于编号为m的出队项,在i

+m大于L

1的情况下,基于所述指令退出顺序为先行后体,将编号为i

+m

L的体,确定为所述出队项所在的目标体,将编号为i

+m

L的体中第j

+1行,确定为所述出队项在所在目标体中的目标行;其中,m为大于等于0且小于等于M

1的整数。5.根据权利要求1

4任一项所述的方法,其特征...

【专利技术属性】
技术研发人员:李祖松郇丹丹
申请(专利权)人:北京微核芯科技有限公司
类型:发明
国别省市:

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

1