GEM5 上的 DRAMSim2 仅打印刷新命令

DRAMSim2 on GEM5 is only printing refresh command

我已经在 fs 模式和 DRAMSim2 内存类型下成功设置 GEM5。我使用的命令是:

build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/prakhar/full_system_2/disks/linux-arm-ael.img --mem-type=DRAMSim2

一切正常。现在,我在 DRAMSim2 代码中添加了一些注释来分析代码流和研究命令序列。然后,我又重新编译了ARM系统保存修改。

scons build/ARM/gem5.opt

现在,当我再次在 fs 模式下 运行ning gem5 arm 时,它只是显示刷新命令的注释。像这样:

6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------
refresh...
6 0----------

为什么我看不到其他命令,如 ACT、READ、WRITE etc.There 即使 OS 正在启动,也应该是一些读、写、操作? 我在 /gem5/ext/dramsim2/DRAMSim2/MemoryController.cpp

中添加了注释

在 gem5 中添加 DRAMSim2 的步骤:

  1. 转到 gem5 目录中的 ext/dramsim2。
  2. 克隆 DRAMSim2: git 克隆 git://github.com/dramninjasUMD/DRAMSim2.git
  3. 通过scons重新搭建系统
  4. 运行 再次在 fs 模式下最后添加 --mem-type=DRAMSim2。

在 ext/dramsim2/DRAMSim2 中有一个文件 MemoryController.cpp.In 那个文件有一个函数 update()。有一个 switch-case 的不同命令,如 READ,WRITE,ACTIVATE.In 每个命令的相应案例我在读取案例中添加了 cout,如 cout<<"read....",在刷新案例中添加了 cout<<"refresh..."。 再次使用 fs 模式和 --mem-type=DRAMSim2 重建系统和 运行。 现在我只是收到 "refresh...." 的评论,而不是其他评论,但应该还有其他评论,比如 "read..." 和所有因为 OS.[= 启动时有一些读、写、激活。 13=]

我昨天尝试并得到了解决方案。 最初我使用的是命令:

build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/prakhar/full_system_2/disks/linux-arm-ael.img --mem-type=DRAMSim2

在此命令中,默认 cpu 类型为 AtomicSimpleCpu ,它仅提供刷新 commands.Now 我已将 cpu 类型指定为 TimingSimpleCPU 并且它提供所有命令。

命令是:

build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/prakhar/full_system_2/disks/linux-arm-ael.img --mem-type=DRAMSim2 --cpu-type=TimingSimpleCPU