You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改ChampSim模拟器的分支预测器及CPU流水线相关参数?

ChampSim参数修改操作指南

一、调整bimodal预测器为128条目表+1位分支历史

你给出的bimodal预测器代码仅需修改3个宏定义即可实现需求,修改后的对应代码片段如下:

// 仅展示修改的宏定义部分,其余逻辑代码保持不变
#define BIMODAL_TABLE_SIZE 128  // 原值为16384,修改为128对应128条预测表项
#define BIMODAL_PRIME 127       // 原值为16381,替换为小于表长的素数127保证哈希均匀性
#define MAX_COUNTER 1           // 原值为3,修改为1对应1位饱和计数器(仅0/1两个状态,即1位分支历史)
int bimodal_table[NUM_CPUS][BIMODAL_TABLE_SIZE];

修改逻辑说明:

  • 预测表大小由BIMODAL_TABLE_SIZE直接控制,调整为128即可获得128条目的预测表
  • BIMODAL_PRIME是哈希取模用的素数,必须小于等于表长,127是小于128的最大素数,替换后原有哈希逻辑无需改动
  • 默认代码的MAX_COUNTER=3对应2位饱和计数器(取值范围0~3),修改为1后计数器仅能取0/1两个值,对应1位分支历史:计数器为1时预测分支跳转,为0时预测不跳转;分支实际跳转时计数器加1(最大到1),不跳转时计数器减1(最小到0)

二、调整fetch/decode/execute/commit宽度、ROB大小

这类CPU核心参数不需要修改预测器源码,按你使用的ChampSim版本选择对应修改方式即可:

  • 最新版本ChampSim:直接编辑仿真使用的JSON配置文件,找到对应CPU核心的配置字段,直接修改数值即可,对应字段分别为:
    • fetch_width:每周期取指数量
    • decode_width:每周期解码数量
    • execute_width:每周期执行宽度
    • commit_width:每周期提交宽度
    • rob_size:重排序缓冲区(ROB)大小
  • 无配置文件的旧版本ChampSim:修改inc/cpu.h头文件中对应的宏定义值,重新编译即可生效

内容的提问来源于stack exchange,提问作者Asahi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:24:04