news 2026/8/22 13:17:24

NAND闪存工作原理——SSD数据是如何存储的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NAND闪存工作原理——SSD数据是如何存储的?

摘要: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 Transistor)

2.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、Erase

3.1 Program(编程/写入)—— 把电子"灌"进浮栅

编程使用F-N 隧穿效应(Fowler-Nordheim Tunneling)

  1. 控制栅(Control Gate)施加高正电压(~15-20V)
  2. 硅基底接地(0V)
  3. 强电场使电子获得足够能量,"隧穿"过极薄的隧穿氧化层
  4. 电子被捕获在浮栅中
编程过程示意: Control Gate: +20V ████████████████ ↓↓↓ F-N隧穿 ↓↓↓ Floating Gate: 捕获电子 e⁻e⁻e⁻ ↑↑↑ 隧穿氧化层 ↑↑↑ Substrate: 0V (接地)

编程是逐页(Page)进行的,一个 Page 通常为 4KB-16KB。

3.2 Read(读取)—— 检测浮栅有没有电子

读取操作不会改变浮栅中的电荷状态(非破坏性读取):

  1. 在控制栅施加一个参考电压(Vref)
  2. 检测晶体管是否导通:
    • 导通→ 阈值电压低 → 浮栅无电子 → 数据为1
    • 截止→ 阈值电压高 → 浮栅有电子 → 数据为0
# 读取操作的简化逻辑defread_nand_cell(cell,vref=3.0):""" vref: 参考电压(Read Verify Voltage) 如果 cell 的 Vth > vref → 晶体管不导通 → 输出 0 如果 cell 的 Vth < vref → 晶体管导通 → 输出 1 """vth=cell.threshold_voltage# 当前单元的阈值电压ifvth>vref:return0# 编程态(电子在浮栅中)else:return1# 擦除态(浮栅为空)

3.3 Erase(擦除)—— 把电子"拉"出浮栅

擦除使用带间隧穿(Band-to-Band Tunneling),方向与编程相反:

  1. 硅基底施加高正电压(~20V)
  2. 控制栅接地或负电压
  3. 电子被"拉"出浮栅,回到基底

擦除是按块(Block)进行的,一个 Block 包含数百到数千个 Page:

操作粒度速度对寿命的影响
ProgramPage(4-16KB)~数百 μs每次写入消耗寿命
ReadPage(4-16KB)~数十 μs几乎无损耗
EraseBlock(2-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、Page

NAND 闪存不是简单的线性数组,它有严格的层级结构

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_parallel=channels*dies_per_ch throughput=total_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 与 ONFI

NAND 芯片与 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/美光G91Tb+

🔑3D NAND 的核心优势:不靠缩小单元尺寸,而是靠增加层数来提升密度,同时单元间的干扰大幅降低,寿命和性能反而更好。


当日知识点小结

知识点要点
存储单元浮栅晶体管,通过捕获/释放电子表示 0/1
反相逻辑无电子=1(擦除态),有电子=0(编程态)
编程F-N 隧穿注入电子,按 Page 粒度
擦除反向隧穿移除电子,按 Block 粒度
不可覆盖写必须先擦后写 → 引出 GC 和 WL 机制
磨损机制隧穿氧化层退化 → P/E 寿命限制
数据保持电荷会泄漏 → 需定期 Read Scrubbing
层级结构Channel > Die > Plane > Block > Page > Cell
3D NAND堆叠层数替代缩小尺寸,密度↑干扰↓

思考题

  1. 为什么 NAND 闪存"不能覆盖写入"这个特性,给 SSD 控制器设计带来了巨大的复杂性?提示:想想如果操作系统要修改一个 4KB 文件,SSD 内部需要做什么。

  2. 一块 SSD 在温暖潮湿的环境中长期不通电,和放在干燥阴凉处不通电,哪个更容易丢数据?为什么?提示:从电荷泄漏的物理机制思考。

  3. 3D NAND 从 64 层升级到 236 层,单层单元尺寸反而变大了,但 SSD 容量却在增长。请解释这背后的原理。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 13:10:09

SDRangel SDR信号接收与频谱分析快速上手

SDRangel SDR信号接收与频谱分析快速上手 【免费下载链接】sdrangel SDR Rx/Tx software for Airspy, Airspy HF, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay and FunCube 项目地址: https://gitcode.com/gh_mirrors/sd/sdrangel 晚上十点半&#xff0c;你把…

作者头像 李华
网站建设 2026/8/22 13:08:54

一台电脑两台手柄?任意 PC 游戏双人分屏的完整指南

一台电脑两台手柄&#xff1f;任意 PC 游戏双人分屏的完整指南 【免费下载链接】UniversalSplitScreen Split screen multiplayer for any game with multiple keyboards, mice and controllers. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalSplitScreen Uni…

作者头像 李华
网站建设 2026/8/22 13:08:23

跑通多模态情感分析:Multimodal-Sentiment-Analysis 图文融合实战指南

跑通多模态情感分析&#xff1a;Multimodal-Sentiment-Analysis 图文融合实战指南 【免费下载链接】Multimodal-Sentiment-Analysis 多模态情感分析——基于BERTResNet的多种融合方法 项目地址: https://gitcode.com/gh_mirrors/mu/Multimodal-Sentiment-Analysis 用户发…

作者头像 李华
网站建设 2026/8/22 12:52:04

题解:洛谷 P3184 [USACO16DEC] Counting Haybales S

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

作者头像 李华