用于减少在分支目标地址高速缓冲存储器中查找的方法和设备的制作方法

文档序号:6455677阅读:150来源:国知局
专利名称:用于减少在分支目标地址高速缓冲存储器中查找的方法和设备的制作方法
技术领域
本发明大体上涉及处理器领域,且明确地说,涉及一种通过减少在分支目标地址高 速缓冲存储器中查找而改进分支预测的方法。
背景技术
微处理器在很多种应用中执行计算任务。几乎始终需要改进处理器性能,以允许更 快操作和/或通过软件变化而增大功能性。在许多嵌入式应用(例如便携式电子装置)中, 节省功率和更快的通过量也是处理器设计和实施中的目标。
许多现代处理器采用管线式结构,其中顺序指令(每一者具有多个执行步骤)在执 行中交叠。为了获得经改进的性能,所述指令应连续流动穿过管线。任何致使指令停止 于管线中的情形可不利地影响性能。如果从管线清洗且随后再提取指令,则性能和功率 消耗均受损。
大多数程序包括间接分支指令,其中直到在管线深处评估所述间接分支指令才知道 实际分支行为。为了避免将由于等待间接分支指令的实际评估而导致的停止,现代处理 器可采用某种形式的分支预测,借此在管线中早期预测间接分支指令的分支行为。基于 所预测的分支评估,处理器推测性地提取(预提取)且处理来自预测地址的指令,所述 预测地址为分支目标地址(如果预测将采取所述分支)或在所述分支指令之后的下一顺 序地址(如果预测将不采取所述分支)。是否将采取间接分支指令被称作确定分支方向。
常规分支预测技术包括分支目标存取高速缓冲存储器(BTAC)和分支预测逻辑, 所述BTAC定位于处理器管线的提取级中。BTAC存储先前所提取的指令的目标地址且 由所述指令的地址索引。指令高速缓冲存储器常规上填充有各种指令类型的指令,所述 指令是从更高阶高速缓冲存储器或存储器检索的。常规上在处理器管线中进一步向下实 际解析间接分支指令之后填充BTAC。
在操作中,常规分支预测技术并行地在BTAC和指令高速缓冲存储器两者中对所预 提取的指令执行地址査找。如果在BTAC中存在未中,则这些常规分支技术因此已在 BTAC查找中消耗功率而未找到匹配。如果在BTAC中存在命中,则所查找到的地址可 视为间接分支指令。在BTAC查找之后,常规技术调用分支预测逻辑以确定是否应预测采取从BTAC检索的分支目标地址。如果所述分支预测逻辑预测采取,则分支预测逻辑 通过从所述分支目标地址开始检索指令而重定向指令流动。
通常从所述管线清洗从分支指令起进入处理器管线的所有顺序指令。由BTAC査找 界定的路径和后续分支预测通常为临界速度路径,因为此路径的定时越短,在重定向指 令流动之前需要从处理器管线清洗的指令量也就越小。因此,此路径需要尽可能短,以 最小化清洗指令所消耗的功率。
用于减小临界路径时间的常规技术包括减小BTAC的大小和/或以多路型式组织 BTAC。然而,通过减小BTAC的大小,潜在命中的数冃和因此在BTAC中找到分支冃 标地址的可能性受到减小,从而降低了 BTAC的整体有效性。此外,通过将BTAC组织 为多路型式,索引到BTAC中可能变得较快,但花费于比较上的时间可能有所增加。在 这些情形中,BTAC可能慢于指令高速缓冲存储器,因此在临界路径的并行查找部分中 变成限制性因素。因此,认识到,需要用以减少用于当在处理器管线中找到间接分支指 令时重定向指令流动的时间而不会降低分支预测的有效性的设备和方法。

