1

我想在当前版本的 Rocket 芯片的两个缓存的缓存行中包含标志。这些标志将与内存地址的数据一起加载/存储。lowRISC ( http://www.lowrisc.org/ ) 开发人员也做过类似的事情。然而,它们将加载/存储标志和数据作为单独的指令访问(即存储/加载标志指令和存储/加载数据的现有指令),并且它们的架构设计是从火箭芯片的旧版本分叉出来的,而火箭-从那时起,芯片源代码发生了显着变化。

就我而言,不知何故,标志没有得到正确传播。需要哪些步骤来增加缓存行大小、将标志位传播到缓存、存储/加载标志位 + 数据、确保缓存之间的正确通信等?

您能否让我知道要修改的文件以合并这些文件。

4

1 回答 1

1

您将想弄清楚当缓存行(+ 标志)存储到内存时标志位是如何存储的。这种事情的一种常见方法是将标志存储在物理内存的单独区域中,因为将它们内联存储会干扰高速缓存行对齐。

就您需要更改的文件而言,不幸的是它会非常复杂。您选择如何将事物存储在物理内存中将需要更改火箭芯片存储库本身中的文件。您将需要更改 uncore 存储库中的文件以传递这些较大的缓存行并将它们存储在 L2 中(如果您使用的是 L2)。您还需要更改火箭存储库中的文件,以设置处理器看到的新标志的接口以及为它们添加对 L1 缓存的支持。

即使 lowRISC 可能基于旧版本,我还是建议查看他们所做的更改(提交历史)以了解范围和位置或要更改的内容。

于 2015-09-21T22:20:20.093 回答