文档详情

嵌入式系统原理及应用开发教学课件作者陈渝第3章第4节ARM内存管理单元课件.ppt

发布:2016-12-28约3.46千字共27页下载文档
文本预览下载声明
第3章 ARM体系结构 3.4 ARM 内存管理单元 ARM MMU概述 ARM MMU的功能 ARM MMU的操作 ARM MMU的地址转换 ARM MMU概述 ARM MMU的功能 ARM MMU的功能 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的操作 ARM MMU的地址转换 ARM MMU的地址转换 ARM MMU的地址转换 ARM MMU的地址转换 第一级描述符 段方式 二级页方式 二级页方式 存储权限 课程结束 * MMU是内存管理单元(Memory Management Unit)的缩写。MMU在处理器中实现内存管理的功能,完成物理地址到虚拟地址的映射。MMU本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。 在通常情况下,MMU的两个主要功能是: 1. 将虚地址转换成物理地址 2. 控制内存的访问权限 MMU关闭时,虚地址直接输出到物理地址总线。 CP15的主要管理和配置功能如下; ? 页表 ? TLB(转换旁路缓冲器) ? 域和访问权限 ? Cache和写缓冲器 ? 快速上下文切换 CP15协处理器的功能模块: 寄存器11、12、14 保留 寄存器15 测试和时钟控制 寄存器13 FSCE 寄存器7、9 Cache和Write Buffer 寄存器2、3、5、6以及寄存器1中的部分 MPU 寄存器2、3、4、5、6、8,10以及寄存器1中的部分 MMU 寄存器0、1 全局控制 使用寄存器 功能 MMU的功能相关的CP15中寄存器的描述 操作TLB功能(无效统一TLB、无效指令或数据TLB) R8 设置16个域的访问权限 R3 设置变换表基地址(16k对齐) R2 使能/禁止MMU、cache、写缓冲 R1 主要操作 寄存器 当MMU被禁止的时候存储器按如下处理: 根据具体的情况决定是否允许Cache和写缓冲 没有存储区访问的权限,MMU也不会产生异常信号 物理地址的虚拟地址相同,即平板(flat address mapping)地址映射模式 R1 控制寄存器 (类型:ARMv3:只写,ARMv4:读写) M (位[0]):允许MMU A (位[1]):允许定位故障检测 C (位[2]):允许数据Cache或者统一Cache W (位[3]):允许写缓冲 P (位[4]):从26-32位异常处理 D (位[5]):从26-32位地址区域 L (位[6]):至上一次中止区域 B (位[7]):从小端到大端 S (位[8]):修改MMU系统 R (位[9]):ROM保护状态 F (位[10]):控制外协处理器通信速度 Z (位[11]):允许分支预测 I (位[12]):允许指令Cache V (位[13]):向量地址 (从0- 0x0000001C到0xFFFF0000 - 0xFFFF001C) RR (位[14]):控制Cache置换算法 L4 (位[15]):对于ARMv5以后版本,控制向后兼容 位[31:16]:保留 注意:对于MMU,其实只和CP15的寄存器的0、1、8、9位有关 ? R2 地址变换表基址寄存器 (类型:ARMv3:只写,ARMv4:读写) 位[31:14]:变换表基地址,定位界限为16KB ? R3 域访问控制寄存器: (类型:ARMv3:只写,ARMv4:读写) 数据的含义如下: 00 不允许访问,任何访问将产生域错误 01 客户(Client)使用域,根据段和页描述符的访问权限检验 10 保留 11 管理(Manager)使用域,不检查访问许可位,任何都不会产生域错误 ? R6 故障地址寄存器: (类型:ARMv3:只读,ARMv4:读写) 上一次数据存取中止的地址 ?R5 故障状态寄存器: (类型:ARMv3:只读,ARMv4:读写) Bit[8]:0 Bits[7:4]:当错误发生时,确定16个域中(D15–D0) 哪个被访问。 Bits[3:0]:指出试图访问的类型 功能如下所示: ?无效指令TLB ?无效指令单一入口 ?无效整个数据TLB ?无效数据单一入口 MCR p15, 0, Rd, c8, c6, 1 虚拟地址 110 1 无效数据单一入口 MCR p15, 0, Rd, c8, c6,
显示全部
相似文档