发明内容
本发明认识到,当并行地对指令高速缓冲存储器和BTAC进行查找且在BTAC中查 找失败时,常规分支预测技术常常不必要地消耗功率。当在指令高速缓冲存储器中存在 命中而在BTAC中存在未中时,此认识更为明显,这种情况可能是由于指令高速缓冲存 储器通常存储所有类型的指令,且BTAC通常存储分支指令地址。
根据一个实施例,揭示一种用于减少对分支目标地址高速缓冲存储器(BTAC)进 行查找的方法。在此方法中,响应于在指令高速缓冲存储器(I-cache)中查找指令地址 的未中而从所述BTAC检索分支目标地址。所述分支目标地址与所述指令地址相关联。 从所述BTAC检索的分支目标地址存储在所述指令高速缓冲存储器中。使用此所揭示的 技术,以与所述BTAC不并行的方式,在所述指令高速缓冲存储器中有利地查找后续指 令地址,因此通过减少不必要的BTAC查找而节省功率。
根据另一实施例,揭示用于将分支指令存储到指令高速缓冲存储器中的方法。此方 法包括在指令高速缓冲存储器(I-cache)中査找分支指令地址;响应于指令高速缓冲 存储器未中而从分支目标地址高速缓冲存储器(BTAC)检索分支目标地址;以及将所 述分支目标地址存储到所述指令高速缓冲存储器中的条目中。
另一实施例涉及一种用于减少对分支目标地址高速缓冲存储器(BTAC)进行查找
的系统。所述系统包括BTAC和指令高速缓冲存储器(I-cache),所述指令高速缓冲存储器经配置以响应于当查找第一分支指令地址时的高速缓冲存储器未中而从所述BTAC 检索分支目标地址。所述指令高速缓冲存储器进一步经配置以存储所述分支目标地址。
应了解,所属领域的技术人员从以下详细描述将容易明白本发明的其它实施例,其 中以说明方式展示并描述本发明的各种实施例。如将了解到,本发明能够具有其它且不 同的实施例,且能够在各种其它方面对其若干细节进行修改,所有这些均不脱离本发明。 因此,图式和实施方式在本质上应被视作说明性的而非限制性的。


