调度乱序队列和判断队列取消项的方法和装置制造方法及图纸

技术编号:26761799 阅读:25 留言:0更新日期:2020-12-18 23:03
本发明专利技术公开了一种调度乱序队列和判断队列取消项的方法和装置,其中,方法包括以下步骤:在重定序缓存或转移重定序缓存地址前面增加最高位;用重定序缓存或转移重定序缓存的读指针增加的最高位,异或两个需要比较的重定序缓存或转移重定序缓存地址增加的最高位,将异或后得到的地址作为两条指令的年龄信息进行大小比较,以判断得到指令年龄的新老。本发明专利技术实施例可以有效表达出指令年龄的真实信息,在判断时由于异或门的使用减少了比较器的使用数量,从而有效降低了指令年龄判断的复杂度,减小指令年龄判断的延时,有效提高乱序处理器的性能、降低功耗、节约面积。

【技术实现步骤摘要】
调度乱序队列和判断队列取消项的方法和装置
本专利技术涉及乱序处理器
,特别涉及一种调度乱序队列和判断队列取消项的方法和装置。
技术介绍
乱序处理器的指令到了乱序队列中,就不会按照程序中指定的顺序在处理器中流动,只要满足执行的条件,后面的指令可以越过前面的指令先执行,以提高指令的执行速度。在乱序处理器的乱序队列调度上,当乱序队列中有多条指令准备好,一般优先选择程序上最早的指令执行,即采用oldest-first策略进行调度仲裁,因此需要判断指令的先后顺序。这是考虑到越是旧的指令,和它存在相关的指令也就越多,因此优先执行最旧的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指令还占据着处理器中的硬件资源,包括其他的乱序队列、重定序缓存、写缓冲区(StoreBuffer)等部件,越早地执行这些旧的指令,就可以越早地释放这些硬件资源,供后面的指令使用。乱序处理器中的乱序队列包括发射队列、各级缓存的访问队列、缓存访问失效队列,一致性请求队列等。当乱序处理器因为转移预测错、访存相关等引起的重新执行,或因为例外引发的异常等发生取消等情况时,需要判断在流水线中还没有提交的指令中有哪些指令是处于转移预测错的指令、访存相关引起重新执行的指令或例外引发异常的指令的后面,属于需要同引发取消的指令一起被取消的指令,在流水线各个阶段来取消这些指令,让这些指令重新执行,或回滚到流水线的特定阶段再开始执行。要识别出乱序队列中哪些指令是最旧的,就需要知道这些指令的年龄信息,年龄信息表示指令进入流水线的先后顺序。在普通的顺序执行的处理器中,指令的年龄信息很容易被追踪,而到了乱序处理器的乱序队列中之后,这些年龄信息就被打乱了,但是在处理器中还有一个地方,按照进入流水线的顺序记录着处理器中的所有指令,这个部件就是ROB(ReorderBuffer,重定序缓存),指令被重命名之后,会按照程序中指定的顺序写到ROB中,因此可以使用每条指令在ROB中的位置(也就是寻址ROB的地址值)作为这条指令的年龄信息。对于处理器发生取消的情况,判断在流水线中还没有提交的指令中哪些是处于引发取消的指令后面的属于需要同引发取消的指令一起被取消的指令,可以通过重定缓存ROB中的位置信息来比较哪些指令是处于引发取消指令后面的指令。另外,对于转移预测错取消的情况,判断在流水线中还没有提交的指令哪些是处于发生转移预测错的转移指令后面的需要同转移预测错的指令一起被取消的指令,除ROB中记录的位置信息外还可以通过B-ROB(BranchReorderBuffer,转移重定序缓存)中的位置信息来比较哪些指令是处于发生转移预测错指令后面的需要取消的指令。然而,由于ROB和B-ROB本质上都是一个FIFO(FirstInputFirstOutput,先进先出)队列,因此直接使用它的地址是无法表达出指令年龄的真实信息的,从而亟需设计一种机制来解决上述问题。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一目的在于提出一种调度乱序队列和判断队列取消项的方法,可以有效表达出指令年龄的真实信息,在判断时由于异或门的使用减少了比较器的使用数量,有效降低了指令年龄判断的复杂度,减小指令年龄判断的延时,有效提高乱序处理器的性能、降低功耗、节约面积。本专利技术的第二个目的在于提出一种调度乱序队列和判断队列取消项的装置。本专利技术的第三个目的在于提出一种电子设备。本专利技术的第四个目的在于提出一种非临时性计算机可读存储介质。为达到上述目的,本专利技术第一方面提供一种调度乱序队列和判断队列取消项的方法,包括以下步骤:在重定序缓存或转移重定序缓存地址前面增加最高位;用重定序缓存或转移重定序缓存的读指针增加的最高位,异或两个需要比较的重定序缓存或转移重定序缓存地址增加的最高位,将异或后得到的地址作为两条指令的年龄信息进行大小比较,以判断得到指令年龄的新老。根据本专利技术的调度乱序队列和判断队列取消项的方法,通过异或重定序缓存或转移重定序缓存的读指针增加的最高位与其缓存地址增加的最高位得到指令的年龄信息,并比较指令的年龄信息得到指令年龄的新老,以有效表达出指令年龄的真实信息,在判断时由于异或门的使用减少了比较器的使用数量,从而有效降低了指令年龄判断的复杂度,减小指令年龄判断的延时,有效提高乱序处理器的性能、降低功耗、节约面积。解决了由于写指针的翻转引起的根据重定序缓存或转移重定序缓存的地址进行年龄判断时,出现的指令年龄大小的混乱问题。另外,根据本专利技术上述的调度乱序队列和判断队列取消项的方法还可以具有以下附加的技术特征:进一步地,还包括:在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。进一步地,在判断队列取消项时,选择队列中引起取消的指令及比引起取消的指令的年龄新的指令进行取消。进一步地,所述重定序缓存或转移重定序缓存的读取由读指针控制,其中,当队列非空时,所述读指针指向下一次将要读取的第一项,所述重定序缓存或转移重定序缓存是有序的先进先出队列,且所述读指针指向的项是重定序缓存或转移重定序缓存中年龄最老的项,所述年龄最老的项为年龄最老的指令对应的项;当队列空时,读指针和写指针指向同一个空项,读指针和写指针增加的最高位的值相同。进一步地,所述重定序缓存或转移重定序缓存的写入由写指针控制,每条指令在所述重定序缓存或转移重定序缓存中的位置由所述写指针分配,其中,在队列未全满时,所述写指针指向下一次将要写入的第一个空项;在队列满时,写指针和读指针指向同一项,写指针和读指针增加的最高位的值相反。进一步地,所述重定序缓存或转移重定序缓存的写指针和读指针在复位状态时均指向复位项,当新指令写入到重定序缓存或转移重定序缓存中时,所述写指针指向下一个将要写入的项,当指令退出后,所述读指针指向下一个将要读出的项。进一步地,所述复位项是指复位时写指针和读指针指向的同一项,复位项为队列的任一项,在复位时读指针和写指针增加的地址最高位相同。进一步地,所述读指针指向的下一个将要读出的项或写指针指向的下一个将要写入的项,按地址增加的方向或按地址减小的方向进行指向。进一步地,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址增加的方向指向下一项时,包括:当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针指向的下一项低位从0开始编码,其中,所述第一预设项数由最大项数确定;当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针增加的最高位的值翻转。进一步地,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址增加的方向指向下一项时,包括:当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针指向的下一项继续编码,直到到达2的幂次项再低位从0重新编码;当写指针或读指针低位到达第二预设项数时,写指针或读指针增加的最高位翻转,其中,所述第二预设项数由2的幂次确定。进一步地,当重定序缓存或转本文档来自技高网
...

