首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARMv7的内存管理

ARMv7的内存管理

ARMv7有三个系列: ARMv7-A, ARMv7-R, ARMv7-M
ARMv7-A: Application profile, 支持ARM和Thumb指令集, 支持MMU(Memory Management Unit)
ARMv7-R: Real-time profile, 支持ARM和Thumb指令集, 支持MPU(Memory Protection Unit), 无MMU
ARMv7-M: Micro-controller profile, 只支持Thumb指令集, 支持MPU, 无MMU

ARM的内存模式较为简单, 程序中的地址直接为逻辑地址, 内存被分成多个不重叠region区域, 拥有各自的访问控制权限. 在没有MMU的架构上, Region地址范围及权限是预先在硬件中定义的, 如
由在存在MMU的架构上, 不同的Region会

MMU是Memory Management Unit的简称, 是一块芯片, 用来管理内存地址的映射问题. MMU并不是必须的, 比如ARM-R, ARM-M架构, MMU存在的目的是为了实现虚拟内存, 即通过交换frame使SW的寻址空间大于物理内存大小.  在没有MMU的系统里, CPU放到地址总线的地址将直接用于寻址, 反之, 该地址会被送到MMU, 由MMU经过转换得到物理地址然后完成寻址. MMU对地址的转换过程对SW是透明的, 但是SW可能需要在系统启动时设置MMU转换的一些参数, 比如frame表格存放地址, 等等.
在不存在

DRAM,
Dynamic Random Access Memory, 这是目前大多数IT产品用的内存类型, 一般有SDRAM和DDR. DRAM区别于SRAM之处在于构成SDRAM的电子元件会掉电, 需要系统周期性的充电以维持数据. 大部分系统在DMA芯片上集成了SDRAM充电逻辑电路, 通过时钟芯片连接到DMA芯片, 周期性的完成对SDRAM的充电过程. 这一过程对SW也是完全透明的.
继承事业,薪火相传
返回列表