【技术实现步骤摘要】
乱序处理器中队列的访问方法及装置
[0001]本公开涉及处理器
,特别涉及一种乱序处理器中队列的访问方法及装置。
技术介绍
[0002]在程序员编写程序的时候,认为程序的执行都是按照串行的顺序运行的,只有前面的一条指令执行完了,后面的指令才可以执行,因此处理器在执行程序的时候,也必须保证这种串行的结果,否则就会和程序最初的预想行为不一致。为了提高指令执行效率,现代的处理器都是乱序处理器,乱序处理器的指令就不会按照程序中指定的顺序在处理器中流动,只要满足执行条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。
[0003]为保证乱序处理器的程序执行结果跟顺序处理器串行执行的结果一致,在处理器中需要用多进多出的连续队列,按照进入流水线的顺序记录处理器中的所有指令,以保证处理器能够乱序执行指令,顺序提交指令。这些多进多出连续队列包括ROB(Reorder Buffer,重定序缓存)、B
‑
ROB(Branch Reorder Buffer,转移重定序缓存)、FTQ(Fetch Target Queue,转移队列)等。多进多出连续队列的项数都比较多,比如当前的高性能处理器中,ROB一般为256项以上,而且每项存储的位数也非常多,包括指令在ROB中是否有效、指令操作码、指令逻辑目的寄存器号、指令物理目的寄存器号、指令旧物理目的寄存器号、程序计数器、指令的状态、指令在转移队列FTQ中的索引、异常的类型等。这些多进多出的连续队列的队列项内容的选择读出逻辑复杂,时序处于处理器的关键路径上, ...
【技术保护点】
【技术特征摘要】
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任一项所述的方法,其特征...
【专利技术属性】
技术研发人员:李祖松,郇丹丹,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。