Gem5模拟器学习(七)
gem5附带的默认配置脚本
本文是对官网教程gem5: Using the default configuration scripts的整理,主要介绍了
gem5附带了许多配置脚本,允许用户非常快速地使用gem5。
1. configs文件夹
gem5中的全部配置脚本都在configs
文件夹中,该文件夹的结构如下:
1 | configs/boot: |
boot/
这些是在全系统模式下使用的rcS文件。这些文件在Linux引导后由模拟器加载,并由shell执行。其中大多数用于在全系统模式下运行时控制基准测试。有些是实用函数,如hack_back_ckpt.rcS。在全系统模拟一章中,将更深入地介绍这些文件。
common/
common目录包含许多用于创建模拟系统的辅助脚本和函数。例如,
Caches.py
类似于前几章中创建的Caches.py和Caches_opts.py文件。
Options.py
包含可以在命令行上设置的各种选项。比如CPU的数量、系统时钟等等。这是查看要更改的选项是否已经有命令行参数的好地方。
CacheConfig.py
包含用于为经典内存系统设置缓存参数的选项和函数。
MemConfig.py
提供了一些帮助函数,用于设置内存系统。
FSConfig.py
包含为许多不同类型的系统设置全系统仿真所需的功能。全系统仿真将在本章中进一步讨论。
Simulation.py
包含许多用于设置和运行gem5的辅助函数。该文件中包含的许多代码管理保存和恢复检查点。下面示例中的示例配置文件使用该文件中的函数来执行gem5模拟。该文件相当复杂,但它也允许在模拟运行方式上有很大的灵活性。
dram/
包含测试DRAM的脚本。
example/
此目录包含一些示例 gem5配置脚本,可以使用这些脚本即开即用地运行 gem5。具体来说,se.py 和 fs.py 非常有用。有关这些文件的更多信息可以在下一节中找到。此目录中还有一些其他实用程序配置脚本。
learning_gem5/
该目录包含learning_gem5书中的所有gem5配置脚本。
network/
此目录包含HeteroGarnet网络的配置脚本。
nvm/
此目录包含使用NVM接口的示例脚本。
ruby/
该目录包含Ruby的配置脚本及其包含的缓存一致性协议。
splash2/
该目录包含用于运行splash2基准测试套件的脚本,以及用于配置模拟系统的一些选项。
topologies/
该目录包含在创建Ruby缓存层次结构时可以使用的拓扑的实现。
2. se.py&fs.py
SE模式默认配置脚本se.py和FS模式默认配置脚本fs.py均位于目录configs/example/,下面以se.py为例介绍它们通用的命令行选项:
通过
--cmd=
选项指定二进制文件1
build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello
默认情况下,两个配置脚本均使用 atomic CPU和 atomic memory accesses,因此没有时间统计数据产生
可通过
--cpu-type=CPU_TYPE
指定CPU类型,通过--mem-type=MEM_TYPE
指定内存类型。