Есть несколько конфигураций, которые вы можете выбрать при компиляции Rocket Chip. Вы можете найти эти конфигурации в файле subsystem / Configs.scala . По умолчанию команда make
в каталоге vsim и эмулятора использует параметры DefaultConfig
.
class DefaultConfig extends Config(new WithNBigCores(1) ++ new BaseConfig)
class WithNBigCores(n: Int) extends Config((site, here, up) => {
case RocketTilesKey => {
val big = RocketTileParams(
...
dcache = Some(DCacheParams(
rowBits = site(SystemBusKey).beatBits,
nMSHRs = 1,
blockBytes = site(CacheBlockBytes))),
icache = Some(ICacheParams(
rowBits = site(SystemBusKey).beatBits,
blockBytes = site(CacheBlockBytes))))
List.tabulate(n)(i => big.copy(hartId = i))
}
})
Параметры кэша данных можно найти в rocket / HellaCache.scala . Определены некоторые важные параметры:
nSets : Количество наборов кеша
nWays : Количество путей кеширования
rowBits : размер строки кэша