# 前言
华中科技大学研究生课程计算机系统设计实验,希望能帮到学弟学妹们
# 安装 Docker
实验文档建议使用 Docker,我之前没有安装过 Docker,因此安装一下。
启用 Hyper-V 和 linux 子系统,应该是可选的只用打开 Linux 子系统。


Windows | Docker Docs 下载 Docker Desktop for Windows 默认安装即可
启动 ubuntu

安装成功

# 测试 GEM5 SE 和 FS 模式,成功运行 PARSEC 2.1 负载
# 测试 SE 模式
启动容器,测试 Gem5 SE 模式
./build/ARM/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/arm/linux/hello |

# 测试 FS 模式

可以发现在 /usr/local/src/full_system_images 目录下已有磁盘镜像,且 SysPaths.py 已配置 disk image 完整路径, Benchmarks.py 已修改 image 文件名

运行,输入如下命令:
./build/X86/gem5.opt ./configs/example/fs.py |
此时再开一个终端进入同一个容器,使用 telnet 连接系统
telnet 127.0.0.1 3456 |

# 运行 PARSEC 2.1 负载
M5_PATH=/usr/local/src/full_system_images ./build/X86/gem5.opt ./configs/example/fs.py -n 2 --script=../benchmark/TR-09-32-parsec-2.1-alpha-files/blackscholes_4c_test.rcS --disk-image x86root-parsec.img --kernel x86_64-vmlinux-2.6.22.9.smp |
再打开另一个终端进入同一容器,使用 telnet 连接系统

# 使用 GEM5+NVMain 模拟器构建并模拟一个真实计算机系统并对主存模块仿真
# 混合编译
scons EXTRAS=nvmain ./build/X86/gem5.opt |

# SE 模式非易失性内存仿真
M5_PATH=/usr/local/src/full_system_images ./build/X86/gem5.opt configs/example/se.py -c tests/test-progs/hello/bin/x86/linux/hello --caches --l2cache --mem-type=NVMainMemory --nvmain-config=../nvmain/Config/PCM_ISSCC_2012_4GB.config |


结果正确输出了,但是中间有许多 warning 不知道怎么解决
# 在 NVMain 中实现 FPC 压缩方案
# 编译
scons --build-type=fast |

在单独使用 nvmain 的过程中,出现了 gem5_scons 的相关错误,将 nvmain/SConscript 中的第 36 行注释,也就是 from gem5_scons import Transform # 这行注释即可


# 参考
Configure and Run PARSEC-2.1 Benchmark in Gem5 (pfzuo.github.io)
Install and Run GEM5 in Unbuntu 14.04 (pfzuo.github.io)
NVMain 和 Gem5 环境搭建 - 简书 (jianshu.com)
计算机系统设计实验 | 想学打球的菜鸡 (yux20000304.github.io)