文章目录
一级页表项即 entry 的格式如下

从上图可以看出 L1 页表项有四种可能类型
- 产生中止异常的故障条目。这可能是预取或数据中止、取决于访问类型。这实际上表示虚拟地址未映射 bit[1:0] = 00
- 指向 L2 转换表的条目。这样就能将 1MB 的内存分页 bit[1:0] = 01。
- 1MB 段转换条目,将 1MB 区域映射到物理地址 bit[1:0] = 10 and bit[18] = 0。
- 16MB 超级分节。这是一种特殊的 1MB 小节条目,需要在翻译表中添加 16 个条目。但可以减少为该区域分配的翻译查找缓冲区条目数。旁路缓冲区(Lookaside Buffer)中分配的条目数量bit[1:0] = 10 and bit[18] = 1。

bit[31:20] 共 12 位,index = 2^12 = 4096 个所以一级页表共有 4096 个,即 0-4095,每个 index 放 4 bytes 数据,每个一级页表项控制 1MB section 空间,共 4GB 空间。
一级页表占用空间 4096 * 4bytes = 16KB
<
本文详细介绍了ARM处理器的一级页表机制,包括页表项的四种类型:异常条目、L2转换表条目、1MB段转换条目和16MB超级分节。一级页表由4096个4字节项组成,总计16KB,每个项控制1MB内存,总计覆盖4GB空间。一级页表基址存储在CP15 C2寄存器中,通过虚拟地址计算一级页表描述符地址,进而获取物理地址。
订阅专栏 解锁全文

801

被折叠的 条评论
为什么被折叠?



