
摘要SSD 没有机械零件却能高速读写数据秘密就在于 NAND 闪存芯片。本文从浮栅晶体管出发拆解 NAND 闪存如何用电荷存储 0 和 1以及 Program、Read、Erase 三大操作的底层原理。一、从硬盘到闪存存储介质的革命在机械硬盘HDD中数据存储在高速旋转的磁盘上通过磁头改变磁性颗粒的极性来表示 0 和 1。这种结构天生受限于物理转速5400/7200 RPM随机读写延迟在毫秒级。SSD 彻底抛弃了机械结构数据存储在半导体芯片中——这就是NAND 闪存。它带来三个根本性变化特性HDDNAND SSD存储介质磁性盘片浮栅/电荷捕获晶体管读写延迟~5-10 ms~25-100 μs抗震性差有机械运动极好纯固态数据保持磁性可长期保持需定期刷新电荷会泄漏关键洞察NAND 闪存的非易失性断电不丢数据是所有 SSD 应用的基石。二、NAND 闪存的最小单元浮栅晶体管Floating Gate Transistor2.1 结构解析NAND 闪存的基本存储单元是一个特殊的 MOS 晶体管称为浮栅晶体管Floating Gate Transistor, FG。它的结构比普通的逻辑晶体管多了一层浮栅┌─────────────────────────┐ │ Control Gate │ ← 控制栅施加电压的端子 ├──── IP Interpoly ────────┤ ← 绝缘层ONO氧化-氮化硅-氧化 │ Floating Gate (FG) │ ← 浮栅被绝缘体包围存储电荷 ├──── Tunnel Oxide ────────┤ ← 隧穿氧化层~8-10nm 极薄绝缘层 │ Silicon Substrate │ ← 硅基底沟道区 └─────────────────────────┘核心要点浮栅被绝缘材料完全包围电子一旦注入就很难逃逸——这就是 NAND 能断电保持数据的物理原理。2.2 数据如何存储电荷 信息存储数据的过程就是向浮栅注入或移除电子的过程# 简化的状态表示defread_cell(floating_gate):读取一个闪存单元的状态iffloating_gate.has_electrons():# 浮栅中有电子 → 阈值电压升高 → 判定为逻辑 0编程态return0# Programmed stateelse:# 浮栅中无电子 → 阈值电压正常 → 判定为逻辑 1擦除态return1# Erased state# 注意NAND 的逻辑是反相的# 有电子 0编程后无电子 1擦除后⚠️反直觉设计NAND 闪存出厂默认状态是全 1擦除态写入数据是把 1 变成 0。这就是为什么 SSD 的 TRIM 和垃圾回收机制如此重要——后面几期会详细讲解。三、三大核心操作Program、Read、Erase3.1 Program编程/写入—— 把电子灌进浮栅编程使用F-N 隧穿效应Fowler-Nordheim Tunneling在控制栅Control Gate施加高正电压~15-20V硅基底接地0V强电场使电子获得足够能量隧穿过极薄的隧穿氧化层电子被捕获在浮栅中编程过程示意 Control Gate: 20V ████████████████ ↓↓↓ F-N隧穿 ↓↓↓ Floating Gate: 捕获电子 e⁻e⁻e⁻ ↑↑↑ 隧穿氧化层 ↑↑↑ Substrate: 0V (接地)编程是逐页Page进行的一个 Page 通常为 4KB-16KB。3.2 Read读取—— 检测浮栅有没有电子读取操作不会改变浮栅中的电荷状态非破坏性读取在控制栅施加一个参考电压Vref检测晶体管是否导通导通→ 阈值电压低 → 浮栅无电子 → 数据为1截止→ 阈值电压高 → 浮栅有电子 → 数据为0# 读取操作的简化逻辑defread_nand_cell(cell,vref3.0): vref: 参考电压Read Verify Voltage 如果 cell 的 Vth vref → 晶体管不导通 → 输出 0 如果 cell 的 Vth vref → 晶体管导通 → 输出 1 vthcell.threshold_voltage# 当前单元的阈值电压ifvthvref:return0# 编程态电子在浮栅中else:return1# 擦除态浮栅为空3.3 Erase擦除—— 把电子拉出浮栅擦除使用带间隧穿Band-to-Band Tunneling方向与编程相反在硅基底施加高正电压~20V控制栅接地或负电压电子被拉出浮栅回到基底擦除是按块Block进行的一个 Block 包含数百到数千个 Page操作粒度速度对寿命的影响ProgramPage4-16KB~数百 μs每次写入消耗寿命ReadPage4-16KB~数十 μs几乎无损耗EraseBlock2-8MB~数 ms每次擦除消耗寿命最重要的规则NAND 闪存不能覆盖写入。要修改数据必须先擦除整个 Block再重新编程。这就是 SSD 控制器必须实现垃圾回收GC和磨损均衡WL的根本原因。四、NAND 闪存的物理限制与磨损机制4.1 为什么 NAND 有寿命限制每次 Program/Erase 循环P/E Cycle高电压都会对隧穿氧化层造成微小的损伤新单元 SiO₂ 完美绝缘 → 电子自由隧穿 ✅ 1000次后 SiO₂ 出现缺陷态 → 隧穿效率下降 ⚠️ 10000次后 SiO₂ 严重退化 → 电子泄漏/保持不住 ❌这就是P/E 寿命Endurance的物理根源。不同类型的 NAND 有不同的 P/E 寿命Day 3 详讲。4.2 数据保持问题Data Retention浮栅中的电子会随时间自然泄漏尤其是高温环境下编程后 浮栅电子量 ████████████ → Vth 4.5V稳定为0 1年后 浮栅电子量 ████████░░░░ → Vth 3.2V仍可读取 3年后 浮栅电子量 █████░░░░░░░ → Vth 2.0V读取可能出错这就是为什么SSD 需要定期通电让控制器做 Read Scrubbing发现并修正弱数据长期断电存放的 SSD 可能出现数据丢失企业级 SSD 会监控温度-时间关系来主动刷新数据五、NAND 的组织结构Channel、Die、Plane、Block、PageNAND 闪存不是简单的线性数组它有严格的层级结构SSD 整体 └── Channel通道× 4~8 ← 并行总线每个通道独立传输 └── Die裸片× 1~8 ← 每个通道上挂载多个 Die └── Plane平面× 1~4 ← 每个 Die 内的独立区域 └── Block块× 256~2048 ← 最小擦除单位 └── Page页× 128~512 ← 最小读写单位 └── Cell单元 ← 最小存储单位1个晶体管为什么要这么多层级答案是并行度# 单通道 vs 多通道的吞吐量对比defcalc_throughput(channels,dies_per_ch,plane_size_kb):计算 SSD 的最大并行吞吐量# 同一时刻每个通道的每个 Die 可以独立操作total_parallelchannels*dies_per_ch throughputtotal_parallel*plane_size_kb# KB per operationreturnthroughput# 例8通道 × 4Die × 8MB Planeprint(calc_throughput(8,4,8192))# 262,144 KB ≈ 256 MB/次操作这就是为什么通道数Channel Count是衡量 SSD 性能的关键指标——通道越多并行度越高吞吐越大。六、NAND 闪存的接口协议Toggle DDR 与 ONFINAND 芯片与 SSD 控制器之间的通信遵循两种主要协议协议全称主导厂商特点Toggle DDRToggle Mode DDR三星、SK海力士源同步时钟高速率ONFIOpen NAND Flash Interface美光、西部数据开放标准兼容性广两种协议的最新版本都达到了2400 MT/s以上的传输速率但它们是互不兼容的。七、3D NAND从平面到立体的飞跃传统 2D NAND 的瓶颈在于光刻精度——单元越小干扰越大。行业在 2015 年转向3D NAND通过堆叠层数来增加容量2D NAND俯视 3D NAND侧视 ┌──┬──┬──┬──┐ ┌──┐ ← Layer 128 │C1│C2│C3│C4│ ├──┤ ← Layer 127 ├──┼──┼──┼──┤ ├──┤ ← Layer 126 │C5│C6│C7│C8│ │..│ └──┴──┴──┴──┘ └──┘ ← Layer 1 所有单元在同一平面 单元垂直堆叠代际层数代表产品单Die容量早期3D32L三星V-NAND 1代256Gb中期64-96L美光96L TLC512Gb-1Tb当代128-236L长江存储X3-9070512Gb-1Tb前沿300L三星V9/美光G91Tb3D NAND 的核心优势不靠缩小单元尺寸而是靠增加层数来提升密度同时单元间的干扰大幅降低寿命和性能反而更好。当日知识点小结知识点要点存储单元浮栅晶体管通过捕获/释放电子表示 0/1反相逻辑无电子1擦除态有电子0编程态编程F-N 隧穿注入电子按 Page 粒度擦除反向隧穿移除电子按 Block 粒度不可覆盖写必须先擦后写 → 引出 GC 和 WL 机制磨损机制隧穿氧化层退化 → P/E 寿命限制数据保持电荷会泄漏 → 需定期 Read Scrubbing层级结构Channel Die Plane Block Page Cell3D NAND堆叠层数替代缩小尺寸密度↑干扰↓思考题为什么 NAND 闪存不能覆盖写入这个特性给 SSD 控制器设计带来了巨大的复杂性提示想想如果操作系统要修改一个 4KB 文件SSD 内部需要做什么。一块 SSD 在温暖潮湿的环境中长期不通电和放在干燥阴凉处不通电哪个更容易丢数据为什么提示从电荷泄漏的物理机制思考。3D NAND 从 64 层升级到 236 层单层单元尺寸反而变大了但 SSD 容量却在增长。请解释这背后的原理。