火箭芯片上的集合关联TLB

时间:2019-09-09 18:25:46

标签: riscv chisel rocket-chip

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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