操作指令调度队列的方法、操作装置和电子装置制造方法及图纸

技术编号:33407169 阅读:19 留言:0更新日期:2022-05-11 23:31
本公开的实施例公开了操作指令调度队列的方法、操作装置和电子装置。该操作指令调度队列的方法,指令调度队列至少包括第一指令和第二指令,该方法包括:响应于第二指令依赖于第一指令、第二指令的第一源操作数寄存器不是第一指令的目的寄存器且第一指令的目的寄存器依赖于第二指令的第一源操作数寄存器,在指令调度队列中省略判断第二指令的第一源操作数寄存器对应的操作数是否准备好,以确定第二指令是否准备好。本公开的实施例省略不必要的寄存器的操作数是否准备好的判断,减少该判断操作相应的开销。操作相应的开销。操作相应的开销。

【技术实现步骤摘要】
操作指令调度队列的方法、操作装置和电子装置


[0001]本公开的实施例涉及操作指令调度队列的方法、操作装置和电子装置。

技术介绍

[0002]处理器中,指令调度队列存储待执行的指令,并检查结果总线,当结果总线有在先被执行的其他指令的执行结果时,将指令调度队列中依赖于该结果的待执行的指令的源操作数的状态置为准备好。当该待执行的指令的所有源操作数的状态都为准备好时,则可以指示该指令已经准备好,该指令可以从指令调度队列中被选取并发射到相应的执行单元执行。

技术实现思路

