指令转移预测系统、方法、装置、计算机设备及存储介质与流程

文档序号:34253300发布日期:2023-05-25 02:56阅读:46来源:国知局
指令转移预测系统、方法、装置、计算机设备及存储介质

本发明涉及集成电路设计,尤其涉及一种指令转移预测系统、方法、装置、计算机设备及存储介质。


背景技术:

1、在现代高性能处理器中,流水线可以被划分为前端处理单元和后端处理单元。前端处理单元用于向后端处理单元提供需要执行的指令,因此,前端处理单元的效率直接影响后端处理单元的执行速度。

2、相关技术中,将前端处理单元中的预测单元和取指单元进行解耦合,以提升前端处理单元的性能。然而,对于具有多级分支预测结构的预测单元的解耦合效果有待提升。


技术实现思路

1、本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种指令转移预测系统,重新设计利用预测单元产生的预测结果对用于取指的指令地址进行定向的逻辑,将预测单元从原来的耦合结构中分离出来,以提升预测单元的解耦合效果。

2、本发明的第二个目的在于提出一种指令转移预测方法。

3、本发明的第三个目的在于提出一种指令转移预测装置。

4、本发明的第四个目的在于提出一种计算机设备。

5、本发明的第五个目的在于提出一种计算机可读存储介质。

6、为达到上述目的,本发明第一方面实施方式提出了一种指令转移预测方法,所述指令转移预测系统包括预测单元、预测目标地址队列和取指单元,所述预测目标地址队列的输入端连接所述预测单元的输出端,所述预测目标地址队列的输出端连接所述取指单元的输入端;其中:所述预测单元,用于对转移指令进行多级分支预测;所述多级分支预测包括第一级分支预测和第二级分支预测;通过所述第一级分支预测对所述转移指令进行分支预测,得到第一级预测结果并输出,通过所述第二级分支预测对所述转移指令进行分支预测,得到第二级预测结果并输出;其中,所述第一级预测结果和所述第二级预测结果分别包括所述转移指令对应的预测地址;所述预测目标地址队列,用于在接收到所述第一级预测结果的情况下记录对应的所述转移指令的指令地址以及所述第一级预测结果,并在接收到所述转移指令对应的所述第二级预测结果的情况下,利用所述第二级预测结果覆盖对应的所述第一级预测结果;所述取指单元,用于从所述预测目标地址队列获取目标指令地址对应的目标预测地址,并根据获取的所述目标预测地址进行相应的取指操作。

7、根据本发明的一个实施方式,所述预测目标地址队列,还用于在所述取指单元根据获取的所述目标预测地址进行取指操作并从第一指令缓存空间中获取到相应的目标指令块的情况下,将对应的所述目标指令地址以及所述目标预测地址所处的目标表项从所述预测目标地址队列中删除。

8、根据本发明的一个实施方式,所述预测目标地址队列,还用于对所述预测目标地址队列中的任一指令地址对应的预测地址进行过滤,得到满足预取条件的预测地址,作为预取地址;其中,满足所述预取条件的预测地址为与其对应的指令地址分别位于不同的缓存行的预测地址;所述预取地址用于从第二指令缓存空间中获取所述预取地址对应的预取指令块。

9、根据本发明的一个实施方式,所述预测目标地址队列,还用于在记录对应的所述转移指令的指令地址以及所述第一级预测结果至所述预测目标地址队列的对应表项时,返回该表项的表项索引至所述预测单元,以使所述预测单元根据对应的所述表项索引将对应的所述第二级预测结果写至对应表项中。

10、根据本发明的一个实施方式,所述预测目标地址队列具有出队指针;所述预测目标地址队列,还用于在所述取指单元根据所述出队指针当前指向的表项中包括的预测地址进行取指操作并从所述第一指令缓存空间中获取到相应的指令块的情况下,将所述出队指针当前指向的表项从所述预测目标地址队列中删除,并更新所述出队指针。

