开源处理器Rocket的分支预测机制研究与性能评估(二)

本文详细分析了开源RISC-V处理器Rocket的分支预测机制,包括取指阶段和访存阶段的处理流程,特别是BTB模块中的BHT和RAS。通过对不同分支类型的处理,阐述了如何根据BHT的查询结果进行转移预测,并在访存阶段根据实际分支结果更新BTB和BHT。
摘要由CSDN通过智能技术生成

3 Rocket处理器分支预测机制分析

3.1 分支预测机制设计分析

Rocket处理器除了实现BTBBHT,还实现了RAS,都在BTB Module中实现,BTB Module的接口以及与Rocket Core的连接如图3所示。


Rocket处理器主要在流水线的取指、访存两个阶段使用到BTB Module

3.1.1 取指阶段

将取指阶段的指令地址通过Req送到BTB Module,后者进行如下判断:

(1)查询BTB,是否有对应的指令地址,如果有那么进行下一步骤;

(2)如果是返回指令,那么将RAS堆栈顶部的数据返回,作为目标地址;反之,进行下一步骤;

(3)如果是jaljalr这两条绝对转移指令,那么设置takentrue,表示转移发生,目标地址是BTB查询的结果;反之,进行下一步骤;

(4)按照图1进行查询,依据BHT的查询结果,判断是否发生转移,如果转移,那么设置takentrue,转移目标地址为BTB查询的结果,反之,设置takenfalse。无论是否转移,均更新BHT中的BHSR

(5)将上述判断结果通过resp返回给Rocket Core,后者据此决定下一条指令的地址。

上述处理过程如图4所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值