[发明专利]一种指令分支预测方法与系统有效
申请号: | 201510213756.9 | 申请日: | 2015-04-29 |
公开(公告)号: | CN104793921B | 公开(公告)日: | 2018-07-31 |
发明(设计)人: | 谢长华 | 申请(专利权)人: | 深圳芯邦科技股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 指令 分支 预测 方法 系统 | ||
本发明公开了一种指令分支预测方法和系统,执行当前指令后获取顺序执行方向上即将执行的预设数量的指令并进行缓存,并判断缓存的第一条指令是否为跳转指令类型,如果是则计算跳转目标地址并缓存目标跳转指令,当跳转条件达成时直接读取目标跳转指令的缓存实现跳转指令的执行,若跳转条件不能达成则直接读取缓存的顺序执行方向上的第二条指令,当跳转指令被执行时由于无论跳转条件是否达成,后续要执行的指令都已获得可以直接读取缓存执行,通过跳转指令预判、指令预取、指令缓存与直接读取缓存的模式实现了双方向指令分支预测,解决了跳转指令造成的处理器流水线停顿,消除了因为插入分支延迟间隙带来的处理器执行效率降低。
技术领域
本发明涉及处理器领域,特别是涉及一种指令分支预测方法与系统。
背景技术
当包含流水线技术的处理器处理分支指令时,根据判定条件的真/假的不同,有可能会产生跳转,而这会打断流水线中指令的处理,因为处理器无法确定该指令的下一条指令,直到分支执行完毕。流水线越长,处理器等待的时间便越长,因为它必须等待分支指令处理完毕,才能确定下一条进入流水线的指令。
目前小规模的处理器没有指令分支预测功能或仅有单方向静态分支预测功能,如果出现非顺序执行方向的跳转指令将造成处理器流水线停顿,进而导致插入分支延迟间隙使处理器执行效率降低。
发明内容
有鉴于此,本发明的主要目的在于提供一种指令分支预测方法与系统,可以减小跳转指令对处理器流水线的影响,提高处理器执行效率。
为实现上述目的,本发明提供了一种指令分支预测方法,包括:
步骤A:执行当前指令,获取顺序执行方向上即将执行的预设数量的指令并进行缓存;
步骤B:判断缓存的预设数量指令中的第一条是否为跳转指令类型,如果是,则执行步骤C,否则返回步骤A;
步骤C:计算跳转的目标地址,根据所述目标地址获取目标跳转指令并进行缓存;
步骤D:判断跳转条件是否达成,如果达成则直接读取缓存的目标跳转指令,否则直接读取缓存的顺序执行方向上预设数量指令中的第二条。
优选地,所述顺序执行方向上即将执行的预设数量的指令至少为两条。
优选地,根据所述目标地址获取目标跳转指令包括:
向处理器的取指令接口发送所述目标地址的请求;
接收所述处理器返回的对应于所述目标地址的目标跳转指令。
本发明还提供了一种指令分支预测系统,包括:
指令执行模块,用于执行当前指令;
第一缓存模块,用于获取顺序执行方向上即将执行的预设数量的指令并进行缓存;
跳转类型判断模块,用于判断缓存的预设数量指令中的第一条是否为跳转指令类型;
第二缓存模块,用于计算跳转的目标地址,根据所述目标地址获取目标跳转指令并进行缓存;
跳转条件判断模块,用于判断跳转条件是否达成,如果达成则直接读取缓存的目标跳转指令,否则直接读取缓存的顺序执行方向上预设数量指令中的第二条。
优选地,所述第二缓存模块包括:
计算子模块,用于计算跳转的目标地址;
指令请求子模块,用于向处理器的取指令接口发送所述目标地址的请求;
指令接收子模块,用于接收所述处理器返回的对应于所述目标地址的目标跳转指令;
第二缓存子模块,用于缓存所述目标跳转指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳芯邦科技股份有限公司,未经深圳芯邦科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510213756.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:计算任务的处理方法及装置
- 下一篇:确定性FIFO缓冲器