网站大量收购闲置独家精品文档,联系QQ:2885784924

第3章第4节ARM内存管理单元.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* MMU的功能 * * MMU和MPU一般二者取其一。 * MMU的功能相关的CP15中寄存器的描述 * * MMU二级描述符含义 * MMU寻址的方式分类流程 * 第3章 ARM体系结构 3.4 ARM 内存管理单元 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关闭时,虚地址直接输出到物理地址总线。 ARM MMU的功能 CP15的主要管理和配置功能如下; ? 页表 ? TLB(转换旁路缓冲器) ? 域和访问权限 ? Cache和写缓冲器 ? 快速上下文切换 ARM MMU的功能 CP15协处理器的功能模块: 功能 使用寄存器 全局控制 寄存器0、1 MMU 寄存器2、3、4、5、6、8,10以及寄存器1中的部分 MPU 寄存器2、3、5、6以及寄存器1中的部分 Cache和Write Buffer 寄存器7、9 FSCE 寄存器13 测试和时钟控制 寄存器15 保留 寄存器11、12、14 ARM MMU的操作 MMU的功能相关的CP15中寄存器的描述 寄存器 主要操作 R1 使能/禁止MMU、cache、写缓冲 R2 设置变换表基地址(16k对齐) R3 设置16个域的访问权限 R8 操作TLB功能(无效统一TLB、无效指令或数据TLB) 当MMU被禁止的时候存储器按如下处理: 根据具体的情况决定是否允许Cache和写缓冲 没有存储区访问的权限,MMU也不会产生异常信号 物理地址的虚拟地址相同,即平板(flat address mapping)地址映射模式 ARM MMU的操作 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系统 ARM 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位有关 ARM MMU的操作 ? R2 地址变换表基址寄存器 (类型:ARMv3:只写,ARMv4:读写) 位[31:14]:变换表基地址,定位界限为16KB ARM MMU的操作 ? R3 域访问控制寄存器: (类型:ARMv3:只写,ARMv4:读写) 数据的含义如下: 00 不允许访问,任何访问将产生域错误 01 客户(Client)使用域,根据段和页描述符的访问权限检验 10 保留 11 管理(Manager)使用域,不检查访问许可位,任何都不会产生域错误 ARM MMU的操作 ? R6 故障地址寄存器: (类型:ARMv3:只读,ARMv4:读写) 上一次数据存取中止的地址 ARM MMU的操作 ?R5 故障状态寄存器: (类型:ARMv3:只读,ARMv4:读写) Bit[8]:0 Bits[7:4]:当错误发生时,确定16个域中(D15–D0) 哪个被访问。 Bits[3:0]:指出试图访问的类型 ARM MMU的操作 功能如下所示: ?无效指令TLB ?无效指令单一入口 ?无效整个数据TLB ?无效数据单一入口 功能 opcode2 CRm Data 指令 无效所有TLB 0 111 0 MCR p15, 0, Rd, c8, c7, 0 无效单一

您可能关注的文档

文档评论(0)

xiaohuer + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档