[发明专利]一种没有分支预测损失的分支处理方法与系统在审
申请号: | 201610803714.5 | 申请日: | 2016-08-24 |
公开(公告)号: | CN107783785A | 公开(公告)日: | 2018-03-09 |
发明(设计)人: | 林正浩 | 申请(专利权)人: | 上海芯豪微电子有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200092 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 没有 分支 预测 损失 处理 方法 系统 | ||
技术领域
本发明涉及电子计算机和微处理器领域。
背景技术
分支(Branch)是处理器流水线性能损失的重要原因。典型的实现在分支成功时需要暂停流水线单数个或复数个周期。为了减少由此带来的性能损失,一个常用的解决方案是分支预测。分支预测猜测执行一条分支指令之后两支(branch)指令中的一支,能消除分支成功时的暂停流水线。如猜测错误,则中止执行猜测执行的一支指令而执行另一支指令。猜测错误导致分支惩罚,造成性能损失。
一个典型的实现如图1所示。图1是现有微处理器处理分支的实施例。图1中11为存储器,12为处理器核,13为分支目标缓冲器(BTB),17为选择器。处理器核12输出指令地址19。指令地址19经选择器17控制指令存储器器11输出指令16供处理器核12执行。当处理器核12第一次执行一条分支指令且分支判断为成功分支的,系统将分支指令的地址/分支目标指令地址对,以及成功分支的历史纪录于BTB 13。
当处理器核12执行分支指令时,19上的分支指令地址也被送到BTB 13。如果与13中记录的一条分支指令地址匹配,则匹配的指令地址对中的分支目标指令地址15被送到选择器17的一个输入。此时19上为分支指令后的顺序指令地址,送到选择器17的另一个输入。13中的分支历史纪录14控制选择器17。如历史纪录为不分支,选择器17选择19上地址,指令存储器器11输出分支指令后的顺序指令供处理器核12执行。如历史纪录为分支,选择器17选择分支目标地址15,指令存储器器11输出分支目标指令供处理器核12执行。如果处理器核12执行分支指令产生的分支判断与BTB中13中的分支历史纪录不同,则为分支预测错误,导致上述分支惩罚。此时也要更新BTB 13中的分支历史纪录。
发明内容
本发明提出一种分支(Branch)处理方法与系统,其特征是由存储器同时向处理器提供分支指令后两个分支的指令,由处理器核产生的分支判断选择,而避免分支预测以及分支预测错误导致的分支惩罚。
有益效果
本发明消除了分支预测错误导致的处理器性能损失。
附图说明
图1是现有微处理器处理分支的实施例;
图2是本发明所述同时提供分支指令后两支指令的实施例;
图3是本发明所述同时提供分支指令后两支指令的另一个实施例;
图4是本发明所述同时提供分支指令后两支指令的另一个实施例。
具体实施方式
以下结合附图和具体实施例对本发明提出的没有分支预测损失的分支处理方法与系统作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
需说明的是,为了清楚地说明本发明的内容,本发明特举多个实施例以进一步阐释本发明的不同实现方式,其中,该多个实施例是列举式并非穷举式。此外,为了说明的简洁,前实施例中已提及的内容往往在后实施例中予以省略,因此,后实施例中未提及的内容可相应参考前实施例。
虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特定实施例,正相反,发明者的出发点在于保护所有基于由本权利声明定义的精神或范围内进行的改进、等效转换和修改。同样的元器件号码可能被用于所有附图以代表相同的或类似的部分。
此外,在本说明书中以包含处理器核的存储器系统为例进行说明,但本发明技术方案也可以被应用于包含任何合适的处理器(Processor)的存储器系统。例如,所述处理器可以是通用处理器(General Processor)中央处理器(CPU)、微控制器(MCU)、数字信号处理器(DSP)、图象处理器(GPU)、片上系统(SOC)、专用集成电路(ASIC)等。
本发明所述的指令地址(Instruction Address)指的是指令在主存储器中的存储地址,即可以根据该地址在主存储器中找到这条指令。在此为简单明了起见,均假设虚拟地址等于物理地址,对于需要进行地址映射的情况,本发明所述方法也可适用。在本发明中,当前指令可以指当前正在被处理器核执行或获取的指令;当前指令块可以指含有当前正被处理器执行的指令的指令块
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海芯豪微电子有限公司,未经上海芯豪微电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610803714.5/2.html,转载请声明来源钻瓜专利网。