ARM中MMU的作用
2015-11-14 20:22
232 查看
⑴.MMU的使用 MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。 MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由 MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。 MMU的两个主要功能是: 1.将虚地址转换成物理地址。 2.控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。 在实践中,使用MMU解决了如下几个问题: ①使用DRAM作为大容量存储器时,如果DRAM的物理地址不连续,这将给程序的编写调试造成极大不便,而适当配置MMU可将其转换成虚拟地址连续的空间。 ②ARM内核的中断向量表要求放在0地址,对于ROM在0地址的情况,无法调试中断服务程序,所以在调试阶段有必要将可读写的存储器空间映射到0地址。 ③系统的某些地址段是不允许被访问的,否则会产生不可预料的后果,为了避免这类错误,可以通过MMU匹配表的设置将这些地址段设为用户不可存取类型。 启动程序中生成的匹配表中包含地址映射,存储页大小(1M,64K,或4K)以及是否允许存取等信息。 例如:目标板上的16兆DRAM的物理地址区间为0xc000,0000~0xc07f,ffff;0xc100,0000~0xc17f,ffff;16兆ROM的虚拟地址区间为:0x0000,0000~0x00ff,ffff。匹配表配置如下: 可以看到左边是连续的虚拟地址空间,右边是不连续的物理地址空间,而且将DRAM映射到了0地址区间。 MMU通过虚拟地址和页面表位置信息,按照转换逻辑获得对应物理地址,输出到地址总线上。 应注意到的是使能MMU后,程序继续运行,但是对于程序员来说程序计数器的指针已经改变,指向了ROM所对应的虚拟地址。 |
相关文章推荐
- 学习SystemC应具备的C++基本语法
- 嵌入式Linux之我行——ARM MMU工作原理剖析
- poj3321 Apple Tree
- ARM9学习笔记之——MMU
- list在codeblocks和vs2013中编译提示不同
- centos7 安装 pip
- MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
- 江苏电信2016校招面经
- 242 Valid Anagram
- java内存模型-对long和double型变量的特殊规则
- Intent笔记
- java io流 复制文本和媒体文件(TextCopy,MusicCopy)
- 【数据库2】创建与管理数据库表
- 171 Excel Sheet Column Number
- orang's 一个操作系统 主机win7 64位,虚拟机LINUX时的一些注意事项
- RMQ(Range Minimum Query)问题(转)
- HDU 3416 Marriage Match IV
- 217 Contains Duplicate
- 226 Invert Binary Tree
- 1010. Radix (25)