Storage Technology

Flash 存储技术

深入理解非易失性存储的核心原理:从浮栅晶体管到 SSD,从手机存储到企业级数据中心

非易失性 MOSFET 浮栅 NAND / NOR SLC / MLC / TLC / QLC FTL 固件层

Flash 是什么?

Flash(闪存)是一种非易失性半导体存储技术——断电后数据不丢失,且支持电气方式批量擦除,因速度"一闪"而得名。

🔬
物理基础:浮栅 MOSFET
Flash 的核心是一种特殊的 MOSFET 晶体管,其栅极被氧化层包裹,形成"浮栅"(Floating Gate),可以永久俘获电子来表示 0 或 1。
非易失性存储
与 DRAM 不同,Flash 不需要持续供电来保持数据。电子被"困"在浮栅中,可保持 10 年以上数据不丢失。
🗄️
块擦除机制
Flash 无法像 RAM 那样按字节改写。写入前必须先整块擦除(通常 512B~256KB),这一特性深刻影响了 SSD 的设计。
📱
无处不在
你的手机、SSD、U 盘、相机 SD 卡、BIOS 芯片,甚至汽车 ECU,都在用 Flash 存储。全球每年生产超过 300 EB 的 Flash 存储。

存储单元结构

理解 Flash 的关键,是理解浮栅晶体管如何通过隧穿效应(Fowler-Nordheim Tunneling)存储和消除电荷。

Flash 存储单元横截面示意(点击各层查看说明)

P 型硅衬底(Substrate)—— 沟道区域在此形成 源极 Source 漏极 Drain 隧穿氧化层(Tunnel Oxide)~ 8–10nm 浮栅(Floating Gate) 存储电荷的"岛屿",被氧化层完全包围 ← 电子 层间介质(IPD / Inter-Poly Dielectric) 控制栅(Control Gate) 施加高压以注入或抽取电子 字线 WL 位线 BL 位线 BL GND

写入(Program)

控制栅加高正压 (+15~20V),衬底接地,电子通过隧穿效应从沟道注入浮栅。阈值电压升高 → 读取时认为"0"。

擦除(Erase)

衬底加高正压,控制栅接地或负压,电子从浮栅抽出回到衬底。阈值电压降低 → 读取时认为"1"(初始状态)。

读取(Read)

控制栅施加中等电压,通过检测沟道是否导通来判断电荷状态。浮栅有电子 → 高阈值 → 不导通 → "0"。


NOR Flash vs NAND Flash

Flash 技术分为两大家族,在连接方式、性能特点和应用场景上截然不同。

NOR Flash
并联连接 · 可随机字节寻址
每个单元并联到位线 BL T1 T2 T3 T4 GND
读取速度极快(可 XIP)
随机读延迟~70–100ns
写入速度
存储密度
擦除单位扇区(64KB)
典型擦写次数10万~100万次
主要应用BIOS、MCU固件、嵌入式
NAND Flash
串联连接 · 按页/块访问
单元串联成字符串 BL Cell 1 Cell 2 Cell N ↕ 串联 高密度
读取速度较快(不可直接执行)
页读延迟~25–100μs
写入速度快(TLC约500MB/s+)
存储密度高(成本低)
擦除单位块(256KB~4MB)
典型擦写次数TLC约1000次
主要应用SSD、U盘、手机存储

🔑 关键区别记忆法

NOR = 并联 = 可随机字节寻址、可就地执行(XIP),但密度低、价格贵,适合小容量代码存储。
NAND = 串联 = 高密度、低成本、适合大容量数据存储,但只能按页读、按块擦,需要额外的控制器管理。


Flash 读写操作模拟

通过下面的模拟,直观理解 Flash "写入前必须先擦除" 这一核心约束及其原因。

内存块(8个页面,每格代表一个存储页)

操作日志

为什么必须先擦除才能写入? Flash 存储单元只能从 1 写为 0(注入电子),无法从 0 写为 1(必须通过擦除整块抽走所有电子才能恢复到全 1 状态)。这是 Flash 物理特性决定的,与半导体隧穿机制密切相关。


SLC / MLC / TLC / QLC

NAND Flash 根据每个存储单元存储的比特数,分为 SLC、MLC、TLC、QLC 四种,每多存一比特,成本降低但可靠性也随之下降。

每种类型的电压阈值区间(电压越高 = 电子越多)

