Установочно-ассоциативный TLB на Rocket Chip

Я пытаюсь выяснить, поддерживает ли Rocket Chip Generator ассоциативный TLB (как для L1, так и для L2 TLB), но я не могу найти какой-либо простой код об этом в RocketCore.scala или PTW.scala. С другой стороны, изменить ассоциативность кешей в HellaCache.scala довольно просто.

Насколько я понимаю, TLB L1 полностью ассоциативен, а TLB L2 имеет прямое отображение.

Есть ли простой способ изменить ассоциативность набора TLB на Rocket Chip, который мне не хватает? Если нет, то есть ли какие-либо ресурсы, которые вы могли бы предоставить, чтобы помочь мне добавить эти функции в Rocket Chip?

Спасибо.


person ncppd    schedule 09.09.2019    source источник


Ответы (1)


Я сам реализовал настраиваемый TLB L1 / L2 на Rocket Chip, мой код находится в апстриме и объединен с официальным Rocket Chip репозиторий.

Чтобы изменить ассоциативность и размер TLB L1, вы можете настроить nTLBSets, nTLBWays в /src/main/scala/rocket/HellaCache.scala (на данный момент разрешена только мощность 2 наборов / способов).

Для TLB L2 вы можете настроить nL2TLBSets, nL2TLBWays в /src/main/scala/rocket/RocketCore.scala.

person ncppd    schedule 12.03.2021