1

我已经成功地将 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的步骤:

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

在 ext/dramsim2/DRAMSim2 中有一个文件 MemoryController.cpp。在该文件中有一个函数 update()。有一个不同命令的 switch-case,如 READ、WRITE、ACTIVATE。在每个命令的相应情况下,我有在读取情况下添加 cout,例如 cout<<"read....",在刷新情况下添加 cout<<"refresh..."。再次重建系统并使用 fs 模式和 --mem-type=DRAMSim2 运行。现在我只是得到“刷新......”的评论,而不是其他评论,但应该还有其他评论,比如“读......”,所有这些都是因为在引导操作系统时有一些读、写、激活。

4

1 回答 1

0

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

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 ,它只给出刷新命令。现在我已经将 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
于 2018-04-11T06:12:02.887 回答