3.2 嵌入式系统存储器
本节考试权重:5~6分 重点考存储器分类(特别是FRAM和MRAM)、地址计算、地址映射。填空题必出FRAM/MRAM。
一、存储器层次结构
嵌入式系统的存储器不是平等的,分成若干层次,越靠近CPU速度越快,容量越小,价格越贵。
速度最快,容量最小,最贵
┌───────────────────┐
│ 寄存器 │ ← CPU内部,速度=CPU速度
├───────────────────┤
│ Cache │ ← 片上高速缓存
├───────────────────┤
│ 内存(RAM) │ ← SDRAM/SRAM,程序运行区
├───────────────────┤
│ 外存(Flash) │ ← NOR/NAND Flash,程序存储
└───────────────────┘
速度最慢,容量最大,最便宜
重要考点:嵌入式系统已广泛使用Cache
有些题目会说"嵌入式系统由于资源有限,不使用Cache"——这是错误的! 现代嵌入式处理器(如ARM Cortex系列、S3C2410等)早已普遍集成Cache,用于提升性能。
各层次对比
| 层次 | 类型 | 速度 | 容量范围 | 是否易失 |
|---|---|---|---|---|
| 寄存器 | 触发器 | 最快(1周期) | 几十个,每个几字节 | 是 |
| Cache | SRAM | 很快(几周期) | KB~MB级 | 是 |
| 内存(主存) | DRAM/SDRAM | 较快(几十周期) | MB~GB级 | 是 |
| 外存(辅存) | Flash/SD卡 | 慢(毫秒级) | MB~TB级 | 否 |
二、存储器分类详解
按是否易失分类
存储器
├── 易失性(掉电丢失)
│ ├── SRAM(静态随机存储器)
│ └── DRAM(动态随机存储器)
│ └── SDRAM(同步DRAM,最常见)
└── 非易失性(掉电保留)
├── ROM(只读,固化出厂)
├── Flash(可擦写)
│ ├── NOR Flash
│ └── NAND Flash
├── FRAM(铁电存储器)← 考点
└── MRAM(磁性存储器)← 考点
SRAM vs DRAM
| 对比项 | SRAM | DRAM |
|---|---|---|
| 全称 | Static RAM | Dynamic RAM |
| 存储原理 | 触发器(6个晶体管) | 电容(1个晶体管+1个电容) |
| 需要刷新 | 不需要 | 需要定期刷新 |
| 速度 | 快 | 较慢 |
| 集成度 | 低(每位占用多) | 高(每位占用少) |
| 价格 | 贵 | 便宜 |
| 典型用途 | Cache、寄存器堆 | 主存(SDRAM) |
记忆口诀
S(静态)不需刷,D(动态)要刷新。SRAM稳定、贵、用于Cache;DRAM便宜、大容量、用做主存。
NOR Flash vs NAND Flash
| 对比项 | NOR Flash | NAND Flash |
|---|---|---|
| 读取方式 | 可按字节/字随机读 | 按页(Page)或块(Block)读 |
| 支持XIP | 是(就地执行代码) | 否 |
| 写入速度 | 慢 | 快 |
| 擦除速度 | 慢 | 快 |
| 容量 | 较小(MB级) | 大(GB级) |
| 价格 | 贵 | 便宜 |
| 寿命(擦写次数) | 约10万次 | 约10万次,但块更小 |
| 典型用途 | 存储启动代码 | 存储文件系统、数据 |
XIP(Execute In Place)
XIP = 就地执行,不需要把程序先复制到RAM再执行,直接从Flash里取指令执行。NOR Flash支持XIP,所以常用来存嵌入式系统的Boot代码。
三、FRAM 和 MRAM(填空必考!)
填空必考:FRAM = 铁电存储器,MRAM = 磁性存储器
这两个是考试填空题的热门!每次考试几乎必出,一定要记住全称和特点。
FRAM(铁电存储器)
| 特性 | 说明 |
|---|---|
| 全称 | Ferroelectric RAM(铁电随机存储器) |
| 中文名 | 铁电存储器 |
| 存储原理 | 利用铁电材料的极化方向存储0/1 |
| 是否易失 | 否(非易失性) |
| 读写速度 | 极快(接近SRAM) |
| 功耗 | 低 |
| 擦写寿命 | 极长(可达10^12次) |
| 优势 | 兼具RAM的速度和Flash的非易失性 |
| 典型应用 | 智能电表、POS机、工业控制 |
MRAM(磁性存储器)
| 特性 | 说明 |
|---|---|
| 全称 | Magnetoresistive RAM(磁阻随机存储器) |
| 中文名 | 磁性存储器 |
| 存储原理 | 利用磁隧穿效应和磁化方向存储0/1 |
| 是否易失 | 否(非易失性) |
| 读写速度 | 快 |
| 功耗 | 极低 |
| 优势 | 非易失、低功耗、抗辐射 |
| 典型应用 | 航天器、汽车电子、物联网 |
FRAM vs MRAM vs 传统存储器
| 存储器 | 非易失 | 速度 | 功耗 | 价格 |
|---|---|---|---|---|
| SRAM | 否 | 最快 | 中 | 贵 |
| DRAM | 否 | 快 | 较高(刷新) | 中 |
| NOR Flash | 是 | 读快写慢 | 低 | 中 |
| NAND Flash | 是 | 块读写快 | 低 | 便宜 |
| FRAM | 是 | 接近SRAM快 | 低 | 较贵 |
| MRAM | 是 | 快 | 极低 | 较贵 |
四、存储容量计算
公式
存储容量公式
存储容量 = 2^(地址线条数) × 数据总线位数(单位:bit)
换算为字节:存储容量(Byte) = 2^(地址线条数) × 数据总线位数 ÷ 8
计算示例
例题: 一块SRAM芯片有20根地址线,8根数据线,存储容量是多少?
解答: - 地址线:20根 → 可寻址 2^20 = 1048576 = 1M 个地址 - 数据线:8根 → 每个地址存 8bit = 1字节 - 容量 = 1M × 1B = 1MB
例题2: 一块SDRAM有24根地址线,16根数据线,存储容量是多少?
解答: - 可寻址:2^24 = 16M 个地址 - 每地址:16bit = 2字节 - 容量 = 16M × 2B = 32MB
五、S3C2410存储器地址映射
存储空间划分
S3C2410有8个片选信号(nGCS0~nGCS7),每个片选对应一个32MB的存储bank。
地址空间(32位,共4GB,但实际只用了256MB)
0x00000000 ┌──────────────┐
│ Bank 0 │ nGCS0 ← 通常接NOR Flash(启动ROM)
0x08000000 ├──────────────┤
│ Bank 1 │ nGCS1
0x10000000 ├──────────────┤
│ Bank 2 │ nGCS2 ← AX88796以太网芯片
0x18000000 ├──────────────┤
│ Bank 3 │ nGCS3
0x20000000 ├──────────────┤
│ Bank 4 │ nGCS4
0x28000000 ├──────────────┤
│ Bank 5 │ nGCS5
0x30000000 ├──────────────┤
│ Bank 6 │ nGCS6 ← 通常接SDRAM(内存)
0x38000000 ├──────────────┤
│ Bank 7 │ nGCS7 ← 通常接SDRAM(内存)
0x40000000 └──────────────┘
关键地址记忆
考点:nGCS2 = 0x10000000,接AX88796以太网芯片
- nGCS0 = 0x00000000(启动地址,接NOR Flash)
- nGCS2 = 0x10000000(AX88796以太网芯片接在这里)
- nGCS6/7 = 0x30000000/0x38000000(SDRAM内存)
- 每个bank大小 = 32MB = 0x08000000(相邻bank起始地址相差0x08000000)
地址计算验证
nGCS0 起始 = 0x00000000
nGCS1 起始 = 0x00000000 + 0x08000000 = 0x08000000
nGCS2 起始 = 0x08000000 + 0x08000000 = 0x10000000 ✓
nGCS3 起始 = 0x10000000 + 0x08000000 = 0x18000000
六、本节考题练习
选择题
题1: 以下关于嵌入式系统Cache的说法,正确的是:
A. 嵌入式系统资源有限,不使用Cache B. Cache使用DRAM实现 C. 嵌入式系统已广泛使用Cache以提升性能 ✓ D. Cache比主存慢
解析: 现代嵌入式处理器早已集成Cache,这是提升性能的标准手段。Cache使用SRAM实现(速度快),比主存(DRAM)快得多。
题2: NOR Flash与NAND Flash最主要的区别在于:
A. NOR Flash容量更大 B. NOR Flash支持XIP(就地执行),NAND Flash不支持 ✓ C. NAND Flash读取更慢 D. NOR Flash擦写次数更多
解析: NOR Flash可按字节随机读取,支持XIP(直接从Flash执行代码),这是它最重要的特性,常用于存放启动代码。NAND Flash按块操作,不支持XIP,但容量大、价格低,适合存文件。
题3: S3C2410的存储控制器中,nGCS2对应的起始地址是:
A. 0x00000000 B. 0x08000000 C. 0x10000000 ✓ D. 0x18000000
解析: S3C2410每个bank大小32MB(0x08000000),从0地址开始: nGCS0=0x00000000,nGCS1=0x08000000,nGCS2=0x10000000。
题4: FRAM(铁电存储器)的主要优点是:
A. 容量大,价格便宜 B. 需要刷新但速度快 C. 非易失性且读写速度接近SRAM ✓ D. 只能读不能写
解析: FRAM最大的优点是同时具备非易失性(掉电不丢数据)和接近SRAM的高速读写能力,兼顾了Flash的持久性和SRAM的性能。
填空题
填空1: ____存储器(英文缩写FRAM)利用铁电材料的极化特性存储数据,具有非易失、____、低功耗等特点。
答案: 铁电;读写速度快(接近SRAM)
填空2: ____存储器(英文缩写MRAM)利用磁隧穿效应存储数据,具有非易失、____等特点。
答案: 磁性(磁阻随机);低功耗(抗辐射)
填空3: S3C2410存储控制器有____个bank,每个bank大小为____MB,AX88796以太网芯片接在____片选信号上,起始地址为____。
答案: 8;32;nGCS2;0x10000000
真题演练
以下是NCRE三级嵌入式真题中与本节相关的典型考题:
1. 下面是关于嵌入式系统使用的存储器的叙述,其中错误的是( )。
- A)系统使用的RAM有SRAM、DRAM等多种
- B)Flash存储器分为NOR Flash和NAND Flash两种
- C)FRAM已得到使用
- D)目前还没有使用Cache存储器
答案解析
答:D 在性能较高的嵌入式处理器中都会集成内部Cache,ARM9和ARM11都有Cache存储器。嵌入式处理器内部的Cache采用SRAM(而非DRAM),因此D项说"目前还没有使用Cache存储器"是错误的。
2. 下面关于NOR Flash和NAND Flash的叙述中,错误的是( )。
- A)NOR Flash和NAND Flash是目前市场上两种主要的闪存技术
- B)NAND Flash以页(行)为单位随机存取,在容量、使用寿命等方面有较大优势
- C)NOR Flash写入和擦除速度较慢
- D)数码相机存储卡和U盘中的Flash均采用NOR Flash
答案解析
答:D 数码相机存储卡和U盘中的Flash均采用NAND Flash,而非NOR Flash。NAND Flash在容量、使用寿命和成本方面有较大优势,因此大多作为数据存储器使用。NOR Flash以字节为单位随机存取,适合代码存储和执行。
3. 下面是关于嵌入式系统使用的存储器的叙述,其中错误的是( )。
- A)嵌入式系统使用的存储器以半导体存储器为主
- B)铁电存储器(FRAM)在嵌入式系统已得到应用
- C)静态存储器SRAM是非易失性存储器
- D)动态存储器DRAM是易失性存储器
答案解析
答:C SRAM和DRAM都是易失性存储器,即掉电后信息丢失。非易失性存储器包括EPROM、EEPROM和Flash ROM等,能在断电后仍保存数据。C项说"SRAM是非易失性存储器"是错误的。
4. 【填空题】目前有两种主要的闪存技术,一种是_Flash,其特点是以字节为单位随机存取,另一种是_Flash,以页(行)为单位随机存取。
答案
答:NOR;NAND NOR Flash以字节为单位随机存取,读取速度快,适合代码存储和执行(XIP);NAND Flash以页(行)为单位随机存取,在容量、使用寿命和成本方面有较大优势,常用于大容量数据存储。
上一节:3.1 硬件组成与AMBA总线 | 下一节:3.3 I/O接口与设备