SLC
0V
"1"
···
4V
"0"
1 bit/cell,2 个电压状态,阈值窗口大、容错强 寿命 10万次↑
MLC
00
01
10
11
2 bit/cell,4 个电压状态,密度翻倍 寿命 3000–10000次
TLC
0
1
2
3
4
5
6
7
3 bit/cell,8 个电压状态,消费级 SSD 主流 寿命 1000–3000次
QLC
16 个电压状态 →
4 bit/cell,16 个电压状态,容量最大但寿命最短 寿命 100–1000次
类型 位/单元 读取速度 写入速度 擦写寿命 成本 典型用途
SLC 1 bit 最快 最快 10万+ 次 最高 工业控制器、企业缓存
MLC(pSLC) 2 bit 3000–10000 次 较高 企业 SSD、高端消费级
TLC 3 bit 中等 中等 1000–3000 次 消费级 SSD、U 盘、手机
QLC 4 bit 较慢 100–1000 次 最低 大容量冷存储 SSD

pSLC 模式(伪 SLC):现代 SSD 控制器会将部分 TLC/QLC 的块临时切换为 SLC 模式运行,作为 SLC 写入缓存,大幅提升突发写入性能。这就是为什么 TLC SSD 在小文件写入时能跑出接近 SLC 的速度,但持续大文件写入会"掉速"的原因。


SSD 架构与关键技术

现代 SSD 不只是堆砌 Flash 颗粒,中间有一层精密的固件层(FTL)和控制器,解决 Flash 的先天局限性。

1
主机接口层(NVMe / SATA / PCIe)
操作系统与 SSD 的通信协议层
点击展开 ↓
NVMe(NVM Express)是专为 Flash 设计的高性能协议,通过 PCIe 4.0×4 可达到 ~7GB/s 的顺序读写。SATA 是传统接口,受限于 600MB/s 带宽,逐渐被 NVMe 取代。NVMe 支持多个命令队列(最多 65535 个),远优于 SATA 的单队列 32 命令。
2
FTL — 闪存转换层(Flash Translation Layer)
核心固件,实现逻辑地址 → 物理地址映射、磨损均衡、垃圾回收
点击展开 ↓

地址映射(LBA→PBA):维护一张映射表(L2P Table),将操作系统看到的逻辑块地址(LBA)映射到实际的物理块地址(PBA)。更新数据时,FTL 将新数据写到新位置,旧位置标记为无效,映射表指向新位置——这就是"Out-of-Place Write"。

磨损均衡(Wear Leveling):Flash 每个块的擦写次数有限。FTL 会均匀分配写入负载,避免某些块过早老化。分为动态(优先写入最少擦写的块)和静态(定期将冷数据搬到磨损较少的块)两种策略。

垃圾回收(GC):随着写入积累,会产生大量"无效页"(逻辑上已更新但物理上还占用空间的旧数据)。GC 把有效数据从混合块中搬走,然后整块擦除,腾出空间。GC 会造成写放大(WAF),是 SSD 性能下降和寿命损耗的主要原因。

3
ECC 纠错层(Error Correction Code)
保障数据可靠性,修正 Flash 随时间出现的比特翻转
点击展开 ↓
Flash 会随着使用和时间出现比特错误(老化、温度、辐射等)。现代 SSD 使用 LDPC(低密度奇偶校验码)纠错算法,可纠正 TLC 中约 0.01% 的错误率。企业级 SSD 还会加入 RAID 保护(跨颗粒冗余)。ECC 解码本身需要计算时间,这也是 Flash 读取延迟的来源之一。
4
DRAM 缓存 / SRAM 缓冲
存放 L2P 映射表、写缓存,加速随机读写
点击展开 ↓
高端 SSD 配备 DRAM(通常 1GB/1TB 比例)存放 L2P 映射表,大幅加速随机读写。无 DRAM 的廉价 SSD(DRAM-less)只能将映射表放在 Flash 自身,随机读性能较差。某些 SSD 采用"HMB(Host Memory Buffer)"技术,借用主机的 DRAM 缓存映射表,是 DRAM-less 和全 DRAM 方案的折中。
5
3D NAND 颗粒阵列
实际存储数据的物理介质,多层堆叠的 Flash 单元
点击展开 ↓
传统 2D(平面)NAND 受光刻极限制约无法继续缩小。3D NAND 将单元垂直堆叠(目前主流 128–232 层,三星已推出 300+ 层),在不缩小面积的情况下大幅提升密度。3D NAND 还带来了额外好处:单元间距更大,电子干扰更少,可靠性反而优于同代 2D NAND。

3D NAND 堆叠结构示意

第 128 层 第 64 层 第 32 层 第 16 层 第 8 层 第 4 层 第 2 层 第 1 层(衬底) ← 更多层 = 更大容量 = 更低成本/bit 垂直方向 通道孔 通道孔

