[发明专利]使用计算历史进行预测有效
申请号: | 201110353106.6 | 申请日: | 2003-12-25 |
公开(公告)号: | CN102591621A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 维尔克森·B·克里斯;斯塔克·W·加尔德;托马斯·瑞杰 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 苗源;郑霞 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 计算 历史 进行 预测 | ||
本申请是申请日为2003年12月25日,申请号为200310112911.5,发明名称为“使用计算历史进行预测”的申请的分案申请。
技术领域
本发明属于程序执行,特别是提高运行程序指令的效率。
背景技术
计算机最初建造的目的是运行程序,而并不关心使计算机有效率:能够运行为计算机写的程序就足够了。因此,处理器读一个指令并运行它,而后返回程序等待下一个指令。
随着计算机设计更多地被大家所知,工程师已经可以设计比简单的“取来并运行”的处理器要更有效率的处理器。现代的处理器包括“流水线”:在任何时刻,处理器的不同部分运行不同的指令。例如,当中央处理单元的核心正在运行一个指令,处理器的另一部分也许正在从存储器加载未来的指令需要的数据值。
已经得到广泛研究和思考的处理器设计的一个领域是分支处理。在分支指令运行后,根据一个关联的数据值,可以在两个(或更多)不同点中的一个继续控制。这引起现代处理器的一个问题:直至得到分支指令输出,任何随后指令的预处理是徒然的。
为了解决这个问题,现代处理器进行分支预测。与其等待分支指令得到执行以及通过程序得到正确的路径,该处理器进行猜测。但是如果处理器猜测的不正确,任何根据计划路径的预处理都将浪费。例如,如果对分支指令的两个可能的随后的指令都加载一个值到寄存器,如果该错误指令被预处理,则寄存器中会存在该错误值。处理器必须解消对错误路径的预处理。如果处理器猜测错误,运行会比处理器只简单等待分支指令运行慢一些。
与其盲目猜测,分支预测器试图进行有根据的猜测。为了实现此目的,他们做了某些假设。一个可能的假设是,一个特定分支指令的输出单独取决于此分支先前的输出。另外,更一般的假设是,该输出取决于分支指令之前的若干(固定大小)组指令。还有其他一些变种。
图1说明了根据现有技术在运行一程序的计算机系统。图1中,计算机系统105包括计算机110,其中装有存储器115。图1中的一部分说明了装入存储器115的程序130。程序130包括分支指令135。
在一个支路的最经常的方向是最可能的方向的假设下,使用表140,一个分支预测器可以预测一个分支是否被采用。如行145所示,指令135被采用的次数比不采用的次数多(每次该分支被采用,计数器增加,分支不被采用,计数器减少)。因而,分支预测器可以推测出该分支将被再次采用。
在分支方向受在先指令影响的假设下,分支预测器注意指令150(包括指令135),并把它们的程序计数器散列在一起。这样产生一个索引,分支预测器可以用于访问表155。使用这个方法,如行160显示,分支预测器将会推测出该分支不会被采用。
但是考虑到一个分支预测器观察分支前的最后五个指令。不保证任何这些指令对控制分支输出的数据值上有任何影响。同样地,不保证这些指令是影响预测的唯一指令。也许存在一条与分支的输出高度相关的旧指令。
为了更精确地预测分支和指令的其他特性,我们需要一种途径来致力于解决与现有技术相关的这些和其他问题。
发明内容
本发明提供了一种计算机,包括:
一个存储器;
一个存储在存储器中的指令;
所述指令的一个计算历史,该计算历史由一组静态数据值来静态确定,每个数据值表示一个对指令有影响的对象;
一个查阅表,该查阅表存储关于多个指令的多个预测;和
一个索引,可由计算历史引出,用于存取查阅表以确定对该指令的预测。
本发明所提供的计算机中,查阅表可存储于存储器中。
查阅表可存储于计算机的第二存储器中。
所述的计算机还可包括一个计算历史发生器可用以产生指令的计算历史。
所述指令可包括两个操作数,每个操作数以计算机的一个寄存器来表示,第一寄存器具有第二计算历史,第二寄存器具有第三计算历史;
计算历史发生器可用以对第二计算历史进行循环移位,并将循环移位后的第二计算历史与第三计算历史散列。
计算历史发生器还可以进一步将循环移位过的第二计算历史与第三计算历史和该指令的程序计数器散列。
计算历史发生器可使用第二计算历史为该指令的源操作数生成计算历史。
计算历史发生器可使用一组静态值子集产生计算历史,该组静态值包括一个或多个第二计算历史,一个或多个静态值和一个用于指令的程序计数器。
计算历史可以是由指令的目标操作数的计算历史确定的。
所述的计算机还可包括一个索引计数器以计算从计算历史得来的索引。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110353106.6/2.html,转载请声明来源钻瓜专利网。