【技术实现步骤摘要】
一种分支预测方法及相关装置
本专利技术涉及计算机系统领域,尤其涉及一种分支预测方法及相关装置。
技术介绍
目前的处理器多采用流水线的结构,使得顺序执行的指令流可以并行地执行。这种处理指令的方式在很大程度上提高了处理器的执行效率。在理想情况下,流水线的每个Stage (即流水线层)仅占用一个时钟周期,所以每个时钟周期都可以完成一条指令。但是实际情况并非如此理想,因为指令之间可能存在着相互的依赖关系从而影响指令执行的并行度。比如数据依赖、控制依赖(比如分支指令)、资源竞争、中断等等因素,都会影响指令的并行度。 实际程序中包括分支指令,分支指令的分支行为往往到等到流水线的后端才能确定,因此,分支指令可能产生控制冒险从而导致流水线停顿,同时,处理器也不能确定从哪个地址开始取下一条指令直到这条分支指令执行完为止。大部分的处理器都采用了不同形式的分支预测机制,让条件分支指令的目标跳转方向和目标跳转地址可以在流水线的前端被预测,使得处理器可以预测性地取指令并执行指令。如果分支预测正确或者正确率较高的话,可以大幅提高处理器的性能和功耗,如果分支预测错误的话,意味着预测取出的指令不能被执行,错误的指令需要从缓冲区中清除,然后从正确的地址处再重新取指令并执行。 分支目标地址缓存(BTAC, Branch Target Address Cache)用于对间接跳转分支指令的目标跳转地址进行预测。BTAC采用缓存的结构,以指令的程序计数器(PC,ProgramCounter)的一部分作为index (即索引),一部分作为tag (即标签),如以PC的低8 ...
【技术保护点】
一种分支预测方法,其特征在于,应用于处理器中,所述处理器包括:第一分支目标地址预测缓存器和第二分支目标地址预测缓存器,所述第一分支目标地址预测缓存器存储着:寄存器标识与预测目标跳转地址的一一对应关系信息,所述第二分支目标地址预测缓存器存储着:程序计数器的字段与预测目标跳转地址的一一对应关系信息,其中,所述分支预测方法,包括:从指令缓存中读取指令;若确定读取的所述指令满足寄存器预测条件,则:根据读取的所述指令的寄存器标识,从所述第一分支目标地址预测缓存器中获取读取的所述指令的预测目标跳转地址;若确定读取的所述指令不满足所述寄存器预测条件,则:则根据读取的所述指令的程序计数器,从所述第二分支目标地址预测缓存器中获取读取的所述指令的预测目标跳转地址;其中,所述寄存器预测条件包括:指令的类型为无条件间接跳转分支指令。
【技术特征摘要】
1.一种分支预测方法,其特征在于,应用于处理器中,所述处理器包括:第一分支目标地址预测缓存器和第二分支目标地址预测缓存器,所述第一分支目标地址预测缓存器存储着:寄存器标识与预测目标跳转地址的一一对应关系信息,所述第二分支目标地址预测缓存器存储着:程序计数器的字段与预测目标跳转地址的一一对应关系信息,其中,所述分支预测方法,包括: 从指令缓存中读取指令; 若确定读取的所述指令满足寄存器预测条件,则: 根据读取的所述指令的寄存器标识,从所述第一分支目标地址预测缓存器中获取读取的所述指令的预测目标跳转地址; 若确定读取的所述指令不满足所述寄存器预测条件,则: 则根据读取的所述指令的程序计数器,从所述第二分支目标地址预测缓存器中获取读取的所述指令的预测目标跳转地址; 其中,所述寄存器预测条件包括:指令的类型为无条件间接跳转分支指令。2.根据权利要求1所述的方法,其特征在于, 所述寄存器预测条件还包括:指令中的寄存器标识为特定的寄存器标识; 所述确定读取的所述指令满足寄存器预测条件,具体为: 当所述指令的类型为无条件间接跳转分支指令,且所述指令中的寄存器标识为特定的寄存器标识时,确定读取的所述指令满足寄存器预测条件; 所述确定读取的所述指令不满足所述寄存器预测条件,具体为: 当所述指令的类型不为无条件间接跳转分支指令,或者,所述指令中的寄存器标识不为特定的寄存器标识时,确定读取的所述指令不满足寄存器预测条件。3.根据权利要求1或2所述的方法,其特征在于, 所述从所述指令缓存中读取指令之前包括: 对待读取的指令进行预译码,得到所述待读取的指令的类型信息; 所述读取指令之后包括:根据所述得到的指令的类型信息,判定当前读取的指令的类型是否为无条件间接跳转分支指令。4.根据权利要求1至3任一项所述的方法,其特征在于, 在所述读取指令之前,若对高级语言进行编译时调用的函数为标准库函数,则,将编译后的指令的类型指定为无条件间接跳转分支指令。5.一种分支预测装置,其特征在于,应用于处理器中,所述处理器包括:第一分支目标地址预测缓存器和第二分支目标地址预测缓存器,所述第一分支目标地址预...
【专利技术属性】
技术研发人员:侯锐,冯煜晶,郭旭斌,张乾龙,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。