Flash 的应用场景

从毫瓦级的嵌入式设备到数千瓦的数据中心,Flash 存储无处不在。

💻
消费级 SSD
PCIe NVMe M.2 接口,TLC/QLC,顺序读写 3500–7400 MB/s,已全面替代 HDD 作为主存储。
三星 990 ProWD Black SN850X铠侠 Exceria
📱
移动存储(UFS/eMMC)
手机/平板内置存储采用 UFS 3.1/4.0 或 eMMC 5.1,集成控制器,支持多通道并发。
UFS 4.0eMMC 5.1闪迪 iNAND
🏢
企业级 SSD
U.2 / E3.S 规格,配备电容保护防断电丢数据,支持端到端数据完整性,高 IOPS(100万+)。
Intel Optane(已停产)Micron 9400三星 PM9A3
🔧
嵌入式 / NOR Flash
MCU 固件、BIOS/UEFI、网络设备的 bootloader 存储,容量小(1–512 MB)但可就地执行代码(XIP)。
Winbond W25Q旺宏 MX25L华邦 W25N
📷
存储卡(SD/CF)
相机、无人机用 SD/CFexpress 卡,集成 NAND + 控制器,支持高速连拍和 4K/8K 视频录制。
Sony CFexpress闪迪 Extreme ProV90 标准
☁️
全闪存数据中心
超大规模云厂商(AWS、阿里云、腾讯云)大量部署全 Flash 存储阵列,提供毫秒级 IO 延迟。
Pure StorageNetApp AFF华为 OceanStor

Flash 技术时间线

1967
浮栅晶体管的发明
Simon Sze 和 Dawon Kahng 在贝尔实验室发明了浮栅 MOSFET,奠定了 Flash 的物理基础。
1984
Flash 概念提出
东芝的藤尾增岡(Masuoka Fujio)在 IEDM 会议上提出 Flash EEPROM 概念,因擦除速度"一闪而过"得名 Flash。
1988–1989
NOR 与 NAND 分家
Intel 商业化 NOR Flash(1988),东芝发明 NAND Flash(1989)。两条技术路线从此分道扬镳。
2000s
USB 闪存盘 & 数码相机时代
NAND Flash 价格骤降,U 盘、SD 卡、MP3 播放器、数码相机带动消费级 Flash 爆发。
2007–2012
iPhone 与 SSD 革命
iPhone(2007)将 Flash 带入智能手机。同期 SATA SSD 开始替代 HDD,读写速度提升 5–10 倍。
2013–2016
3D NAND 时代到来
三星推出首款 3D V-NAND,颠覆了平面 NAND 的密度极限。同期 NVMe 协议发布,PCIe SSD 速度飞跃。
2020 至今
200+ 层堆叠 & CXL 新时代
3D NAND 突破 200 层(Micron 232L、SK Hynix 238L),QLC 普及,PCIe 5.0 NVMe 读速超 14GB/s。CXL 技术开始模糊内存与存储的边界。

Flash 的先天局限

理解 Flash 的短板,是优化存储系统设计的前提。

⏱️
写入放大(WAF)
因为"块擦除"机制,写入 1 个页可能触发整个块的重写,实际写入物理量远大于逻辑写入量(WAF > 1)。这既消耗寿命,也降低性能。

WAF = 物理写入量 / 逻辑写入量
🔄
擦写次数限制
每个块的 P/E(Program/Erase)循环次数有上限。TLC 约 1000–3000 次,超过后该块报废。控制器通过磨损均衡延长整体寿命,但极端写负载下 SSD 仍会在数年内耗尽。
📉
数据保持衰减
浮栅中的电子会缓慢泄漏(电荷泄漏)。高温加速衰减,断电后长时间存放的 SSD 可能发生数据损坏。断电保存的 Flash 数据建议定期上电刷新。
🔀
写入前必须擦除
Flash 不能原地覆写,每次修改都要"读-改-写"整个块,这导致小块随机写性能差,也是数据库和文件系统需要特别针对 SSD 进行优化的原因(如 WAL、COW 策略)。
🌡️
温度敏感性
过高温度(>70°C)会加速电荷泄漏,降低数据保持时间;过低温度则影响电子隧穿效率。工业级 Flash 需要宽温度范围设计。
断电数据风险
写入过程中断电可能导致页面写入不完整("torn write")。企业级 SSD 配备电容作为"掉电保护",确保缓存中的数据能安全写入 Flash。消费级 SSD 通常无此保护。