我已经成功地将 GEM5 设置为 fs 模式和 DRAMSim2 内存类型。我正在使用的命令是:
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 模式运行 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 等。即使在操作系统启动时也应该有一些读、写、操作?我在 /gem5/ext/dramsim2/DRAMSim2/MemoryController.cpp 中添加了注释
gem5中添加DRAMSim2的步骤:
- 转到 gem5 目录中的 ext/dramsim2。
- 克隆 DRAMSim2:git clone git://github.com/dramninjasUMD/DRAMSim2.git
- 通过 scons 重新构建系统。
- 在 fs 模式下再次运行,最后添加 --mem-type=DRAMSim2。
在 ext/dramsim2/DRAMSim2 中有一个文件 MemoryController.cpp。在该文件中有一个函数 update()。有一个不同命令的 switch-case,如 READ、WRITE、ACTIVATE。在每个命令的相应情况下,我有在读取情况下添加 cout,例如 cout<<"read....",在刷新情况下添加 cout<<"refresh..."。再次重建系统并使用 fs 模式和 --mem-type=DRAMSim2 运行。现在我只是得到“刷新......”的评论,而不是其他评论,但应该还有其他评论,比如“读......”,所有这些都是因为在引导操作系统时有一些读、写、激活。