存储器是计算机系统的核心组件,承担处理器指令与数据的存储、交互功能,其性能、容量与成本直接决定系统整体效率。本文基于ARM官方公开资料,阐述存储器分类、层次化架构、静态随机存取存储器(SRAM)与动态随机存取存储器(DRAM)的工作原理与实现差异、虚拟内存管理机制、地址转换硬件支持,以及直接内存访问(DMA)技术的实现与应用。
一、序
处理器执行应用程序时,需持续获取指令与数据,上述信息必须存储在可被处理器快速寻址的物理存储单元中。多任务环境下,不同程序的指令与数据需实现空间隔离,避免非法访问与数据篡改。存储器技术的演进围绕速度、容量、成本、功耗四大指标展开,不同类型的存储器通过层次化组织,实现存储金字塔结构,兼顾高速访问与大容量存储需求。
在计算机体系结构中,与处理器耦合最紧密的为易失性存储器,包括用于高速缓存的SRAM与用于主存的DRAM,二者构成处理器与外部存储之间的关键桥梁。主存的多任务共享需求催生虚拟内存与地址转换机制,而IO设备与主存的数据传输则依赖DMA降低处理器开销。
二、存储器基础分类

2.1 易失性与非易失性划分
存储器按掉电后数据保持能力分为易失性与非易失性两类。
- 易失性存储器需持续供电维持数据,访问速度快,用于临时存储处理器指令与数据,典型代表为随机存取存储器(RAM)。
- 非易失性存储器无需供电即可保持数据,访问速度较慢,用于长期数据存储,包括只读存储器、闪存与机械存储介质。
2.2 具体存储器类型
易失性存储器包含静态随机存取存储器(SRAM)与动态随机存取存储器(DRAM)。SRAM无需刷新,速度极高,用于处理器片上缓存;DRAM需周期性刷新,密度高、成本低,用于系统主存。
非易失性存储器包括:只读存储器(ROM),出厂时固化数据,不可修改;可擦除可编程只读存储器(EPROM),支持紫外光擦除与重新编程;电可擦除可编程只读存储器(EEPROM),支持电信号擦除与单字节改写;闪存(Flash),按块擦除,容量大、成本低,广泛用于固态硬盘、U盘与嵌入式系统固件存储;机械存储包括硬盘、磁带,容量极大、单位成本最低,用于离线与归档存储。
新型非易失性存储器如F-RAM、M-RAM兼具非易失、高速读写与高耐久特性,逐步应用于嵌入式与工业控制场景。
三、存储器层次结构
计算机系统采用层次化存储架构,以平衡速度、容量与成本,各层级呈现容量递增、速度递减、单位成本递减的规律。

存储器层次的核心逻辑是:将频繁访问的数据置于高速、小容量层级,将不频繁访问的数据置于低速、大容量层级,通过局部性原理提升系统有效访问速度。本文重点讨论与处理器直接交互的易失性存储器,即SRAM与DRAM。
四、静态随机存取存储器(SRAM)
4.1 基本特性
SRAM为静态存储器,在供电持续的条件下可永久保持数据,无需周期性刷新。其单元电路由多个晶体管构成,存储密度低于DRAM,单位成本更高,但访问速度更快,适用于对延迟敏感的片上缓存。
4.2 单元电路结构
标准SRAM单元采用6管(6T)架构,由4个核心晶体管(M1–M4)与2个访问晶体管(M5–M6)组成。M1–M4构成两组交叉耦合反相器,形成双稳态电路,用于存储1比特数据;M5、M6为访问管,由字线(选择信号)控制导通与关断,数据通过位线(bit)与反相位线(bit’)完成读写。
交叉耦合反相器具有两个稳定状态,分别对应逻辑1与逻辑0,只要供电不中断,状态可保持不变。位线与反相位线的差分设计可提升噪声容限,保证读写可靠性。

4.3 读操作流程
SRAM读操作为非破坏性读取,单元内部数据保持不变。

4.4 写操作流程

4.5 阵列组织
SRAM单元按行、列组织为存储阵列,同一行所有单元共享字线,一次可访问整行数据。地址译码器根据输入地址选中对应行,位线放大器完成数据读出与放大。该结构支持并行访问,提升数据吞吐率。

