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 的步骤:
- 转到 gem5 目录中的 ext/dramsim2。
- 克隆 DRAMSim2: git 克隆 git://github.com/dramninjasUMD/DRAMSim2.git
- 通过scons重新搭建系统
- 运行 再次在 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
我已经在 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 的步骤:
- 转到 gem5 目录中的 ext/dramsim2。
- 克隆 DRAMSim2: git 克隆 git://github.com/dramninjasUMD/DRAMSim2.git
- 通过scons重新搭建系统
- 运行 再次在 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