首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARM MMU和ARM Linux页表漫游

ARM MMU和ARM Linux页表漫游
EN

Stack Overflow用户
提问于 2015-01-19 14:48:02
回答 1查看 1.8K关注 0票数 1

我对linux如何利用ARMv7内存管理单元硬件来实现它的3级页表遍历有点困惑。MMU只有2个寄存器ttbr0和ttbr1 (一个用于内核,另一个用于用户空间)。mmu如何知道linux的多级页表漫游?

谢谢,Hvr

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 23:14:37

如果虚拟地址的高位N位全为零,则转换开始于TTBR0否则TTBR1N来自于TTBCRTTBRn寄存器包含第一级表的基址的物理地址。加载第一级表的适当条目,并且该条目的各个比特确定转换是否使用第二级表,如果是,则确定其物理地址是什么。

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

这会忽略阶段2转换(虚拟机管理程序)。所有内容均记录在v7-A&R的ARMARM第B3.3节:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0406c/index.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28019266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档