RISC-V MCU中文社区

【分享】 分支预测正确率、失败率的统计

发表于 全国大学生集成电路创新创业大赛 2023-05-25 09:22:04
0
1164
2

团队编号:CICC1156
团队名称:兔飞猛进

在 tb_top 文件中可添加以下代码,进行分支预测正确数量、错误数量的统计

    wire prdt = `EXU.alu_cmt_bjp_prdt;
    wire rslv = `EXU.alu_cmt_bjp_rslv;
    wire bjp = `EXU.alu_cmt_bjp;
`

    integer all_count = 0;
    integer fail_count = 0;
    wire temp;
    assign temp = rslv^prdt;
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) begin
            all_count = 0;
            fail_count = 0;
        end
        else if(pc_vld[0]&bjp) begin
            all_count = all_count + 1;
            if(temp) begin
                fail_count = fail_count + 1;
            end
        end
    end

1、可以采用跨层次引用的方式,将 预测跳转情况、实际跳转情况、是否为跳转指令 等信号拿到。
2、在时钟上升沿时判断是否为跳转指令时,不仅要判断bjp信号,也要判断pc_vld[0]是否为1(即当前指令是否有效),对数量进行更新。
3、正确率 = (all_count-fail_count)/all_count;
4、错误率 = fail_count/all_count;

喜欢2
用户评论
Destinyyhwh

Destinyyhwh 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板