没有合适的资源?快使用搜索试试~ 我知道了~
首页ARM-MMU中文手册
资源详情
资源评论
资源推荐

第三章 存储器管理单元
本文描述基于存储器管理单元的系统结构, 包含以下内容:
关于存储器管理单元的结构
存储器访问的顺序
转换过程
访问权限
域
异常
CP15 寄存器
Page 2 of 2

3.1 关于存储器管理单元的结构
MMU 存储器系统的结构允许对存储器系统的精细控制。大部分的控制细节由存在存
储器中的转换表提供。这些表的入口定义了从 1KB 到 1MB 的各种存储器区域的属
性。这些属性包括:
虚拟地址到物理地址映射
ARM 处理器产生的地址叫虚拟地址,MMU 允许把这个虚拟地址映射到一个不
同的物理地址去。这个物理地址表示了被访问的主存储器的位置。
它允许用很多方式管理物理存储器的位置,例如:它可以用具有潜在冲突的
地址映射为不同的进程分配存储器,或允许具有不连续地址的应用把它映射
到连续的地址空间。
------注------
如果使用了快速上下文切换扩展(Fast Context Switch Extension),则在
本文中的虚拟地址的意思应该是修改过的虚拟地址 (Modified virtual
address)
---------------
存储器访问权限(permissions)
这些控制对存储器区域的不可访问权限、只读权限、读写权限。当访问不可
访问权限的存储器时,会有一个存储器异常通知 ARM 处理器。
允许权限的级别也受程序运行在用户状态还是特权状态影响,还受是否使用
了域有关。
高速缓存和缓冲位 (Cachability and bufferability bits [C and B])
这些在高速缓存和缓冲一节讲
系统控制协处理器的寄存器允许对系统的高级控制,如转换表的位置。他们也用来
为 ARM 提供内存异常的状态信息。
查找整个转换表的过程叫转换表遍历。它由硬件制动进行,并需要大量的执行时间
(至少一个存储器访问,通常是两个)。为了减少存储器访问的平均消耗, 转换表
Page 3 of 3

遍历结果被高速缓存在一个或多个叫作 Translation Lookaside Buffers(TLBs)的
结构中。通常在 ARM 的实现中每个内存接口有一个 TLB。
有一个存储器接口的系统通常有一个唯一的 TLB
指令和数据的内存接口分开的系统通常有分开的指令 TLB 和数据 TLB
如果系统有高速缓存, 高速缓存的数量也通常是由同样的方法确定的。所以在高
速缓存的系统中,每个高速缓存一个 TLB。
当存储器中的转换表被改变或选中了不同的转换表(通过写 CP15 的寄存器 2),先
前高速缓存的转换表遍历结果将不再有效。 MMU 结构提供了刷新 TLB 的操作。
MMU 结构也允许特定的转换表遍历结果被锁定在一个 TLB 中,这就保证了对相关
的存储器区域的访问绝不会导致转换表遍历,这也对那些把指令和数据锁定在高速
缓存中的实时代码有相同的好处。
3.2 存储器访问的顺序
当 ARM 要访问存储器时,MMU 先查找 TLB 中的虚拟地址表,如果 ARM 的结构支
持分开的地址 TLB 和指令 TLB,那么它用:
取指令使用指令 TLB
其它的所有访问类别用数据 TLB
如果 TLB 中没有虚拟地址的入口,则转换表遍历硬件从存在主存储器中的转换表
中获取转换和访问权限,一旦取到,这些信息将被放在 TLB 中,它会放在一个没
有使用的入口处或覆盖一个已有的入口。关于转换表的信息和转换表遍历的实现参
见转换过程一节。
一旦为存储器访问的 TLB 的入口被拿到,这些信息将被用于:
1. C(高速缓存)和 B(缓冲)位被用来控制高速缓存和写缓冲,并决定是否高速
缓存。(如果系统中没有高速缓存和写缓冲,则对应的位将被忽略)
2. 访问权限和域位用来控制访问是否被允许。如果不允许,则 MMU 将向 ARM 处
理器发送一个存储器异常;否则访问将被允许进行。
访问权限、域和异常几节有详细描述。
Page 4 of 4

3. 对没有高速缓存的系统(包括在没有高速缓存系统中的所有存储器访问),物
理地址将被用作主存储器访问的地址。
对有高速缓存的系统,在高速缓存没有选中的情况下,物理地址将被用行取
(line fetch)的地址。如果选中了高速缓存,则物理地址将被忽略。
图 3-1 说明了这种高速缓存系统
域位
访问控
TLB
转换表遍历
制硬件
硬件
主
异常
物理地址
C, B 位
存
储
ARM
器
高速缓
高速缓
处理器
存和写
存行取
虚拟地址
缓冲
硬件
图 3-1
高速缓存的 MMU 存储器系统
Page 5 of 5

3.2.1 允许和禁止 MMU
通过写系统控制协处理器的寄存器 1 的第 0 位可以允许和禁止 MMU。在复位后这
位是 0,MMU 被禁止。
当 MMU 被禁止时,存储器访问将被按如下处理:
1. 由具体的实现确定当 MMU 被禁止时是否能够允许高速缓存和写缓冲。
当 MMU 被禁止时不能允许高速缓存和写缓冲时,C 和 B 位不起作用。
当 MMU 被禁止时能允许高速缓存和写缓冲时:
i. 访问数据时被认为没有高速缓存和写缓冲( C==0,B==0)
ii. 取指令时:
a) 当系统只有一个唯一的 TLB 时,认为是没有高速缓存。( C==0)
b) 当系统只有独立的指令 TLB 时,认为是有高速缓存。(C==1)
2. 没有存储器访问权限的检查,MMU 也不产生异常信号。
3. 物理地址与虚拟地址相同(即所谓的平坦地址映射模式)。
在允许 MMU 之前,必须在内存中建立适当的转换表,并且所有相关的 CP15 寄存
器要被初始化正确。
注:-------------------
允许和禁止 MMU 直接改变了虚拟地址到物理地址的映射(除非转换表被设定为平
坦地址映射模式)。所以很可能在允许 MMU 时所有的高速缓存需要被刷新。
另外,如果允许 MMU 的指令的物理地址和虚拟地址不同,取指令将变得复杂化。
所以,强烈建议允许 MMU 的指令具有相同的物理地址和虚拟地址。 ------------
--------------
Page 6 of 6
剩余30页未读,继续阅读
















chelseablue1905
- 粉丝: 10
- 资源: 4
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0