[0003]本公开的第一方面提供了一种操作指令调度队列的方法,指令调度队列至少包括第一指令和第二指令,方法包括:响应于第二指令依赖于第一指令、第二指令的第一源操作数寄存器不是第一指令的目的寄存器且第一指令的目的寄存器依赖于第二指令的第一源操作数寄存器,在指令调度队列中省略判断第二指令的第一源操作数寄存器对应的操作数是否准备好,以确定第二指令是否准备好。
[0004]本公开的另一方面提供了一种指令调度队列的操作装置,所述指令调度队列至少包括第一指令和第二指令,所述操作装置包括:操作数状态判断单元,被配置为响应于第二指令依赖于第一指令、第二指令的第一源操作数寄存器不是第一指令的目的寄存器且第一指令的目的寄存器依赖于第二指令的第一源操作数寄存器,在指令调度队列中省略判断第二指令的第一源操作数寄存器对应的操作数是否准备好,以确定第二指令是否准备好。
[0005]本公开的另一方面提供了一种电子装置,包括如上所述的指令调度队列的操作装置。
[0006]本公开的另一方面提供了一种计算机可读存储介质,其上存储有指令,其中,指令在被处理器执行时,使得处理器执行如上所述的操作指令调度队列的方法。
[0007]如此,根据本公开的至少一实施例的操作指令调度队列的方法、操作装置和电子装置和计算机可读存储介质可以基于指令调度队列中的指令之间是否存在冗余依赖关系,并且在存在冗余关系的情况下,省略不必要的寄存器的操作数是否准备好的判断,减少该判断操作相应的开销。
附图说明
[0008]为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的附图作简单地介绍。明显地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0009]图1示出了一种处理器核的流水线的示意图;图2示出了根据本公开的至少一实施例的指令调度队列的示意图;
图3示出了根据本公开的至少一实施例的操作指令调度队列的方法的示意图;图4示出了根据本公开的至少一实施例的指令调度队列的操作装置的示意图;图5示出了根据本公开的至少一实施例的电子装置的示意图;图6示出了根据本公开至少一实施例的另一电子装置的示意图;图7示出了根据本公开至少一实施例的又一电子装置的示意图;图8示出了根据本公开至少一实施例的一种非瞬时可读存储介质的示意图。
具体实施方式
[0010]为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
[0011]注意,接下来要介绍的示例仅是具体的示例,而不作为限制本公开的实施例必须为示出和描述的具体的外形、硬件、连接关系、操作、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本公开的构思来构造本说明书中未提到的更多实施例。
[0012]本公开中使用的术语是考虑到关于本公开的功能而在本领域中当前广泛使用的那些通用术语,但是这些术语可以根据本领域普通技术人员的意图、先例或本领域新技术而变化。此外,特定术语可以由申请人选择,并且在这种情况下,其详细含义将在本公开的详细描述中描述。因此,说明书中使用的术语不应理解为简单的名称,而是基于术语的含义和本公开的总体描述。
[0013]本公开中使用了流程图来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0014]图1示出了一种处理器核的流水线100的示意图。图1中的带箭头的虚线表示重新定向的指令流。如图所示,单核处理器或多核处理器的处理器核(例如CPU核)通过流水线技术提高指令间并行度(Instruction Level Parallelism)。处理器核内部包括多个流水阶段,比如,在流水线送入各种来源的程序计数器,通过多路选择器(Mux)选择出下一程序计数器(PC)之后,该程序计数器对应的指令要经过分支预测(Branch prediction)、指令提取(Instruction fetch)、指令译码(Decode)、指令分发与重命名(Dispatch and Rename)、指令执行(Execute)、指令结束(Retire)等各阶段处理。在各个流水阶段之间,根据需要设置等待队列,这些队列通常是先入先出(FIFO)队列。例如,在分支预测单元之后,设置有分支预测(BP)FIFO队列,以存储分支预测结果;在指令提取单元之后,设置有指令缓存(Instruction Cache,IC)FIFO,以缓存所取得的指令;在指令译码单元之后,设置有译码(DE)FIFO,以缓存译码后的指令;在指令分发与重命名单元之后,设置有结束(RT)FIFO以缓存执行之后等待确认结束的指令。同时处理器核的流水线还包括指令调度队列(也称为指令队列),以在指令分发与重命名之后缓存等待指令执行单元执行指令。
[0015]在处理器中,指令调度队列存储待执行的指令,并检查结果总线,当结果总线有在先被执行的其他指令的执行结果时,将指令调度队列中依赖于该结果的待执行的指令的源操作数的状态置为准备好。当该待执行的指令的所有源操作数的状态都为准备好时,可以
指示该指令已经准备好,该指令可以从指令调度队列中被选取并被发射到对应的执行单元执行。
[0016]取决于处理器的架构,指令调度队列可以包括不同数量的项。指令调度队列中每一项记录一条指令信息,例如,指令信息可以包括操作码、目的寄存器号(本文称为目的寄存器的编号)、源操作数寄存器号(本文也称为源操作数寄存器的编号)、源操作数准备好标志位、以及其它元数据等。
[0017]操作码可以指示对源操作数执行的运算操作,例如算术运算(如加减乘除等运算)、逻辑运算(或、且、非等运算)、关系运算(大于、小于、等于、不等于等)、数据传输(输入、输出、赋值等运算)等。
[0018]源操作数可以指示对其进行运算操作的对象,例如数据等。源操作数的数量取决于操作码所指示的运算操作,可以为1、2、3或者其他合适的数量。
[0019]源操作数寄存器号可以指示存储源操作数的寄存器的编号。
[0020]源操作数准备好标志位可以指示对应的源操作数是否准备好,例如,源操作数准备好标志位为1可以指示对应的源操作数准备好,源操作数准备好标志位为0可以指示对应的源操作数未准备好。
[0021]目的寄存器号可以指示存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种操作指令调度队列的方法,所述指令调度队列至少包括第一指令和第二指令,所述方法包括:响应于所述第二指令依赖于所述第一指令、所述第二指令的第一源操作数寄存器不是所述第一指令的目的寄存器且所述第一指令的目的寄存器依赖于所述第二指令的第一源操作数寄存器,在所述指令调度队列中省略判断所述第二指令的第一源操作数寄存器对应的操作数是否准备好,以确定所述第二指令是否准备好。2.根据权利要求1所述的方法,还包括:判断所述第一指令的目的寄存器是否依赖于所述第二指令的第一源操作数寄存器。3.根据权利要求2所述的方法,其中,判断所述第一指令的目的寄存器是否依赖于所述第二指令的第一源操作数寄存器包括:确定所述第一指令的目的寄存器依赖的寄存器的集合;响应于所述第二指令的第一源操作数寄存器属于所述第一指令的目的寄存器依赖的寄存器的集合,确定所述第一指令的目的寄存器依赖于所述第二指令的第一源操作数寄存器。4.根据权利要求3所述的方法,其中,确定所述第一指令的目的寄存器依赖的寄存器的集合包括:将所述第一指令的依赖关系树的各个节点的指令的源操作数寄存器添加到寄存器的集合中,其中所述依赖关系树以第一指令为根节点,并且所述依赖关系树的各个父节点的指令依赖于相应子节点的指令。5.根据权利要求4所述的方法,其中,所述指令调度队列还包括第三指令,所述第一指令依赖于所述第三指令,并且确定所述第一指令的目的寄存器依赖的寄存器的集合包括:将所述第一指令的源操作数寄存器和所述第三指令的源操作数寄存器添加到寄存器的集合中。6.根据权利要求3所述的方法,其中,所述第一指令的目的寄存器依赖的寄存器的集合包括寄存器的编号,并且响应于所述第二指令的第一源操作数寄存器属于所述第一指令的目的寄存器依赖的寄存器的集合,确定所述第一指令的目的寄存器依赖于所述第二指令的第一源操作数寄存器包括:响应于所述第二指令的第一源操作数寄存器的编号与所述第一指令的目的寄存器依赖的寄存器的集合包括的寄存器的编号至少之一相等,确定所述第一指令的目的寄存器依赖于所述第二指令的第一源操作数寄存器。7.根据权利要求3所述的方法,还包括:响应于所述第二指令的第一源操作数寄存器不属于所述第一指令的目的寄存器依赖的寄存器的集合,确定所述第一指令的目的寄存器不依赖于所述第二指令的第一源操作数寄存器。8.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:黄河
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1