五、动态随机存取存储器(DRAM)
5.1 基本特性
DRAM为动态存储器,数据存储于电容中,因电容存在漏电流,需周期性刷新以维持数据。其单元仅需1个晶体管与1个电容,存储密度远高于SRAM,单位成本低,适用于大容量主存。
5.2 单元电路结构
DRAM单元由1个控制晶体管与1个存储电容构成。晶体管栅极连接字线,源极连接位线,漏极连接存储电容。电容充电代表逻辑1,放电代表逻辑0。字线有效时,晶体管导通,电容与位线连通,完成读写。

5.3 读写与刷新机制
读操作时,字线有效,电容电荷转移至位线,由灵敏放大器检测电平;因读操作会导致电容放电,属于破坏性读取,读取后需立即回写恢复数据。写操作时,位线施加目标电平,电容被充电或放电,完成数据写入。
电容漏电流会导致数据丢失,需周期性刷新。典型刷新周期为7.8ms,刷新操作通过逐行读取并回写实现,刷新期间不响应外部访问。
5.4 同步与速率特性
现代DRAM均为同步DRAM(SDRAM),由系统时钟同步控制,访问时序可预测。双倍数据率(DDR)DRAM在时钟上升沿与下降沿均传输数据,带宽提升至单倍数据率(SDR)的两倍。DDR系列持续迭代,通过提升时钟频率、优化接口与并行传输进一步提升带宽。
5.5 层次化组织
DRAM采用多级组织:单元构成阵列,阵列构成Bank,Bank集成于芯片,多芯片构成Rank。


5.6 性能优化技术
六、存储器管理
6.1 管理必要性
单任务系统中,应用可直接访问物理主存;多任务系统中,直接访问会导致进程间数据泄露、非法篡改与地址冲突。操作系统需提供存储隔离与地址映射,硬件需提供加速支持以降低转换开销。
6.2 分页机制
虚拟内存是实现存储隔离的核心技术,操作系统向应用提供连续的虚拟地址空间,将虚拟地址映射至物理地址。分页是主流映射方式:
虚拟地址分为虚拟页号与页内偏移;地址转换时,虚拟页号索引页表得到物理页帧号,与页内偏移拼接形成物理地址。页表由操作系统维护,支持进程间地址空间隔离,且支持虚拟内存扩展,将部分数据暂存至二级存储。

6.3 多级页表
单级页表在32位/64位系统中体积过大,占用大量内存。多级页表将页表自身分页,形成树形结构:一级页表指向二级页表基址,二级页表指向三级页表,最终级页表指向物理页帧。地址转换需遍历多级页表,即页表遍历,该过程纯软件实现延迟极高,需硬件加速。


七、内存管理单元与地址转换后备缓冲器

7.1 内存管理单元(MMU)
MMU是实现虚拟地址到物理地址转换的专用硬件,集成于处理器内部,

承担以下功能:
7.2 地址转换后备缓冲器(TLB)
TLB是地址转换项的高速缓存,缓存近期使用的虚拟页号—物理页帧号映射,采用全相联结构,支持并行查找。

TLB有效屏蔽页表遍历延迟,使绝大多数地址转换可在单周期完成。
7.3 ARM Cortex‑A9 MMU实现
Cortex‑A9的MMU基于ARMv7‑A虚拟存储架构,支持两级TLB结构:

地址转换流程:
ASID用于区分不同进程的地址空间,减少上下文切换时的TLB刷新开销。
八、直接内存访问(DMA)

8.1 技术动机
处理器参与IO设备与主存的数据传输时,需持续轮询或中断响应,占用内核计算资源,数据路径长、效率低。DMA通过专用硬件接管数据传输,释放处理器执行其他任务。
8.2 工作原理
CPU仅需配置DMA控制器:传输长度、源地址、目的地址、数据宽度、传输模式。配置完成后,DMA控制器接管系统总线,直接在IO设备与主存之间传输数据,传输完成后向CPU发送中断信号。

8.3 传输模式
8.4 系统架构
DMA控制器连接地址总线、数据总线与控制总线,支持多通道、多设备并发传输。现代片上系统将DMA引擎集成至外设控制器,无需独立DMA芯片,提升集成度与传输效率。





