问题描述
我正在尝试学习如何实现具有倾斜关联性的 L2 缓存。 我看到已经在下面实现了倾斜关联性的类(skewed_associative.cc/hh) /gem5/src/mem/cache/tags/indexing_policies/ 我想用这个开始。
我不明白的是如何访问这些文件并指定给定的缓存以充当倾斜关联。我是否需要创建一个从 basecache 继承的全新缓存类?或者有没有办法通过实现一个新标签来做到这一点?
我仍在尝试弄清楚 gem5 是如何构建/工作的,因此将不胜感激任何数量的帮助或链接。
解决方法
以上评论有助于找到解决方案。
在实例化给定缓存时,将其标签的 indexing_policy 分配为 SkewedAssociative()
在 configs/common/CacheConfig.py:
而不是:
system.l2 = l2_cache_class(clk_domain=system.cpu_clk_domain,**_get_cache_opts('l2',options))
你会
system.l2 = l2_cache_class(clk_domain=system.cpu_clk_domain,tags=BaseSetAssoc(indexing_policy=SkewedAssociative()),options))