IFHU的另一个重要的组件是一个简单的2位分支预测器。目前我的CPU只支持BEQ(Branch on Equal)这一个分支指令,不过剩下的也都是这一个来的。这是分支预测器FSM:
设三个状态位元为S2S1S0。主要状态Predict Taken,Weak Not Taken,和Strong Not Taken分别有自己的子状态In Progress,In Progress表示已做预测,不知结果,在这个状态下不会再做预测,确保流水线最多执行一个分支预测。根据上面的FSM,可得出一个下个状态的真值表:
分支预测器将先把两个可能的PC存进FF,然后使用预测的方向(S1)选择预测PC。同时一个相反方向的电路(~S1)将选择相反的PC,最终由BRsuccess(预测是否成功)来选择最终输出到IFU。
评 论
请勿进行人身攻击,谩骂以及任何违法国家相关法律法规的言论。
正在加载评论...