我试图了解使用gem5生成的模型。我使用gem5存储库中提供的gem5 / configs / learning_gem5 / part1 / simple.py配置文件模拟了build / X86 / gem5.opt。 在输出目录中,我得到以下.dot图:
我有以下疑问:
system.cpu.icache_port = system.membus.slave
system.cpu.dcache_port = system.membus.slave
答案 0 :(得分:1)
此设计没有指令和数据缓存吗?我检查了config.ini文件,没有配置统计信息,例如ICache / Dcache大小。
我对该配置不是很熟悉,但是除非将缓存显式添加到某处,否则就不会有缓存。
只需将其与se.py运行进行比较,例如:
build/ARM/gem5.opt configs/example/se.py --cmd hello.out \
--caches --l2cache --l1d_size=64kB --l1i_size=64kB --l2_size=256kB`
肯定有缓存,例如gem5 211869ea950f3cc3116655f06b1d46d3fa39fb3a上的config.ini
包含:
[system.cpu.dcache]
size=65536
添加icache_port和dcache_port的目的是什么?
我对端口系统不是很熟悉。
我认为端口通常在主/从对中用作组件通信的一种方式。 CPU是主机,高速缓存是从机。所以在这里,我认为这里有CPU端口,但是没有附加任何端口,因此没有缓存。
例如,在上面的se.py示例中,我们清楚地看到了这一点: