gem5中正确使用缓存的方法

本节博客参考官网和人间之清欢的博客

开始以为自己指定了缓存的大小,命令如下

build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB

然后grep一下发现结果是这样的

cache_line_size=64
dcache_port=system.membus.slave[2]
icache_port=system.membus.slave[1]
slave=system.system_port system.cpu.icache_port system.cpu.dcache_port system.cpu.itb.walker.port system.cpu.dtb.walker.port system.cpu.interrupts.int_master

然后指定–cache

build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB --caches

现在cache是这样的

cache_line_size=64
children=dcache dtb dtb_walker_cache icache interrupts isa itb itb_walker_cache tracer workload
dcache_port=system.cpu.dcache.cpu_side
icache_port=system.cpu.icache.cpu_side
[system.cpu.dcache]
type=Cache
replacement_policy=system.cpu.dcache.replacement_policy
tags=system.cpu.dcache.tags
cpu_side=system.cpu.dcache_port
[system.cpu.dcache.replacement_policy]
[system.cpu.dcache.tags]
indexing_policy=system.cpu.dcache.tags.indexing_policy
replacement_policy=system.cpu.dcache.replacement_policy
[system.cpu.dcache.tags.indexing_policy]
port=system.cpu.dtb_walker_cache.cpu_side
[system.cpu.dtb_walker_cache]
type=Cache
replacement_policy=system.cpu.dtb_walker_cache.replacement_policy
tags=system.cpu.dtb_walker_cache.tags
[system.cpu.dtb_walker_cache.replacement_policy]
[system.cpu.dtb_walker_cache.tags]
indexing_policy=system.cpu.dtb_walker_cache.tags.indexing_policy
replacement_policy=system.cpu.dtb_walker_cache.replacement_policy
[system.cpu.dtb_walker_cache.tags.indexing_policy]
[system.cpu.icache]
type=Cache
replacement_policy=system.cpu.icache.replacement_policy
tags=system.cpu.icache.tags
cpu_side=system.cpu.icache_port
[system.cpu.icache.replacement_policy]
[system.cpu.icache.tags]
indexing_policy=system.cpu.icache.tags.indexing_policy
replacement_policy=system.cpu.icache.replacement_policy
[system.cpu.icache.tags.indexing_policy]
port=system.cpu.itb_walker_cache.cpu_side
[system.cpu.itb_walker_cache]
type=Cache
replacement_policy=system.cpu.itb_walker_cache.replacement_policy
tags=system.cpu.itb_walker_cache.tags
[system.cpu.itb_walker_cache.replacement_policy]
[system.cpu.itb_walker_cache.tags]
indexing_policy=system.cpu.itb_walker_cache.tags.indexing_policy
replacement_policy=system.cpu.itb_walker_cache.replacement_policy
[system.cpu.itb_walker_cache.tags.indexing_policy]
slave=system.system_port system.cpu.icache.mem_side system.cpu.dcache.mem_side system.cpu.itb_walker_cache.mem_side system.cpu.dtb_walker_cache.mem_side system.cpu.interrupts.int_master

只要你用了cache正常情况下结果都特别长

源代码分析

parser.add_option("--caches", action="store_true")
发布了105 篇原创文章 · 获赞 415 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43914889/article/details/104797183