ARM9 MMU与CACHE详解:嵌入式系统存储管理

需积分: 17 3 下载量 33 浏览量 更新于2024-08-23 收藏 726KB PPT 举报
"嵌入式系统及应用-ARM9 MMU与CACHE的讲解,由陈家林于2014年4月分享。" 嵌入式系统中的ARM9处理器具有强大的功能,其中MMU(Memory Management Unit)和CACHE是两个关键组件,用于提升系统的性能和安全性。MMU的主要职责是实现虚拟地址到物理地址的映射,从而让CPU能够高效地访问内存,同时通过权限控制来保护存储区域。CACHE则是通过缓存最近使用的数据,减少处理器与内存之间的通信延迟,提高处理速度。 3.8.1 概述 ARM9架构支持线性地址空间管理,通过MMU的介入,CPU使用虚拟地址执行程序,这些地址在执行时会被转换为实际的物理地址。此外,MMU还负责I/O映射,允许CPU与外部设备交互。同时,它能设置对局部存储访问的权限,防止未经授权的访问。 3.8.2 存储管理 在存储管理中,有三种类型的地址:虚拟地址(VA)、变换地址(MVA)和物理地址(PA)。虚拟地址是CPU执行程序时看到的地址,而变换地址是经过MMU转换后的虚拟地址,通常用于CACHE。物理地址则是内存实际存储的位置。域的概念涉及到VA的划分,TLB(Translation Lookaside Buffer)和CACHE则处理MVA,而AMBA(Advanced Microcontroller Bus Architecture)总线则处理PA,协调不同组件间的通信。 3.8.3 CP15协处理器 CP15是一个关键的协处理器,专门用于存储管理和控制MMU及CACHE。在ARM920T中,它遵循V4版本的规范,包含16个32位寄存器(C0到C15),并且有MCR(Move to Coprocessor Register)和MRC(Move from Coprocessor Register)两条指令,分别用于向和从CP15寄存器传输数据。MCR指令将ARM寄存器的值写入CP15,而MRC则是相反操作。这两个指令通常在系统模式下运行,用户模式下直接执行会引发未定义指令异常,需要通过SWI(Software Interrupt)调用操作系统服务。 3.8.3.1 MCR和MRC指令 MCR指令格式为MCR{<cond>} p15, <opcode1=0>, <Rd>, <CRn>, <CRm>{,<opcode2>}; Rd是ARM寄存器,CRn和CRm是CP15寄存器。MRC指令类似,用于读取CP15寄存器的值。这些指令用于配置和管理MMU和CACHE的相关参数。 编号和基本作用: - 0号寄存器:只读,提供ID和Cache类型信息。 - 1号寄存器:控制位,用于设置MMU、CACHE的属性等,可读写。 - 2号寄存器:存储器保护和控制,设置地址转换表基地址。 - 3号寄存器:内存保护和控制,涉及域访问控制。 - 4号寄存器:保留,可能有特定的用途。 - 5号寄存器:内存保护和控制,可能包含额外的访问控制信息。 总结,嵌入式系统中的ARM9 MMU和CACHE是优化性能、安全性和效率的关键组件。MMU通过地址映射和权限控制提供了灵活的内存管理,而CACHE通过缓存机制减少了数据传输的延迟。通过CP15协处理器及其MCR和MRC指令,开发者可以精确地配置和控制这些功能,以适应不同的应用场景。