当前位置: 首页 > 专利查询>苹果公司专利>正文

循环缓冲器学习制造技术

技术编号:9694513 阅读:109 留言:0更新日期:2014-02-21 00:36
本发明专利技术涉及循环缓冲器学习,具体公开了跟踪指令流内的候选循环的方法、设备和处理器。循环缓冲器控制单元检测向后跳转分支,并开始跟踪候选循环。该控制单元跟踪候选循环的跳转分支,并跟踪从循环的起点到每个跳转分支的距离。如果在循环的多次迭代期间,到每个跳转分支的距离保持不变,那么该循环被保存在循环缓冲器中。随后从循环缓冲器分派该循环,处理器的前端被关闭直到所述循环终止为止。

【技术实现步骤摘要】
循环缓冲器学习
本专利技术一般涉及处理器,尤其涉及识别和学习指令流内的循环的特性的方法和机构。
技术介绍
现代的处理器通常是以流水线方式多级地构成的。典型的流水线通常包括用于提取指令、解码指令、映射指令、执行指令、随后把结果写入另一个单元(比如寄存器)的独立单元。微处理器的取指令单元负责向处理器流水线的下一级提供持续的指令流。典型地,取指令单元利用指令高速缓存使流水线的剩余部分被连续供给指令。在完成其所需功能的时候,取指令单元和指令高速缓存趋于消耗相当大量的功率。现代微处理器的目标是尽可能多地减少功率消耗,尤其是对用在电池供电设备中的微处理器来说更是如此。在许多软件应用中,为了进行特定功能或任务,相同的软件步骤可能被重复多次。在这些情况下,即使相同的指令循环正在继续执行,取指令单元也会提取指令从而消耗功率。如果可以检测所述循环并将其高速缓存在循环缓冲器中,那么在执行循环的同时,取指令单元可被关闭从而减少功率消耗。然而,当循环包括多个分支时,难以检测和学习程序代码内的指令循环。在把循环高速缓存在循环缓冲器中之前,准确地判定循环是否无变化也是富有挑战性的。
技术实现思路
公开检测和跟踪指令流内的循环的设备、处理器和方法。处理器流水线可包括循环缓冲器和循环缓冲器控制单元。循环缓冲器控制单元可检测指令流中的循环终止分支。在一个实施例中,当循环缓冲器控制单元检测到循环终止分支时,控制单元可锁存循环终止分支的指令地址,可设置循环检测标记,并可启动循环迭代计数器和微操作计数器。下次检测到相同的循环终止分支时,控制单元可比较微操作计数器的值和循环缓冲器的大小。如果微操作计数器的值大于循环缓冲器的大小,那么该候选循环不能被保存在循环缓冲器中,从而将终止循环跟踪。如果微操作计数器小于循环缓冲器的大小,那么可在该循环的多次迭代期间跟踪该循环的内容。对循环的每次迭代来说,如果在迭代期间循环的内容保持不变,那么循环迭代计数器可递增并可继续循环跟踪。在一个实施例中,可在循环的每次迭代期间跟踪循环的跳转分支。在循环的第一次迭代期间,从循环的起点到各个跳转分支的距离可被保存在分支跟踪表中,在循环的后续迭代期间,可以比较当检测到分支时微操作计数器的值和保存在分支跟踪表中的对应值。如果从循环的起点到循环的各个分支的距离无变化,那么可继续循环跟踪。当循环迭代计数器的值超过预定阈值时,那么该循环可被高速缓存在循环缓冲器中。可从循环缓冲器读取循环并关闭取指令单元,直到该循环终止为止。鉴于这里介绍的方法的以下详细说明,对本领域的普通技术人员来说,这些和其它特征和优点将变得明显。附图说明结合附图参考以下说明,可更好地理解方法和机构的上述优点以及另外的优点,在附图中:图1图解说明集成电路的一部分的一个实施例。图2是图解说明处理器核心的一个实施例的方框图。图3是图解说明处理器流水线的前端的一个实施例的方框图。图4图解说明取指令和解码单元内的循环缓冲器的另一个实施例的方框图。图5是样本循环的一个实施例。图6图解说明循环缓冲器控制单元的一个实施例。图7是图解说明跟踪候选循环的方法的一个实施例的概括流程图。图8是系统的一个实施例的方框图。图9是计算机可读介质的一个实施例的方框图。具体实施方式在下面的说明中,记载了众多的具体细节以充分理解这里提供的方法和机构。然而,本领域的普通技术人员应认识到可在没有这些具体细节的情况下实践各种实施例。在一些情况下,未详细示出公知的结构、组件、信号、计算机程序指令和技术以避免模糊这里说明的方法。应理解,为了例示的简单和清楚起见,附图中所示的元件不一定是按比例绘制的。例如,可相对于其它元件夸大一些元件的尺寸。本说明书包括对“一个实施例”的引用。出现在不同上下文中的短语“在一个实施例中”不一定指的是相同实施例。可按照与本公开一致的任何适当方式组合特定的特征、结构或特性。此外,如在本申请内使用的,词语“可以”是允许性使用的(即,意味有可能),而不是强制性的(即,意味必须)。类似地,用语“包括”意味包含但不限于。术语:下面的段落提供存在于本公开(包括附加的权利要求书)中的各个术语的定义和/或上下文:“包含”:该术语是开放的。与在附加的权利要求中使用的一样,该术语不排除另外的结构或步骤。考虑记载了“一种包含循环缓冲器控制单元…的处理器”的权利要求。这样的权利要求并不排除所述处理器包括另外的组件(例如,高速缓存、取指令单元、执行单元)。“被配置成”:各个单元、电路或其它组件可被描述或主张成“被配置成”进行一项或多项任务。在这样的上下文中,“被配置成”用于通过指出所述单元/电路/组件包括在操作期间进行所述一项或多项任务的结构(例如,电路)而意指结构。因而,即使当指定的单元/电路/组件当前未工作(例如,未开启),所述单元/电路/组件也可被写成被配置成进行所述任务。和语句“被配置成”一起使用的单元/电路/组件包括硬件,例如,电路、保存可执行以实现所述操作的程序指令的存储器等等。记载某个单元/电路/组件“被配置成”进行一项或多项任务并不意图对于该单元/电路/组件明确地援引35U.S.C.§112,第6段。另外,“被配置成”可包括利用软件和/或固件(例如,FPGA或者通用处理器执行软件)操纵、从而按照能够进行所关注的任务的方式工作的通用结构(例如,通用电路)。“被配置成”还可包括:使制造工艺(例如,半导体制备设施)适用于制备适合于实现或进行一种或多种任务的器件(例如,集成电路)。“根据”:这里使用的该术语用于描述影响判定的一个或多个因素。该术语并不排除可能影响判定的其它因素。即,判定可以仅仅基于这些因素,或者至少部分基于这些因素。考虑短语“根据B判定A”。虽然B是影响A的判定的一个因素,不过这样的短语并不排除A的判定还基于C。在其它情况下,可以仅仅根据B判定A。现在参见图1,图中表示了图解说明集成电路(IC)的一部分的一个实施例的方框图。在所示的实施例中,IC10包括处理器复合体12、存储控制器22和存储器物理接口电路(PHY)24和26。注意IC10还可包括图1中未示出的许多其它组件。在各个实施例中,IC10也可被称为片上系统(Soc)、专用集成电路(ASIC)或设备。处理器复合体12可包括中央处理器(CPU)14和16,层2(L2)高速缓存18和总线接口单元(BIU)20。在其它实施例中,处理器复合体12可包括其它数目的CPU。CPU14和16也可被称为处理器或核心(core)。注意,处理器复合体12可包括图1中未示出的其它组件。CPU14和16可包括执行在指令集架构中定义的指令的电路。具体地,包含所述指令的一个或多个程序可由CPU14和16执行。在各个实施例中,可以实现任意指令集架构。例如,在一个实施例中,可以实现ARMTM指令集架构(ISA)。ARM指令集可包括16位指令(或Thumb)和32位指令。其它示例ISA可包括PowerPCTM指令集、MIPSTM指令集、SPARCTM指令集、x86指令集(也称为IA-32)、IA-64指令集等。在一个实施例中,利用CPU14和16执行的每个指令可与一个PC值相关联。另外,在一些指令内可以指定一个或多个结构寄存器以便读取和写入。这些结构寄存器可被寄存器重命名单元映射到实际物理寄存器。此外,本文档来自技高网...
循环缓冲器学习

