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