当前位置: 首页 > news >正文

Linux内核内存管理 ARM32页表映射流程和案例分享

ARM32架构使用两级页表结构将虚拟地址转换为物理地址,以下为详细流程及案例分析:

ARM32页表映射流程

 

1.获取页目录基地址

MMU通过TTBR(Translation Table Base Register)寄存器获取当前进程的一级页表(L1页表,即页目录)基地址。

 

2.解析虚拟地址结构

虚拟地址(VA)被划分为三部分(以4KB页为例):

 

Bits[31:20]:一级页表索引(L1 Index),定位页目录项(PDE)。

Bits[19:12]:二级页表索引(L2 Index),定位页表项(PTE)。

Bits[11:0]:页内偏移(Offset),用于最终物理地址计算。

 

3.一级页表查询

 

计算页目录项地址:L1_Addr = TTBR_Base + L1_Index * 4

读取页目录项(PDE)。若PDE指向二级页表(L2页表),则继续;若指向1MB大页,直接计算物理地址。

 

4.二级页表查询

 

从PDE中获取二级页表基地址(L2_Base)。

计算页表项地址:L2_Addr = L2_Base + L2_Index * 4

读取页表项(PTE),获取物理页基地址(Physical Page Base)。

 

5.合成物理地址

 

物理地址 = (Physical_Page_Base << 12) + Offset

 

6.权限与异常检查

 

MMU检查AP(访问权限)、XN(执行权限)等属性位,若违反则触发缺页异常(Page Fault)。

 

 

案例分析:虚拟地址0x2000映射到物理地址0x3000

假设条件

页目录基地址(TTBR):0x80000000

二级页表基地址:0x90000000

页大小:4KB

虚拟地址:0x00002000(目标映射到物理地址0x3000)

步骤分解

1.虚拟地址划分

 

VA = 0x00002000 → 二进制:0000 0000 0000 0000 0010 0000 0000 0000

L1 Index (Bits[31:20]):0x000 → 索引0

L2 Index (Bits[19:12]):0x02 → 索引2

Offset (Bits[11:0]):0x000

 

2.一级页表查询

 

PDE地址 = 0x80000000 + 0 * 4 = 0x80000000

PDE内容:0x90000003(L2基地址=0x90000000,属性位0x3表示有效且可读写)。

 

3.二级页表查询

 

PTE地址 = 0x90000000 + 2 * 4 = 0x90000008

PTE内容:0x00003003(物理页基地址高20位=0x3,属性位0x3)。

物理页基地址 = 0x3 << 12 = 0x3000。

 

4.合成物理地址

 

物理地址 = 0x3000 + 0x000 = 0x3000。

 

关键点

地址对齐:物理页基地址必须按页大小对齐(如4KB对齐时,低12位为0)。

 

属性位:页表项的低12位存储权限(AP)、缓存策略(C/B)、执行权限(XN)等。

 

TLB加速:首次转换后,结果缓存至TLB,后续访问无需遍历页表。

 

异常处理:非法访问或权限错误会触发缺页异常,由操作系统处理。

 

流程图

 

虚拟地址0x00002000

    │

    ├─L1 Index=0 → PDE地址0x80000000 → 指向L2基地址0x90000000  

    │

    ├─L2 Index=2 → PTE地址0x90000008 → 物理页基地址0x3000  

    │

    └─Offset=0 → 物理地址0x3000

 

通过上述流程,ARM32 MMU高效完成虚拟地址到物理地址的转换,同时确保内存访问的安全性与灵活性。

 

相关文章:

  • 华三交换机配置常用命令
  • 【nvidia】Windows 双 A6000 显卡双显示器驱动更新问题修复
  • excel时间与时间戳互转,excel纯数字sql转为时间,日期函数
  • 从压测到选型:如何通过压力测试确定高防需求?
  • 软件测试 - 测试分类篇
  • 使用Java ApI 实现Hadoop文件上传
  • Navicat导出mysql数据库表结构说明到excel、word,单表导出方式记录
  • 乐橙R10 AI智能锁:以「技术减法」终结智能家居「参数内卷」
  • 音频进阶学习二十四——IIR滤波器设计方法
  • 构建智能旅游路线规划服务:deepseek与地理信息的完美结合
  • 音视频基础(音视频的录制和播放原理)
  • 1.计算机系统基础知识【软考视频笔记】
  • 【数据结构】数据结构与算法:开启编程世界的钥匙
  • FastPillars:一种易于部署的基于支柱的 3D 探测器
  • IS-IS(中间系统到中间系统)+抓包分析
  • MyBaitis-Plus 使用动态表名 selectPage 不生效
  • 通过NFS将目录共享给 Docker 容器
  • Proxmox pct 部署ubuntu
  • (C语言)学生信息表(学生管理系统)(基于通讯录改版)(正式版)(C语言项目)
  • 华为MPLS Virtual PN option B配置wireshark抓包分析
  • pc 网站开发设计/百度手机助手app官方下载
  • 临朐网站建设建站/最新的国际新闻
  • 坑梓做网站公司怎么样/软文营销实施背景
  • 咖啡色网站模板/网络销售 市场推广
  • 长沙网站开发设计/中国搜索引擎排行榜
  • 郑州网站建设丶汉狮网络/seo人员招聘