1 / 27

第 3 章 ARM 体系结构

第 3 章 ARM 体系结构. 3.4 ARM 内存管理单元. ARM MMU概述 ARM MMU的功能 ARM MMU的 操作 ARM MMU的 地址转换. ARM MMU概述.

kirra
Download Presentation

第 3 章 ARM 体系结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 ARM体系结构

  2. 3.4 ARM 内存管理单元 • ARM MMU概述 • ARM MMU的功能 • ARM MMU的操作 • ARM MMU的地址转换

  3. ARM MMU概述 MMU是内存管理单元(Memory Management Unit)的缩写。MMU在处理器中实现内存管理的功能,完成物理地址到虚拟地址的映射。MMU本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。 在通常情况下,MMU的两个主要功能是: 1. 将虚地址转换成物理地址 2. 控制内存的访问权限 MMU关闭时,虚地址直接输出到物理地址总线。

  4. ARM MMU的功能 • CP15的主要管理和配置功能如下; •  页表 •  TLB(转换旁路缓冲器) •  域和访问权限 •  Cache和写缓冲器 •  快速上下文切换

  5. ARM MMU的功能 CP15协处理器的功能模块:

  6. ARM MMU的操作 MMU的功能相关的CP15中寄存器的描述

  7. ARM MMU的操作 • 当MMU被禁止的时候存储器按如下处理: • 根据具体的情况决定是否允许Cache和写缓冲 • 没有存储区访问的权限,MMU也不会产生异常信号 • 物理地址的虚拟地址相同,即平板(flat address mapping)地址映射模式

  8. 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系统

  9. ARM MMU的操作 R (位[9]):ROM保护状态 F (位[10]):控制外协处理器通信速度 Z (位[11]):允许分支预测 I (位[12]):允许指令Cache V (位[13]):向量地址 (从0x00000000 - 0x0000001C到0xFFFF0000 - 0xFFFF001C) RR (位[14]):控制Cache置换算法 L4 (位[15]):对于ARMv5以后版本,控制向后兼容 位[31:16]:保留 注意:对于MMU,其实只和CP15的寄存器的0、1、8、9位有关

  10. ARM MMU的操作  R2 地址变换表基址寄存器 (类型:ARMv3:只写,ARMv4:读写) 位[31:14]:变换表基地址,定位界限为16KB

  11. ARM MMU的操作  R3 域访问控制寄存器: (类型:ARMv3:只写,ARMv4:读写) 数据的含义如下: 00 不允许访问,任何访问将产生域错误 01 客户(Client)使用域,根据段和页描述符的访问权限检验 10 保留 11 管理(Manager)使用域,不检查访问许可位,任何都不会产生域错误

  12. ARM MMU的操作  R6 故障地址寄存器: (类型:ARMv3:只读,ARMv4:读写) 上一次数据存取中止的地址

  13. ARM MMU的操作 R5 故障状态寄存器: (类型:ARMv3:只读,ARMv4:读写) Bit[8]:0 Bits[7:4]:当错误发生时,确定16个域中(D15–D0) 哪个被访问。 Bits[3:0]:指出试图访问的类型

  14. ARM MMU的操作 功能如下所示: • 无效指令TLB • 无效指令单一入口 • 无效整个数据TLB • 无效数据单一入口 R8 TLB功能寄存器(类型:只写): 用来执行TLB的操作

  15. ARM MMU的操作 R10 TLB锁住寄存器:(类型:读写) TLB锁定是一些ARM存储器系统的特性,它允许把特定的转换表搜索结果装载到TLB中。这种方式能否被后来的结果覆盖由寄存器R10决定。 如果TLB为分离的,该寄存器有2个 通过<opcode2>来区分MCR或者MRC对该寄存器的访问。 <opcode2> == 0 选择数据TLB锁定寄存器 <opcode2> == 1 选择指令TLB锁定寄存器 例如: mcr p15,0,r0,c10,c0,0 ;数据寄存器 mcr p15,0,r0,c10,c0,1 ;指令寄存器 如果TLB为统一的,寄存器只有1个存在,<opcode2>必须为0。 例如: mcr p15,0,r0,c10,c0,0 ;统一寄存器 辅助寄存器必须为c0

  16. ARM MMU的地址转换 在存储器的管理中,地址转换的含义是从逻辑地址转换成物理地址。在MMU开启之后,处理器内核所处理的都是逻辑地址,当处理器内核要访问一个逻辑地址的时候,MMU负责将这个逻辑地址转换成相应的物理地址,完成实际地址的访问。

  17. ARM MMU的地址转换 ARM的MMU支持如下的段和页: •  段(sections),由1MB的块组成 •  大页(large pages),由64KB 的块组成 •  小页(small pages),由4KB 的块组成 •  微小页(tiny pges),由1KB 的块组成

  18. ARM MMU的地址转换

  19. ARM MMU的地址转换 第一级描述符

  20. ARM MMU的地址转换 MMU二级描述符含义

  21. ARM MMU的地址转换

  22. ARM MMU的地址转换 段方式

  23. ARM MMU的地址转换 二级页方式

  24. ARM MMU的地址转换 二级页方式

  25. ARM MMU的地址转换 存储权限

  26. ARM MMU的地址转换 AP(Access permissions,访问权限),访问权限需要结合 CP15寄存器1的第8位有两种含义System (S)或者ROM (R)。

  27. 课程结束

More Related