存储偶然的分支预测以减少错误预测恢复的时延制造技术

技术编号:27392111 阅读:30 留言:0更新日期:2021-02-21 14:01
一种分支预测器预测第一指令块中的第一分支的第一结果。提取逻辑提取指令以用于沿着由所述第一结果指示的第一路径进行推测执行。响应于采用所述第一预测结果,存储表示所述第一块的其余部分的信息。响应于未采用所述第一分支指令,所述分支预测器基于所述其余块重新启动。在一些情况下,使用所述第一块的地址作为至分支预测结构中的索引来访问沿着来自所述第一块的推测路径对应于第二块的条目。使用分支条件逻辑的对应的实例集合同时预测所述第二块中的分支指令的结果,并且响应于错误预测,与所述其余块相结合地使用所述预测结果以重新启动所述分支预测器。重新启动所述分支预测器。重新启动所述分支预测器。

【技术实现步骤摘要】
【国外来华专利技术】存储偶然的分支预测以减少错误预测恢复的时延

技术介绍

[0001]处理单元使用分支预测来猜测分支指令的结果,使得处理单元可以在处理单元评估分支指令之前沿着预测的分支开始推测性地执行后续指令。处理单元使用分支预测结构中的信息来预测分支指令的结果。例如,处理单元可以预测实现软件构造,诸如if-then-else和case语句的条件分支指令的结果。分支预测结构的示例包括:间接分支预测器,其将程序流重定向到任意指令;返回地址栈,其包括用于在处理单元上执行的子例程的返回地址;条件分支预测器,其预测条件分支的方向(采用或不采用);以及分支目标缓冲区,其包括预测分支指令的位置、类型和目标地址的信息。
[0002]分支预测结构的一些实现方式使用由先前或当前在处理单元上执行的过程所执行的分支指令的结果的分支历史作为预测算法的一部分。例如,如果分支指令先前在90%的时间内将程序流定向到第一地址以及在10%的时间内将程序流定向到第二地址,在分支预测结构中的对应条目则预测分支指令会将程序流定向到第一地址,从而允许过程沿着在第一地址开始的分支来推测性地执行指令,而无需等待对分支指令的评估。如果在评估分支指令时预测的分支结果是不正确的,则暂停沿着不正确预测的分支的推测执行,并且使处理单元的状态回滚至分支指令处的状态,以开始沿着正确的分支执行。更具体地,分支预测单元和提取单元两者均回滚以从分支的正确目标或在分支(如果不采用该分支)之后的地址进行处理。
附图说明
[0003]通过参考附图,本领域技术人员可更好地理解本公开并且明白其众多特征和优势。在不同附图中使用相同的附图标记来指示类似或相同的项目。
[0004]图1是根据一些实施方案的处理系统的框图。
[0005]图2是根据一些实施方案的包括处理器核心的处理系统的一部分的框图。
[0006]图3是根据一些实施方案的预测块和对应于预测块中分支指令不同的可能结果的块集合的框图。
[0007]图4是根据一些实施方案的包括分支目标缓冲区和分支预测结构的处理系统的一部分的框图。
[0008]图5是根据一些实施方案的使用所存储的预测信息来从分支错误预测进行恢复以减少分支预测恢复的时延的方法的流程图。
[0009]图6是根据一些实施方案的实现“提前预测”分支预测的处理系统的一部分的框图。
[0010]图7是根据一些实施方案的使用存储的预测信息来从分支错误预测进行恢复以减少用于“提前预测”分支预测的分支预测恢复的时延的方法的第一部分的流程图。
[0011]图8是根据一些实施方案的使用存储的预测信息来从分支错误预测进行恢复以减少用于“提前预测”分支预测的分支预测恢复的时延的方法的第二部分的流程图。
具体实施方式
[0012]处理单元的一些实施方案同时执行多个指令,例如,处理单元可以每个周期执行4至8个指令。因此,分支预测器同时预测包括分支指令的指令块(在此称为预测块)内的多个分支指令的结果。预测块在起始地址,诸如先前分支指令的边界地址或目标地址处开始。预测块在结束地址,诸如后续边界地址(例如,对应于64字节高速缓存线边界的地址)或预测块中第一个采用的分支指令的地址处结束。如果分支预测器被配置为同时预测两个分支指令的结果,分支预测器则使用预测块的地址作为至预测结构(诸如,分支目标缓冲区BTB)中的索引,所述预测结构存储两个分支的地址、两个分支的类型、所采用的分支的目标地址以及在预测块中是否存在任何附加分支指令的指示。
[0013]分支预测器指示提取逻辑沿着由两个分支指令的结果预测的路径提取指令。例如,如果未采用第一分支指令,分支预测器则指示提取逻辑沿着包括第二分支指令的路径提取指令,使得程序流顺序地前进至第二分支指令。然后,分支预测器基于第二分支指令的预测结果,指示提取逻辑提取后续指令。然而,如果分支预测器预测要采用第一分支指令,程序则不流向第二分支指令,并且丢弃为第二分支指令生成的预测信息。在一些情况下,分支预测器错误地预测了第一分支指令的结果,这导致处理单元回滚到分支指令处的状态,并且随后沿着包括第二分支指令的顺序路径执行指令。然而,第二分支预测信息不再可用于分支预测器,分支预测器必须重新计算第二分支指令的预测结果。重新计算第二分支指令的预测结果增加分支预测流水线中的时延。
[0014]在“预先预测”技术中,第一块的地址用作索引来访问分支预测结构和分支预测器存储装置中的信息。该信息包括对应于可能的后续块集合的条目集合,该可能的后续块是第一块中的分支指令的目标。响应于分支预测器预测出第一块中的分支指令的结果,从该集合中选择条目的一个子集。预测结果指示第二块包括对应于条目子集的分支指令,该条目子集包括用于第二块中的分支指令的分支预测信息。在确定第一块的结果是否被正确预测之前,分支预测器使用条目子集中的信息来预测第二块中的分支指令的结果。第二块的预测地址被用作信息的索引,该信息用于在被预测为第二块中的分支指令中的一个的结果的地址处预测第三块中的分支指令的结果。如果错误地预测了第一块的分支结果或目标,处理单元则回滚到第一块中的错误预测的分支指令的末端处的状态并且开始沿着正确的路径执行。如果不正确的预测是“未采用”分支指令以及“采用”实际分支结果,正确的路径则开始于为第一块中的分支指令的目标的可能的后续块集合中的另一个处。如果不正确的预测是“采用”分支指令并且“未采用”实际分支结果,则在继续进行至第二块之前预测和提取第一块的其余部分。因此,如果第一块的初始分支预测不正确,则要求处理单元基于正确的路径回滚分支预测器并且重新计算第二块的预测结果,这增加了分支预测器的时延。
[0015]图1至9公开了用于通过同时预测第一分支指令的第一结果和第二分支指令的第二结果来减少分支预测时延的技术。分支预测器指示提取逻辑开始提取指令以用于沿着由第一结果指示的路径进行推测执行。分支预测器还存储第二预测结果,其在本文中还称为其余块预测。在没有第二分支指令的情况下,其余块预测存储指示在其余块中直到后续存储器边界为止没有附加分支的信息。响应于对第一分支指令的第一结果的错误预测,提取单元在第一分支的正确目标处重新启动并且分支预测器基于所存储的第二预测结果的目标重新启动,这通过无需重新预测第二分支而节省了时间。其余块预测被注入分支预测流
水线的后期,因此可以将其传送到处理器逻辑的其余部分以用于按照常规机制提取、解码和确认分支预测。此外,生成其余块并且将其存储为用于执行原始分支预测的流水线流的副产品。因此,回滚并且重新启动分支预测流水线,而不需要分支预测器与主要流同时或响应于错误预测而沿着流水线启动额外的流。
[0016]在一些实施方案中,第一分支指令和第二分支指令在预测块中,该预测块由同时处理第一分支指令和第二分支指令的分支预测器的实例处理。响应于第一结果指示预测沿着不包括第二分支指令的“采用”的路径,存储包括第二预测结果的其余块。响应于错误预测,分支预测器在以下三个地址中的一个处开始分支预测:(1)如果第二结果指示采用分支,则为第二分支指令的目标地址,(2)如果本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,其包括:在分支预测器处预测第一指令块中的第一分支指令的第一结果;指示提取逻辑开始提取指令以用于沿着由所述第一预测结果指示的第一路径进行推测执行;响应于采用所述第一预测结果,存储表示所述第一块的其余部分的其余块;以及响应于未采用所述第一分支指令,基于所述其余块重新启动所述分支预测器。2.如权利要求1所述的方法,其中预测所述第一分支的所述第一结果包括同时预测所述第一指令块中的所述第一分支指令的所述第一结果以及第二分支指令的第二结果。3.如权利要求2所述的方法,其中存储所述其余块包括响应于采用所述第一预测结果并且所述第一路径不包括所述第二分支指令来存储包括指示所述第二预测结果的信息的其余块。4.如权利要求2所述的方法,其中重新启动所述分支预测器包括基于所述其余块中指示所述第二预测结果的所述信息来重新启动所述分支预测器。5.如权利要求2所述的方法,其中重新启动所述分支预测器包括重新启动所述分支预测器以在由以下中的一者所识别的第二块处开始分支预测:响应于所述第二预测结果指示采用所述第二分支指令,所述第二分支指令的目标地址;响应于所述第二预测结果指示未采用所述第二分支指令并且所述第一块包括至少一个第三分支指令,所述第二分支指令之后的指令的地址;以及响应于所述第二预测结果指示未采用所述第二分支指令并且所述第一块不包括所述至少一个第三分支指令,所述第一块的边界。6.如权利要求1所述的方法,其中所述第一块在后续存储器边界之前不包括第二分支指令,并且其中所述其余块包括指示所述第一块在所述后续存储器边界之前不包括所述第二分支指令的信息。7.如权利要求6所述的方法,其中重新启动所述分支预测器包括在所述其余块中指示的所述后续存储器边界处重新启动所述分支预测器。8.如权利要求1所述的方法,其还包括:使用所述第一块的地址作为索引来访问分支预测结构中的信息,其中所述信息包括沿着来自所述第一块的推测路径对应于第二块集合的条目集合。9.一种设备,其包括:分支预测器,所述分支预测器被配置为预测第一指令块中的第一分支指令的第一结果;提取逻辑,所述提取逻辑用于提取指令以用于沿着由所述第一预测结果指示的第一路径进行推测执行;以及在所述分支预测器中的替代预测存储阵列,所述替代预测存储阵列用于响应于采用所述第一预测结果而存储表示所述第一块的其余部分的信息,其中响应于未采用...

【专利技术属性】
技术研发人员:马吕斯
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1