• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 27
    • 下载费用:30 金币  

    重庆时时彩计划最准的: 分支预测功率降低.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201310131614.9

    申请日:

    2013.04.16

    公开号:

    CN103377036A

    公开日:

    2013.10.30

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情: 发明专利申请公布后的视为撤回IPC(主分类):G06F 9/38申请公布日:20131030|||实质审查的生效IPC(主分类):G06F 9/38申请日:20130416|||公开
    IPC分类号: G06F9/38 主分类号: G06F9/38
    申请人: 辉达公司
    发明人: 安尼施·阿加沃尔; 罗斯·泽格尔肯; 保罗·沃森
    地址: 美国加利福尼亚州
    优先权: 2012.04.27 US 13/458,513
    专利代理机构: 北京市磐华律师事务所 11336 代理人: 徐丁峰;魏宁
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310131614.9

    授权公告号:

    ||||||

    法律状态公告日:

    2017.02.08|||2013.11.27|||2013.10.30

    法律状态类型:

    发明专利申请公布后的视为撤回|||实质审查的生效|||公开

    摘要

    在一个实施例中,提供微处理器。微处理器包括分支预测单元。分支预测单元配置为跟踪在所预测采取的分支的目标处重定向之后从指令存储器中所获取的指令数据中的分支的存在。在指令获取操作期间分支预测单元有选择地当所获取的指令数据包括分支指令时从掉电状态上电以及当所获取的指令数据不包括指令分支时维持在掉电状态以降低微处理器的功率消耗。

    权利要求书

    权利要求书
    1.  一种微处理器,包括:
    获取逻辑,配置为与指令存储器交互以检索指令数据用于执行;
    分支预测单元,可操作地与所述获取逻辑耦连,包括:
    分支控制器,配置为(1)预测将在从所述指令存储器获取的指令中采取分支,以及在来自所述分支的目标位置的指令数据的指令获取期间(2)当用于所述分支的所述目标位置的分支存在指示指示存储在所述目标位置处的指令数据包括分支指令时,将所述分支预测单元从掉电状态上电,以及(3)当用于所述分支的所述目标位置的所述分支存在指示指示存储在所述目标位置处的指令数据不包括分支指令时,在来自所述目标位置的指令数据的所述指令获取期间将所述分支预测单元维持在所述掉电状态。

    2.  根据权利要求1所述的微处理器,其中所述分支存在指示由存储在所述分支预测单元的缓冲区中的一个或多个分支存在位所表征,并且其中所述分支控制器配置为响应于正在所述缓冲区中分配新目标位置,设置用于在所述新目标位置处的所述新指令数据的分支存在位以在来自所述新目标地址的所述新指令数据的指令获取期间将所述分支预测单元上电。

    3.  根据权利要求2所述的微处理器,进一步包括:
    分支预测验证单元,配置为(1)在从所述指令存储器获取在所述分支的所述目标位置处的指令数据之后,针对分支预测的存在来验证所获取的指令数据,(2)如果在所述所获取的指令数据中不存在分支指令,那么更新所述分支存在位以在来自所述目标位置的指令数据的指令获取期间将所述分支预测单元维持在所述掉电状态,或(3)如果在所述所获取的指令数据中存在分支指令,那么更新所述分支存在位以在来自所述目标位置的指令数据的指令获取期间将所述分支预测单元上电。

    4.  根据权利要求3所述的微处理器,其中所述分支预测验证单元配置为(1)确定所述分支预测单元在来自所述分支的所述目标位置的指令数据的指令获取期间是否上电,(2)如果所述分支预测单元掉电并且在所述所获取的指令数据中检测到分支,那么重新获取所述分支指令,以及(3)将所述分支预测单元上电以查找用于在所述分支的所述目标位置处的所述指令数据中的所述分支指令的分支预测。

    5.  根据权利要求2所述的微处理器,其中所述分支预测单元包括存储用于直接分支的目标位置和相关联的分支存在指示的分支目标缓冲区。

    6.  根据权利要求5所述的微处理器,其中所述分支控制器配置为将所述分支目标缓冲区上电以查找用于所述分支指令的目标位置的预测和所述分支存在指示。

    7.  根据权利要求2所述的微处理器,其中所述分支预测单元包括存储用于间接分支的目标位置和相关联的分支存在指示的间接目标缓冲区。

    8.  根据权利要求1所述的微处理器,其中所述分支存在指示指示分支指令的类型,以及所述分支控制器配置为基于由所述分支存在指示所指示的分支指令的所述类型来将所述分支预测单元内的指定的预测结构从掉电状态上电。

    9.  根据权利要求1所述的微处理器,其中所述分支预测单元与在所述分支的所述目标位置中存储所述指令数据的指令高速缓存的数据阵列的查找并行地上电或维持在掉电状态。

    10.  根据权利要求1所述的微处理器,其中所述分支存在指示由两个分支存在位所表征,所述两个分支存在位中的每一个代表与所述分支的所述目标位置相关联的高速缓存行的不同的一半数据。

    说明书

    说明书分支预测功率降低
    背景技术
    微处理器通常采用分支预测单元对是否将在指令的执行期间采取分支指令来做出预测,以及对所预测采取的分支的目标进行预测。分支预测改善流以及降低在指令管线中形成气泡的可能性。具体地,通过做出分支预测,微处理器不必等到分支指令在下一个指令可进入管线中的获取级之前已通过管线的执行级。分支预测单元预测是最有可能采取还是最有可能不采取条件转移。随后获取在分支的所预测目标处的指令并冒险执行。如果分支预测正确,则指令管线继续执行指令而降低在管线中造成气泡的可能性,并且管线性能增加。另一方面,如果分支预测不正确,那么丢弃所冒险执行或所部分执行的指令并且管线以招致延迟的正确分支目标重新开始。
    在一个示范性实现方案中,当实施指令获取时分支预测单元与指令高速缓存并行地上电。分支预测单元上电以查找用于正从指令高速缓存所获取的指令数据的分支预测?;痪浠八?,每次查找指令高速缓存中的指令数据时,分支预测单元也上电。
    然而,该用于控制分支预测单元的方法存在各种限制。例如,在先前从指令高速缓存所获取的高速缓存行上实施指令获取、并且所获取的指令数据不包含分支的情况下,因为指令数据不包括分支指令,所以浪费了在分支预测单元中查找分支预测所消耗的功率?;痪浠八?,在该方法中,在每个指令获取操作期间无论所获取的指令数据包括或不包括分支指令,分支预测单元均上电。因此,当分支预测单元上电用于不包括分支指令的指令数据的指令获取时,该用于控制分支预测单元的方法产生不必要的功率消耗。
    附图说明
    图1示出根据本公开的、计算设备的微处理器的实施例。
    图2示出根据本公开的、计算机处理管线的实施例。
    图3示意性地示出指令高速缓存的实施例的一部分。
    图4示出高速缓存行的中间发生重定向的情景。
    图5-10示出用于控制微处理器的方法的实施例。
    图11示出根据本公开的、示范性分支预测单元操作的时间线。
    具体实施方式
    本讨论阐述用于以无需显著降低微处理器性能而降低功率消耗的方式来控制微处理器的分支预测单元的新颖的系统和方法。更具体地,本讨论涉及通过跟踪先前所获取的、存储于指令高速缓存中的指令数据是否包括任意分支来为功率降低而优化对分支预测单元的控制。例如,当先前从指令高速缓存中获取指令时,指令经验证为在微处理器的处理管线中的点处包括分支指令或不包括分支指令。该跟踪信息可存储在指令高速缓存中并且用来在以后从指令高速缓存中获取指令期间控制分支预测单元。具体来说,当从指令高速缓存中获取先前所获取的不包括分支指令的高速缓存行时,分支预测单元掉电(或维持在掉电状态中)。因此可减少分支预测单元的不需要的激活。这样,相对于每次从指令高速缓存中获取指令时分支预测单元均上电的方法,可降低功率消耗。
    此外,跟踪信息可存储在分支预测单元中以及用来确定在所采取的分支的目标地址处的高速缓存行是否包括分支指令。例如,当分支预测单元预测所采取的分支和到目标地址的重定向发生时,跟踪信息可用来控制分支预测单元用于跟随重定向的初始指令获取。具体来说,如果跟随重定向的初始高速缓存行不包括分支指令,那么分支预测单元掉电(或维持在掉电状态中)。如果分支预测单元被阻止上电并且在跟随重定向的相关联的指令中没有分支,那么相对于每次从指令高速缓存中获取指令时分支预测单元均上电的方法,节省功率而无性能损耗。
    而且,通过跟踪目标指令是否包括分支信息,分支预测单元在可从指令高速缓存中得到信息之前可以有选择地紧随重定向而掉电(或维持在掉电状态中)。因此,甚至在一个或多个紧随重定向的时钟周期期间也可降低功率消耗。相比之下,如果只基于存储在指令高速缓存中的跟踪信息来控制分支预测单元,那么可能在重定向之后、等待跟踪信息变成可从指令高速缓存中得到的同时,造成控制中的延迟。
    图1示意性地描绘可与本文描述的系统和方法结合所采用的微处理器100。微处理器100不同程度地包括和/或与存储器层级110通信,该存储器层级110包括L1处理器高速缓存112、L2处理器高速缓存114、L3处理器高速缓存116、主存储器118(例如一个或多个DRAM芯片)、二级存储120(例如磁性和/或光学存储单元)和/或三级存储122(例如磁带群(tape farm)。应予以理解的是,这些存储器/存储部件以访问时间和容量递增的顺序列出,但存在可能的例外。存储器控制器124处理协议以及提供主存储器118所要求的、通常用来调度存储器访问的信号接口??稍诖砥髀闫匣蛟诜挚穆闫鲜迪执娲⑵骺刂破?。应予以理解的是,上文所提供的存储器层级是非限制性的并且可使用其他存储器层级而不脱离本公开的范围。所描绘的存储器层级是示例性的示例,并且应予以理解的是可采用其他层级而不脱离本公开的精神。
    微处理器100包括获取逻辑126、解码逻辑128、执行逻辑130、mem(存储)逻辑132以及回写逻辑134?;袢÷呒?26配置为与指令存储器交互以从存储器层级110(通常从主存储器和L2-L3高速缓存所支持的专用L1指令高速缓存)检索信息。与获取逻辑126可操作地耦连的分支预测单元220(branch prediction unit,在图2中示出)有选择地提供用于从指令高速缓存206所获取的指令的分支预测。当实施指令获取操作以及其他操作时可根据本文所描述的系统和方法来控制分支预测单元220以降低微处理器100的功率消耗。
    解码逻辑128例如通过解析操作码、操作数以及寻址模式来解码所获取的指令。一旦经解析,指令随后由执行逻辑130所执行。对于产生结果的操作(例如,与在执行的程序中实施到另一个位置的分支的那些相对),回写逻辑134将结果写到适当的位置,诸如处理器寄存器。在加载/存储架构中,mem逻辑132实施加载和存储操作,诸如将操作数从主存储器加载到处理器寄存器中。
    应予以理解的是,上文五个级某种程度上特定于并被包括在典型的精简指令集计算(RISC)实现方案中。更一般地,微处理器可包括获取、解码以及执行逻辑,而由执行逻辑执行mem和回写的功能。本公开同样地适用于这些以及其他微处理器实现方案。
    在所描述的示例中,指令可一次一个地获取和执行,这可能要求多个 时钟周期。在该时间期间,可能未使用绝大部分的数据路径。补充或取代单个的指令获取,可使用预取方法来改善性能以及避免与读取和存储操作(即指令的读取以及将这样的指令加载到处理器寄存器和/或执行队列中)相关联的时延瓶颈。此外,可在任意给定的时间获取多个指令以改善性能。
    为达到更高的性能,示例性的微处理器可经管线化以开拓指令级并行性以及更高效地利用数据路径,以便在执行的不同级中同时存在多个指令。图2示出根据本描述的、可在微处理器100中(在图1中示出)采用的处理管线200的实施例。更具体地,图2集中于处理管线200的指令获?。↖F)级126的一部分。本讨论集中于在指令获取操作期间在IF级126中控制部件,以便降低处理管线的功率消耗。IF级126包括程序计数器202,其保持跟踪要在处理管线200的指令序列中所执行的指令的存储器地址。程序计数器202发送要执行的指令的地址到指令存储器204和分支预测单元220。指令存储器204包括指令高速缓存206和到更高级别存储器存储218(例如更高级别高速缓存和其他存储器子系统)的接口。注意,指令存储器和分支预测单元以简化形式呈现,并且应予以理解的是,这些逻辑单元可附加地或可代替地包括各种其他结构和可能的多个管线级。例如,在一些实施例中,指令存储器可包括片上存储器,该片上存储器包括位于处理器内核上的各种高速缓存。进一步地,更高级别存储器接口可与片外存储器进行交互,诸如不位于处理器内核上的主存储器,以将指令数据从主存储器或其他片外存储加载到指令存储器中。
    指令高速缓存206充当更高级别存储器存储接口218和处理管线200的级之间的缓冲区存储器。当获取指令时,在由指令所请求的程序计数器202位置所引用的位置处的数据被拷贝到指令高速缓存206以发送通过处理管线200。如果相同指令数据在程序指令的集合中被频繁使用,那么因为减少经由接口218从更高级别存储器存储中检索指令,因此在指令高速缓存206中存储的这些指令使得吞吐量增加。如果用于指令的数据没有存储在指令高速缓存206中,那么经由接口218访问更高级别存储器存储以检索数据。
    图3示出指令高速缓存206的一部分,并本文将参考其用于讨论指令高速缓存206。指令高速缓存206包括分为多个可被称为高速缓存行的存储器位置的存储器空间,在302指示其示例。在一个特定示例中,每个高 速缓存行是64字节。多个高速缓存行逻辑上被分为多个高速缓存行集合,在304指示其示例。在一个特定示例中,指令高速缓存包括512个高速缓存行集合,其中的四个(即集合N-N+3)在图3中示出。应予以理解的是指令高速缓存可包括任意合适数目的高速缓存行集合,每个高速缓存行可以是任意合适的大小并且可加以变化,而不脱离本公开的范围。
    高速缓存行集合中的高速缓存行的数目可定义主存储器中的任意特定位置可映射于其的指令高速缓存中位置的数目。在所示出的示例中,指令高速缓存包括4路集合关联阵列,其中高速缓存行的每个集合是关联的并且包括该处可存储指令数据的四个路。应予以理解的是,指令高速缓存可在高速缓存行集合中包括任意合适数目的数据位置或路(例如,2路、8路、全关联等等),而不脱离本公开的范围。
    指令高速缓存206的每个高速缓存行被分为提供不同信息的不同位字段。LRU位306指示在高速缓存行集合中的最近最少使用(或访问)路。分支存在位308提供指示高速缓存行集合中的最近最常使用路是否包括分支指令的分支存在指示。注意,在每集合的基础上实现分支存在位以降低存储要求。然而应予以理解的是,分支存在位可在每高速缓存行的基础上实现,或实现为另一个适合的分支存在指示,而不脱离本公开的范围。在一个特定示例中,设置分支存在位以指示存储在最近最常使用路中的指令数据包括分支指令,以及清除分支存在位以指示存储在最近最常使用路中的指令数据不包括分支指令。标签位310标识指定的路,在该处存储与地址相对应的指令字节。数据位312存储与地址相对应的指令字节。在示出的示例中,每个高速缓存行的数据位312分成低半部分和高半部分,因为如果存在命中则指令高速缓存的每个指令获取读取会检索数据的高速缓存行的一半。应予以理解的是,在指令获取读取期间可检索任意合适数量的数据,而不脱离本公开的范围。
    每个高速缓存行中的不同位字段可组织为由高速缓存控制器216所控制的不同阵列。具体地,指令高速缓存206包括LRU阵列208、标签阵列212以及数据阵列214。LRU阵列208包括用于指令高速缓存206中的每个高速缓存行集合的LRU位306和存在位308。标签阵列212包括用于指令高速缓存206中的每个高速缓存行的标签位310。数据阵列214包括用于指令高速缓存206中的每个高速缓存行的数据位312。注意,分支存在 位可存储在指令高速缓存的任意合适阵列中或存储在其他位置中,而不脱离本公开的范围。
    高速缓存控制器216配置为贯穿指令获取操作而在LRU阵列208、标签阵列212和/或数据阵列214中的任意一个中查找(又称访问或激活)任意指定的位置以检索相应的位。应予以理解的是指令高速缓存以简化形式被提供,并且在一些实现方案中,指令高速缓存可包括保存附加数据的替代或附加的阵列结构,而不脱离本公开的范围。注意在一些实现方案中指令高速缓存206的默认状态是掉电状态或关断状态,并且高速缓存控制器216配置为有选择地将指令高速缓存上电,或更具体地,将指令高速缓存中的阵列上电以查找数据。
    分支预测单元配置为预测当在处理管线200中执行分支指令时是否将采取分支。分支预测单元220包括存储状态的预测结构,所述状态用来预测在所获取的数据中分支的存在和方向。分支预测单元220的预测结构可与指令高速缓存206的阵列并行上电。分支预测单元220提供所有分支的存在和方向的预测,以及在从指令高速缓存206中所获取的指令数据中第一个所采取的分支的目标。假设高速缓存命中,则由分支预测单元220在指令高速缓存206产生所获取的指令数据的相同管线级(或时钟周期)中产生分支预测。在一个特定示例中,指令高速缓存206和分支预测单元220从查找/上电的开始到指令数据/分支预测的递送花费两个时钟周期。注意,不需要同时访问分支预测单元220和指令高速缓存206。应予以理解的是可使用处理管线的任意合适的配置而不脱离本公开的范围。
    在示出的实施例中,分支预测单元220包括预测结构,该预测结构包括分支信息缓冲区222、分支目标缓冲区224、间接目标缓冲区228以及条件方向预测器230。分支控制器232配置为控制这些结构的操作以做出分支预测。更具体地,分支控制器232根据本文所描述的控制策略来命令这些结构上电或掉电以降低功率消耗。注意,在一些实现方案中分支预测单元的默认状态是掉电状态或关断状态,并且分支控制器232配置为有选择地将分支预测单元上电,或更具体地,将分支预测单元中的预测结构上电以查找数据。
    分支信息缓冲区(BIB)222存储在给定的地址、包、路等等处所存储的分支的位置和类型??纱娲⒃诜种畔⒒撼迩?22中的不同类型的分 支的示例包括直接的、间接的、有条件的、无条件的等等??捎煞种Э刂破?32查找分支信息缓冲区222以生成用于正从指令高速缓存206中所获取的指令的分支预测。分支目标缓冲区(BTB)224存储目标地址用于所采取的直接分支。分支目标缓冲区224包括表征与分支目标缓冲区224中的每个目标地址相对应的分支存在指示的分支存在位226。分支存在位226指示存储在目标地址处的指令数据是否包括分支指令??捎煞种Э刂破?32使用分支存在位226以针对跟随重定向的指令获取来确定是否将分支预测单元220的结构上电或掉电。间接目标缓冲区(ITP)228存储目标地址用于所采取的间接分支。尽管所示实施例示出分支存在位226正存储在分支目标缓冲区224中,但在一些实施例中,分支存在位226此外可存储在间接目标缓冲区228或分支预测单元220中的任意其他合适的结构中。因此,分支控制器232可将各种预测结构上电以查找分支存在位以及分支预测。条件方向预测器(CDP)230存储所预测的方向(例如所采取的/未采取的)用于条件分支。应予以理解的是,分支预测单元以简化形式被提供,以及在一些实现方案中,分支预测单元可包括保存附加数据的替代或附加的结构而不脱离本公开的范围。注意,在分支预测单元220中维持分支存在位226,与在指令高速缓存206中所维持的分支存在位308分开。当分支存在位308由于重定向而不可从指令高速缓存206中得到时,可由分支预测单元220使用分支存在位226来确定在分支的目标地址处的指令数据是否包括分支指令。
    返回高级别指令高速缓存的讨论,在指令获取操作期间当程序计数器202发起指令获取请求时,高速缓存控制器216基于从程序计数器202所接收的地址来确定可存储指令的高速缓存行集合。在一个示例中,高速缓存控制器216激活用于高速缓存行集合的标签阵列212和数据阵列214的所有四个路以确定在高速缓存行集合中是否存在命中或未命中。注意,在一些实现方案中,高速缓存控制器216并行地激活标签阵列212和数据阵列214以查找用于高速缓存行集合的标签和数据。对于高速缓存命中,高速缓存控制器216将指令从指令高速缓存206输出到处理管线的指令解码级128中的寄存器。在高速缓存命中之后的后续的时钟周期中,高速缓存控制器216从指令高速缓存中的顺序条目中获取指令直到发生管线停滞(stall)或直到由于分支或事件而重定向为止。
    在一个示例中,高速缓存控制器216配置为基于LRU位306在指定的高速缓存行集合中确定最近最常使用(MRU)路。高速缓存控制器216可使用最近最常使用路来确定为了分支预测生成的目的而正在获取哪个指令数据。应予以理解的是,高速缓存控制器可以以任意合适的方式在高速缓存行集合中确定最近最常使用路,而不脱离本公开的范围。
    在一个示范性实现方案中,高速缓存控制器216配置为在时钟周期中在LRU阵列208的单个读取操作中查找用于四个连续的高速缓存行集合的LRU位?;痪浠八?,LRU位的一次查找标识在四个高速缓存行集合的每一个中的最近最少使用路。与读取操作相对应的高速缓存行集合的数目基于指令高速缓存的实现方案,并且更具体地,基于用来描述高速缓存行集合中的路和高速缓存行的大小的LRU位的数目。应予以理解的是,可从单个读取操作返回用于任意合适数目的高速缓存行集合的LRU位,而不脱离本公开的范围。
    LRU阵列208的组织使用于多个顺序获取的信息能够由于LRU阵列的一次查找而被存储。该数据可用于分支预测单元220的控制策略中以在获取不包括分支指令的指令期间有选择地禁用分支预测单元220的激活。在一个示例中,LRU阵列208包括用于指令高速缓存206中的每个高速缓存行集合的分支存在位308。分支存在位308指示在相应高速缓存行集合中的最近最常使用路是否包括分支指令。在示出的示例中,分支存在位308包括每高速缓存行集合两个分支存在位。两个分支存在位中的每一个代表高速缓存行的不同的一半数据(例如,低半部分数据和高半部分数据中的每一个使用一位)。分支存在位308与LRU位306一起被查找。在多数情况下,在高速缓存行集合中的最近最常使用路的顺序指令获取之前查找用于高速缓存行集合的分支存在位。此外,使分支存在位可用以由分支控制器232使用来确定对于下一个指令的顺序指令获取是否将分支预测单元220上电或掉电。
    在一个示例中,分支控制器232配置为从指令高速缓存206接收与高速缓存行集合中的最近最常使用路相对应的分支存在位308。在来自最近最常使用路的指令数据的指令获取期间,如果分支存在位指示来自最近最常使用路的指令数据包括分支指令,那么分支控制器232配置为将分支预测单元从掉电状态上电以查找用于分支指令的分支预测。在一个示例中, 分支控制器232配置为将分支信息缓冲区222从掉电状态上电以生成分支预测。附加地或可替代地,分支控制器232可将分支预测单元220的其他结构上电以生成分支预测。如果分支存在位指示来自最近最常使用路的指令数据不包括分支指令,那么分支控制器232配置为在指令获取期间将分支预测单元220维持在掉电状态。由于分支存在位指示在正被获取的指令数据中不存在分支指令,因此不必将分支预测单元220上电。因此,相对于在每个指令获取操作期间分支预测单元均上电的方法,可减少分支预测单元220的不需要的激活。
    在一些实施例中,分支存在位不仅指示高速缓存行中的分支的存在,还指示高速缓存行中所存在的分支的类型。这样,分支控制器可基于由存在位所指示的分支类型而确切地知道在分支预测单元内哪些预测结构应上电或保留在掉电。在一个示例中,分支控制器232配置为基于由分支存在位所指示的分支指令的类型,将分支预测单元内指定的预测结构从掉电状态上电。例如,如果高速缓存行仅包括直接的无条件分支,那么分支存在位可指示BIB和BTB应上电,但ITP和CDP应掉电。为此,可基于对存储附加位以描述分支的类型所增加的功率消耗对比由于将不需要的BPU结构掉电所节省的功率的折衷,来确定分支存在位代表的程度。
    注意在一些情况下,在当LRU位将另外出于替代指令高速缓存中的路的目的而被查找时之前查找LRU位以使分支存在位对于分支预测单元可用。在该示例中,在对新LRU数据条目的第一次顺序访问之前的两个时钟周期查找LRU阵列。进一步地,注意在该示例中,在通过访问阵列之一而实施查找之后的两个时钟周期数据可用。应予以理解的是,检索数据的时钟周期的数目或处理速度可以不同,而不脱离本公开的范围。
    在一些实施例中,高速缓存控制器216配置为响应于正以指令数据填充指令高速缓存中的高速缓存行而设置分支存在位,以将分支预测单元220从掉电状态上电。例如,可从主存储器218或另一个存储器位置检索指令数据来填充指令高速缓存中的高速缓存行。通过当高速缓存行被最初填充到指令高速缓存206中时设置分支存在位,分支存在位可置于默认状态?;痪浠八?,通过设置分支存在位,一旦第一个和随后获取从该高速缓存行获取指令数据,则可将分支预测单元220上电,直到分支预测验证单元234可验证该高速缓存行中的指令数据是否包括分支指令。
    在多数情况下,分支控制器232可使用来自指令高速缓存206的LRU阵列208的分支存在位308来确定指令数据是否包括分支指令,以及相应地确定在该指令数据的顺序指令获取期间是将分支预测单元220上电还是掉电。具体地,由于在对在存储器位置处的指令数据进行指令获取之前获取表征在存储器位置处的指令数据的分支存在位,因此可使分支存在位对于高速缓存控制器以及分支预测单元中的分支控制器可用。然而,在跟随重定向的指令获取中,分支存在位308对于分支控制器232不可用,这是因为可能花费一个或多个时钟周期来查找LRU阵列208以变成可用。为了在跟随重定向的指令获取期间控制分支预测单元220,分支存在位226存储在分支预测单元220的分支目标缓冲区224(或不同的预测结构)中。分支存在位226指示存储在所预测分支的目标地址处的指令数据是否包括分支指令。存在位226由分支控制器232所使用以确定在目标地址处的数据是否包括分支指令,以及相应地确定在重定向到该目标地址之后是将分支预测单元220上电还是掉电。
    在一个示例中,分支控制器232配置为预测在从指令高速缓存206所获取的指令中将采取的分支。例如,分支控制器232可通过查找分支信息缓冲区222中的指令来做出预测。进一步地,预测可包括所采取的分支的目标地址以及相关联的存在位226,其可在分支目标缓冲区224(或者在间接分支的情况下为间接目标缓冲区228)中查找。如果用于分支的目标地址的分支存在位指示存储在目标地址处的指令数据包括分支指令,那么分支控制器232配置为将分支预测单元220上电以查找用于在分支的目标处所获取的指令字节的分支预测。
    在一些实施例中,分支存在位可指示哪种类型的分支指令存储在目标地址处,并且分支控制器配置为基于由存在位所指示的分支指令的类型来将分支预测单元内的指定的预测结构上电(以及相应地将对于所指示的分支指令的类型所不需要的预测结构维持在掉电状态)。如果用于分支的目标地址的分支存在位指示存储在目标地址处的指令数据不包括分支指令,则分支控制器232配置为在指令获取期间将分支预测单元220维持在掉电状态。因此相对于在每个指令获取操作期间分支预测单元均上电的方法,可减少在跟随重定向的指令获取期间的分支预测单元220的不需要的激活。
    在一些实施例中,分支控制器232配置为响应于正在分支目标缓冲区 224中分配新目标地址而设置分支存在位,以将分支预测单元220上电。例如,可在执行具有目标地址的分支指令之后将新目标地址分配到分支目标缓冲区。通过当新目标地址被最初分配到分支目标缓冲区224时设置分支存在位,分支存在位可置于默认状态?;痪浠八?,通过设置分支存在位,一旦第一次获取来自目标地址的指令数据,则可允许分支预测单元220上电。进一步地,在从指令高速缓存206获取存储在新目标地址处的指令数据以及实施分支预测之后,分支控制器232配置为更新分支存在位226以基于分支预测指示指令数据是否包括分支指令。
    在从指令高速缓存206获取指令数据之后,指令数据移动通过处理管线200。在处理管线200中的指令获取级126的下游级,分支预测验证单元234确定指令数据是否包括分支指令。进一步地,分支预测验证单元234验证由分支预测单元220所生成的用于指令数据的分支预测的一部分。在该示例中,分支预测验证单元234验证可由指令字节所确定的分支存在以及目标。分支预测验证单元234将指令数据的验证传递回指令高速缓存206以更新存在位308。因此,可更新存在位以准确地反映在先前所获取的指令数据中分支指令的存在,这可导致分支预测单元的更准确控制。应予以理解的是,分支预测验证单元234可位于处理管线的任意合适的级中,而不脱离本公开的范围。
    注意,分支预测验证单元234以简化形式示出,并且在一些实现方案中,处理管线可包括验证分支预测的不同部分的多个分支预测验证单元。
    在一个示例中,分支预测验证单元234配置为针对分支指令的存在来验证所获取的指令数据。如果在所获取的指令数据中不存在分支指令,那么分支预测验证单元234配置为更新LRU阵列208中的分支存在位308以及分支目标缓冲区224中的分支存在位226以在该指令数据的随后获取期间将分支预测单元220维持在掉电状态。如果在所获取的指令数据中存在分支指令,那么分支预测验证单元234配置为更新LRU阵列208中的分支存在位308以及分支目标缓冲区224中的分支存在位226以在该指令数据的随后获取期间将分支预测单元220从掉电状态上电来查找分支预测。注意,更新分支存在位可包括将分支存在位维持在其当前状态。例如,如果分支存在位设置为指示指令数据包括分支指令并且分支预测验证单元核实在指令数据中存在分支指令,那么分支预测验证单元可将验证发送到高 速缓存控制器和分支控制器,并且它们可将分支存在位维持在其当前状态。
    在一些情况下,如果分支预测单元220被阻止上电并且在所获取的指令数据中存在分支指令,那么分支预测验证单元234可发现分支指令。在一个示例中,分支预测验证单元234配置为确定在指令获取期间分支预测单元220是否上电了。如果分支指令由于分支预测单元220掉电而未被预测,那么分支预测验证单元234配置为重新获取分支指令。进一步地,分支预测验证单元234配置为将分支预测单元220上电以查找用于包括分支指令的所重新获取的指令数据的分支预测。分支预测验证单元234验证用于所重新获取的指令的分支预测并且将分支指令的验证传递到分支预测单元220。分支控制器232基于验证来更新存在位226。
    转到图4,在一些情况下,分支可使重定向400到在高速缓存行402中间某处的目标地址,其中在重定向400的点之前在高速缓存行402中存在分支指令404,并且在重定向400的点之后在高速缓存行402中不存在分支。在该情况下,因为在重定向400的点之前所获取的数据不意图进一步用在处理管线200中,所以分支预测验证单元234通常将向高速缓存控制器216报告在所获取的数据中不存在分支。如果该结果将被用来清除在LRU阵列208中的相关联的分支存在位308,那么如果在高速缓存行中的所有数据将被使用的情况下随后以顺序方式获取了相同的指令数据,则分支预测单元220将不正确地被阻止上电和实施分支预测。为了降低分支存在位308的错误更新的可能性,在一些实施例中,高速缓存控制器216配置为如果指令数据由于重定向而被获取,则不允许更新在LRU阵列208中的分支存在位308?;痪浠八?,当分支预测验证单元234已考虑所获取的指令数据中的所有分支时,分支控制器216更新LRU阵列208中的分支存在位308。
    此外,一旦确定在重定向之后所获取的指令数据包括分支指令并且验证了用于分支指令的分支预测,则分支预测验证单元234将指令数据的验证传递回到分支预测单元220以更新存在位226。在一个示例中,分支预测验证单元234配置为在从指令高速缓存206获取指令数据之后,针对分支指令的存在来验证所获取的指令数据。如果在所获取的指令数据中不存在分支指令,那么分支预测验证单元234配置为更新分支存在位226以在于分支的目标地址处的指令数据的指令获取期间将分支预测单元220维持 在掉电状态。如果在所获取的指令数据中存在分支指令,那么分支预测验证单元234配置为更新分支存在位226以在于分支的目标地址处的指令数据的指令获取期间将分支预测单元220上电来查找分支预测。
    在一些情况下,如果分支预测单元220被阻止上电并且在所获取的指令数据中存在分支指令,那么分支预测验证单元234可发现分支指令。在一个示例中,分支预测验证单元234配置为确定在指令获取期间分支预测单元220是否上电了。如果分支指令由于分支预测单元220掉电而未被预测,那么分支预测验证单元234配置为重新获取分支指令。进一步地,分支预测验证单元234配置为将分支预测单元220从掉电状态上电以查找用于包括分支指令的所重新获取的指令数据的分支预测。分支预测验证单元234针对在所重新获取的指令数据中的分支指令的存在来验证分支预测,并且将分支指令的验证传递到分支预测单元220。分支控制器232基于验证来更新存在位226。在该情况下,在指令数据的初始获取之后所实施的指令获取和预测被浪费,这在短期中既增加功率又降低性能。然而,付出功率和性能代价是为了增加用于指令数据的未来获取的分支预测的准确度。这在长期中可提供更好的性能提高和功率消耗降低?;痪浠八?,可更新存在位以准确地反映在先前所获取的指令数据中分支指令的存在,这可导致分支预测单元的更准确控制,以及整体的性能增加和功率消耗降低。
    注意,在上文的讨论中随着对指令高速缓存中的分支存在位和分支预测单元中的存在位进行更新而引用各种部件。应予以理解的是,取决于微处理器中处理管线的实现方案,任意合适的部件均可更新分支存在位而不脱离本公开的范围。例如,分支预测验证单元可直接更新指令高速缓存中的分支存在位。在另一个示例中,分支预测验证单元可将验证传递到指令高速缓存的高速缓存控制器并且高速缓存控制器可更新分支存在位。同样地,分支预测验证单元可直接更新分支预测单元中的分支存在位。在另一个示例中,分支预测验证单元可将验证传递到分支预测单元的分支控制器并且高速缓存控制器可更新分支存在位。
    图5示出用于控制微处理器以降低功率消耗的方法500的实施例。更具体地,实施方法500以确保当从指令高速缓存获取新填充的高速缓存行时分支预测单元上电以生成分支预测??刹捎梅椒?00作为控制策略的一部分,以在从指令高速缓存中的顺序指令获取期间降低由微处理器的分支 预测单元带来的功率消耗。在一个示例中,图1中所示的、包括图2中所示的指令高速缓存206的微处理器100配置为实施方法500。更具体地,在一个示例中,指令高速缓存206的高速缓存控制器216实施方法500。
    在502,方法500包括确定是否指令高速缓存中的高速缓存行以指令数据新填充。例如,可从更高级别存储器存储诸如从更高级别高速缓存或其他存储器子系统中,将高速缓存行初始填充到指令高速缓存中。如果确定指令高速缓存中的高速缓存行以指令数据新填充,则方法500移动到504。否则,方法500返回502以检查正填充到指令高速缓存中的高速缓存行。
    在504,方法500包括为新填充的指令数据设置指令高速缓存中的分支存在位以将分支预测单元上电。通过设置指令高速缓存中的存在位以将分支预测单元上电,当随后从指令高速缓存中获取指令数据时可实施分支预测。方法500确保至少在新填充的指令数据的初始获取期间使分支预测单元上电,以便生成随后在处理管线中验证的分支预测。分支预测的验证然后可用来在该指令数据的随后获取期间更新分支存在位以及控制分支预测单元。这样,当在指令高速缓存中新填充指令数据时可维持分支预测单元的控制准确度。
    图6示出用于控制微处理器以降低功率消耗的方法600的实施例。更具体地,实施方法600以在从指令高速缓存中的顺序指令获取期间降低由微处理器的分支预测单元带来的功率消耗。在一个示例中,图1中所示的、包括图2中所示的指令高速缓存206和分支预测单元220的微处理器100配置为实施方法600。更具体地,在一个示例中,指令高速缓存206的高速缓存控制器216和分支预测单元220的分支控制器232实施方法600。
    在602,方法600包括在指令高速缓存的最近最少使用位阵列中查找用于指令高速缓存中的多个高速缓存行集合中的每一个的最近最少使用位。查找最近最少使用位包括查找用于多个高速缓存行集合的分支存在位。在一个示例中,多个高速缓存行集合代表指令高速缓存中的顺序条目??捎纱又噶罨袢〔僮髦兴峁┑牡刂防垂娑ㄌ跄啃蛄兄械闹付ǖ募?。在一个特定示例中,查找最近最少使用位包括查找用于指令高速缓存中四个顺序高速缓存行集合中的每一个的最近最少使用位??稍诖痈咚倩捍嫘屑现换袢≈噶钪安檎矣糜谒承蚋咚倩捍嫘屑系腖RU位,以便预测其中 存储指令的集合中的路。
    在604,方法600包括基于用于指定的高速缓存行的最近最少使用位来确定在多个高速缓存行集合的指定的高速缓存行集合中的最近最常使用路。在一个示例中,指定的高速缓存行集合是其中存储当前正被获取的指令的集合。注意,最近最少使用位包括指示在指定的高速缓存行集合中的最近最常使用路是否包括分支指令的分支存在位。
    在606,方法600包括确定用于指定的高速缓存行集合中的最近最常使用路的分支存在位是否指示最近最常使用路包括分支指令。在一个示例中,由分支控制器从高速缓存控制器接收分支存在位,并且由分支控制器做出确定。如果分支存在位指示最近最常使用路包括分支指令,那么方法600移动到608。否则,方法600移动到610。
    在608,方法600包括将分支预测单元从掉电状态上电以查找用于指令高速缓存的指定的高速缓存行集合中的最近最常使用路中的指令数据中的分支指令的分支预测。在一些实施例中,分支存在位指示分支指令的类型,并且方法600包括基于由分支存在位所指示的分支指令的类型来将分支预测单元内的指定的预测结构从掉电状态上电。例如,分支存在位可指示分支指令是直接分支,并且BTB可上电以查找分支预测而其他预测结构维持在掉电状态。
    在610,方法600包括在指令高速缓存的指定的高速缓存行集合中的最近最常使用路中的指令数据的指令获取期间将分支预测单元掉电或将分支预测单元维持在掉电状态。在一些实施例中,分支预测单元在指令获取期间随着在存储指令数据的指令高速缓存中的数据阵列的查找而并行地上电或掉电。
    通过跟踪指令高速缓存中的分支指令的存在,在顺序指令获取期间当从指令高速缓存中获取不包括分支指令的指令数据时,分支预测单元可有选择地掉电。因此,相对于在每个指令获取期间分支预测单元均上电的控制方法,可降低功率消耗。
    图7示出用于控制微处理器以降低功率消耗的另一个方法700的实施例。更具体地,实施方法700以验证分支预测以及更新指令高速缓存中的存在位来准确地反映在先前所获取的指令数据中分支指令的存在。通过更新指令高速缓存中的分支存在位,可增加分支预测单元的控制准确度,这 可导致性能增加和功率消耗降低。在一个示例中,图1中所示的、包括图2中所示的指令高速缓存206、分支预测单元220以及分支预测验证单元234的微处理器100配置为实施方法700。更具体地,在一个示例中,指令高速缓存206的高速缓存控制器216、分支预测单元220的分支控制器232以及分支预测验证单元234实施方法700。
    在702,方法700包括针对分支指令的存在来验证所获取的指令数据。在一个示例中,对所获取的指令数据的验证可在指令数据的解码期间实施。
    在704,方法700包括确定是否由于重定向而获取了指令数据。如果由于重定向而获取了指令数据,那么方法移动到712。否则方法700移动到706。
    在706,方法700包括确定所获取的指令数据是否包括分支指令。如果在所获取的指令数据中存在分支指令,那么方法700移动到708。否则,方法700移动到710。
    在708,方法700包括更新指令高速缓存中的分支存在位以在指令数据的随后获取期间将分支预测单元从掉电状态上电来查找分支预测。在一个特定示例中,更新分支存在位包括设置分支存在位以指示指令数据包括分支指令。
    在710,方法700包括更新指令高速缓存中的分支存在位以在该指令数据的随后获取期间将分支预测单元掉电或将分支预测单元维持在掉电状态。在一个特定示例中,更新分支存在位包括清除分支存在位以指示指令数据不包括分支指令。
    在712,方法700包括不允许分支存在位的更新。在该情况下,因为在指令数据的中间可能已发生由于分支指令而进行的重定向,所以不允许分支存在位的更新。具体地,指令数据中的指令分支的存在的验证发生在重定向的点之后。如果在重定向之前的点处在所获取的指令数据中存在分支指令,那么其将无法得到验证并且存在位可能被不准确地更新。通过不允许由于重定向而获取的指令数据的存在位的更新,仅当针对验证考虑了所获取的指令数据中的所有分支时才更新所获取的指令数据的存在位。
    图8示出用于控制微处理器以降低功率消耗的方法800的实施例。更具体地,实施方法800以确保当从指令高速缓存中获取新指令数据时,分支预测单元上电以生成用于在分支预测单元的分支目标缓冲区中的新分配 的目标地址处的指令数据的分支预测??刹捎梅椒?00作为控制策略的一部分以在重定向之后所实施的指令获取期间降低由微处理器的分支预测单元带来的功率消耗。在一个示例中,图1中所示的、包括图2中所示的分支预测单元220的微处理器100配置为实施方法800。更具体地,在一个示例中,分支预测单元220的分支控制器232实施方法800。
    在802,方法800包括确定是否新目标地址分配在分支预测单元中。在一个示例中,确定新指令数据是否分配到分支预测单元的分支目标缓冲区中的目标地址。如果确定新目标地址分配到分支预测单元,那么方法800移动到804。否则,方法800返回802以检查分配到分支预测单元中的目标地址的新指令数据。
    在804,方法800包括设置用于在目标地址处的新指令数据的分支存在位以当从指令高速缓存获取在目标地址处的新指令数据时允许分支预测单元上电。通过设置用于在分支预测单元中的目标地址处的新指令数据的存在位以允许分支预测单元上电,当随后从指令高速缓存中获取指令数据时可实施分支预测??伤婧笤诖砉芟咧醒橹し种гげ?。分支预测的验证可之后用来更新分支存在位以及在该指令数据的随后获取期间控制分支预测单元。这样,当新指令数据分配到分支预测单元中的目标地址时可维持分支预测单元的控制准确度。
    图9示出用于控制微处理器以降低功率消耗的方法900的实施例。更具体地,实施方法900以在跟随重定向的指令获取期间降低由微处理器的分支预测单元带来的功率消耗。在一个示例中,图1中所示的、包括图2中所示的分支预测单元220的微处理器100配置为实施方法900。更具体地,在一个示例中,分支预测单元220的分支控制器232实施方法900。
    在902,方法900包括预测将在从指令高速缓存所获取的指令中采取分支。在一个示例中,分支预测单元通过单独地查找分支信息缓冲区中的分支预测或除查找分支预测单元的其他结构中的信息之外还查找分支信息缓冲区中的分支预测来预测将采取分支。
    在904,方法900包括在分支预测单元的分支目标缓冲区(或间接目标缓冲区)中查找用于所预测分支的目标地址的分支存在位。
    在906,方法900包括确定从分支目标缓冲区所查找的存在位是否指示存储在目标地址处的指令数据包括分支指令。如果用于分支的目标地址 的分支存在位指示存储在目标地址处的指令数据包括分支指令,那么方法移动900到910。否则,方法900移动到908。
    在908,存在位指示在目标地址处的指令数据不包括分支指令,并且方法900包括针对在目标地址处的指令数据的指令获取,将分支预测单元掉电或将分支预测单元维持在掉电状态。
    在910,存在位指示在目标地址处的指令数据包括分支指令,并且方法900包括将分支预测单元从掉电状态上电以查找用于在目标地址处的指令数据中的分支指令的分支预测。在一些实施例中,分支存在位指示分支指令的类型,并且方法900包括基于由分支存在位所指示的分支指令的类型来将分支预测单元内的指定的预测结构从掉电状态上电。例如,分支存在位可指示分支指令是直接分支,以及BTB可上电以查找分支预测而其他预测结构维持在掉电状态。
    通过当预测要采取分支时查找分支预测单元中的分支存在位,在可从指令高速缓存得到分支存在位之前在紧随重定向的时钟周期中可准确地控制分支预测单元。因此,甚至在跟随重定向的时钟周期期间也可减少分支预测单元的不需要的激活。
    图10示出用于控制微处理器以降低功率消耗的另一个方法1000的实施例。更具体地,实施方法1000以验证分支预测和更新分支预测单元中的存在位以准确地反映在先前所获取的指令数据中分支指令的存在。通过更新分支预测单元中的分支存在位,可增加分支预测单元的控制准确度,其可导致性能增加和功率消耗降低。在一个示例中,在图1中所示的、包括在图2中所示的分支预测单元220和分支预测验证单元234的微处理器100配置为实施方法1000。更具体地,在一个示例中,分支预测单元220的分支控制器232和分支预测验证单元234实施方法1000。
    在1002,方法1000包括针对分支指令的存在来验证在分支指令的目标地址处的所获取的指令数据。在一个示例中,可在指令数据的解码期间实施对所获取的指令数据的验证。
    在1004,方法1000包括基于所获取的指令数据的验证来确定所获取的指令数据是否包括分支指令。如果在所获取的指令数据中不存在分支指令,那么方法1000移动到1006。否则,方法1000移动到1008。
    在1006,方法1000包括更新分支预测单元中的分支存在位以在指令 数据的随后获取期间将分支预测单元掉电或将分支预测单元维持在掉电状态。在一个特定示例中,更新分支存在位包括清除分支存在位以指示指令数据不包括分支指令。
    在1008,方法1000包括确定分支预测单元是否在包括依据1004所找到的分支指令的指令数据的获取期间上电。如果在包括依据1004所找到的分支指令的指令数据的指令获取期间分支预测单元上电,那么方法1000移动到1010。否则,方法1000移动到1012。
    在1010,方法1000包括更新分支预测单元中的分支存在位以在指令数据的随后获取期间将分支预测单元从掉电状态上电。在一个特定示例中,更新分支存在位包括设置分支存在位以指示指令数据包括分支指令。
    在1012,方法1000包括重新获取包括依据1004所找到的分支指令的指令数据。重新获取指令数据以便可在指令数据上实施分支预测。
    在1014,方法1000包括将分支预测单元从掉电状态上电以查找用于分支指令的分支预测??赏ü俅问凳┓椒?000(或通过返回1002)以及跟随方法1000到1010的流程来验证所重新获取的数据。在1010,在分支预测单元中更新在目标地址处的所重新获取的指令数据的分支存在位,以指示在目标地址处的指令数据包括分支指令。
    图11示出根据本公开的、示范性微处理器操作的时间线。该时间线描绘了示出包括LRU阵列访问的指令高速缓存查找以及分支预测单元查找的示范性管线。在该示例中,简明起见,假定所有访问均命中。进一步地,如果存在命中,那么指令高速缓存的每个指令获取读取会检索高速缓存行的数据的一半。在时间线中,时间从左到右地前进,以及后续的指令高速缓存访问从上到下地前进,尽管一些访问可并行地实施。
    在第一时钟周期中,通过访问指令高速缓存的指定的高速缓存行集合(集合3)的低数据路来实施顺序指令获取。在包括用于接下来四个顺序高速缓存行集合的分支存在位的LRU阵列中查找用于集合3之后的接下来四个顺序高速缓存行集合的组的LRU位。因为来自包括指定的高速缓存行集合的先前LRU阵列查找的分支存在位指示所获取的指令数据不包括指令分支,因此分支预测单元掉电或不被访问。在一个示例中,分支存在位包括两个位,MRU高速缓存行的每一半数据使用一位。在该情况下,将清除一位以指示低半部分数据不包括分支指令。
    在该示例中,数据在实施查找之后的两个时钟周期可用。当正在处理来自第一时钟周期的访问时,实施下一个顺序指令获取。具体地,在第二时钟周期中,在指令高速缓存中查找集合3的高数据路。因为来自包括LRU位的先前LRU阵列查找的分支存在位设置为指示所获取的指令数据包括分支指令,因此分支预测单元上电。在一个示例中,将设置两个存在位中的一个位来指示高半部分数据包括分支指令。
    在第三时钟周期中,来自在第一时钟周期中所实施的访问的指令数据和LRU数据可用。由于LRU位可用,因此与LRU位一起所包括的分支存在位可用来确定在下一个顺序指令获取期间是否将分支预测单元上电或掉电。在该情况中,清除分支存在位指示指令数据不包括分支指令,并且在该指令获取期间分支预测单元掉电或不被访问。此外,来自在第一时钟周期中所实施的指令获取的指令数据可用于通过进一步沿管线向下的级传播。
    在第四时钟周期,来自对0xe0的访问的指令数据可用。另外,用于在0x0e0处的指令数据的分支预测可用以及具有目标0x200,并且用于地址0x200的分支存在位可从在第二时钟周期中访问分支预测单元而得到。此外,来自分支预测单元的分支目标缓冲区的分支存在位指示在分支的目标地址处的指令数据不包括分支指令。
    在第五时钟周期中,通过查找用于集合8的低数据来实施在分支的目标地址处的指令获取。在包括当前高速缓存行集合的LRU阵列中查找用于四个连续高速缓存行集合(集合8-11)的组的LRU位。在该情况下,在分支目标缓冲区中所查找的分支存在位指示在所获取的指令数据中不存在分支,并且分支预测单元掉电或不被访问。此外,来自在第三时钟周期中所实施的指令获取的指令数据可用,尽管该数据将由于较早所预测采取的分支而被丢弃。在第五时钟周期中所查找的数据和LRU位在第七时钟周期中可用。指令获取可顺序继续直到由于发生分支而重定向为止。
    在该示例中,分支预测单元在管线的第一、第三、第五时钟周期中掉电(在图11中加以突出)。相对于在每个指令获取期间分支预测单元均被激活的方法,该微处理器控制方法优化分支预测单元的操作以降低功率消耗而最小限度地降低性能。具体地,方法以存储在指令高速缓存和分支预测单元中的存在位的形式跟踪所获取的指令数据中的分支指令的存在。
    应予以理解的是,本文所描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不视为具有限制意义,因为许多变形是可能的。本文所描述的特定例程或方法可代表任意数目的处理策略中的一个或多个。同样,各种所示出的动作可以以所示出的顺序、以其他顺序、并行地或在一些情况下省略实施。同样,上文所描述的过程的顺序可加以改变。
    本公开的主题包括本文所公开的各种过程、系统和配置和其他特征、功能、动作和/或属性及其任意或所有等同物的所有新颖的和非显著性的组合和子组合。

    关 键 词:
    分支 预测 功率 降低
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:分支预测功率降低.pdf
    链接地址://www.4mum.com.cn/p-5779360.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03