【技术保护点】
1.一种调度乱序队列和判断队列取消项的方法,其特征在于,包括以下步骤:/n在重定序缓存或转移重定序缓存地址前面增加最高位;/n用重定序缓存或转移重定序缓存的读指针增加的最高位,异或两个需要比较的重定序缓存或转移重定序缓存地址增加的最高位,将异或后得到的地址作为两条指令的年龄信息进行大小比较,以判断得到指令年龄的新老。/n

【技术特征摘要】
1.一种调度乱序队列和判断队列取消项的方法,其特征在于,包括以下步骤:
在重定序缓存或转移重定序缓存地址前面增加最高位;
用重定序缓存或转移重定序缓存的读指针增加的最高位,异或两个需要比较的重定序缓存或转移重定序缓存地址增加的最高位,将异或后得到的地址作为两条指令的年龄信息进行大小比较,以判断得到指令年龄的新老。


2.根据权利要求1所述的方法,其特征在于,还包括:
在调度乱序队列时,选择队列中有效且年龄最老的指令进行执行。


3.根据权利要求1所述的方法,其特征在于,还包括:
在判断队列取消项时,选择队列中引起取消的指令及比引起取消的指令的年龄新的指令进行取消。


4.根据权利要求1所述的方法,其特征在于,所述重定序缓存或转移重定序缓存的读取由读指针控制,其中,当队列非空时,所述读指针指向下一次将要读取的第一项,所述重定序缓存或转移重定序缓存是有序的先进先出队列,且所述读指针指向的项是重定序缓存或转移重定序缓存中年龄最老的项,所述年龄最老的项为年龄最老的指令对应的项;当队列空时,读指针和写指针指向同一个空项,读指针和写指针增加的最高位的值相同。


