[发明专利]一种检测分支预测的方法及处理器有效
申请号: | 201910362234.3 | 申请日: | 2019-04-30 |
公开(公告)号: | CN110069285B | 公开(公告)日: | 2021-06-01 |
发明(设计)人: | 崔泽汉 | 申请(专利权)人: | 成都海光微电子技术有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海知锦知识产权代理事务所(特殊普通合伙) 31327 | 代理人: | 汤陈龙;李丽 |
地址: | 610041 四川省成都市中国(四川)自由贸易试验区成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 分支 预测 方法 处理器 | ||
1.一种检测分支预测的方法,其特征在于,所述方法由处理器执行,所述方法包括:
根据分支目标缓冲器存储的第一分支信息预测分支预测结果,所述分支预测结果至少包括当前取指地址;
在根据所述当前取指地址从缓存取指的阶段,如果从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息,读取所述匹配的第二分支信息;其中,所述缓存的指令缓存块中存储有第二分支信息;
根据所述匹配的第二分支信息检测分支预测是否正确。
2.根据权利要求1所述的方法,其特征在于,所述缓存包括:一级缓存,和层级低于所述一级缓存的至少一个下级缓存;
所述一级缓存的指令缓存块设置有存储第二分支信息的分支信息存储空间;
所述至少一个下级缓存的指令缓存块的错误检查和纠正ECC空间存储有第二分支信息。
3.根据权利要求2所述的方法,其特征在于,第一分支信息使用第一表项表示,第二分支信息使用第二表项表示;所述第二表项与所述第二表项所在的指令缓存块相关联,且复用所在的指令缓存块的Tag域。
4.根据权利要求2所述的方法,其特征在于,所述至少一个下级缓存的指令缓存块使用奇偶校验保护。
5.根据权利要求3所述的方法,其特征在于,所述从缓存的指令缓存块中查找到与所述当前取指地址匹配的第二分支信息包括:
如果所述当前取指地址命中所述缓存的指令缓存块的Tag域,确定复用命中Tag域的第二表项;
根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项。
6.根据权利要求5所述的方法,其特征在于,所述当前取指地址命中所述缓存的指令缓存块的Tag域包括:
所述当前取指地址命中一级缓存的指令缓存块的Tag域;
或,
所述当前取指地址未命中一级缓存的指令缓存块的Tag域,但命中所述至少一个下级缓存的指令缓存块的Tag域。
7.根据权利要求5或6所述的方法,其特征在于,一个指令缓存块存储一个第二表项;所述根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项包括:
将所述复用命中Tag域的第二表项确定为,与所述当前取指地址匹配的第二表项。
8.根据权利要求5或6所述的方法,其特征在于,一个指令缓存块存储多个第二表项;所述根据所述复用命中Tag域的第二表项,确定与所述当前取指地址匹配的第二表项包括:
从复用命中Tag域的多个第二表项中确定,记录的分支指令地址与所述当前取指地址匹配的第二表项。
9.根据权利要求3所述的方法,其特征在于,所述当前取指地址包括:当前取指起始地址和当前取指结束地址;所述根据所述匹配的第二分支信息检测分支预测是否正确包括:
根据匹配的第二表项记录的分支指令地址,确定当前取指起始地址和当前取指结束地址之间,或者在当前取指结束地址的位置上是否存在分支指令;
如果当前取指起始地址和当前取指结束地址之间存在分支指令,或者在当前取指结束地址的位置上存在分支指令,至少根据所述分支指令的类型检测分支预测是否正确。
10.根据权利要求9所述的方法,其特征在于,所述至少根据所述分支指令的类型检测分支预测是否正确包括:
如果当前取指起始地址和当前取指结束地址之间存在的分支指令的类型为非条件分支指令,检测分支预测错误;
如果在当前取指结束地址的位置上存在的分支指令的类型为直接分支指令,且分支预测结果指示跳转,但预测的跳转地址不等同于匹配的第二表项记录的目标地址,检测分支预测错误。
11.根据权利要求3所述的方法,其特征在于,还包括:
在检测分支预测错误时,重定向取指起始地址;将重定向的取指起始地址作为分支预测的输入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都海光微电子技术有限公司,未经成都海光微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910362234.3/1.html,转载请声明来源钻瓜专利网。