嵌入式系统原理及应用开发_第1页
嵌入式系统原理及应用开发_第2页
嵌入式系统原理及应用开发_第3页
嵌入式系统原理及应用开发_第4页
嵌入式系统原理及应用开发_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章ARM体系结构3.4ARM内存管理单元ARMMMU概述

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

2.控制内存的访问权限

MMU关闭时,虚地址直接输出到物理地址总线。ARMMMU的功能CP15的主要管理和配置功能如下; 页表

TLB(转换旁路缓冲器) 域和访问权限

Cache和写缓冲器 快速上下文切换ARMMMU的功能CP15协处理器的功能模块:功能使用寄存器全局控制寄存器0、1MMU寄存器2、3、4、5、6、8,10以及寄存器1中的部分MPU寄存器2、3、5、6以及寄存器1中的部分Cache和WriteBuffer寄存器7、9FSCE寄存器13测试和时钟控制寄存器15保留寄存器11、12、14ARMMMU的操作MMU的功能相关的CP15中寄存器的描述寄存器主要操作R1使能/禁止MMU、cache、写缓冲R2设置变换表基地址(16k对齐)R3设置16个域的访问权限R8操作TLB功能(无效统一TLB、无效指令或数据TLB)当MMU被禁止的时候存储器按如下处理:根据具体的情况决定是否允许Cache和写缓冲没有存储区访问的权限,MMU也不会产生异常信号物理地址的虚拟地址相同,即平板(flataddressmapping)地址映射模式ARMMMU的操作R1控制寄存器(类型:ARMv3:只写,ARMv4:读写)M(位[0]):允许MMUA(位[1]):允许定位故障检测C(位[2]):允许数据Cache或者统一CacheW(位[3]):允许写缓冲P(位[4]):从26-32位异常处理D(位[5]):从26-32位地址区域L(位[6]):至上一次中止区域B(位[7]):从小端到大端S(位[8]):修改MMU系统ARMMMU的操作R(位[9]):ROM保护状态F(位[10]):控制外协处理器通信速度Z(位[11]):允许分支预测I(位[12]):允许指令CacheV(位[13]):向量地址

(从0x00000000-0x0000001C到0xFFFF0000-0xFFFF001C)RR(位[14]):控制Cache置换算法L4(位[15]):对于ARMv5以后版本,控制向后兼容位[31:16]:保留注意:对于MMU,其实只和CP15的寄存器的0、1、8、9位有关ARMMMU的操作 R2地址变换表基址寄存器(类型:ARMv3:只写,ARMv4:读写)位[31:14]:变换表基地址,定位界限为16KBARMMMU的操作 R3域访问控制寄存器:(类型:ARMv3:只写,ARMv4:读写)数据的含义如下:00不允许访问,任何访问将产生域错误01客户(Client)使用域,根据段和页描述符的访问权限检验10保留11管理(Manager)使用域,不检查访问许可位,任何都不会产生域错误ARMMMU的操作 R6故障地址寄存器:(类型:ARMv3:只读,ARMv4:读写)上一次数据存取中止的地址ARMMMU的操作R5故障状态寄存器:(类型:ARMv3:只读,ARMv4:读写)Bit[8]:0Bits[7:4]:当错误发生时,确定16个域中(D15–D0)哪个被访问。Bits[3:0]:指出试图访问的类型ARMMMU的操作功能如下所示:无效指令TLB

无效指令单一入口无效整个数据TLB

无效数据单一入口功能opcode2CRmData指令无效所有TLB01110MCRp15,0,Rd,c8,c7,0无效单一入口1111虚拟地址MCRp15,0,Rd,c8,c7,1无效整个指令TLB01010MCRp15,0,Rd,c8,c5,0无效指令单一入口1101虚拟地址MCRp15,0,Rd,c8,c5,1无效整个数据TLB01100MCRp15,0,Rd,c8,c6,0无效数据单一入口1110虚拟地址MCRp15,0,Rd,c8,c6,1

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

mcrp15,0,r0,c10,c0,0;数据寄存器

mcrp15,0,r0,c10,c0,1;指令寄存器如果TLB为统一的,寄存器只有1个存在,<opcode2>必须为0。例如:

mcrp15,0,r0,c10,c0,0;统一寄存器辅助寄存器必须为c0ARMMMU的操作ARMMMU的地址转换

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

段(sections),由1MB的块组成 大页(largepages),由64KB的块组成 小页(smallpages),由4KB的块组成 微小页(tinypges),由1KB的块组成页表类型页表单位数页表占用内存支持页的单位一级页表409616k1M粗页表(corasepage)2561k4k或者64k细页表(finepage)10244k1k、4k或者64kARMMMU的地址转换ARMMMU的地址转换第一级描述符ARMMMU的地址转换标志位含义类型[1:0]段、粗页或者细页B[2]写缓冲使能C[3]Cache使能域domain[8:5]16个域中的哪一个,根据CP15的R3AP(仅段描述符)[11:10]存取权限段基地址[31:20]1M对齐粗页基地址[31:10]1K对齐细页基地址[31:12]4K对齐ARMMMU的地址转换MMU二级描述符含义ARMMMU的地址转换段方式ARMMMU的地址转换二级页方式ARMMMU的地址转换二级页方式ARMMMU的地址转换存储权限ARMMMU的地址转换AP(Accesspermissions,访问权限),访问权限需要结合CP15寄存器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论