Rocket Chip 上的组关联 TLB

Set-associative TLB on Rocket Chip

我正在尝试解决 Rocket Chip Generator 是否支持组关联 TLB(L1 和 L2 TLB),但我在 RocketCore.scalaPTW.scala 中找不到任何直接相关的代码。另一方面,更改 HellaCache.scala 中缓存的关联性非常简单。

根据我的理解,L1 TLB 是完全关联的,而 L2 TLB 是直接映射的。

是否有直接的方法来更改我缺少的 Rocket Chip 上 TLB 的集合关联性?如果没有,您是否可以提供任何资源来帮助我在 Rocket Chip 中添加这些功能?

谢谢。

我自己在Rocket Chip上实现了可配置的L1/L2 TLB,我的代码是upstream并合并到官方Rocket Chip repository.

为了更改 L1 TLB 的关联性和大小,您可以在 /src/main/scala/rocket/HellaCache.scala 中调整 nTLBSets, nTLBWays(目前只允许 2 sets/ways 的幂)。

对于 L2 TLB,您可以在 /src/main/scala/rocket/RocketCore.scala 中调整 nL2TLBSets, nL2TLBWays