图1为示范性处理器的功能方框图。
图2A到图2C (总称图2)说明示范性代码段的列表以及当指令高速缓冲存储器未 含有来自代码段的分支指令时的指令高速缓冲存储器和BTAC的示范性内容。
图3说明在用来自BTAC的指令数据填充图1的指令高速缓冲存储器之后所述指令 高速缓冲存储器的示范性内容。
图4为说明将间接分支指令存储到指令高速缓冲存储器中且从图1的指令高速缓冲 存储器检索指令的方法的流程图。
图5为说明在实际分支解析时管理指令高速缓冲存储器的方法的流程图。
图6为共享共同BTAC的两个处理器的功能方框图。
具体实施例方式
图1描绘示范性处理器100的功能方框图。处理器100根据控制逻辑114在指令执 行管线112中执行指令。在一些实施例中,管线112可为具有多个平行管线的超标量设 计,所述多个平行管线如结合图6进一步详细描述。管线112包括经组织成数个管级的 各种寄存器或锁存器116A-D,以及一个或一个以上执行单元,例如算术逻辑单元(ALU) 118。通用寄存器(GPR)堆120提供组成存储器分级结构的顶部的寄存器。
从数据高速缓冲存储器(D-cache) 140存取数据,其中存储器地址转译和许可由主 转译后备缓冲器(TLB) 142管理。在各种实施例中,ITLB 124可包含TLB 142的部分 的复本。或者,可整合ITLB 124与TLB 142。类似地,在处理器100的各种实施例中, 可整合指令高速缓冲存储器122与数据高速缓冲存储器140,或使其成为一体。指令高 速缓冲存储器122和/或数据高速缓冲存储器140中的未中使得在存储器接口 146的控制 下存取主(芯片外)存储器144。将结合图4的论述进一步详细描述指令高速缓冲存储 器122中的未中。处理器100可包括输入/输出(I/O)接口148,其控制对各种外围装置150的存取。 所属领域的技术人员将认识到,处理器IOO的众多变化型式是可能的。举例来说,处理 器100可包括第二层(L2)高速缓冲存储器,用于指令高速缓冲存储器122和数据高速 缓冲存储器140中的任一者或两者。另外,特定实施例可省略处理器100中所描绘的功 能区块中的一者或一者以上。
处理器IOO包括分支预测系统143。分支预测系统143包括BTAC 141、分支预测器 (BP)电路126、更新逻辑电路160和可选的预解码电路156。 BTAC 141经配置以存储 一个或一个以上条目,其中每一条目含有分支指令地址和对应于提取地址的分支目标地 址。BTAC 141可存储直接分支指令地址与间接分支指令地址的组合。
当指令地址在指令高速缓冲存储器122中未中且进行经由存储器接口 146从更高层 存储器接收对应指令的请求时,经由充填路径152填充指令高速缓冲存储器122和BTAC 141。在第一实施例中, 一旦从存储器接口 146接收到指令,则可选的预解码逻辑电路 156经配置以确定所接收的指令是否为间接分支指令。如果是,则经由路径152在BTAC 141中查找所接收指令的地址,以查看是否存在与所接收指令的地址相关联的目标地址。 如果在BTAC 141中存在命中,则将所接收的指令和对应目标地址写入到指令高速缓冲 存储器122。在间接分支指令经误预测的情况下,指令高速缓冲存储器122中可能发生 未中且BTAC 141中可能发生命中,因此在指令高速缓冲存储器122中引起某种类型的 失效。将结合图5的论述进一步详细论述指令高速缓冲存储器失效的类型。如果所接收 指令的地址不在BTAC141中(例如,未中),则将所接收指令写入到指令高速缓冲存储 器122。
第二实施例移除预解码逻辑电路156。在第二实施例中,将在BTAC 141中查找通 过存储器接口 146接收的指令,而不管所接收的指令是否为间接分支指令。在此第二实 施例中,与第一实施例相似,将指令转发到指令高速缓冲存储器122以用于存储。然而, 在第一实施例中,BTAC查找限于间接分支指令。在任一实施例中,如果分支目标地址 存储于BTAC 141中,则其还将被存储到指令高速缓冲存储器122。
在管线112的随后级中发生实际分支解析之后,更新控制逻辑160经由路径162将 目标地址添加到BTAC 141中的条目。BTAC 141经由路径154更新指令高速缓冲存储 器122以包括间接分支指令和其对应目标地址两者。术语"预测不采取"是指BP电路 126预测不根据分支目标地址而重定向管线112。
在存储器地址转译和许可由指令侧转译后备缓冲器(ITLB) 124管理的情况下,指 令预提取单元128经由路径125从指令高速缓冲存储器(I-cache或1$) 122提取指令。
8如果在指令高速缓冲存储器122中找到(例如,命中)所提取的指令,且所提取的指令 与对应分支目标地址相关联,则BP电路126预测是否采取在所述目标地址处开始的代 码路径。如果BP电路126预测应采取所述目标地址,则指令预提取单元128调整'其程 序计数器以开始从所述目标地址提取指令,因此根据所述分支目标地址而重定向管线 112。如果BP电路126预测不应采取所述目标地址,则所述程序计数器递增以开始从下 一顺序地址提取指令。将结合图4和图5的论述进一步详细描述分支预测系统143的操
作。 ...
本发明涵盖将BTAC 141与指令高速缓冲存储器122组合为一体式组件的实施例。 然而,对于将BTAC和指令高速缓冲存储器分离为不同组件存在若干原因。仅在充填所 述指令高速缓冲存储器期间才查询或读取所揭示的外部BTAC。每次存取所述指令高速 缓冲存储器时,存取与所述指令高速缓冲存储器平行定位的常规BTAC。通过限制如目 前所揭示的对BTAC的咨询,本发明通过减小BTAC中的活动性而节省功率。此外,对 所述BTAC的此不频繁存取允许BTAC 141为单端口装置,因此降低设计复杂性。
图2A说明示范性代码段的列表210,其在地址0x000B处含有间接分支指令212。 如所描绘,间接分支指令212的目标由寄存器1 (Rl)的内容界定。由于每次执行间接 分支指令212时R1的内容可能变化,因此利用分支预测系统143来确定是否从R1的内 容所指定的地址开始重定向过程管线112。
图2B说明指令高速缓冲存储器230的示范性内容。指令高速缓冲存储器230可适 当地类似于指令高速缓冲存储器122。指令高速缓冲存储器230包括指令列232、有效 位列234和分支目标地址列236。列232中的条目表示指令。根据常规,歹i」234中的"0" 值指示列236中的分支目标(如果存在)为无效的,而列234中的"1"值指示沿同一 行中的列236中的分支目标为有效的。如所描绘,在程序计数器指向地址0x000B的时 间点,指令高速缓冲存储器230在地址0x000B处不含有间接分支指令212的条目。
图2C说明BTAC 250的示范性内容。BTAC 250可适当地类似于BTAC 141。 BTAC
250包括分支指令地址列252和目标地址列254。列252可包括直接分支指令地址、间
接分支指令地址或其任何组合。在程序计数器指向地址0x000B的时间点,BTAC 250含
有间接分支指令地址256和其对应目标地址。因此,在指令高速缓冲存储器未中时,控
制逻辑114将致使BTAC 250中的分支指令256和其对应目标地址存储指令高速缓冲存
储器230。应认识到,可将其它信息存储于指令高速缓冲存储器230和BTAC 250两者
中,且本发明涵盖指令高速缓冲存储器230和BTAC 250的各种组织。
图3说明在将与间接分支指令地址256相关联的间接分支指令和其对应目标地址
9(0x2000)存储于指令高速缓冲存储器230中的地址0x000B处之后的指令高速缓冲存储 器230。因此,下次处理器的程序计数器指向地址0x000B时,指令高速缓冲存储器查 找将命中,且目标地址0x2000将被指派到处理器的程序计数器以从地址0x2000处的指 令开始重定向管线112。与常规BTAC相比,本发明中的指令高速缓冲存储器查找是在 不在BTAC中执行查找的情况下对预提取的指令执行的,从而通过减少BTAC查找的数 目而节省功率消耗。如所证明,在BTAC 250中查找限于在指令高速缓冲存储器230中 未找到特定间接分支指令的情形。
图4为说明将间接分支指令存储到指令高速缓冲存储器中且从图1的指令高速缓冲 存储器检索分支目标地址的方法400的流程图。方框410、 420、 450、 455、 460、 465、 470和480界定用以将间接分支指令和分支目标地址存储到指令高速缓冲存储器(例如 图1的指令高速缓冲存储器122)中的过程。方框410、 420、 425、 435、 438、 440和 445界定用于从指令高速缓冲存储器检索分支目标地址的过程。在方框410处,基于指 令的地址而查询指令高速缓冲存储器以获得一指令。举例来说,可利用存储于处理器的 程序计数器中的指令地址来查询指令高速缓冲存储器。在方框420处,方法400确定指 令高速缓冲存储器中是否存在命中。如果不存在(高速缓冲存储器未中),则方法400 前进到方框450以从更高层存储器检索对应指令数据。在方框450处,从更高层存储器 (例如第2层(L2)高速缓冲存储器或芯片外存储器)请求指令数据。在方框455处, 接收从更高层存储器检索的指令数据。在方框460处,在BTAC中查找指令地址。在方 框465处,方法400确定在BTAC中指令地址是否命中,或换句话说,确定是否与存储 于BTAC中的指令地址匹配。如果在BTAC中指令地址命中,则方法400前进到方框470, 在方框470处将存储于BTAC中的所预测分支目标(如果存在)添加到指令数据。在 BTAC中命中时,所预测分支目标将可能存储于BTAC中,只要先前已解析间接分支指 令的先前实例的分支目标地址。方法400前进到方框480,在方框480处将指令数据存 储于指令高速缓冲存储器中。
返回到方框465,如果在BTAC中指令地址未中,则方法400前进到方框480。此
从方框465到480的过渡指示以下情形所査询的指令地址既不在指令高速缓冲存储器
中,也不在BTAC中。在此情形中,将在解析所检索指令数据的实际分支目标之后把分
支目标地址存储于BTAC中,所述解析稍后在处理器管线中发生,如结合图6进一步详
细论述。举例来说,当解析实际分支目标时,更新逻辑电路160将致使BTAC和指令高
速缓冲存储器两者存储所解析的分支目标。
方框465和方框475两者均前进到方框480,在方框480处将指令数据存储于指令
10序计数器顺序递增。方法400接着前进到方框410以查询
由程序计数器指定的下一地址。
返回到方框420,如果在指令高速缓冲存储器中存在命中,意味着在指令高速缓冲 存储器中存在对应条目,则方法400前进到方框425。在方框425处,方法400确定指 令高速缓冲存储器中的对应条目是否具有分支目标地址。在一个实施例中,方框425可 通过询问对应有效位(例如存储于图2的有效位列234中的有效位)来完成。如果不存 在与所述指令高速缓冲存储器命中相关联的有效分支目标地址,则指令地址不是间接分 支指令。因此,方法400前进到方框445,在方框445处从指令高速缓冲存储器检索且 以常规方式处理非分支指令。方法400前进到方框410以从所述程序计数器所指定的指 令高速缓冲存储器查询下一地址。
如果存在对应于所述条目的有效分支目标地址,则方法400前进到方框435。在方 框435处,方法400预测是否应采取存储于对应条目中的分支目标地址。在一个实施例 中,分支预测电路126进行此预测。应注意,所属领域的技术人员将了解,分支预测技 术可利用统计学、试探法、预定参数等。在方框438处,方法400测试是否将采取所述 预测。如果是,则方法400前进到方框440,在方框440处将分支目标地址发送到例如 指令预提取单元128等程序计数器,以便开始从分支目标地址提取指令。方法400前进 到方框410以査询由所述程序计数器指定的下一地址,所述下一地址在穿过流程图的此 路径中为分支目标地址。
返回到方框438,如果预测不采取所述路径,则方法400前进到方框445来以常规 方式处理存储于高速缓冲存储器中的指令。在方框445之后,方法400前进到方框410 以查询程序计数器中的下一地址,所述下一地址在穿过流程图的此路径中为跟随所述间 接分支指令之后的顺序地址,例如图2A中的地址OxOOOC。
图5为说明在实际分支解析时管理指令高速缓冲存储器的方法500的流程图。方法 500是针对以下情形执行的第一次计算间接分支指令的实际分支目标,以及例如A支 预测电路126等预测机制误预测所述间接分支指令的目标。在方框510处,解析间接分 支指令的实际目标。当稍后在处理器管线中处理间接分支指令时,可执行此分支解析。
在方框520处,方法500确定实际目标是否匹配所预测目标,或者对于第一次计算
实际目标的情况,不存在所预测目标。如果实际分支目标不匹配所预测分支目标,则
BTAC和指令高速缓冲存储器两者均无需更新。方法500前进到方框525,在方框525
处其在前进返回到方框510之前等待下一分支指令。
如果实际分支目标不匹配所预测目标,则方法500检测到误预测且前进到方框530。
11至少两种情形可导致不匹配。第一种情形可发生于间接分支指令在先前存储于BTAC和 指令高速缓冲存储器中(无分支目标)之后第一次执行时。在第一种情形中,所述间接 分支指令之后的下一顺序指令可能已加载于处理器管线中。如果所预测目标地址不同于 实际解析目标地址,则可能发生第二种情形。在第二种情形中,所预测目标地址中所指 示的下一指令可能已加载于处理器管线中。
在方框530处,在任一情形中,处理器管线将其指令从管线清洗以使管线恢复到分 支点,在此情况下,所述分支点是间接分支指令的地址。因此,将从所述处理器管线清 洗在间接分支指令之后加载于处理器管线中的指令,而不管那些指令是否从所预测目标 地址或在所述间接分支指令之后的下一顺序地址开始加载的。在方框540处,更新B'tAC 以将实际分支目标地址存储于其分支目标地址字段(例如列254)中。
在方框550处,管理指令高速缓冲存储器。举例来说,控制逻辑电路114可包括用 以实施方框550A到550C的逻辑。方框550A到550C为方框550的替代实施例。在方 框550A处,对应于所预测目标地址的高速缓冲存储器线失效。在方框550B处,对应于 所预测目标地址的高速缓冲存储器线的分支目标失效。在方框550C处,对应于所预测 目标地址的高速缓冲存储器线的分支目标地址经更新以反映实际目标地址。当间接分支 指令在先前存储于BTAC和指令高速缓冲存储器中(无分支目标)之后第一次执行时, 方框550C为优选的。
图6为共享共同BTAC 611的两个处理器601和602的功能方框图。所共享的BTAC 611以及处理器601和602优选地被包含在单个集成电路芯片中。处理器601包括其自 身的多级处理器管线620、指令高速缓冲存储器610和分支预测电路615。在级625处, 发生实际分支解析以便分别用间接分支指令和分支目标地址更新BTAC 611和指令高速 缓冲存储器610,如先前在图4和图5中所描述。处理器602包括其自身的多级处理器 管线640、指令高速缓冲存储器630和分支预测电路635。在级645处,发生实际分支 解析以便分别用间接分支指令和分支目标地址更新BTAC 611和指令高速缓冲存储器 630,如先前在图4和图5中所描述。如所描绘,可在处理器的管线中的不同级处执行 实际分支解析。尽管图6说明在两个处理器之间共享共同BTAC,但请注意,本发明涵 盖在三个或三个以上处理器之间共享共同BTAC。在操作期间,当从含有有效分支目标 地址的指令高速缓冲存储器610或指令高速缓冲存储器630提取地址时,相应管线620 和640开始从分支目标地址开始预提取指令。
结合本文中所揭示的实施例而描述的各种说明性逻辑区块、模块、电路、元件和/
或组件可用经设计以执行本文中所描述的功能的通用处理器、数字信号处理器(DSP)、
12专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或 晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但 在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可 被实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核 心的一个或一个以上微处理器或任何其它此类配置。
结合本文中所揭示的实施例而描述的方法可直接在硬件中、在由处理器执行的软件 模块中或在所述两者的组合中体现。软件模块可驻留于RAM存储器、快闪存储器、ROM 存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM或此 项技术中已知的任何其它形式的存储媒体中。存储媒体可耦合到处理器,使得所述处理 器可从所述存储媒体读取信息且可将信息写入到所述存储媒体。在替代方案中,存储媒 体可与处理器成一体式。
尽管本发明在实施例的上下文中揭示,但应认识到,所属领域的技术人员可采用与 以上论述内容和随附权利要求书一致的很多种实施方案。
权利要求
1. 一种用于减少对分支目标地址高速缓冲存储器(BTAC)进行查找的方法,其包含响应于在指令高速缓冲存储器(I-cache)中查找第一指令地址的未中而从所述BTAC检索分支目标地址;以及将来自所述BTAC的所述分支目标地址存储于所述指令高速缓冲存储器中,所述分支目标地址与所述指令高速缓冲存储器中的所述第一指令地址相关联。
2. 根据权利要求1所述的方法,其进一步包含在所述指令高速缓冲存储器中查找所述第一指令地址;以及 在所述指令高速缓冲存储器中检索与所述第一指令地址相关联的所述分支冃标 地址。
3. 根据权利要求2所述的方法,其进一步包含提取与所述第一指令地址相关联的第一指令;以及 预测待提取的第二指令与所述分支目标地址相关联。
4. 根据权利要求3所述的方法,其进一步包含基于所述分支目标地址而提取所述第二指令。
5. 根据权利要求4所述的方法,其进一步包含针对所述第一指令检测误预测。
6. 根据权利要求5所述的方法,其进一步包含通过以下各项中的至少一者来管理所述指令高速缓冲存储器使指令高速缓冲存 储器线失效、使所述指令高速缓冲存储器线中的所述分支目标地址失效和更新所述 指令高速缓冲存储器中的所述分支目标地址。
7. 根据权利要求5所述的方法,其中针对所述第一指令检测误预测包含针对所述第一指令计算实际分支目标地址;以及将所述实际分支目标地址与所述指令高速缓冲存储器中的所述分支目标地址进 行比较,其中所述实际分支目标地址不匹配所述分支目标地址。
8. —种将分支指令存储到指令高速缓冲存储器(I-cache)中的方法,其包含在指令高速缓冲存储器(I-cache)中查找分支指令地址;响应于指令高速缓冲存储器未中而从分支目标地址高速缓冲存储器(BTAC)检 索分支目标地址;以及将所述分支目标地址存储到所述指令高速缓冲存储器中的条目中。
9. 根据权利要求8所述的方法,其进一步包含响应于指令高速缓冲存储器命中而从所述指令高速缓冲存储器检索所述分支目 标地址。
10. 根据权利要求9所述的方法,其进一步包含预测待提取的下一指令与所述分支目标地址相关联。
11. 根据权利要求8所述的方法,其进一步包含在误预测时更新所述指令高速缓冲存储器中的所述分支目标地址。
12. 根据权利要求11所述的方法,其中在误预测时更新所述条目中的所述分支目标地 址包含确定所述分支指令的实际分支地址;以及将所述实际分支地址与所述分支R标地址进行比较,其中实际分支解析不匹配所预测的目标地址。
13. 根据权利要求9所述的方法,其进一步包含预测是否发送待提取的所述分支目标地址。
14. 根据权利要求13所述的方法,其进一步包含发送待提取的所述分支目标地址。
15. —种用于减少对分支目标地址高速缓冲存储器(BTAC)进行查找的系统,其包含分支目标存取高速缓冲存储器(BTAC);以及指令高速缓冲存储器(I-cache),其经配置以响应于当查找第一分支指令地址时的高速缓冲存储器未中而从所述BTAC检索分支目标地址,所述指令高速缓冲存储 器进一步经配置以存储所述分支目标地址。
16. 根据权利要求15所述的系统,其中所述指令高速缓冲存储器进一步经配置以使得 查找所述指令高速缓冲存储器中的所述第一分支指令地址且使得从所述指令高速 缓冲存储器检索与所述第一分支指令地址相关联的所述分支目标地址。
17. 根据权利要求15所述的系统,其中所述指令高速缓冲存储器经配置以使得提取与 所述第一指令地址相关联的第一指令,所述系统进一步包含分支预测电路,其经配置以预测待提取的第二指令与所述分支目标地址相关联。
18. 根据权利要求17所述的系统,其中所述指令高速缓冲存储器经配置以使得从所述 指令高速缓冲存储器提取基于所述分支目标地址的所述第二指令。
19. 根据权利要求18所述的系统,其进一步包含更新逻辑电路,其经配置以误预测待提取的所述第二指令。
20. 根据权利要求19所述的系统,其进一步包含控制逻辑电路,其经配置以通过以下各项中的至少一者来管理所述指令高速缓冲存储器使指令高速缓冲存储器线失效、使所述指令高速缓冲存储器线中的所述分支目标地址失效和更新所述指令高速缓冲存储器中的所述分支目标地址。
全文摘要
本发明揭示一种用于减少对分支目标地址高速缓冲存储器(BTAC)进行查找的技术。在此技术中,响应于在指令高速缓冲存储器(I-cache)中查找指令地址的未中而从所述BTAC检索分支目标地址。所述分支目标地址与所述指令地址相关联。从所述BTAC检索的所述分支目标地址存储在所述指令高速缓冲存储器中。使用此所揭示的技术,以与所述BTAC不并行的方式,在所述指令高速缓冲存储器中查找后续指令地址,因此通过减少不必要的BTAC查找而节省功率。
文档编号G06F9/38GK101501635SQ200780030214
公开日2009年8月5日 申请日期2007年8月15日 优先权日2006年8月16日
发明者迈克·莫罗 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1