gem5 的一些问题?

问题描述

我最近在学习 gem5。看了gem5的官方文档,但是有时候总觉得描述的太正式了,看不懂详细。 我想使用 gem5 来研究分支预测或预取。在使用的过程中,遇到了一些不明白的地方。可能有很多问题,希望有人能帮帮我,非常感谢!

  1. 我在看一些论文的源码的时候,发现很多时候都是以checkpoints开头的模拟长期代码?是为了防止中间出现问题,还是减少以后的运行时间? 根据{{​​3}},gem5 的经典内存系统不保存任何缓存状态。 这是否意味着检查点不适用于预取实验?

此外,根据checkpoint document,--checkpoint-at-end 选项可用于在模拟结束时创建检查点。但是我看到的顶级会议论文的this answer在创建检查点时没有使用这个选项。当我不使用--checkpoint-at-end时,我看到生成了相应的目录和文件。这是否意味着可以省略此选项?当我生成检查点时,警告:Checkpoints for file descriptors currently do not work appeared。这是怎么回事?

  1. 如果我做预取或分支预测实验,我应该在正式实验之前预热缓存。我查看了 --warmup-insts 选项。在这个选项的介绍中,提到需要--standard-switch。我看到很多人都在使用:

    --fast-forward=1000000 --standard-switch=$WARMUP_INSTS --warmup-insts=$WARMUP_INSTS 他们的解释是:

(1)。 --fast-forward:切换前快进的指令数

(2) --warmup-insts:总指令中的预热期(需要--standard-switch)

(3)--standard-switch:

预热期后从时序切换到详细 cpu

单独看每个项目,我似乎理解它,但具体来说,我似乎完全不理解。

  1. 我想做一个预取实验,但我如何获得命令的踪迹?为了让我可以分析,有没有什么工具可以做到这一点?

这些问题看似愚蠢,却困扰了我很久。非常感谢能回答的人!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)