gem5教程第五章 了解gem5默认配置脚本
在本章中,我们将探讨如何使用gem5附带的默认配置脚本。
gem5附带了许多配置脚本,使您能够非常快速地使用gem5。
然而,一个常见的陷阱是在不完全理解所模拟内容的情况下使用这些脚本。在使用gem5进行计算机架构研究时,充分了解您正在模拟的系统非常重要。本章将引导您了解默认配置脚本的一些重要选项和部分。
在最后几章中,您从头开始创建了自己的配置脚本。
这非常强大,因为它允许您指定每个系统参数。
然而,有些系统的设置非常复杂(例如,全系统ARM或x86机器)。
幸运的是,gem5开发人员提供了许多脚本来引导构建系统的过程。
目录结构
gem5的所有配置文件都可以在configs/中找到。
目录结构如下图所示:
configs/boot:
bbench-gb.rcS bbench-ics.rcS hack_back_ckpt.rcS halt.shconfigs/common:
Benchmarks.py Caches.py cpu2000.py FileSystemConfig.py GPUTLBConfig.py HMC.py MemConfig.py Options.py Simulation.py
CacheConfig.py cores CpuConfig.py FSConfig.py GPUTLBOptions.py __init__.py ObjectList.py SimpleOpts.py SysPaths.pyconfigs/dist:
sw.pyconfigs/dram:
lat_mem_rd.py low_power_sweep.py sweep.pyconfigs/example:
apu_se.py etrace_replay.py garnet_synth_traffic.py hmctest.py hsaTopology.py memtest.py read_config.py ruby_direct_test.py ruby_mem_test.py sc_main.py
arm fs.py hmc_hello.py hmc_tgen.cfg memcheck.py noc_config riscv ruby_gpu_random_test.py ruby_random_test.py se.pyconfigs/learning_gem5:
part1 part2 part3 READMEconfigs/network:
__init__.py Network.pyconfigs/nvm:
sweep_hybrid.py sweep.pyconfigs/ruby:
AMD_Base_Constructor.py CHI.py Garnet_standalone.py __init__.py MESI_Three_Level.py MI_example.py MOESI_CMP_directory.py MOESI_hammer.py
CHI_config.py CntrlBase.py GPU_VIPER.py MESI_Three_Level_HTM.py MESI_Two_Level.py MOESI_AMD_Base.py MOESI_CMP_token.py Ruby.pyconfigs/splash2:
cluster.py run.pyconfigs/topologies:
BaseTopology.py Cluster.py CrossbarGarnet.py Crossbar.py CustomMesh.py __init__.py MeshDirCorners_XY.py Mesh_westfirst.py Mesh_XY.py Pt2Pt.py
下面简要介绍每个目录:
boot/
这些是在全系统模式下使用的rcS文件。这些文件在Linux启动后由模拟器加载,并由shell执行。其中大部分用于在全系统模式下运行时控制基准测试。有些是实用函数,如hack_back_ckpt.rcS。这些文件在关于全系统仿真的章节中有更深入的介绍。