处理器的被过滤的分支预测结构制造技术

技术编号:27890530 阅读:55 留言:0更新日期:2021-03-31 02:12
一种处理器[100]的分支预测器[110]包括一个或多个预测结构[112、114、116],所述一个或多个预测结构识别预测的分支,包括预测的分支地址和预测的分支方向。为了减少功率消耗,所述分支预测器选择所述预测结构中的预计不提供有用分支预测信息的一个或多个,并且对所述选择的结构进行过滤,使得所述被过滤的结构不用于分支预测。由此,所述分支预测器减少用于分支预测的功率量而基本上没有降低所述预测的分支的准确度。

【技术实现步骤摘要】
【国外来华专利技术】处理器的被过滤的分支预测结构
技术介绍
相关技术的描述为了提高处理效率,处理器可采用一种或多种预测处理技术。一种类型的预测处理技术被称为分支预测,由此处理器预测分支指令的结果,使得处理器可在处理单元评估分支指令之前沿着预测的分支开始推测性地执行后续指令。为了支持分支预测,处理器采用分支目标结构(被称为分支目标缓冲器(BTB))和分支方向预测器。BTB存储预测的分支的地址信息,而分支方向预测器预测给定分支预计是否将被采取。然而,常规的分支预测结构会消耗不期望的功率量。附图说明通过参考附图,可更好地理解本公开,并且本公开的许多特征和优点对于本领域技术人员来说是显而易见的。在不同的附图中使用相同的附图标记指示类似或相同的项。图1是根据一些实施方案的包括具有被过滤的分支预测结构的分支预测器的处理器的框图。图2是根据一些实施方案的图1的分支预测模块的一部分的框图,示出了对分支目标缓冲器的被过滤的访问。图3是根据一些实施方案的在处理器处过滤对分支目标缓冲器的访问的方法的流程图。图4是根据一些实施方案的图1的分支预测模块的一部分的框图,示出了对一个或多个分支方向表的被过滤的访问。图5是根据一些实施方案的基于在指定的预测时段内的表使用来过滤对一个或多个分支方向表的访问的方法的流程图。图6是根据一些实施方案的基于根据对表使用情况的预测的表使用来过滤对一个或多个分支方向表的访问的方法的流程图。具体实施方式图1至图6示出了用于减少在处理器的分支预测器处的功率消耗的技术。分支预测器包括一个或多个预测结构以识别预测的分支,包括预测的分支地址和预测的分支方向。为了减少功率消耗,分支预测器选择预测结构中的预计不提供有用分支预测信息的一个或多个,并且对选择的结构进行过滤,使得被过滤的结构不用于分支预测。由此,分支预测器减少用于分支预测的功率量而基本上没有降低预测的分支的准确度。为了进行说明,在一些实施方案中,分支预测器包括被组织成级的两个分支目标缓冲器(BTB),因此,BTB中的一个是1级(L1)BTB,而另一个是2级(L2)BTB。L2BTB大于L1BTB但访问起来比L1BTB慢。常规地,为了识别预测的分支地址,分支预测器在处理器处针对每个获取的指令地址访问L1和L2BTB两者。然而,对于很可能在L1BTB中命中(即,被识别为存储在其中)的获取的指令地址,对L2BTB的并发访问会不必要地消耗功率。另外,在许多情况下,当在虚拟地址空间中处于密切空间接近的先前获取的指令地址也在L1BTB中命中时,获取的指令地址更可能在L1BTB中命中。换句话说,当获取的指令地址具有相对高的空间代码局部性时,L1BTB命中很可能增加。因此,使用本文描述的技术,分支预测器保持对相同的存储器空间区域(在本文中被称为页面)的访问的计数,并且当计数超过阈值时,抑制针对在对应的存储器页面中的获取的地址而对L2BTB的访问。由此,分支预测器减少对L2BTB的不必要访问,从而减少在处理器处的动态功率消耗。作为另一个示例,在一些实施方案中,分支预测器采用基本预测器和多个方向表来预测分支方向,由此每个方向表是标记表,其基于存储在方向表中的获取的指令地址的历史而独立地预测预测分支的方向。对于获取的指令地址,分支预测器识别命中与获取的指令地址相关联的标记的表的集合。分支预测器将由基本预测器生成的预测与来自识别的表的集合中的每一个的预测进行组合,以生成组合的预测。然而,预测表中的一些不太可能命中获取的指令地址的给定流。因此,为了降低功率消耗,分支预测器预测每个方向表被预测是在指定的时间段内命中、针对给定的指令地址命中还是这两者的组合。分支预测器禁用被预测为不会命中并且因此不太可能提供有用分支方向信息的那些方向表。由此,分支预测器减少对多个方向表的总访问次数,从而减少功率而基本上没有降低分支预测准确度。图1示出了根据一些实施方案的包括被过滤的分支预测结构的处理器100。如本文所使用,当能够选择性地启用和禁用分支预测结构对处理器100处的分支预测的影响时,分支预测结构是被过滤的结构。如本文进一步所述,处理器100对分支预测结构进行过滤,使得该结构不以多种方式中的一种或多种影响分支预测,所述方式包括抑制对结构的访问、禁用结构(例如,使该结构处于低功率状态)或它们的组合。处理器100代表电子装置执行指令集(例如,计算机程序)以进行指定的任务。在一些实施方案中,处理器100结合在多种电子装置中的一种中,所述电子装置诸如台式或膝上型计算机、服务器、游戏控制台、智能电话、平板计算机等。为了支持指令的执行,处理器100包括具有指令获取级102和附加流水线级(未示出)的指令流水线。附加流水线级包括将获取的指令解码为一组操作的级、执行解码的操作的执行级和引退执行的指令的引退级。将了解,在一些实施方案中,处理器100包括附加模块以支持指令的执行,所述附加模块包括一个或多个存储器控制器、输入/输出控制器、存储器结构(例如,一个或多个高速缓存)等。另外,将了解,在一些实施方案中,处理器100包括附加指令流水线。例如,在一些实施方案中,处理器100包括多个处理器核心,其中每个处理器核心具有至少一个指令流水线以执行指令集。此外,在一些实施方案中,处理器100包括专门设计用于执行与特殊任务相关联的操作的附加处理单元,诸如一个或多个图形处理单元(GPU)以执行与绘图、显示和其他图形操作相关联的操作。返回图1所示的实施方案,指令获取级102基于指令指针101而从指令高速缓存103检索(获取)指令。如本领域技术人员将了解,指令指针101是指示要获取的当前指令的地址值,并且通过执行选定操作以修改正在执行的指令的程序流程来进行修改。例如,在一些实施方案中,分支指令基于例如对由分支指令或相关联的指令指定的数据的评估来修改指令指针101。为了支持高指令获取带宽,处理器100包括分支预测器110,该分支预测器预测给定的获取指令是否对应于分支指令,预测给定的分支指令的方向(即,给定的分支指令是否被采取),以及预测给定的分支指令的目标地址(如果预测将采取该给定的分支指令的话)。分支预测器110包括支持分支预测的多个模块和结构,包括L1BTB112、L2BTB114、分支方向表116和分支预测控制模块120。分支预测控制模块120管理分支预测器110的操作,包括启用或禁用分支预测结构、抑制对分支预测结构的访问、管理存储在分支预测结构处的数据,以及如本文进一步描述的其他管理操作。L1BTB112和L2BTB114各自包括多个条目,其中每个条目对应于被预测为分支指令的不同指令指针值。在至少一个实施方案中,分支预测控制模块120管理L1BTB112和L2BTB114的条目,使得L2BTB114是L1BTB112的牺牲者缓冲器。在一些实施方案中,与L1BTB112相比,L2BTB114是更大的结构,并且包含更多的条目。当分支预测控制模块120基于指定的条件(诸如新数据正在移动到L1BTB112中)而从L1BTB112逐出数据时,分支预测控制模块120将本文档来自技高网...

