2. 存储基础入门
在讨论 eMMC 与文件系统可靠性之前,必须先建立对底层存储介质的正确认知。很多“文件系统损坏”“数据丢失”“设备偶发无法启动”的问题,根源并不在文件系统代码,而在于对半导体存储分类、NAND Flash 物理特性以及 eMMC 封装形态的理解偏差。本节从存储分类出发,逐层下沉到 NAND 的物理约束,再回到 eMMC 这一典型产品形态,帮助读者建立“从晶体管到文件系统”的完整链路认知。
一、半导体存储分类:易失与非易失的分水岭
半导体存储首先按“断电后数据是否保留”分为两大类:易失性存储(Volatile)与非易失性存储(Non-Volatile)。易失性存储以 SRAM、DRAM 为代表,读写速度快、可字节寻址、寿命近乎无限,但断电即失,通常作为 CPU 缓存和运行内存。非易失性存储则包括 ROM、NOR Flash、NAND Flash 以及新型存储(如 3D XPoint、MRAM 等),断电后数据仍能保留,是固件、操作系统和用户数据的最终归宿。
在嵌入式与移动设备中,NOR Flash 与 NAND Flash 是最常见的两种非易失存储。NOR 支持随机访问、可直接执行代码(XIP),但容量小、成本高、写入慢;NAND 则以页为单位读写、以块为单位擦除,容量大、单位成本低、写入速度快,但存在坏块、位翻转和擦写寿命限制。eMMC 正是以 NAND Flash 为存储介质、并集成控制器的一体化封装方案。
二、NAND Flash 物理特性:可靠性问题的源头
NAND Flash 的基本存储单元是浮栅晶体管(Floating Gate Transistor),通过向浮栅注入或移出电荷来表示 0 和 1。这一物理机制决定了 NAND 的几个关键特性:
- 擦除先于写入:NAND 不能像 RAM 一样直接覆盖写。写入前必须先擦除整个块,擦除单位(Block)远大于读写单位(Page),通常一个块包含 64~512 个页。
- 有限擦写寿命:SLC 约 10 万次,MLC 约 3000 次,TLC 约 1000 次,QLC 更低。超过寿命后误码率急剧上升。
- 坏块与位翻转:出厂即存在坏块,使用中也会新增坏块;读取时可能发生随机位翻转,需要 ECC 纠错。
- 读干扰与保持力:频繁读取相邻页会干扰目标页电荷;长期断电后电荷泄漏会导致数据保持力下降。
- 页/块结构:典型页大小 4KB~16KB,块大小 256KB~8MB,另含 OOB(Spare Area)用于存放 ECC、坏块标记和元数据。
这些特性直接决定了 NAND 必须配合控制器进行坏块管理、ECC 纠错、磨损均衡和垃圾回收。裸 NAND 直接跑文件系统几乎必然导致数据损坏,这也是 eMMC 出现的根本原因。
三、eMMC 概念:把控制器和 NAND 封装在一起
eMMC(embedded MultiMediaCard)是由 JEDEC 标准化的嵌入式存储方案,其核心思想是:把 NAND Flash 颗粒与一个专用控制器封装在同一颗 BGA 芯片内,对外提供标准的 MMC/SD 接口。主机侧不再直接面对裸 NAND 的物理复杂性,而是看到一个“块设备”。
eMMC 内部通常包含以下关键模块:
- NAND 阵列:实际存储介质,可能是 SLC、MLC 或 TLC,容量从 4GB 到 512GB 不等。
- 控制器:负责坏块管理、ECC 纠错、磨损均衡、垃圾回收、读干扰管理等。
- FTL(Flash Translation Layer):将主机逻辑地址映射到 NAND 物理地址,屏蔽擦除块与写入页的差异。
- 主机接口:支持 1/4/8-bit 数据总线,速率从 legacy 到 HS400 等模式。
- 分区与 Boot 区:通常包含 Boot Area、RPMB、General Purpose 分区和 User Data 区。
对文件系统而言,eMMC 呈现为一个可随机读写的块设备,但它的底层仍然受 NAND 物理规律支配。因此,文件系统的日志、写顺序、刷盘策略,都会通过 FTL 放大或缓解 NAND 的磨损与掉电风险。
四、典型应用场景与选型对照
eMMC 广泛应用于对成本、体积和可靠性有综合要求的嵌入式设备。下表给出常见场景与关注点的对照:
| 应用场景 | 典型容量 | 关键关注点 | 文件系统建议 |
|---|---|---|---|
| 智能手机 / 平板 | 64GB~512GB | 随机读写性能、掉电一致性 | F2FS / ext4 + 日志 |
| 车机 / 工业网关 | 8GB~64GB | 宽温、长期擦写寿命、坏块增长 | ext4 + 只读根 + 数据分区 |
| 智能电视 / 机顶盒 | 4GB~32GB | 固件升级安全、日志写入量 | UBIFS / ext4 + 双分区 |
| 物联网终端 | 1GB~8GB | 低成本、启动可靠性 | 只读 squashfs + 小数据区 |
五、常见误区与复盘
理解半导体存储分类、NAND 物理特性和 eMMC 封装结构,是后续讨论文件系统可靠性、掉电保护、磨损均衡和坏块策略的基础。只有把物理层的约束看清楚,才能在软件层做出正确的设计取舍。