[发明专利]一种基于SPARCV8体系结构的分类式混合分支预测系统有效
申请号: | 201610029696.X | 申请日: | 2016-01-18 |
公开(公告)号: | CN105718241B | 公开(公告)日: | 2018-03-13 |
发明(设计)人: | 赵元富;张世远;于立新;彭和平;庄伟;陈雷 | 申请(专利权)人: | 北京时代民芯科技有限公司;北京微电子技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/32;G06F9/35 |
代理公司: | 中国航天科技专利中心11009 | 代理人: | 杨春颖 |
地址: | 100076 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于SPARC V8体系结构的分类式混合分支预测系统,首先在取指级根据指令PC查询分支目标缓存得到分支指令类型,把分支指令分派到各自的预测模块,跳转分支预测使用带有动态配置计数器的返回地址堆栈RAS,间接分支预测使用了补充预测的方法,条件分支预测在条件分支目标缓存CBTB中记录上次分支预测正确性的标志位Tag采用偏跳转三态转换算法,在译码级根据对指令的译码结果信息记录在预测信息表PIT中,在执行级判断,如果分支指令的预测结果为发生跳转,则使用跳转预测结果判断器Arbiter_T进行结果判断,如果分支指令的预测结果为不发生跳转,则使用不跳转预测结果判断器Arbiter_N进行结果判断,解决了分支指令对流水线造成的指令延迟影响,提高了处理器的执行效率。 | ||
搜索关键词: | 一种 基于 sparc v8 体系结构 分类 混合 分支 预测 系统 | ||
【主权项】:
一种基于SPARC V8体系结构的分类式混合分支预测系统,其特征在于,包括:PC管理模块、分支指令查询模块、分支指令预测模块、分支指令信息记录模块、分支指令预测结果判断模块、更新及错误纠正模块,无条件分支目标缓存UBTB、条件分支目标缓存CBTB、返回地址堆栈RAS、间接分支目标缓存IBTB、模式历史表PHT、预测信息表PIT;无条件分支目标缓存UBTB,存储了无条件跳转分支指令PC值对应的分支指令类型信息,以及无条件跳转分支指令PC值对应的跳转目标地址;条件分支目标缓存CBTB,存储了条件跳转分支指令PC值对应的分支指令类型信息,以及条件跳转分支指令PC值对应的跳转目标地址;返回地址堆栈RAS,存储了返回分支指令PC值对应的返回目标地址;间接分支目标缓存IBTB,存储了间接分支指令PC值对应的跳转目标地址;模式历史表PHT,存储了间接分支指令PC值对应的分支跳转方向;预测信息表PIT,存储了分支指令PC值对应的预测信息;PC管理模块,接收外部输入的指令PC值、分支指令预测模块送来的分支预测结果、更新及错误纠正模块送来的分支预测结果反馈信息,其中分支指令预测模块送来的分支预测结果,包括,分支指令预测跳转与否、分支指令预测跳转目标地址;更新及错误纠正模块送来的分支预测结果反馈信息,包括分支指令PC值、分支预测结果正确与否、分支指令跳转与否、分支指令跳转目标地址;在分支预测系统初始运行时,如果更新及错误纠正模块送来的分支预测结果反馈信息中分支预测结果错误,则舍弃分支指令预测模块送来的分支预测结果,然后判断如果更新及错误纠正模块送来的分支预测结果反馈信息中分支指令跳转,则把更新及错误纠正模块送来的分支预测结果反馈信息中分支指令跳转目标地址作为下一条指令PC值送入分支指令查询模块;如果更新及错误纠正模块送来的分支预测结果反馈信息中分支预测结果错误,则舍弃分支指令预测模块送来的分支预测结果,然后判断如果更新及错误纠正模块送来的分支预测结果反馈信息中分支指令不跳转,则把更新及错误纠正模块送来的分支预测结果反馈信息中分支指令PC值加上固定的数值N计算产生下一条指令PC值,并把这个下一条指令PC值送入分支指令查询模块;如果更新及错误纠正模块送来的分支预测结果反馈信息中分支预测结果正确,然后判断如果分支指令预测模块送来的分支预测结果中分支指令预测跳转,则把分支指令预测模块送来的分支预测结果中分支指令预测跳转目标地址作为下一条指令PC值送入分支指令查询模块;如果更新及错误纠正模块送来的分支预测结果反馈信息中分支预测结果正确,然后判断如果分支指令预测模块送来的分支预测结果中分支指令预测不跳转,则把外部送入的指令PC值加上所述固定的数值N计算产生下一条指令PC值,并把它送入分支指令查询模块;同时将下一条指令PC值送至外部对下一条指令PC值对应的指令进行译码,将译码后的指令译码信息送回分支指令译码信息记录模块,外部将下一条指令PC值对应的指令译码信息执行后,得到执行结果信息送入分支指令预测结果判断模块;分支指令查询模块,接收PC管理模块送来的所述下一条指令PC值,根据无条件分支目标缓存UBTB和条件分支目标缓存CBTB存储的指令PC值与所述下一条指令PC值对应的分支指令类型,得到与PC管理模块送来的下一条指令PC值对应的分支指令类型信息,然后将下一条指令PC值以及分支指令类型信息送入分支指令预测模块;分支指令预测模块,接收分支指令查询模块送来的下一条指令PC值以及分支指令类型信息,如果分支指令类型信息表明当前下一条指令PC值对应的分支指令,是无条件跳转且分支目标地址为直接跳转的分支指令,则该分支指令预测跳转,然后通过查询无条件分支目标缓存UBTB,得到与该下一条指令PC值对应的分支指令预测跳转目标地址,同时根据所述下一条指令PC值加上PC管理模块中使用的固定的数值N得到与该分支指令对应的返回地址,然后把该返回地址记录在返回地址堆栈RAS中;如果分支指令类型信息表明当前下一条指令PC值对应的分支指令,是返回类型的分支指令,则从返回地址堆栈RAS中取出返回地址堆栈RAS中栈顶的一条返回地址作为该返回类型的分支指令预测跳转目标地址;如果分支指令类型信息表明当前下一条指令PC值对应的分支指令,是间接分支指令,则该间接分支指令预测跳转,然后从间接分支目标缓存IBTB中读取该下一条指令PC值对应的分支指令预测跳转目标地址,如果没有在间接分支目标缓存IBTB中读取到该下一条指令PC值对应的分支指令预测跳转目标地址即IBTB预测失败时,然后从无条件分支目标缓存UBTB中读取该下一条指令PC值对应的分支指令预测跳转目标地址,这种方式定义为补充预测;如果分支指令类型信息表明当前下一条指令PC值对应的分支指令,是条件分支指令,则通过查询模式历史表PHT得到与该下一条指令PC值对应的分支指令预测跳转方向,分支指令预测跳转方向即分支指令预测跳转与否,然后通过查询条件分支目标缓存CBTB得到与所述下一条指令PC值对应的分支指令预测跳转目标地址;把分支指令预测模块中的所述下一条指令PC值、所述下一条指令PC值对应的分支指令预测跳转方向以及分支指令预测跳转目标地址送入分支指令信息记录模块,同时把分支指令预测模块中的所述下一条指令PC值、所述下一条指令PC值对应的分支指令预测跳转方向以及分支指令预测跳转目标地址送入PC管理模块;分支指令信息记录模块,接收分支指令预测模块送来的所述下一条指令PC值、所述下一条指令PC值对应的分支指令预测跳转方向以及分支指令预测跳转目标地址,接收外部输入的所述下一条指令PC值对应指令译码信息,根据所述下一条指令PC值对应的指令译码信息判断当前指令是否是分支指令,且是否已经进行分支指令跳转方向以及分支指令跳转目标地址的预测,并把判断结果信息记录在预测信息表PIT中,然后把接收到的所述下一条指令PC值送入分支指令预测结果判断模块;分支指令预测结果判断模块,包括:跳转预测结果判断器Arbiter_T和不跳转预测结果判断器Arbiter_N;分支指令预测结果判断模块,接收分支指令信息记录模块送来的下一条指令PC值、接收外部输入的指令的执行结果信息,其中外部输入的指令的执行结果信息包括,分支指令跳转方向、分支指令跳转目标地址,根据接收到的所述下一条指令PC值对应的指令执行结果和预测信息表PIT中记录的信息对分支预测结果的正确性进行判断,即如果指令的执行结果信息中分支指令跳转方向为发生跳转,则使用分支指令预测结果判断模块中的跳转预测结果判断器Arbiter_T进行分支预测结果的正确性判断,如果指令的执行结果信息中分支指令跳转方向为不发生跳转,则使用分支指令预测结果判断模块中的不跳转预测结果判断器Arbiter_N进行分支预测结果的正确性判断,判断后得到分支预测正确与否信息,然后把所述下一条指令PC值、分支预测正确与否信息、分支指令跳转方向、分支指令跳转目标地址送入到更新及错误纠正模块;更新及错误纠正模块,接收分支指令预测结果判断模块送来的下一条指令PC值、分支预测正确与否信息、分支指令跳转方向、分支指令跳转目标地址,如果分支预测正确,则利用分支指令预测结果判断模块送来的所述下一条指令PC值、分支指令跳转方向、分支指令跳转目标地址信息对无条件分支目标缓存UBTB、条件分支目标缓存CBTB、间接分支目标缓存IBTB、模式历史表PHT、预测信息表PIT中的相应信息进行更新,然后将下一条指令PC值、分支预测正确与否信息、分支指令跳转与否、分支指令跳转目标地址送入PC管理模块;如果分支预测结果错误,则产生错误纠正信号后,把该错误纠正信号送入外部,然后将下一条指令PC值作为送入PC管理模块的分支指令PC值,将送入PC管理模块的分支指令PC值、分支预测正确与否信息、分支指令跳转方向、分支指令跳转目标地址送入PC管理模块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京时代民芯科技有限公司;北京微电子技术研究所,未经北京时代民芯科技有限公司;北京微电子技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610029696.X/,转载请声明来源钻瓜专利网。