【问题标题】:Generating a RISCV Rocket Chip with different cache sizes生成具有不同缓存大小的 RISCV 火箭芯片
【发布时间】:2015-08-11 15:20:20
【问题描述】:

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

  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 => 64 更改为LD1_SETS => 128,使用上面的命令会出现很多错误。

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

【问题讨论】:

    标签: riscv


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2016-10-20
      相关资源
      最近更新 更多