gem5 Simple.py 配置中的 Icache 和 Dcache

Icache and Dcache in Simple.py configuration of gem5

我正在尝试了解使用 gem5 生成的模型。我使用 gem5 存储库中提供的 gem5/configs/learning_gem5/part1/simple.py 配置文件模拟了 build/X86/gem5.opt。 在输出目录中,我得到以下 .dot 图:

我有以下疑惑:

  1. 这个设计没有任何指令和数据缓存吗?我检查了 config.ini 文件,没有配置统计信息,例如 ICache/Dcache 大小。
  2. 添加icache_port和dcache_port的目的是什么? system.cpu.icache_port = system.membus.slave system.cpu.dcache_port = system.membus.slave

Does this design not have any Instruction and Data Cache? I checked the config.ini file there were no configuration statistics such as ICache/Dcache size.

我不是很熟悉那个配置,但是除非在某处明确添加了缓存,否则就没有缓存。

只需将其与 se.py 运行 进行比较,例如:

build/ARM/gem5.opt configs/example/se.py --cmd hello.out \
  --caches  --l2cache --l1d_size=64kB --l1i_size=64kB --l2_size=256kB`

肯定有缓存,例如config.ini 在 gem5 211869ea950f3cc3116655f06b1d46d3fa39fb3a 包含:

[system.cpu.dcache]
size=65536

What is the purpose of adding the icache_port and dcache_port?

我对端口系统不是很熟悉

我认为端口被用作组件通信的一种方式,通常在主/从对中,例如CPU为主,缓存为从。所以在这里我认为 CPU 端口在那里,但没有附加任何东西,所以没有缓存。

例如上面的se.py例子我们看得很清楚: