繁体   English   中英

如何更改Rocket Chip中非阻塞数据缓存的缓存行大小?

[英]How to change the cache-line size of Non blocking data cache in Rocket Chip?

我正在对Rocket Chip的NBDCache进行一些实验。 我想更改高速缓存行的大小,并说明性能改进和L1高速缓存的存储开销之间的折衷。

如我所知,火箭芯片中缓存行的默认值为64位,这相对较小。 我尝试通过为subsystem / 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,
        ...
    )))
  }
})

如您所说,Rocket-Chip中的高速缓存行的大小几乎固定为64字节(而不是64位)。 更改它并非易事。 恐怕这部分的可配置性不是很好。

如果确实如此,则需要修改NBDcache中的相应位置,包括数据阵列,与笔芯有关的部分以及与TileLink拍子大小有关的任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM