如何在gem5中指定预取策略和替换策略?

问题描述

在gem5中,如何指定特定的预取或替换策略?使用./build/X86_MESI_Two_Level/gem5.opt --help命令,没有相应的介绍

解决方法

到目前为止,除了src/mem/ruby/structures/RubyPrefetcher.hh中定义的预取器外,Ruby不支持任何预取器。

如果要使用其他预取器,则必须使Ruby适应以使用src/mem/cache/prefetch/中定义的预取器(对https://gem5-review.googlesource.com/c/public/gem5/+/27888中所需的理论步骤进行了快速讨论),或者使用经典缓存。最后,您还可以在Ruby中实现自己的预取器。

关于Replacement Policies,它们位于src/mem/cache/replacement_policies/中。两个缓存在Python中为其各自的变量使用相同的名称。在Ruby中,此变量在RubyCache(src/mem/ruby/structures/RubyCache.py)中声明。在Classic中,它是在BaseCache(src/mem/cache/Cache.py)中声明的。

请注意,直接修改这些文件以更改其变量被认为是不好的做法。您应该始终为系统创建一个配置文件,其中包含您的专门实现。检查documentation,以获取有关如何创建此类配置的更多信息。