D~DIDI~DIDIDI!!!!

0%

Nand-Flash-基础

概述

NAND Flash 是一种非易失性随机访问存储介质,基于浮栅(Floating Gate)晶体管技术。它是当今最广泛使用的闪存存储技术,广泛应用于 SSD、U盘、存储卡、嵌入式存储(eMMC/UFS)等领域。

基础原理

存储单元结构

NAND Flash 的基本存储单元是浮栅晶体管:

组成部分 功能说明
控制栅极(Control Gate) 施加编程/读取电压
浮栅(Floating Gate) 存储电荷,实现数据保存
隧道氧化层(Tunnel Oxide) 隔离浮栅与衬底,电荷通过量子隧穿效应穿过
源极(Source) 晶体管源端
漏极(Drain) 晶体管漏端
衬底(Substrate) P型硅衬底

数据存储原理

  • 编程(Program):向浮栅注入电荷,提高阈值电压,表示逻辑”0”
  • 擦除(Erase):从浮栅释放电荷,降低阈值电压,表示逻辑”1”
  • 读取(Read):检测阈值电压来判断存储的数据值

注意:NAND Flash 中逻辑”1”表示未编程状态(擦除态),逻辑”0”表示已编程状态。

制造工艺

加工过程

1
沙子(SiO₂) → 提纯 → 单晶硅 → 晶圆(Wafer) → 光刻/蚀刻 → 晶粒(Die) → 封装 → 芯片

一片晶圆可以划分成多个芯片。在芯片未封装前,每一个小块(晶粒/Die)就是一个独立功能的芯片。封装后成为闪存颗粒芯片。

制程演进

制程节点 特征尺寸 代表产品
2D NAND 15-19nm 早期 SSD、存储卡
3D NAND (V-NAND) 32-176层+ 现代 SSD、eMMC 5.1
QLC 3D NAND 96-232层+ 大容量消费级 SSD

芯片组织结构

NAND Flash 芯片采用层次化的组织结构:

1
2
3
4
5
6
7
芯片(Chip/Device)
└── 目标(Target/LUN)
└── 管芯(Die)
└── 平面(Plane)
└── 块(Block)
└── 页(Page)
└── 字节(Byte)

各层级说明

层级 说明 典型规模
芯片(Device) 物理封装单元 1-8 个 Die
管芯(Die) 独立操作单元,共享 I/O 总线 1-4 个 Plane
平面(Plane) 支持多平面并行操作 1024-8192 个 Block
块(Block) 最小擦除单位 64-256 个 Page
页(Page) 最小编程/读取单位 2KB-16KB + Spare Area
Spare Area 存储 ECC、坏块标记等元数据 64-1280 Bytes

操作特性

操作类型 最小单位 典型时间 说明
读取(Read) 页(Page) 25-100μs 可随机读取任意页
编程(Program) 页(Page) 200-2000μs 必须在擦除后的页上编程
擦除(Erase) 块(Block) 1.5-10ms 整块擦除,所有位恢复为”1”

重要约束

  • 编程前必须先擦除(不能直接覆盖写入)
  • 擦除以块为单位,编程以页为单位
  • 同一块内的页必须按顺序编程(不能随机写入)

存储类型

SLC/MLC/TLC/QLC

类型 每单元比特数 电压等级 寿命(P/E次数) 速度 成本
SLC 1 bit 2 60,000-100,000 最快 最高
MLC 2 bits 4 3,000-10,000 较高
TLC 3 bits 8 1,000-3,000 中等 较低
QLC 4 bits 16 100-1,000 较慢 最低
  • SLC(Single-Level Cell):每个单元存储 1 bit,可靠性和速度最高
  • MLC(Multi-Level Cell):每个单元存储 2 bits,性价比较好
  • TLC(Triple-Level Cell):每个单元存储 3 bits,消费级主流
  • QLC(Quad-Level Cell):每个单元存储 4 bits,适合读密集型应用

接口协议

常见 NAND Flash 接口

接口类型 数据线 速度 应用场景
原始 NAND (Raw NAND) 8/16-bit 并行 40-400 MT/s 嵌入式系统直接访问
eMMC 1/4/8-bit 最高 400MB/s (eMMC 5.1) 手机、嵌入式设备
UFS 串行差分 最高 2.9GB/s (UFS 3.1) 高端手机、移动设备
ONFI 8/16-bit 并行 最高 1.2GT/s SSD 控制器
Toggle DDR 8-bit 并行 最高 1.2GT/s SSD 控制器

原始 NAND 信号线

信号 方向 说明
I/O[7:0] 双向 数据/地址/命令复用总线
CLE 输入 命令锁存使能(Command Latch Enable)
ALE 输入 地址锁存使能(Address Latch Enable)
CE# 输入 芯片使能(Chip Enable,低有效)
RE# 输入 读使能(Read Enable,低有效)
WE# 输入 写使能(Write Enable,低有效)
WP# 输入 写保护(Write Protect,低有效)
R/B# 输出 就绪/忙(Ready/Busy,低有效表示忙)

关键技术

坏块管理(Bad Block Management)

NAND Flash 天然存在坏块,需要进行管理:

坏块类型 说明
出厂坏块 制造过程中产生的固有坏块,在 Spare Area 中标记
使用坏块 使用过程中因 P/E 次数耗尽或数据保持失败产生的坏块

磨损均衡(Wear Leveling)

策略 说明
动态磨损均衡 将新数据写入擦写次数最少的空闲块
静态磨损均衡 将很少更新的”冷数据”迁移到擦写次数多的块

纠错编码(ECC)

ECC 类型 纠错能力 适用场景
Hamming 1-bit SLC NAND
BCH 4-72 bit MLC/TLC NAND
LDPC 超强纠错 3D TLC/QLC NAND

闪存转换层(FTL)

FTL(Flash Translation Layer)是 NAND Flash 管理的核心组件:

功能 说明
地址映射 逻辑地址到物理地址的转换
垃圾回收 回收无效页占用的块空间
磨损均衡 均匀分配各块的擦写次数
坏块管理 标记和替换坏块
写放大控制 减少实际写入与逻辑写入的比值

常用操作命令

命令 代码 说明
Read 1st Cycle 0x00 读操作第一个周期
Read 2nd Cycle 0x30 读操作第二个周期
Page Program 1st 0x80 页编程第一个周期
Page Program 2nd 0x10 页编程第二个周期
Block Erase 1st 0x60 块擦除第一个周期
Block Erase 2nd 0xD0 块擦除第二个周期
Read Status 0x70 读取状态寄存器
Read ID 0x90 读取芯片 ID
Reset 0xFF 芯片复位

相关知识

NAND Flash 是现代存储系统的核心技术基石。理解 NAND Flash 的组织结构、操作特性和管理技术,对于 eMMC 存储、SSD 固件开发以及嵌入式系统调试(配合 JTAG/SWD 接口)具有重要意义。本文与 EMMC-基础、JTAG-SWD-DAP 等硬件基础文章共同构成存储与调试的技术知识体系。