В ARMv7 VMSA MMU имеется два набора таблиц перевода, на которые указывают ttbr0 и ttbr1. Диапазон виртуального адреса, который будет использоваться для перевода либо по таблицам, на которые указывает ttbr0, либо ttbr1, задается регистром TTBCR поля «N».Блок управления памятью ARM v7 (MMU) ttbr0 и ttbr1
Теперь, если я установил этот TTBCR.N в 7, диапазон адресов, охватываемый таблицей переводов в ttbr0, равен 0x0 - 0x2000000. Таким образом, первый адрес после 0x2000000 (т. Е. 0x2000004?) Будет использовать таблицу перевода в ttbr1 для перевода. В соответствии с форматом коротких дескрипторов в ARMv7 vmsa, таблицы перевода могут иметь области разрезов (1 МБ), регионы отображения суперсекции (16 МБ).
Мой вопрос, что произойдет, если я поместил supersection в адресное место, скажем, 0x1600000. Согласно теории, тогда адрес в диапазоне от 0x1600000 до 0x2600000 будет отображаться на физический адрес 0x1600000. (Но это не сработает, так как сама таблица переводов изменяется на 0x2000000.?) Так что происходит в этом сценарии? Также что должно быть помещено при первом входе ttbr1 в этом случае?
ответ
Я думаю, что это ошибка программирования и таблицы страниц не должны установить, как это с адресом блока одной области, совмещенной с other.Consider это вы установили VA 0x1600000 года до 16 МБ, чтобы быть блоком 16Мб супер-раздел и скажите, что вы получаете доступ к местоположению 0x1600000, теперь ваш TLB будет иметь виртуальное физическое сопоставление для 16-мегабайтной секции, начиная с формы 0x1600000. Теперь вы говорите, что вы получаете доступ к ячейке памяти 0x2000000, здесь сначала просматривается TLB, а совпадение будет обнаружена запись, не будет ходить по страницам таблицы. Возможно, вы указали 0x2000000 на другое физическое адресное пространство, а затем такой доступ потенциально может попасть в непреднамеренное местоположение.
- 1. ARM MMU и ARM Linux page table walk
- 2. ARM MMU, таблица страниц L2 таблицы
- 3. В ARMv7 это адрес, используемый в TTBR0 и TTBR1 физическим или виртуальным
- 4. ARM MMU отключен 4KB
- 5. Блок управления виртуальной памятью и памятью
- 6. Как блок MMU (блок управления памятью) в процессоре защищает сегменты памяти
- 7. ARM Bootloader: отключить MMU и кеши
- 8. Unaligned доступ к памяти в ARM v7
- 9. Запуск без использования MMU Linux на ARM Cortex-R4
- 10. атрибуты кеша в таблице страниц MMU в arm linux
- 11. ARM операция MMU в различных режимах
- 12. Почему мы пишем адрес pgd для TTBR0/TTBR1 во время каждого переключателя контекста?
- 13. Ошибка MMU и TLB
- 14. Предоставляет ли MMU все между операционной системой и физической памятью или это просто переводчик адресов?
- 15. Включение MMU в Linux
- 16. Как найти тип прерывания данных в ARM v7?
- 17. Кэш настройки ARM и mmu от арматуры до ассемблера gnu arm
- 18. MMU, связанный с обработкой адресов физической памяти
- 19. Функция декодирования команды ARM v7-M
- 20. Как скомпилировать ftd2xxj на arm-v7?
- 21. Является ли связь между процессором и периферийными устройствами, посредниками MMU
- 22. Как скомпилировать приложение qt для arm-v7
- 23. Неопределенные символы для архитектуры arm v7
- 24. Проблемы с MMU на ARM Cortex-A8. CPU - это S5PV210
- 25. константного массива и управления памятью
- 26. управления памятью и станд :: Распределитель
- 27. AVAudioPlayer инициализации и управления памятью
- 28. MMU и таблица страниц
- 29. отношения между CPUECTLR.SMPEN, кэшей и MMU
- 30. Как модуль управления памятью (MMU) уведомляет операционную систему о том, что таблица страниц обновлена?