一种检测分支预测的方法及处理器技术

技术编号:21735788 阅读:27 留言:0更新日期:2019-07-31 19:04
本发明专利技术实施例提供一种检测分支预测的方法及处理器,该方法包括:根据分支预测缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;根据所述匹配的第二分支信息检测分支预测是否正确。本发明专利技术实施例可基于分支预测是否正确的检测结果,在取指阶段发现分支预测错误时,为在取指阶段提前纠正分支预测错误提供可能,从而可极大的降低分支预测错误引发的流水线资源消耗和延迟。

A Method of Detecting Branch Prediction and Its Processor

【技术实现步骤摘要】
一种检测分支预测的方法及处理器
本专利技术实施例涉及处理器
,具体涉及一种检测分支预测的方法及处理器。
技术介绍
现代处理器一般采用流水线技术并行处理指令,以加速指令处理效率;在处理分支指令时,为避免等待分支指令执行结果而决定分支方向的情况,大多数现代处理器均采用分支预测(BranchPrediction)技术。分支预测可对分支指令的分支方向等结果进行预测,从而推动处理器进行下一步取指,避免等待分支指令执行结果而导致的流水线延迟。然而,分支预测也存在预测错误的可能,在出现分支预测错误时,需要清空流水线中由于分支预测错误引发的错误取指的指令,以纠正分支预测错误,这极为耗费流水线资源,扩大了流水线延迟。
技术实现思路
有鉴于此,本专利技术实施提供一种检测分支预测的方法及处理器,以在取指阶段提前发现分支预测错误,为在取指阶段提前纠正分支预测错误提供可能,从而降低分支预测错误引发的流水线资源消耗和延迟。为解决上述问题,本专利技术实施例提供一种检测分支预测的方法,该方法包括:一种检测分支预测的方法,所述方法由处理器执行,所述方法包括:根据分支预测缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;根据所述匹配的第二分支信息检测分支预测是否正确。本专利技术实施例还提供一种处理器,所述处理器包括至少一个处理器核,所述处理器核至少包括如下逻辑:分支预测单元,用于根据分支预测缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;缓存,用于在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;决策逻辑单元,用于根据所述匹配的第二分支信息检测分支预测是否正确。本专利技术实施例的技术方案具有以下优点:本专利技术实施例除在分支预测单元存储第一分支信息,还在缓存的指令缓存块中存储第二分支信息;从而在分支预测单元输出分支预测结果,根据分支预测结果的当前取指地址进行取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,则可根据所匹配的第二分支信息,检测分支预测是否正确;以此在取指阶段,基于缓存的指令缓存块中存储的第二分支信息,检测分支预测。本专利技术实施例可基于分支预测是否正确的检测结果,在取指阶段发现分支预测错误时,为在取指阶段提前纠正分支预测错误提供可能,从而减少流水线中填充入由于分支预测错误引发的指令和相应的执行结果的情况,减少译码或者执行阶段发现分支预测错误并纠正分支预测错误的情况,可极大的降低分支预测错误引发的流水线资源消耗和延迟。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为计算机系统体系结构的可选框图;图2为与内存耦合的处理器的可选框图;图3为包含使用流水线技术的处理器核的处理器可选框图;图4为本专利技术实施例提供的处理器的架构框图;图5为本专利技术实施例提供的处理器的另一架构框图;图6为本专利技术实施例提供的处理器的再一架构框图;图7为本专利技术实施例提供的处理器的又一架构框图;图8为本专利技术实施例提供的检测分支预测的方法示意图;图9为本专利技术实施例提供的检测分支预测是否正确的方法示意图;图10为本专利技术实施例列举的分支预测错误情况及重定向取指起始地址情况的示例图;图11为本专利技术实施例提供的处理器的又另一架构框图;图12为本专利技术实施例提供的处理器的又再一架构框图;图13为本专利技术实施例提供的处理器的另又一架构框图;图14为本专利技术实施例提供的搬移指令缓存块的示意图;图15为本专利技术实施例提供的查找匹配的第二分支信息的方法示意图;图16为本专利技术实施例提供的更新第一表项的可选示意图;图17为本专利技术实施例提供的更新第一表项的方法示意图;图18为本专利技术实施例提供的更新第一表项的另一可选示意图;图19为本专利技术实施例提供的确定更新第二表项的方法示意图;图20为本专利技术实施例提供的更新第二表项的方法示意图。具体实施方式在基于BTB(BranchTargetBuffer,分支目标缓冲器)的分支预测场景下,本专利技术实施例可在缓存中存储分支信息,从而在取指阶段利用缓存中存储的分支信息判断分支预测结果是否正确;以在判断分支预测错误时,为在取指阶段纠正分支预测错误提供可能,从而减少流水线中填充入由分支预测错误引发的指令和相应的执行结果的情况,降低流水线的资源消耗和延迟。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。作为本专利技术实施例公开内容的一个可选示例,图1示例性的示出了计算机系统体系架构的一种框图;应该说明的是,该框图是为便于理解本专利技术实施例公开内容而示出,本专利技术实施例并不限于图1所示架构。参考图1,计算机系统1可包括:处理器11,与处理器11耦合的内存12,与处理器耦合的南桥13。处理器11可包括CISC(复杂指令集计算机)微处理器、RISC(精简指令集计算机)微处理器、VLIW(超长指令字)微处理器、实现指令集的组合的处理器或诸如数字信号处理器的任何其它处理器装置。处理器11可集成用于执行至少一个指令的至少一个处理器核100,处理器核100表示任何类型的体系结构的处理器核,如RISC处理器核、CISC处理器核、VLIM处理器核或混合处理器核等。处理器核100可以以任何适合的方式实现,在处理器11集成多个处理器核100的情况下,处理器核可在体系结构和/或指令集方面是同构或异构的;在一种可选实现中,一些处理器核可以是有序的,而其它处理器核可以是乱序的,在另一种可选实现中,两个或更多个处理器核可执行相同指令集,而其它处理器核可执行该指令集的子集或不同指令集。作为一种可选示例,处理器11内可集成内存控制器等部件,并对外提供内存接口等;处理器11可通过内存接口耦合到内存12。同时,处理器11可耦合到处理器总线,并通过处理器总线耦合到南桥13。作为一种可选示例,南桥13可以集成与计算机系统其它组件相通信的总线接口14,从而通过南桥13实现处理器11与计算机系统1中大部分其他组件的信号传递;计算机系统的组件可根据实际情况增设和调整,此处不进行逐一说明;在一个可选示例中,南桥13所集成的总线接口14包括但不限于:存储器(如硬盘)总线接口、USB总线接口、网络控制器总线接口、PCIE总线接口等。需要说明的是,图1示例框图中处理器和南桥的耦合结构是基本的,但处理器和南桥的具体细化结构可视具体使用情况设置、调整和/或扩展,并不固定。在其他的计算机系统体系结构中,例如在分设南桥和北桥的计算机系统体系结构中,内存控制也可能由北桥提供,如北桥主要负责显卡、内存与处理器之间的信号传递,并且向上耦合处理器,本文档来自技高网...

