2

我在更改 Rocket-Chip 的参数时遇到问题。我正在尝试增加 L1 数据和指令缓存的集数。我遵循这个描述:http
://riscv.org/download.html#tab_rocket 以下代码行是我试图在文件中更改的值:Configs.scala它位于 Rocket Chip Generator 存储库(rocket-chip/src/主要/斯卡拉)

  knobValues = {
    case "NTILES" => 1
    case "NBANKS" => 1
    case "L1D_MSHRS" => 2
    case "L1D_SETS" => 64
    case "L1D_WAYS" => 4
    case "L1I_SETS" => 64
    case "L1I_WAYS" => 4
  }
)

在我进行任何更改之前,我可以运行以下命令而不会出现错误:

make run-asm-tests

如果我更改LD1_SETS => 64LD1_SETS => 128使用上面的命令会出现很多错误。

我是否必须将 Cache-Size 设置在不同的地方?

4

1 回答 1

4

Rocket 使用虚拟索引、物理标记的 L1 数据缓存。因此,路的大小必须小于页面大小。您看到的错误是由强制执行此操作的断言引起的。为了解决这个问题,我建议增加方法的数量(而不是集合的数量),或者增加 L2 的大小来补偿。

这似乎是一个奇怪的要求,但许多处理器都有它。L1 缓存大小通常由页面大小和它们在不损害关键路径的情况下可以做到的最大关联性决定。

于 2015-08-11T16:32:26.463 回答