首页/计算机组成原理/存储器/固态硬盘SSD原理 🔗 在 Obsidian 中打开
计算机组成原理 · 存储器

固态硬盘SSD原理

重要度 ⭐⭐⭐存储器层次结构SSD固态硬盘nand-flash存储器
速查
SSD 基于 NAND Flash按页读写、按块擦除(先擦后写);随机读取约 0.1ms(比 HDD 快约 100 倍);擦写寿命有限(TLC 约 1000~3000 次),靠 FTL 的磨损均衡与垃圾回收延长寿命。

核心概念

SSD 基本结构

SSD
├── 控制器(FTL 固件)
│   ├── 地址映射表(逻辑→物理)
│   ├── 磨损均衡算法
│   ├── 垃圾回收
│   └── 坏块管理
├── NAND Flash 芯片(多个)
│   ├── Die → Plane → Block → Page
│   └── 页是读写单位,块是擦除单位
├── DRAM 缓存(可选)
└── 接口(SATA/NVMe)
一句话SSD 把「机械寻道」换成「电子访问」:没有磁头移动,随机访问几乎无延迟,但写入受「先擦后写」约束。

NAND Flash 层次结构

层次说明
Page(页)读写的最小单位(4KB/8KB/16KB)
Block(块)擦除的最小单位(128~256 页)
Plane包含多个 Block,可并行操作
Die/Chip一个 Flash 芯片

SSD 关键操作

  • :按页读取,速度快(约 25μs)
  • :按页写入,需先擦除(写入空页)
  • 擦除:按块擦除,将所有位变为 1
  • 写入放大:因先擦后写,实际写入量 > 逻辑写入量
注意页是读写单位、块是擦除单位——块 > 页。想改一页数据,可能要把整个块重写一遍,这就是写入放大的来源。

FTL(Flash Translation Layer)

SSD 控制器中的核心固件:

  • 地址映射:逻辑地址 → 物理地址(类似页表)
  • 磨损均衡:均匀分配擦写次数,延长寿命
  • 垃圾回收:回收无效页所在的块
  • 坏块管理:标记并替换损坏的块

SSD vs HDD

比较项SSDHDD
介质NAND Flash磁性盘片
随机读取约 0.1ms约 10ms
顺序读取约 500MB/s约 200MB/s
抗震动弱(机械部件)
功耗
寿命擦写次数有限机械磨损
成本高(每 GB)低(每 GB)
噪音

关键性质

性质说明
读取速度远快于 HDD,接近 DRAM
写入速度比读取慢,需先擦后写
随机访问几乎无寻道时间(无机械部件)
擦写寿命TLC 约 1000~3000 次,MLC 约 10000 次
写入放大实际写入 > 逻辑写入
掉电保护非易失,数据不丢失

常见考法

考法解题套路
SSD vs HDD 对比速度/功耗/抗震动/寿命/成本
SSD 为什么快无机械寻道时间,随机读取极快
SSD 的写入限制先擦后写,擦写次数有限
FTL 的作用地址映射、磨损均衡、垃圾回收
页 vs 块页是读写单位,块是擦除单位

易错点

必记
  • SSD 的读写单位是「页」,擦除单位是「块」(块 > 页)。
  • SSD 没有磁头寻道时间,但有擦除延迟
  • 写入放大会加速 SSD 老化
  • SSD 不适合频繁小量写入(需整块擦除再写入)。
  • 随机读取性能远优于 HDD 是 SSD 的最大优势。

核心结论

  1. SSD 基于 NAND Flash,无机械部件,随机读取远快于 HDD。
  2. 读按页,写按页(先擦后写),擦按块。
  3. 擦写次数有限,需要磨损均衡和垃圾回收。
  4. FTL 是 SSD 控制器的核心,负责地址映射和寿命管理。
  5. SSD 在随机读取场景优势明显,顺序大文件写入优势较小。

记忆卡片

SSD 的读写单位和擦除单位?
读写按页(Page),擦除按块(Block)。
SSD 为什么比 HDD 快?
无机械寻道时间:随机读取约 0.1ms vs 约 10ms。
FTL 是什么?有什么作用?
Flash 转换层:地址映射、磨损均衡、垃圾回收、坏块管理。
什么是写入放大?
实际 Flash 写入量 > 用户逻辑写入量(因先擦后写、整块重写)。

交互动画 · 页读写 / 块擦除 / 垃圾回收

块 0:4 有效 · 块 1:2 有效 + 2 无效 · 块 2:空闲
点击操作按钮,观察 SSD 的页/块操作与 FTL 行为
初始状态:块 0 满、块 1 部分无效、块 2 空闲
示意图:每块 4 页。橙色=有效页,红色=无效页(需回收),虚线=空闲页;「写页」演示先擦后写,「垃圾回收」把有效页搬到空闲块再擦除旧块,「磨损均衡」统计各块擦写次数。

相关知识点

flash-memory disk-storage

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。