[发明专利]对非控制流指令减少分支检验无效
申请号: | 200810190998.0 | 申请日: | 2008-12-25 |
公开(公告)号: | CN101763249A | 公开(公告)日: | 2010-06-30 |
发明(设计)人: | 王凯峰;孙红霞;吴永强 | 申请(专利权)人: | 世意法(北京)半导体研发有限责任公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 张雪梅;蒋骏 |
地址: | 中国北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 指令 减少 分支 检验 | ||
技术领域
本发明一般涉及微处理器,特别是为分支预测降低能耗。
背景技术
微处理器是响应于实现计算机程序的指令来执行各种计算操作的电子设备。实现计算机程序的通用技术是以预定序列发送多个指令到微处理器的执行单元,然后顺序地执行这些指令。在一些情况下,程序跳出了次序来执行不是序列里的下条指令的指令。可以引起执行跳出序列的指令的一个例子是分支指令。当执行一分支指令时,微处理器可以跳到由分支指令标识的目标指令,并且微处理器下一步执行的是该目标指令,而非下一顺序指令。
如图示,图1显示程序执行序列的示例,其中以顺序方式执行五个顺序指令1-5,指令1首先执行,然后第二执行指令2等等。在该示例中,指令5是一分支指令,其指定指令2为其目标指令。执行分支指令5后,微处理器跳出了顺序指令的次序,接下来执行程序执行顺序中的指令2,而非下一顺序指令6。
微处理器经常使用几个阶段来处理指令,其可包括:指令取阶段,其中从指令高速缓存中取出指令;指令解码阶段,其中对取来的指令进行解码;指令执行阶段,其中执行指令。为了提高通过各种阶段处理多个指令的速度,一些微处理器采用已知的流水线技术。流水线在流水线的多个阶段对几个不同的指令同时执行处理的不同部分的意义上类似于装配线。流水线技术的一个例子是,在第一计算周期中由流水线的第一阶段处理第一指令1。在第二周期中,第一指令1进入到流水线的第二阶段,并且第二指令2开始流水线的第一阶段。在第三周期中,第一指令1进入到流水线的第三阶段,第二指令2进入到流水线的第二阶段,并且第三指令3开始流水线的第一阶段等等。流水线可以使得多个指令执行得比微处理器每次只处理一条指令的情况更快速。例如,流水线技术允许在每个周期完成不同指令的处理。
分支指令会降低流水线技术的效率。当执行一分支指令时,微处理器可能试图跳出顺序的次序,而执行并不在流水线中的目标指令。要跳到目标指令,微处理器可能放弃已经在流水线中的指令,然后开始重新启动在目标指令开始的流水线。结果当目标指令被取和由流水线的初始阶段进行处理时,可能发生延迟,导致通过流水线处理指令时速度的总体下降。
分支预测是已用来提高执行分支指令的流水线微处理器的速度的技术。分支预测通过使能微处理器在执行分支指令之前就取出分支指令后有可能执行的指令,可提高流水线微处理器的速度。分支预测可以包括预测条件分支是否采用、和/或预测分支目标,其是分支指令的目标指令。例如,当微处理器确定条件分支可能被采用时,可以在执行分支指令之前将预测的目标指令取入到流水线中,以为分支操作的流水线作准备。
分支历史表是可以存储关于之前分支是否被采用的历史信息的分支预测单元,该历史信息可用于预测未来的分支是否将被采用。分支目标缓冲器是可以预测分支指令的目标的分支预测单元。一些微处理器使用分支历史表和分支目标缓冲器来执行分支预测。
发明内容
一些实施例涉及一种执行指令的微处理器。微处理器取一组指令,所述指令包括至少一个控制流指令和至少一个非控制流指令。微处理器包括控制指令标识单元和分支预测单元。控制指令标识单元存储控制指令标识信息,所述控制指令标识信息标识已取指令组中该至少一个非控制流指令。分支预测单元检验对应该至少一个控制流指令的已存储的分支预测信息,不检验对应该至少一个非控制流指令的已存储的分支预测信息。
一些实施例涉及在微处理器中检验分支预测信息的方法,其中在该组已取指令中标识一个或多个控制流指令。对于控制流指令进行分支预测信息的检验,而对于非控制流指令不进行分支预测信息的检验。
附图说明
附图中,每个相同的或几乎相同的组件在不同图中用相似的数字表示。为了清楚起见,并非每个附图的所有组件都进行标注。附图中:
图1.显示包括分支指令的程序执行顺序的示例;
图2.显示根据一些实施例的超标量微处理器的前端流水线;
图3.显示根据一些实施例,具有对于非控制流指令索引输入可被禁止的分支目标缓冲器;
图4.显示根据一些实施例,具有对于非控制流指令索引输入可被禁止的分支历史表;
图5.显示根据一些实施例的指令高速缓存标签数组,其存储控制指令标识信息;
图6.显示根据一些实施例的控制指令标识单元的示例,其可以存储控制标识信息以使(多个)索引输入对BHT和/或BTB使能/禁止;
图7.显示根据一些实施例的电路,其为分支目标缓冲器和/或分支历史表产生掩码信号;
具体实施例
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于世意法(北京)半导体研发有限责任公司,未经世意法(北京)半导体研发有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810190998.0/2.html,转载请声明来源钻瓜专利网。