【技术保护点】
一种设备,包括:循环缓冲器,被配置成保存指令操作,其中响应于检测到所述设备处于循环缓冲模式,从循环缓冲器分派指令操作;和与循环缓冲器耦接的循环缓冲器控制单元,其中循环缓冲器控制单元被配置成:跟踪从包含多条指令的候选循环的起点到所述候选循环内的每个跳转分支的距离;和响应于检测到从候选循环的起点到各个跳转分支的距离在候选循环的至少给定迭代次数期间无变化,启动循环缓冲模式。

【技术特征摘要】
2012.06.15 US 13/524,5081.一种处理设备,包括:循环缓冲器,被配置成保存指令操作,其中响应于检测到所述设备处于循环缓冲模式,从循环缓冲器分派指令操作;和与循环缓冲器耦接的循环缓冲器控制单元,其中循环缓冲器控制单元被配置成:检测第一循环终止分支,所述第一循环终止分支包括到作为候选循环的起点的指令的向后跳转分支;响应于候选循环之前还没有丧失资格,跟踪候选循环,从而循环缓冲器控制单元被配置成:存储第一循环终止分支的指令地址;跟踪从候选循环的起点到候选循环内的每个跳转分支所执行的指令的数量;响应于检测到从候选循环的起点到每个所述跳转分支所执行的指令的数量对于候选循环的至少给定迭代次数无变化,启动循环缓冲模式;以及响应于检测到从候选循环的起点到每个所述跳转分支所执行的指令的数量并非无变化:终止候选循环的跟踪;使候选循环丧失在循环缓冲器中被高速缓存的资格;以及存储所述候选循环的向后跳转分支的指令地址。2.按照权利要求1所述的设备,还包括取指令单元和指令高速缓存,其中所述设备被配置成,响应循环缓冲模式被启动,关闭取指令单元和指令高速缓存中的至少一个。3.按照权利要求1所述的设备,其中当所述设备处于循环缓冲模式时,从循环缓冲器向解码单元分派指令操作。4.按照权利要求1所述的设备,其中当跟踪候选循环时,循环缓冲器控制单元还被配置成响应于检测到第二循环终止分支而终止候选循环的跟踪,所述第二循环终止分支不是所述第一循环终止分支。5.按照权利要求1所述的设备,其中所述给定迭代次数对应于大于阈值的迭代次数,并且其中,所述阈值基于分支预测器预测候选循环的结束所需的时间量。6.按照权利要求1所述的设备,其中,循环缓冲器控制单元还被配置成:响应于检测到第一循环终止分支,确定是否存储了指示在之前遇到候选循环时跟踪候选循环期间候选循环丧失在循环缓冲器中被高速缓存的资格的第一循环终止分支的指令地址;响应于确定存储了所述第一循环终止分支的指令地址,忽略所述候选循环并放弃跟踪所述候选循环。7.按照权利要求1所述的设备,还包括分支跟踪表,其中分支跟踪表包含关于候选循环的每个跳转分支的条目,并且其中每个条目包括与从候选循环的起点到相应的跳转分支的距离对应的值。8.一种处理器,包括:循环缓冲器;和与循环缓冲器耦接的循环缓冲器控制单元;其中循环缓冲器控制单元被配置成:检测第一循环终止分支,所述第一循环终止分支包括到作为候选循环的起点的指令的向后跳转分支;响应于候选循环之前还没有丧失资格,跟踪候选循环,从而循环缓冲器控制单元被配...

【专利技术属性】
技术研发人员:C·布拉斯考阿鲁I·D·考恩坦尼斯
申请(专利权)人:苹果公司
类型:发明
国别省市:

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

1