--- tags: [数电] type: note source_type: reconstructed created: 2026-08-15 updated: 2026-08-18 aliases: [存储器, RAM, ROM, Flash, DRAM, SRAM] --- # 半导体存储器 > [!note] 对象层 > 学完这篇,你能**判断**: > > 1. SRAM / DRAM / Flash / EEPROM 谁掉电丢数据、谁不丢; > 2. 单片机外扩存储时"字扩展"和"位扩展"怎么接线; > 3. 手册上 `512K × 16` 的容量到底多少字节; > 4. 为什么 Flash 有"擦除寿命"而 SRAM 没有。 > **用生活理解**:存储器像"仓库"。SRAM 是"每个格子有人看着"(6 个晶体管守 1 位,快但贵);DRAM 是"每格一个水桶会漏水"(电容漏电要不断刷新,便宜容量大);Flash 是"可反复写字的黑板"(擦写次数有限);ROM 是"印上去的证书"(出厂固定)。断电后:RAM 全忘(易失),ROM/Flash 不忘(非易失)。 --- ## 一、一句话本质 **半导体存储器分易失(RAM:SRAM/DRAM,靠电源维持)与非易失(ROM 家族:PROM/EPROM/EEPROM/Flash,靠电荷存储)两大阵营;容量扩展用位扩展(加宽数据)与字扩展(加深地址)两种接线。** --- ## 二、速查表(公式与结论) ### 2.1 存储器分类 | 类型 | 掉电保持 | 写入方式 | 特点/用途 | | ----------------- | ----------------- | ----------------- | ----------------------------------------- | | SRAM | ❌ 丢失 | 随时读/写 | 快、贵、无刷新;CPU 缓存、MCU 内部 RAM | | DRAM | ❌ 丢失(需刷新) | 随时读/写 | 慢、便宜、容量大;电脑内存条 | | ROM(掩膜) | ✅ | 出厂固定 | 量产固件 | | PROM | ✅ | 一次性烧写 | 已淘汰 | | EPROM | ✅ | UV 紫外线擦除重写 | 已淘汰(带透明窗) | | EEPROM | ✅ | 电擦写、按字节 | 掉电存参数,如 AT24C02(I2C) | | Flash(NOR/NAND) | ✅ | 电擦写、按块 | 代码存储主流:MCU 内部 Flash、U 盘、SD 卡 | ### 2.2 容量表示 - `512K × 16` = 512K 个地址 × 每个 16 位 = **1 MB 字节**(512×2=1024KB); - 换算:`字长 × 字数 / 8 = 字节数`; - 地址线数 = log₂(字数):512K = 2¹⁹ → 19 根地址线。 ### 2.3 扩展接线法 | 扩展类型 | 目的 | 接线 | 例子 | | -------- | -------------------------- | -------------------------------------------- | -------------------- | | 位扩展 | 加宽数据(增加片数同地址) | 各片**地址线并联**,数据线各取不同位 | 8 片 `1K×1` → `1K×8` | | 字扩展 | 加深地址(增加片数同数据) | 各片**数据线并联**,高位地址经译码选片(CS) | 4 片 `1K×8` → `4K×8` | > 核心:**位扩展看数据线、字扩展看片选(地址译码)**。 ### 2.4 关键参数 | 参数 | 含义 | 影响 | | ------------------------ | ------------------------ | ----------------------------------- | | 存取时间 tACC | 给出地址到数据稳定的时间 | 与 CPU 时序匹配,不够就插等待(WS) | | 刷新周期(DRAM) | 7.8μs~64ms 内必须刷新 | 刷新逻辑复杂化 | | 擦写寿命(Flash/EEPROM) | 典型 10⁴~10⁶ 次 | 频繁写参数要磨损均衡 | | 功耗/待机 | 待机电流 | 电池设备的关键指标 | --- ## 三、判别规则 1. **选型**:要掉电保存 → EEPROM/Flash;要高速缓存 → SRAM;要超大容量便宜 → DRAM。 2. **看数据手册容量**:`字数 × 位数`,先除 8 再乘 → 字节数。 3. **扩展判方向**:数据位不够 → 位扩展(并联地址);容量不够 → 字扩展(译码片选)。 4. **代码还是数据**:MCU 里程序放 NOR Flash(可随机读,可 XIP),U 盘大容量数据放 NAND Flash(页读写,需控制器)。 --- ## 四、易混对比 | 易混点 A | 易混点 B | 关键区别 | | --------- | ---------- | ------------------------------------------------------------------------ | | SRAM | DRAM | SRAM 六管、不需刷新;DRAM 一管一电容、需周期刷新 | | EEPROM | Flash | EEPROM 按字节擦写、慢、寿命长;Flash 按块擦写、快、寿命短 | | NOR Flash | NAND Flash | NOR 可随机读(XIP)、容量小;NAND 页式读写、容量大 | | 位扩展 | 字扩展 | 位扩展所有片**同时工作**(数据拼接);字扩展一次只有**一片**工作(片选) | --- ## 五、典型例题(先想再翻) 1. **容量换算**:某 SRAM 标 `256K × 8`,多少字节?地址线几根? > 答:256K×8 = 256KB;256K = 2¹⁸ → 18 根地址线、8 根数据线。 2. **扩展设计**:用 `64K×8` 的芯片组成 `256K×8` 存储器。 > 答:字扩展 4 片。64K=2¹⁶,用 16 根低地址线接各片,高 2 位地址经 74LS138 译码产生 4 个片选,数据线并联。 3. **陷阱题**:同学说"EEPROM 擦写次数比 Flash 少,所以保存程序用 EEPROM"。 > 答:错。EEPROM 寿命更长但容量小、按字节慢;存程序用 NOR Flash(随机读+大容量)。EEPROM 适合存配置参数。 --- ## 六、完整知识点 ### 6.1 SRAM 单元(六管) 6 个 MOS 管构成一个交叉耦合锁存器 + 两个存取管。速度快、无刷新,但单元面积大 → 成本高。典型:Cache、MCU 片内 RAM。 ### 6.2 DRAM 单元(一管一电容) 电容存电荷表示 1/0,电荷会漏 → **必须刷新**(读-重写周期)。行地址/列地址分时复用(地址多路复用)降低引脚数。容量大、便宜 → 内存条。 ### 6.3 Flash 的原理与寿命 浮栅晶体管(浮栅上电荷决定阈值)→ 通过隧穿写入/擦除。**擦除必须按块**(整块先变 1 再编程),所以"改写一个字节"实际要做读-改-写。寿命源于隧穿对氧化层的损伤 → 磨损均衡算法(FTL)用于 SSD/U 盘。 ### 6.4 用 ROM 实现组合逻辑函数 ROM = 地址译码器 + 或阵列。地址是输入,数据是输出 → 本质就是**真值表查表**:任意组合逻辑函数都能用 ROM 实现(查表 LUT 思想,也是 FPGA 的底层原理)。 ### 6.5 与 CPU 的时序配合 读周期:CPU 发地址 → tACC 后读数据。若存储器慢,CPU 插入等待周期(WSC)或降频。画原理图(外扩存储)时必须核对时序参数表。 ### 6.6 用寄存器实现一块内存(Digital 动手,尚硅谷补充) 为理解内存的本质,尚硅谷先**用 8 个 16bit 寄存器拼出一块 8×16 内存**: - **写**:数据总线 Din 并联到 8 个寄存器,3bit 地址经 **3-8 译码器**生成 en 信号,只打开目标寄存器 → 写入; - **读**:**8 选 1 复用器**(选择端=地址)把对应寄存器的值送到 Dout; - 控制信号:`str`(写允许)、`ld`(输出允许)。 > 这就是"寄存器堆式内存"的骨架:**译码器选地址、复用器选输出**(对应本课 2.3 字扩展的片选思想)。课件明确说"现实中的内存不可能用寄存器这种高成本电路"→ 用 SRAM/DRAM(见 2.1)。 **从"数据存储"到"程序存储"再到"合并单内存"**([[11-从零搭建计算机(下)-控制与指令|数电 11]] 的铺垫): 1. **外部数据存储**:EEPROM 预编辑数据 + **PC 计数器**(寄存器+加法器,每时钟 +1)逐条取数给 ALU; 2. **指令存储**:ALU 的 sel 控制信号就是"指令"——单独加一块 EEPROM 存 sel 序列(加法/减法),与数据 RAM 分开 → **双内存结构**; 3. **合并为一个 RAM**(冯·诺依曼:只有一块内存,指令和数据同存):执行分成**取指/执行两个时钟周期**(state 用 D 触发器在 0/1 间切换),指令寄存器暂存上一周期取到的指令;指令格式为 **操作码(opcode) + 操作数(addr)**。 ![CPU + 总线接口 + RAM/EEPROM 架构](assets/bus_memory_architecture.png) > 与教材的关系:本课"字扩展/位扩展"讲的是**如何把多片存储器接成大内存**;尚硅谷补充的是**用寄存器+译码器/复用器从零实现一块内存**——两者互补,同一存储模型的两面。 --- ## 七、与 PCB 画图的关联 - STM32 外扩 SRAM(FSMC 总线)、EEPROM(AT24C02,I2C)、Flash(W25Qxx,SPI)是原理图常见外设(对应 [[PCB学习笔记/10-项目实战-USB拓展坞|PCB 笔记 10]] 与 STM32 学习笔记 SPI)。 - 片选译码(74LS138)的地址分配 → 存储映射表(哪段地址选哪个芯片)。 - 去耦电容在存储芯片电源脚密集布置(高速切换电流)。 - 上电时序与复位 → 存储初始化(ROM 代码搬移到 RAM 运行)。 > 来源:阎石《数字电子技术基础》第 7 章(半导体存储器);尚硅谷《从零搭建计算机》第 3.3~3.7 节(内存与指令存储)