[发明专利]基于区块的分支目标地址高速缓冲存储器无效
申请号: | 200780016471.X | 申请日: | 2007-04-23 |
公开(公告)号: | CN101438237A | 公开(公告)日: | 2009-05-20 |
发明(设计)人: | 罗德尼·韦恩·史密斯;詹姆斯·诺里斯·迪芬德尔夫尔;托马斯·安德鲁·萨托里乌斯 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京律盟知识产权代理有限责任公司 | 代理人: | 刘国伟 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 区块 分支 目标 地址 高速 缓冲存储器 | ||
技术领域
本发明大体上涉及处理器的领域,且明确地说,涉及基于区块的分支目标地址高速缓冲存储器。
背景技术
微处理器在各种各样的应用中执行计算任务。改进处理器性能是设计目标,以通过经由增强型软件实现更快速的操作和/或增加的功能性来推动产品改进。在常见的嵌入式应用(例如便携式电子装置)中,节省功率和减小芯片尺寸也是处理器设计和实施中的重要目标。
常见的现代处理器采用管线式结构,其中每一者具有多个执行步骤的连续指令在执行中是重叠的。此利用连续指令流中的指令之间的并行性的能力有助于改进处理器性能。在理想条件下且在使每一管道级在一个循环中完成并随后进行填充管线的简单初始过程的处理器中,指令可在每个循环内完成执行。
由于多种因素,包括指令之间的数据相依性(数据冒险)、例如分支等控制相依性(控制冒险)、处理器资源分配冲突(结构冒险)、中断、高速缓冲存储器未中等,所述理想条件在实践中即使能实现也很少能实现。处理器设计的主要目标是避免这些冒险和使管线保持“满”。
现实程序可包括分支指令,所述分支指令可包含无条件分支指令或条件分支指令。经常直到在管线深处评估分支指令时才知道所述分支指令的实际分支行为。由于处理器不知道在分支指令之后将取出哪些指令且直到分支指令评估时才会知道,所以这产生使管线暂停的控制冒险。常见的现代处理器采用各种形式的分支预测,借此在管线早期预测条件分支指令的分支行为和分支目标地址。处理器基于分支预测而推测地取出并执行指令,从而使管线保持满。如果所述预测是正确的,则将使性能最大化且使功率消耗最小化。在实际评估分支指令时,如果分支被错误预测,则必须将所推测地取出的指令从管线清除,并从正确的分支目标地址取出新指令。被错误预测的分支对处理器性能和功率消耗具有不利影响。
分支预测具有两个组成部分:条件评估和分支目标地址。条件评估(当然,仅与条件分支指令有关)为二元决策:采纳所述分支,从而导致执行跳至不同的代码序列;或者不采纳所述分支,在此情况下处理器执行跟随条件分支指令之后的下一连续指令。分支目标地址(BTA)是针对无条件分支指令或评估为被采纳的条件分支指令控制分支所到达的地址。一些分支指令包括指令操作代码中的BTA,或包括偏移,借此可容易地计算BTA。对于其它分支指令,在处于管线深处之前不会计算BTA,且因此必须预测BTA。
一种已知的BTA预测技术是分支目标地址高速缓冲存储器(BTAC)。现有技术中所已知的BTAC是用分支指令地址(BIA)索引的完全相关联高速缓冲存储器,其中每一数据位置(或高速缓冲存储器“线”)含有单个BTA。当分支指令在管线中经评估为被采纳且其实际BTA经计算时,将BIA和BTA写入至BTAC(例如,在回写管线级期间)。当取出新指令时,与指令高速缓冲存储器(或I高速缓冲存储器)并行地存取BTAC。如果指令地址在BTAC中命中,则处理器知道所述指令是分支指令(这在从I高速缓冲存储器取出的指令被解码之前)且提供所预测的BTA,其是所述分支指令的先前执行的实际BTA。如果分支预测电路预测所述分支被采纳,则在所预测的BTA处开始指令取出。如果预测所述分支未被采纳,则指令取出继续顺序进行。
请注意,术语BTAC在此项技术中还用于表示使饱和计数器与BIA相关联的高速缓冲存储器,因而仅提供条件评估预测(即,采纳或不采纳)。这并不是本文中所使用的此术语的意义。
高性能处理器可一次从I高速缓冲存储器取出一个以上指令。举例来说,可包含(例如)四个指令的整个高速缓冲存储器线可被取出至指令取出缓冲器中,所述指令取出缓冲器将所述指令依序馈送至管线中。转让给本申请案的受让人且以引用方式并入本文中的第11/089,072号专利申请案揭示一种BTAC,其在每一高速缓冲存储器线中存储两个或两个以上BTA,并索引分支预测偏移表(BPOT)以确定所述BTA中的哪一者被采纳为BTAC命中的所预测BTA。BPOT避免具有多个读取端口的BTAC的高成本硬件结构,所述读取端口将共同用于并行地存取多个BTA。
由于常见的指令群组或区块并非完全或甚至通常由分支指令组成,所以为区块中的每一指令提供BTAC中的单独BTA存储浪费了BTAC中的存储器单元。然而,在区块取出指令时存取BTAC以确定所述区块中的指令是无条件分支指令还是已被评估为被采纳的条件分支指令并获得其BTA对于分支预测且因此对于处理器性能很有价值。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200780016471.X/2.html,转载请声明来源钻瓜专利网。