MMU aarch64: пропуск таблиц первого / второго уровня
В MMU armv7 [1] / aarch32 [2], при использовании длинного дескриптора, когда виртуальное пространство, описываемое ttbr0, достаточно мало (здесь 1Gb), перевод уровня 1 можно пропустить, оставляя только два уровня переводов.
Однако я не видел ничего подобного в описании перевода aarch64. Кто-нибудь знает, можно ли еще уменьшить количество таблиц перевода, используемых ttbr0 при использовании aarch64?
Ссылка в ARM ARM была бы хороша, если бы она существовала.
Лучший,
V.
[1]: ARMARM v7, B3.6 Формат таблицы перевода длинных дескрипторов, рис. B3-12 Общий вид трансляции адреса этапа 1 с использованием формата длинных дескрипторов
[2]: ARMARM v8, G4.6.1 Обзор трансляции адресов VMSAv8-32 с использованием таблиц перевода длинных дескрипторов, рис. G4-8
1 ответ
Как обсуждено здесь, это все еще возможно, но распространено на несколько сценариев. Я в основном зависит от размера гранул и размера виртуального пространства. Есть несколько таблиц (например, Table D4-11 TCR.TnSZ values and IA ranges when there is no concatenation of translation tables
), который поможет вам понять, с какого уровня перевода вы начнете, в зависимости от вашей конфигурации.