【技术保护点】
1.一种方法,所述方法包括:/n响应于在处理器[100]的指令流水线的获取级[102]处获取用于执行的第一指令地址[211]:/n识别包括所述第一指令地址的第一存储器区域[231];/n针对所述第一存储器区域识别对第一分支目标缓冲器(BTB)[114]的第一访问未命中次数[228];以及/n响应于所述第一访问未命中次数超过阈值,抑制针对所述第一指令地址对所述第一BTB的访问。/n

【技术特征摘要】
【国外来华专利技术】20180822 US 16/109,1951.一种方法,所述方法包括:
响应于在处理器[100]的指令流水线的获取级[102]处获取用于执行的第一指令地址[211]:
识别包括所述第一指令地址的第一存储器区域[231];
针对所述第一存储器区域识别对第一分支目标缓冲器(BTB)[114]的第一访问未命中次数[228];以及
响应于所述第一访问未命中次数超过阈值,抑制针对所述第一指令地址对所述第一BTB的访问。


2.如权利要求1所述的方法,所述方法还包括:
响应于获取所述第一指令地址而访问第二BTB[112]。


3.如权利要求2所述的方法,其中所述第一BTB是所述第二BTB的牺牲者缓冲器。


4.如权利要求2所述的方法,其中:
针对所述第一存储器区域识别第一访问次数包括基于存储多个访问未命中计数的表[225]来识别所述第一访问次数,所述多个访问未命中计数中的每一个与不同的存储器区域相关联。