【技术保护点】
1.一种检测分支预测的方法,其特征在于,所述方法由处理器执行,所述方法包括:根据分支预测缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;根据所述匹配的第二分支信息检测分支预测是否正确。

【技术特征摘要】
1.一种检测分支预测的方法,其特征在于,所述方法由处理器执行,所述方法包括:根据分支预测缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;根据所述匹配的第二分支信息检测分支预测是否正确。2.根据权利要求1所述的方法,其特征在于,所述缓存包括:一级缓存,和层级低于所述一级缓存的至少一个下级缓存;所述一级缓存的指令缓存块设置有存储第二分支信息的分支信息存储空间;所述至少一个下级缓存的指令缓存块的错误检查和纠正ECC空间存储有第二分支信息。3.根据权利要求1或2所述的方法,其特征在于,第一分支信息使用第一表项表示,第二分支信息使用第二表项表示;所述第二表项与所述第二表项所在的指令缓存块相关联,且复用所在的指令缓存块的Tag域。4.根据权利要求2所述的方法,其特征在于,所述至少一个下级缓存的指令缓存块使用奇偶校验保护。5.根据权利要求3所述的方法,其特征在于,所述从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息包括:如果所述当前取指地址命中所述缓存的指令缓存块的Tag域,确定复用命中Tag域的第二表项;根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项。6.根据权利要求5所述的方法,其特征在于,所述当前取指地址命中所述缓存的指令缓存块的Tag域包括:所述当前取指地址命中一级缓存的指令缓存块的Tag域;或,所述当前取指地址未命中一级缓存的指令缓存块的Tag域,但命中所述至少一个下级缓存的指令缓存块的Tag域。7.根据权利要求5或6所述的方法,其特征在于,一个指令缓存块存储一个第二表项;所述根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项包括:将所述复用命中Tag域的第二表项确定为,与所述当前取指地址匹配的第二表项。8.根据权利要求5或6所述的方法,其特征在于,一个指令缓存块存储多个第二表项;所述根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项包括:从复用命中Tag域的多个第二表项中确定,记录的分支指令地址与所述当前取指地址匹配的第二表项。9.根据权利要求3所述的方法,其特征在于,所述当前取指地址包括:当前取指起始地址和当前取指结束地址;所述根据所述匹配的第二分支信息检测分支预测是否正确包括:根据匹配的第二表项记录的分支指令地址,确定当前取指起始地址和当前取指结束地址之间,或者在当前取指结束地址的位置上是否存在分支指令;如果当前取指起始地址和当前取指结束地址之间存在分支指令,或者在当前取指结束地址的位置上存在分支指令,至少根据所述分支指令的类型检测分支预测是否正确。10.根据权利要求9所述的方法,其特征在于,所述至少根据所述分支指令的类型检测分支预测是否正确包括:如果当前取指起始地址和当前取指结束地址之间存在的分支指令的类型为非条件分支指令,检测分支预测错误;如果在当前取指结束地址的位置上存在的分支指令的类型为直接分支指令,且分支预测结果指示跳转,但预测的跳转地址不等同于匹配的第二表项记录的目标地址,检测分支预测错误。11.根据权利要求3所述的方法,其特征在于,还包括:在检测分支预测错误时,重定向取指起始地址;将重定向的取指起始地址作为分支预测的输入。12.根据权利要求11所述的方法,其特征在于,所述重定向取指起始地址包括:如果分支预测错误,且当前取指地址的起始地址和结束地址之间存在非条件直接分支指令,使重定向的取指起始地址为匹配的第二表项指示的目标地址;如果分支预测错误,且当前取指地址的起始地址和结束地址之间存在返回指令,使重定向的取指起始地址为返回指令的起始地址;如果分支预测错误,且在当前取指结束地址的位置上存在直接分支指令,使重定向的取指起始地址为匹配的第二表项指示的目标地址。13.根据权利要求3所述的方法,其特征在于,所述缓存包括:一级缓存和层级低于所述一级缓存的至少一个下级缓存;一级缓存的指令缓存块的分支信息存储空间大小等同于,所述至少一个下级缓存的指令缓存块的ECC空间大小;其中,所述分支信息存储空间和所述ECC空间用于存储第二表项;所述方法还包括:当指令缓存块在一级缓存和所述至少一个下级缓存间搬移时,使搬移的指令缓存块关联的第二表项随同指令缓存块搬移。14.根据权利要求13所述的方法,其特征在于,所述当指令缓存块在一级缓存和所述至少一个下级缓存间搬移时,使搬移的指令缓存块关联的第二表项随同指令缓存块搬移包括:在从所述至少一个下级缓存回填指令缓存块到一级缓存时,将回填的指令缓存块关联的第二表项从相应的ECC空间,搬移到一级缓存相应的指令缓存块的分支信息存储空间;在一级缓存的指令缓存块被替换时,将替换的指令缓存块关联的第二表项从相应的分支信息存储空间,写回到所述至少一个下级缓存中相应指令缓存块的ECC空间。15.根据权利要求14所述的方法,其特征在于,在满足如下条件时,执行所述从所述至少一个下级缓存回填指令缓存块到一级缓存:所述当前取指地址未命中一级缓存的指令缓存块的Tag域,但命中所述至少一个下级缓存的指令缓存块的Tag域。16.根据权利要求3所述的方法,其特征在于,还包括:在检测分支预测错误时,将重定向分支信息输入分支预测单元;所述重定向分支信息包括:当前取指起始地址,和缓存中匹配的第二分支信息;如果所述当前取指起始地址命中第一表项,根据所述匹配的第二分支信息,修改命中的第一表项;如果...

【专利技术属性】
技术研发人员:崔泽汉
申请(专利权)人:海光信息技术有限公司
类型:发明
国别省市:天津,12

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

1