发明名称 一种嵌入式处理器分支预测的方法
摘要 本发明涉及一种嵌入式处理器分支预测的方法。本发明方法是基于反向分支预测机制的改进,具体是改进反向分支预测机制的存储管理策略和指标控制,使其在遭遇复杂的巢状循环时不须立即清除原有记录,能充分利用储存空间以保留不同的巢状循环结构并精确地选择对应的分支记录进行预测。本发明针对嵌入式处理器的特定应用环境通过对反向分支预测机制的分支预测方法的改进,结合定制的分支目标缓冲,提出了一种动态的分支预测机制,该机制基在全局索引方式,对反向分支预测机制结构进行了改进设计,实现了对循环逻辑中反向分支指令的精确预测。
申请公布号 CN101604235A 申请公布日期 2009.12.16
申请号 CN200910100608.0 申请日期 2009.07.10
申请人 杭州电子科技大学 发明人 郑秋华;吴国华;张祯;王玉娟;方美娥
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 杜 军
主权项 1、一种嵌入式处理器分支预测的方法,其特征在于该方法的具体步骤是:步骤(1).计算机提取指令,并将提取的指令与机制中内存栈首指针所指的记录对比,分别进行操作:a.如果提取的指令为机制中记录过的指令,则送出预测分支指令的目的地址作为下一指令抓取指令的地址;b.如果提取的指令不是机制中记录过的指令,则反向分支预测机制不做特定动作,管线正常执行;步骤(2).对步骤(1)提取的指令进行处理,具体是:c.如果提取的指令为以往执行过的反向跳跃指令,并已在前一阶段产生预测分支的效果,当指令与反向分支预测中已经记录过的指令相符,则表示改进的反向分支预测机制预测正确;如果当指令与反向分支预测中已经记录过的指令不相符,则表示预测错误,清除改进的反向分支预测机制抓取的指令,并恢复管线抓取正确的指令地址;d.如果指令不是记录在改进的反向分支预测机制中的目前预测的反向分支指令,当执行指令经译码判断为分支指令时,若分支指令为回向分支指令且发生跳跃时,判断其跳跃的目的地址与改进的反向分支预测机制中最外层巢状记录指标所对应的跳跃记录是否构成巢状,若未构成巢状则表示已脱离改进的反向分支预测机制已记录的巢状回路,两者皆在指令执行阶段更新其对应的改进的反向分支预测机制空间记录;如果为其他情况,则不做处理;步骤(3).根据步骤(2)的判断结果执行指令,此时进行存储档位的指标调整,分为以下部分进行:e.当改进的反向分支预测机制已记录的反向分支指令再一次被执行,预测其跳跃的确发生跳跃,此时改进的反向分支预测机制预测正确,若没有其它分支指令更改程序流程,储存档位回到改进的反向分支预测机制所构建之巢状循环最内层;改进的反向分支预测机制将在比较该分支跳跃地址与原有记录而判断出巢状循环的最内层后,更改读出预测地址的读出数据指标栈首指针令其指向巢状循环的最内层,其余指标保持不动;f.当改进的反向分支预测机制已记录的反向分支指令再一次被执行,预测其跳跃,改进的反向分支预测机制读出预测地址读出数据指标栈首指针指向下一个储存档位以进行预测,其余指标则保持不动;g.当指令经过指令译码阶段的流程确认此指令为一不存在改进的反向分支预测机制记录档位中,且发生跳跃的反向分支指令,并经由地址比较发现该指令与改进的反向分支预测机制档位所储存指令构成巢状循环此时,若改进的反向分支预测机制未曾储存到末端档位而发生循环,则此分支指令根据数据写入指标栈尾指标接续存入改进的反向分支预测机制档位中,并将读出数据指标栈首指针调到巢状结构最内层指针指向新建立之分支档位而写入数据指标栈尾指针,向下调整一个档位;h.当指令经过指令译码阶段的流程确认此指令为一不存在改进的反向分支预测机制记录档位中,且发生跳跃的反向分支指令,并经由地址比较发现该指令与改进的反向分支预测机制档位所储存指令构成巢状循环,此时若改进的反向分支预测机制已储存到末端档位而发生循环,改进的反向分支预测机制由最初档位开始覆盖原有记录;i.若指令为前置分支指令且跳跃地址未超出改进的反向分支预测机制中已存反向分支的PC范围,在比较各存储档位与此前置跳跃地址后改进的反向分支预测机制将控制栈首栈尾,任意指针调整到对应地址;j.若指令为跳跃地址超出改进的反向分支预测机制中已存反向分支的PC范围的前置分支指令或其它非分支指令,由在此类行为不会对程序流程造成改变,此时改进的反向分支预测机制将保持不变。
地址 310018浙江省杭州市江干区下沙高教园区2号大街