配置文件
.json
配置文件最终会生成 core_inst.inc 和 core_inst.cc.inc ,二者会被 include 并通过全局变量初始化完成配置。
- config.sh 最终会调用 config.filewrite.FileWriter.write_files
- FileWriter.write_files 会将 Fragment.from_config 之后的结果加入自己的 fragments 列表
inconfig/filewrite.py
- Fragment.from_config 会将 core_inst.inc 和 core_inst.cc.inc 通过 get_instantiation_header 和 get_instantiation_lines 生成后加入 fileparts ,并和其他部分一起合成 Fragment 后返回
- get_instantiation_lines 根据拿到的各对象依次迭代生成代码块
inconfig/instantiation_file.py
cache_builder
代码块 cache_instantiation_body 通过 get_builder_function_call 生成各层次 cache ,各级 cache 配置通过 get_cache_build 生成 champsim::cache_build 。其中 local_cache_builder_parts 用于将文件配置 .json 中相应的 bool 选项配置转换为构建出的 cache_builder 的模板特化函数以确定参数配置