5.根据权利要求1所述的方法,其特征在于,所述重定序缓存或转移重定序缓存的写入由写指针控制,每条指令在所述重定序缓存或转移重定序缓存中的位置由所述写指针分配,其中,在队列未全满时,所述写指针指向下一次将要写入的第一个空项;在队列满时,写指针和读指针指向同一项,写指针和读指针增加的最高位的值相反。


6.根据权利要求1所述的方法,其特征在于,所述重定序缓存或转移重定序缓存的写指针和读指针在复位状态时均指向复位项,当新指令写入到重定序缓存或转移重定序缓存中时,所述写指针指向下一个将要写入的项,当指令退出后,所述读指针指向下一个将要读出的项。


7.根据权利要求6所述的方法,其特征在于,所述复位项是指复位时写指针和读指针指向的同一项,复位项为队列的任一项,在复位时读指针和写指针增加的地址最高位相同。


8.根据权利要求6所述的方法,其特征在于,所述读指针指向的下一个将要读出的项或写指针指向的下一个将要写入的项,按地址增加的方向或按地址减小的方向进行指向。


9.根据权利要求8所述的方法,其特征在于,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址增加的方向指向下一项时,包括:
当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针指向的下一项低位从0开始编码,其中,所述第一预设项数由最大项数确定;
当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针增加的最高位的值翻转。


10.根据权利要求8所述的方法,其特征在于,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址增加的方向指向下一项时,包括:
当写指针或读指针低位到达队列的第一预设项数时,写指针或读指针指向的下一项继续编码,直到到达2的幂次项再低位从0重新编码;
当写指针或读指针低位到达第二预设项数时,写指针或读指针增加的最高位翻转,其中,所述第二预设项数由2的幂次确定。


11.根据权利要求8所述的方法,其特征在于,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址减小的方向指向下一项时,包括:
当写指针或读指针低位减小到0时,写指针或读指针指向的下一项低位从队列的第一预设项数开始编码;
当写指针或读指针低位减小到0时,写指针或读指针增加的最高位的值翻转。


12.根据权利要求8所述的方法,其特征在于,当重定序缓存或转移重定序缓存的队列项数不是2的幂次,且读指针和写指针按照地址减小的方向指向下一项时,包括:
当写指针或读指针低位减小到0时,写指针或读指针指向的下一项低位从最接近队列项数且比队列项数大的第二预设项数重新进行编码;
当写指针或读指针低位减小到0时,写指针或读指针增加的最高位翻转。


13.根据权利要求8所述的方法,其特征在于,当所述读指针和写指针按地址增加的方向指向下一项时,地址...

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

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

1