[发明专利]循环预测器指导的循环缓冲器有效
申请号: | 201410512577.0 | 申请日: | 2014-09-29 |
公开(公告)号: | CN104298488B | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 陈国华;杨梦晨;高新宇;巩凡工;黄振华 | 申请(专利权)人: | 上海兆芯集成电路有限公司 |
主分类号: | G06F9/32 | 分类号: | G06F9/32 |
代理公司: | 北京市柳沈律师事务所11105 | 代理人: | 钱大勇 |
地址: | 201203 上海市张*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 循环 预测 指导 缓冲器 | ||
技术领域
背景技术
计算机程序普遍包含循环。循环是通常被称为循环本体的、重复地运行的指令序列,该循环本体重复地运行直到导致循环退出并进行到接着该循环的下一条指令的条件(condition)发生为止。在机器语言级别,一般来说,循环以通常回到位于循环本体的开始处的指令的条件分支指令来结束,但是当条件发生时,循环不再被采用(not taken)并且向下执行顺序的下一条指令。例如,条件可以是被初始化为正值然后通过循环每次递减的变量达到0。
对于现代处理器,循环呈现潜在的性能问题,因为它们包括条件分支指令,尤其是对于流水线和/或超标量处理器。一般而言,为了足够快地取指和解码指令以将它们提供给运行指令的处理器的功能单元,取指单元必须预测指令流中条件分支指令的存在并预测它们的结果,即,它们是将被采用(taken)或是不被采用(not taken)以及它们的目标地址。如果条件分支指令被误预测,则误预测必须被纠正,当流水线的前端开始在被纠正的地址处取指和解码指令时,会造成执行单元由于缺乏要执行的指令而饥饿的一个时段,常被称作流水线气泡。另外,对执行发生之前的所获取的指令的解码可能是复杂的,尤其对于一些指令集架构,并且因此引入的延迟也可能导致流水线气泡。
现代处理器中另外关心的是功耗。这在很多环境中是存在的。例如,在诸如移动电话或笔记本电脑或平板电脑的电池供电的环境中,总是希望减少处理器功耗以便延长所需要的电池再充电之间的时间。又例如,在服务器环境中,除了环境考虑之外,相对大的-确实有时候巨大的-数量的服务器导致功耗方面非常显著的成本。如上面讨论的,包括循环本体指令的指令解码可能是复杂的,因此除了由取指逻辑和从其获取指令的指令高速缓存以及预测所获取的循环的条件分支指令的分支预测器所消耗的功率之外,解码逻辑需要消耗相当大量的功率。
因此,理想的是提供一种装置用于处理器在运行循环时提高性能和/或减少功耗。
发明内容
在本发明的一方面中提供了一种处理器。处理器包括指令高速缓存、执行引擎、指令缓冲器和循环预测器。循环预测器训练(train)分支指令来确定循环的经训练的循环计数。循环包括以分支指令的目标开始并以该分支指令结束的指令序列。循环预测器还判断循环的尺寸是否不大于指令缓冲器的尺寸。当循环的尺寸不大于指令缓冲器的尺寸时,处理器停止从指令高速缓存取指,将循环指令从指令缓冲器发送到执行引擎而不从指令高速缓存取指循环指令,维持一循环弹出计数,其指示分支指令从指令缓冲器被发送到执行引擎而不从指令高速缓存取指的次数,当循环弹出计数少于经训练的循环计数时预测分支指令为被采用,否则,则预测分支指令为不被采用。在另一个方面中,本发明提供了通过具有指令高速缓存、指令缓冲器和执行引擎的处理器执行的方法。该方法包括训练分支指令来确定循环的经训练的循环计数。循环包括以分支指令的目标开始并以分支指令结束的指令序列。该方法还包括判断循环的尺寸是否不大于指令缓冲器的尺寸。该方法还包括,当循环的尺寸不大于指令缓冲器的尺寸时:停止从指令高速缓存取指,将循环指令从指令缓冲器发送到执行引擎而不从指令高速缓存取指循环指令,维持一循环弹出计数,其指示分支指令从指令高速缓存发送到执行引擎而不从指令高速缓存取指的次数,当循环弹出计数少于经训练的循环计数时预测分支指令为被采用,否则,则预测分支指令为不被采用。
本发明的上述处理器及其执行方法在循环缓冲器模式中利用循环预测器结合指令缓冲器工作的方式来潜在地精确预测循环退出,从而避免不具有循环预测器指导的循环缓冲器模式操作的优点的常规处理器所经历的误预测。
附图说明
图1是示出处理器的框图。
图2是示出图1的循环预测器的框图。
图3是示出图1的处理器的操作的流程图。
图4是示出图1的处理器的操作的流程图。
被统称为图5的图5A和5B是示出图1的处理器的操作的流程图。
图6是进一步示出根据替换实施例的图1的处理器的操作的流程图。
图7是作为示例示出向图1的执行引擎提供嵌套循环的指令的工作在循环缓冲器模式中的图1的指令缓冲器的框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海兆芯集成电路有限公司,未经上海兆芯集成电路有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410512577.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:大规模非线性动态优化算法代码生成系统
- 下一篇:移动终端自动调整输出的方法