11、根据本发明的一个实施方式,所述预测目标地址队列具有预取指针;所述预测目标地址队列,还用于在接收到处理器前端发送的预取请求的情况下,返回所述预取指针当前指向的表项中包括的预测地址和该预测地址对应的预取有效性信号至所述处理器前端,并更新所述预取指针,以使所述处理器前端在接收到的所述预取有效性信号为预取有效信号的情况下,以所述预取有效信号对应的预测地址为预取地址,并从所述第二指令缓存空间中获取所述预取地址对应的预取指令块;其中,所述预取有效信号用于表明所述预取有效信号对应的预测地址为满足所述预取条件的预测地址。

12、根据本发明的一个实施方式,所述预测目标地址队列具有入队指针和读取指针;所述预测目标地址队列,还用于在接收到所述第一级预测结果的情况下,记录对应的所述转移指令的指令地址以及所述第一级预测结果至所述入队指针当前指向的表项并更新所述入队指针,以及在接收到所述取指单元的读取请求的情况下,返回所述读取指针当前指向的表项中包括的预测地址至所述取指单元并更新所述读取指针。

13、为达到上述目的,本发明第二方面实施方式提出了一种指令转移预测方法,应用于指令转移预测系统,所述指令转移预测系统包括预测单元、预测目标地址队列和取指单元,所述预测目标地址队列的输入端连接所述预测单元的输出端,所述预测目标地址队列的输出端连接所述取指单元的输入端;所述预测单元用于对转移指令进行多级分支预测;所述多级分支预测包括第一级分支预测和第二级分支预测;所述方法包括:所述预测单元通过所述第一级分支预测对所述转移指令进行分支预测,得到第一级预测结果并输出,通过所述第二级分支预测对所述转移指令进行分支预测,得到第二级预测结果并输出;其中,所述第一级预测结果和所述第二级预测结果分别包括所述转移指令对应的预测地址;所述预测目标地址队列在接收到所述第一级预测结果的情况下记录对应的所述转移指令的指令地址以及所述第一级预测结果,并在接收到所述转移指令对应的所述第二级预测结果的情况下,利用所述第二级预测结果覆盖对应的所述第一级预测结果;所述取指单元从所述预测目标地址队列获取目标指令地址对应的目标预测地址,并根据获取的所述目标预测地址进行相应的取指操作。

14、为达到上述目的,本发明第三方面实施方式提出了一种指令转移预测装置,应用于指令转移预测系统,所述指令转移预测系统包括预测单元、预测目标地址队列和取指单元,所述预测目标地址队列的输入端连接所述预测单元的输出端,所述预测目标地址队列的输出端连接所述取指单元的输入端;所述预测单元用于对转移指令进行多级分支预测;所述多级分支预测包括第一级分支预测和第二级分支预测;所述装置包括:分支预测模块,用于所述预测单元通过所述第一级分支预测对所述转移指令进行分支预测,得到第一级预测结果并输出,通过所述第二级分支预测对所述转移指令进行分支预测,得到第二级预测结果并输出;其中,所述第一级预测结果和所述第二级预测结果分别包括所述转移指令对应的预测地址;记录模块,用于所述预测目标地址队列在接收到所述第一级预测结果的情况下记录对应的所述转移指令的指令地址以及所述第一级预测结果,并在接收到所述转移指令对应的所述第二级预测结果的情况下,利用所述第二级预测结果覆盖对应的所述第一级预测结果;预测地址获取模块,用于所述取指单元从所述预测目标地址队列获取目标指令地址对应的目标预测地址,并根据获取的所述目标预测地址进行相应的取指操作。

15、为达到上述目的,本发明第四方面实施方式提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现前述任一项实施方式所述的指令转移预测方法的步骤。

16、为达到上述目的,本发明第五方面实施方式提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一项实施方式所述的指令转移预测方法的步骤。

17、根据本发明提供的多个实施方式,重新设计了指令流的定向逻辑,使用高级预测结果直接对取指需要用的程序计数器地址进行定向,取消了预译码结果的参与,从而将整个具有多级预测覆盖结构的预测单元从原有的结构中分离出来,提高了预测单元的解耦合效果。

18、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1