Параметры кэша по умолчанию, как их изменить, ограничения и многое другое - PullRequest
0 голосов
/ 09 сентября 2018

Я новичок в ракетном чип-генераторе и все еще учусь. Первое, что я хочу знать, это как параметризовать кэш l1 d. Я провел некоторое исследование, но, похоже, информация не актуальна. Например, в src / main / scala / config.scala нет параметров d-кэша, определенных, как указано в README. Некоторые люди упоминали coreplex / config.scala, но я тоже не смог его найти. Кто-нибудь, пожалуйста, дайте мне знать, где определены параметры по умолчанию и как их изменить? Кроме того, где определено tinycore, bigcore и другое предопределенное ядро?

1 Ответ

0 голосов
/ 13 октября 2018

Есть несколько конфигураций, которые вы можете выбрать при компиляции 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 : размер строки кэша

...