乱序处理器中乱序执行队列的调度方法和装置制造方法及图纸

技术编号:26417800 阅读:22 留言:0更新日期:2020-11-20 14:12
本发明专利技术公开了一种乱序处理器中乱序执行队列的调度方法和装置,其中,方法包括以下步骤:构建与乱序执行队列同样项数的顺序维护队列,为进入乱序执行队列的指令和数据分配空项,其中,顺序维护队列包括标识id域;将多项的乱序执行队列各项依次编号,并通过顺序维护队列的id域记录乱序执行队列的id号;将指令进入顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项;按照顺序维护队列给出的id号信息从乱序执行队列选出准备好的项的指令执行。本发明专利技术实施例可以用顺序维护队列维护乱序执行队列顺序,以提高调度效率,降低调度复杂度,实现低功耗、低延迟、节约面积,从而提高处理器性能,提高主频,降低功耗,降低成本。

【技术实现步骤摘要】
乱序处理器中乱序执行队列的调度方法和装置
本专利技术涉及微处理器
,特别涉及一种乱序处理器中乱序执行队列的调度方法和装置。
技术介绍
乱序处理器中的乱序执行队列用来缓存一定数量的指令(指令可以是程序的指令,也可以是处理器内部译码成的内部操作,一条指令可能翻译成一个操作也可能翻译成多个操作)和数据,负责为进入队列的指令和数据分配空项,将符合一定条件的指令和数据从队列中选择出来执行。乱序处理器的指令到了乱序执行队列中,就不会按照程序中指定的顺序在处理器中流动,只要满足执行的条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。乱序执行队列的硬件处理比较复杂,一般它的时序都处于处理器当中的关键路径上,直接影响着处理器的频率,而且耗费比较多的功耗和面积。乱序处理器中的乱序执行队列包括发射队列、各级缓存的访问队列、缓存访问失效队列,一致性请求队列等,这些乱序执行队列都需要维护一个执行的序。对于进入队列的指令,当有多个空项时,需要分配可以进入的空项。对于选择队列中的指令执行,当队列中有多项准备好,一般选择最先进入队列的指令执行,即oldest-first策略。这是因为考虑到越是旧的指令,和它存在相关性的指令也就越多,因此优先执行最旧的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指令还占据着处理器中的硬件资源,包括其他的乱序执行队列、重排序缓存、写缓冲区(StoreBuffer)等部件,越早地执行这些旧的指令,就可以越早地释放这些硬件资源,供后面的指令使用。要识别出乱序执行队列中哪些指令是最旧的,就需要知道指令进入流水线的先后顺序。一种方法是通过在乱序执行队列中记录每条指令进入乱序执行队列的年龄,即用计数器的方式,再根据计数器进行排序,缺点是计数器记录需要增加额外的寄存器,寄存器会存在溢出,而且排序电路多级比较、选择的延迟也很大。另一种常用的方法是利用ROB(ReorderBuffer,重排序缓存)中记录的处理器中指令的顺序进行排序,使用每条指令在ROB中的位置作为指令的年龄信息,这样做的问题是ROB本质上是一个FIFO(FirstInputFirstOutput,先进先出)队列,直接用它的地址无法表达出年龄的信息,需要进行变换,而且同样存在多级比较电路的问题。还有一种方法是用指针维护乱序执行队列的顺序,存在的问题是每次选出指令和数据执行后,为维护顺序需要进行大量的寄存器间的数据移动,功耗大。因此,乱序处理器中需要设计低延迟、低功耗、面积小的乱序执行队列,实现简洁高效的指令进入分配和指令执行选择。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一目的在于提出一种乱序处理器中乱序执行队列的调度方法,可以提高处理器性能,降低功耗和成本。本专利技术的第二个目的在于提出一种乱序处理器中乱序执行队列的调度装置。本专利技术的第三个目的在于提出一种电子设备。本专利技术的第四个目的在于提出一种非临时性计算机可读存储介质。为达到上述目的,本专利技术第一方面提供一种乱序处理器中乱序执行队列的调度方法,包括以下步骤:构建与乱序执行队列同样项数的顺序维护队列,为进入所述乱序执行队列的指令和数据分配空项,其中,所述顺序维护队列包括标识id域;将多项的所述乱序执行队列各项依次编号,并通过所述顺序维护队列id域记录所述乱序执行队列的id号;将指令进入顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项;按照所述顺序维护队列给出的id号信息从所述乱序执行队列选出准备好的项的指令执行。根据本专利技术的乱序处理器中乱序执行队列的调度方法,用顺序维护队列维护乱序执行队列顺序,以提高调度效率,降低调度复杂度,实现低功耗、低延迟、节约面积,从而提高处理器性能,提高主频,降低功耗,降低成本。另外,根据本专利技术上述的乱序处理器中乱序执行队列的调度方法还可以具有以下附加的技术特征:在本专利技术中,所述乱序执行队列的下一次最先分配的项是顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项。在本专利技术中,所述乱序执行队列包括有效valid域和准备好rdy域,其中,所述valid域用于记录所述乱序执行队列的项是否有效,所述rdy域用于记录所述乱序执行队列的项的指令和数据是否已经准备好。在本专利技术中,当处理器为初始化的情况时,还包括:将所述顺序维护队列的id域从上到下依次编号,tail置为0,并将所述乱序执行队列中各项的valid域置为0,其中,所述valid域为0表示记录的项无效。在本专利技术中,当处理器乱序执行队列为仅指令进入的情况时,还包括:将指令进入顺序维护队列的tail项对应的id号所指的乱序执行队列项,并将所述顺序维护队列的tail向下移动一项,其中,下一拍tail=当前拍tail+1。在本专利技术中,当处理器乱序执行队列为仅指令执行的情况时,还包括:按照所述顺序维护队列从上往下到tail的顺序,找到id号对应的乱序执行队列中,第一个valid域为1且rdy域为1的项执行,该项执行后为空项,所述tail项及其之前的各项内容均向上移动一项,并将所述空项对应的id号存到所述顺序维护队列的tail项的id域,下一拍tail=当前拍tail-1,其中,所述valid域为1表示记录的项有效,所述rdy域为1表示记录的项的指令和数据准备好。在本专利技术中,当所述队列满时,还包括:在准备好的指令执行后,将所述tail之前的各项内容向上移动一项,并将所述乱序执行队列中指令执行后的空项进入tail-1项,且下一拍tail=所述顺序维护队列的最后一项。在本专利技术中,当处理器乱序执行队列为同时指令进入和执行的情况时,还包括:将新指令进入所述顺序维护队列tail项对应id号所指的乱序执行队列项,并将所述顺序维护队列各项的id号向上移动一项,将发射项的id号存到tail项,下一拍tail的值不变。在本专利技术中,当处理器因为转移预测错、访存引起的重新执行或例外引发的异常等发生取消的情况时,还包括:将所述乱序执行队列中取消项的valid置为0,则valid置为0的取消项为空项,且不会有新的指令进入所述取消项,所述顺序维护队列的tail的值不变。在本专利技术中,如果当前拍没有指令执行、且也没有指令进入,则根据第一预设情况进行处理,且一拍只处理一个空项,按照所述顺序维护队列从上到tail项的顺序找到第一个空项,所述tail项及其之前的各项内容均向上移动一项,所述第一个空项对应的id号存到tail项,下一拍tail=当前拍tail-1。在本专利技术中,如果当前拍没有指令执行、且有指令进入,则根据第二预设情况进行处理,且一拍处理一个空项,新进入的指令进入tail项对应id号所指的乱序执行队列项,从上到tail项找到第一个空项,所述tail项及其之前的各项的id号均向上移动一项,所述第一个空项的id号存到tail项,下一拍tail的值不变。在本专利技术中,如果队列满时,即tail项为所述顺序维护队列的最后一项+1,则根据第三预设情况进行处理,且当前本文档来自技高网
...

