我正在对 Rocket Chip 的 NBDCache 做一些实验。我想改变缓存行的大小,并说明性能改进和 L1 缓存的存储开销之间的权衡。
我发现 Rocket 芯片中缓存线的默认值为 64 位,相对较小。我试图通过在子系统/config.scala 中为 WithNBigCores 定义的参数来更改缓存行大小,但是在编译新代码时我得到了以下断言。
[error] Caused by: java.lang.IllegalArgumentException: requirement failed: rowBits(256) != cacheDataBits(64)
我正在寻找在 Rocket Chip 中更改缓存线大小的过程。
class WithNBigCores(n: Int) extends Config((site, here, up) => {
case RocketTilesKey => {
val big = RocketTileParams(
dcache = Some(DCacheParams(
rowBits = 256 // site(SystemBusKey).beatBits,
nMSHRs = 1,
...
)))
}
})