2015-09-18 99 views
1

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

在我的情况下,以某种方式标志没有得到正确传播。必须采取哪些步骤来增加高速缓存行大小,将标志位传播到高速缓存,存储/加载标志位+数据,确保高速缓存之间的正确通信等。

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

回答

1

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

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

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