NOR Flash 与 NAND Flash 是当今电子领域两种主流的非易失性存储器,即使在断电的情况下,它们也能确保数据不会丢失。这两种存储器虽然均基于浮栅晶体管结构,但在设计、性能和应用场景上存在显著差异。
存储结构和访问方式 NOR Flash:采用并行结构,其存储单元独立连接,这种结构使得它支持随机访问,就像内存一样,能够直接通过地址线读取任意字节的数据。而且,它具备芯片内执行(XIP)的特性,代码可直接在 NOR 上运行,无需加载到 RAM,这一特性使其非常适合对实时性要求高的场景,例如启动代码的运行。
NAND Flash:采用串行结构,单元串联成链,因此需要按页(Page,通常 4KB)或块(Block,128KB–4MB) 顺序访问。同时,它依赖专用控制器来管理寻址,接口较为复杂,例如采用 8/16 位复用总线。
性能对比 指标NOR FlashNAND Flash
读取速度快(随机读取 50–100ns)慢(页读取 25–50μs,比 NOR 慢千倍)
写入 / 擦除速度慢(擦除需 5ms–1s,需先全写 0)快(擦除仅 2–4ms,支持批量操作)
擦除单位较大(64–256KB)较小(8–32KB),更灵活
容量与成本
NOR Flash:容量通常较小,一般在 1MB–1GB 之间,这是因为其单元独立连接导致密度较低。同时,其成本较高,单位容量价格是 NAND 的 10–20 倍。
NAND Flash:具有大容量的优势,可达 GB–TB 级,这得益于其单元尺寸小且支持 3D 堆叠技术,例如 238 层技术。而且成本极低,像 QLC 类型低至 $0.03/GB。
可靠性与寿命 可靠性:NOR Flash 坏块极少,几乎无需纠错(ECC),数据保留时间可达 20 年;而 NAND Flash 出厂坏块率在 1%–2%,需要 ECC 和坏块表(BBM)进行管理,位翻转现象更为频繁。
寿命:NOR Flash 的擦写次数约为 10 万次(SLC 类型);NAND Flash 的 SLC 类型擦写次数也可达 10 万次,但 MLC/TLC 类型则降至 3 千–500 次。
接口与易用性 NOR Flash:采用 SRAM 接口,地址 / 数据线分离,可直接挂载 CPU 总线,无需驱动即可运行代码,使用起来较为方便。
NAND Flash:接口较为复杂,如 ONFI/Toggle 等,需要 MTD 驱动、FTL 层(逻辑地址映射)以及磨损均衡算法。不过,它升级方便,接口标准统一,容量扩展灵活。
典型应用场景 场景推荐类型原因 嵌入式启动代码(BIOS/U-Boot)NOR Flash ?支持 XIP,快速随机读取
实时操作系统(RTOS)固件NOR Flash ?高可靠性,低延迟
大容量存储(SSD/U 盘 / 手机)NAND Flash ?高密度、低成本、高速写入
工业传感器日志记录NAND Flash ?顺序写入高效,容量需求大
总结 在选择存储器时,如果需要直接执行代码、实现快速启动(如汽车 ECU)、对小容量(≤1GB)有需求且优先考虑高可靠性,那么 NOR Flash 是较好的选择;如果需要大容量存储(用于存储数据或媒体文件)、对成本敏感且能够容忍复杂的控制器(如 SSD 中的 FTL),则 NAND Flash 更为合适。在现代系统中,常常会结合使用两者,利用 NOR Flash 存储引导代码,NAND Flash 存储主数据,以兼顾性能与成本。从技术演进来看,NOR 正朝着 40nm 以下工艺发展,容量有望提升至 4Gb;而 NAND 则通过 3D 堆叠技术不断突破 TB 级瓶颈。
