买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明涉及嵌入式处理器技术领域,具体涉及一种嵌入式处理器的分支预测器;包括:一级预测器:包括预测无条件跳转指令目标地址预测器和返回指令RET目标地址预测器;二级预测器:包括预测条件跳转指令目标地址预测器和预测条件跳转指令跳转方向预测器;判断分支预测结果正确性的模块:判断出分支预测出现错误的指令,并做出修正;生成流水线站台控制信号的模块:当分支预测错误时生成相应的站台控制信号,控制相应的站台暂停或将相应站台上处于错误路径的指令清除;该预测器较一级预测器可提供更高的预测准确率。二级预测的方向预测器提供相当预测准确率的同时,所占用的面积更小。
主权项:1.一种嵌入式处理器的分支预测器,其特征在于,包括:一级预测器:包括预测无条件跳转指令目标地址预测器和返回指令RET目标地址预测器;二级预测器:包括预测条件跳转指令目标地址预测器和预测条件跳转指令跳转方向预测器;判断分支预测结果正确性的模块:判断出分支预测出现错误的指令,并做出修正;生成流水线站台控制信号的模块:当分支预测错误时生成相应的站台控制信号,控制相应的站台暂停或将相应站台上处于错误路径的指令清除;所述一级预测器仅对调用指令CALL、无条件跳转指令以及返回指令RET进行预测;一级预测器无需预测跳转方向,当预测器做出预测时即视为发生跳转,只需对跳转目标地址进行预测即可;所述调用指令CALL和无条件跳转指令的目标地址预测器采用全相联的存储器结构,返回指令RET的目标地址预测器采用堆栈结构的存储器;在指令经过译码后,如果当前指令为CALL指令,则将当前指令后一条指令的PC值压入RET指令目标地址预测器的堆栈中;在指令进入执行站台后,经ALU计算出实际的跳转目标地址后才会对调用指令CALL和无条件跳转指令的目标地址预测器进行更新;当预测器无空闲条目时,采用先入先出的替换算法对预测器条目进行替换;当因遇到连续调用指令CALL而导致其溢出时,采用计数器对溢出数目进行计数,溢出的部分将不再预测;所述预测条件跳转指令跳转方向预测器不同于传统gshare预测器,该方向预测器将gshare预测表分为4块,分别用gshare索引地址的一部分对预测表进行索引;该方向预测器的4个预测表中存储的内容为5bit有符号数,每二次预测均将4个有符号数相加得出一个和,和的符号位做为方向预测的结果,和为正数预测方向为跳转,和为负数预测方向为不跳转;预测表中的有符号数根据条件跳转指令的实际跳转方向进行加减操作,条件跳转指令实际发生跳转时,相应的有符号数自增,条件跳转指令实际发生不跳转时,相应的有符号数自减;4个预测表中的有符号数在进行加减操作时,加减的幅度各不相同,高位地址索引的有符号数加减幅度较大,低位地址索引的有符号数加减幅度较小;gshare索引地址由相应指令的PC值和全局跳转历史记录相异或而生成;全局跳转历史记录由实际的跳转方向对其进行更新,而不采用预测的结果对其进行更新;所述流水线站台为5级流水站台,包括取指、译码、执行、访存和写回;在取指阶段之前有一段PC生成逻辑,该逻辑负责根据分支预测结果以及分支指令的实际执行结果等生成下一取指PC,取指站台根据该PC进行取指操作;在指令进入取指阶段的同时,会根据取指用的PC值对调用指令CALL和无条件跳转指令的目标地址预测器进行查找,如果命中则该预测器认为当前指令为CALL指令或无条件跳转指令,在当拍即将预测结果反馈给PC生成逻辑,用于改变下一取指PC;无条件跳转指令在执行站台便可计算出实际的目标地址,根据实际目标地址即可对预测目标地址进行正确性的判断,如果预测错误则用实际目标地址对PC生成逻辑进行更正,同时对无条件跳转指令的目标地址预测器进行更新;在取指阶段同样对RET指令目标地址预测器进行查找,如果命中则认为当前指令为RET指令,预测器会进行出栈操作,同样在当拍将预测结果反馈给PC生成逻辑,用于改变下一取指PC;在译码阶段会对RET指令目标地址预测器进行更新和压栈,经译码后如果当前指令为CALL指令,则将当前指令的下一条指令的PC进行压栈,如果当前指令为RET指令,则将当前指令的PC记入预测器的tag区域,用于后续的查找预测;条件跳转指令跳转方向预测器的4个预测表分别用gshare索引地址分成的4部分对预测表进行索引,gshare索引地址由相应指令的PC值和全局跳转历史记录相异或而生成;全局跳转历史记录由执行站台计算出的实际跳转方向对其进行更新,而不采用预测的结果对其进行更新;取指阶段由各预测表的索引对4个预测表进行索引,将得到的4个有符号数进行相加操作,和的符号位做为方向预测的结果,和为正数预测方向为跳转,和为负数预测方向为不跳转;如果预测方向为跳转,结合条件跳转指令目标地址预测器预测出的地址,反馈给PC生成逻辑,用于改变下一取指PC;在执行站台计算出实际跳转方向后对预测表中的有符号数进行更新时,根据条件跳转指令的实际跳转方向进行加减操作,条件跳转指令实际发生跳转时,相应的有符号数自增,条件跳转指令实际发生不跳转时,相应的有符号数自减;4个预测表中的有符号数在进行加减操作时,加减的幅度各不相同,高位地址索引的有符号数加减幅度较大,低位地址索引的有符号数加减幅度较小;经过上述过程,分支预测器便完成对各种分支指令的预测,随着指令的不断执行对分支预测器进行了更新。
全文数据:
权利要求:
百度查询: 中电科申泰信息科技有限公司 一种嵌入式处理器的分支预测器
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。