山东大学RISC-V公共开放平台开发记录
risc-V模拟器-4
分支预测模块
分支预测模块是一个相对比较独立的模块,因此单独实现为BranchPredictor
类。BranchPredictor
类需要指定一个分支预测有关的策略,并保存与这个策略有关的数据结构。本模拟器实现了如下几种策略
策略名称 | 策略说明 |
---|---|
NT | Always Not Taken |
AT | Always Taken |
BTFNT | Back Taken Forward Not Taken |
BPB | Branch Prediction Buffer |
其中,Branch Prediction Buffer采用”Computer Organization and Design: Hardware/Software Interface”中所介绍的四状态,两位历史信息的方法。具体地说,使用内存后12位作为索引维护一个长度为4096的直接映射高速缓存,用于存储分支指令的地址。对于一个缓存条目,其状态为以下四个状态之一:Strong Taken
, Weak Taken
, W