gpt4 book ai didi

linux - ARM MMU 和 ARM Linux 页表遍历

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:09 25 4
gpt4 key购买 nike

我对 Linux 如何利用 ARMv7 MMU 硬件进行 3 级页表遍历感到有点困惑。 MMU 只有 2 个寄存器 ttbr0 和 ttbr1(一个用于内核,另一个用于用户空间)。 mmu如何知道linux的多级页表遍历?

谢谢,高电压

最佳答案

如果虚拟地址的高 N 位全为零,则转换从 TTBR0 开始,否则从 TTBR1 开始。 N 来自 TTBCRTTBRn 寄存器包含一级表基址的物理地址。加载一级表的适当条目,条目的各个位决定转换是否使用二级表,如果是,它的物理地址是什么。

MMU 可以配置为使用短描述符(32 位物理地址)或长描述符(40 位物理地址)。使用短描述符时,最多只能使用两层翻译表。使用长描述符时,可以分为三个级别。

这会忽略第 2 阶段的翻译(管理程序)。所有内容都记录在 ARMARM for v7-A&R 部分 B3.3 中: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406c/index.html

关于linux - ARM MMU 和 ARM Linux 页表遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28019266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com