5.如权利要求4所述的方法,所述方法还包括:
响应于在所述第一BTB处的第一访问未命中而使所述多个计数中的一个递增。


6.如权利要求5所述的方法,其中:
使所述多个计数中的所述一个递增包括响应于在所述第一BTB处的所述第一访问未命中和在所述第二BTB处的第二访问未命中而使所述多个计数中的所述一个递增。


7.如权利要求6所述的方法,所述方法还包括:
响应于在所述第一BTB处的访问命中而将所述多个计数中的所述一个重置。


8.如权利要求6所述的方法,所述方法还包括:
响应于将分支目标地址从所述第二BTB传送到所述第一BTB而将所述多个计数中的所述一个重置。


9.一种方法,所述方法包括:
识别第一使用历史[455],所述第一使用历史指示在第一时间段内第一多个分支方向预测表中的每一个的使用;
基于所述第一使用历史来选择所述第一多个分支方向预测表[444]的第一子集;以及
在处理器的分支预测器[120]的预测窗口内,抑制对所述第一多个分支方向预测表的所述第一子集的访问。


10.如权利要求9所述的方法,其中识别所述第一使用历史包括:
识别在所述分支预测器的多个预测窗口内的所述第一使用历史。


11.如权利要求10所述的方法,其中选择所述第一多个分支方向预测表的所述第一子集包括:
确定在所述多个预测窗口内的分支误预测率;以及
基于所述第一使用历史和所述分支误预测率来选择所述第一多个分支方向预测表的所述第一子集。


12.如权利要求9所述的方法,其中选择所述第一多个分支方向预测表的所述第一子集包括:
基于所述第一使用历史来预测所述第一多个分支方向预测表的预计将在所述分支预测器的后续预测窗口期间使用的子集[446、447];以及
基于所述预测的子集来选择所述第一多个分支方向预测表的所述第一子集。


13.一种处理器[100],所述处理器包括:
指令流水线,所述指令流水线包括获取级,所述获取级被配置为获取[102]第一指令地址[211];以及
分支预测器[110],所述分支预测器包括:
第一分支目标缓冲器(BTB)[114],所述第一BTB被配置为向所述指令流水线提...

【专利技术属性】
技术研发人员:约翰·卡拉马丁纳斯阿迪蒂亚·雅拉瓦蒂瓦伦·阿格拉沃尔苏汉卡·帕尔维内什·斯里尼瓦桑
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国;US

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

1