【技术保护点】
1.一种乱序处理器中乱序执行队列的调度方法,其特征在于,包括以下步骤:/n构建与乱序执行队列同样项数的顺序维护队列,为进入所述乱序执行队列的指令和数据分配空项,其中,所述顺序维护队列包括标识id域;/n将多项的所述乱序执行队列各项依次编号,并通过所述顺序维护队列的id域记录所述乱序执行队列的id号;/n将指令进入顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项;以及/n按照所述顺序维护队列给出的id号信息从所述乱序执行队列选出准备好的项的指令执行。/n

【技术特征摘要】
1.一种乱序处理器中乱序执行队列的调度方法,其特征在于,包括以下步骤:
构建与乱序执行队列同样项数的顺序维护队列,为进入所述乱序执行队列的指令和数据分配空项,其中,所述顺序维护队列包括标识id域;
将多项的所述乱序执行队列各项依次编号,并通过所述顺序维护队列的id域记录所述乱序执行队列的id号;
将指令进入顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项;以及
按照所述顺序维护队列给出的id号信息从所述乱序执行队列选出准备好的项的指令执行。


2.根据权利要求1所述的方法,其特征在于,所述乱序执行队列的下一次最先分配的项是顺序维护队列的尾指针tail对应的id号所指的乱序执行队列项。


3.根据权利要求1所述的方法,其特征在于,所述乱序执行队列包括有效valid域和准备好rdy域,其中,所述valid域用于记录所述乱序执行队列的项是否有效,所述rdy域用于记录所述乱序执行队列的项的指令和数据是否已经准备好。


4.根据权利要求3所述的方法,其特征在于,当处理器为初始化的情况时,还包括:
将所述顺序维护队列的id域从上到下依次编号,tail置为0,并将所述乱序执行队列中各项的valid域置为0,其中,所述valid域为0表示记录的项无效。


5.根据权利要求1所述的方法,其特征在于,当处理器中乱序执行队列为仅指令进入的情况时,还包括:
将指令进入顺序维护队列的tail项对应的id号所指的乱序执行队列项,并将所述顺序维护队列的tail向下移动一项,其中,下一拍tail=当前拍tail+1。


6.根据权利要求3所述的方法,其特征在于,当处理器中乱序执行队列为仅指令执行的情况时,还包括:
按照所述顺序维护队列从上往下到tail的顺序,找到id号对应的乱序执行队列中,第一个valid域为1且rdy域为1的项执行,该项执行后为空项,所述tail项及其之前的各项内容均向上移动一项,并将所述空项对应的id号存到所述顺序维护队列的tail项的id域,下一拍tail=当前拍tail-1,其中,所述valid域为1表示记录的项有效,所述rdy域为1表示记录的项的指令和数据准备好。


7.根据权利要求6所述的方法,其特征在于,当所述队列满时,还包括:
在准备好的指令执行后,将所述tail之前的各项内容向上移动一项,并将所述乱序执行队列中指令执行后的空项进入tail-1项,且下一拍tail=所述顺序维护队列的最后一项。


8.根据权利要求3所述的方法,其特征在于,当处理器中乱序执行队列为同时指令进入和执行的情况时,还包括:
将新指令进入所...

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

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

1