由上篇我们知道:机械硬盘的内部结构主要由马达、磁盘、磁头臂、磁头组成。机械硬盘在工作的时候,磁头会悬浮于磁盘面上方几纳米的距离。
磁盘面上有很多的小格子,小格子内有很多的小磁粒。而磁头也可以利用其变化的磁场改变磁盘磁粒的极性,这样就做到写入和改写磁盘数据了。
为了能够精准定位数据所在磁盘面上的位置,磁盘本身又被划分了无数的扇区和磁道。
假设:数据存放在磁盘的第五磁道的第7扇区上:
那磁头就会先摆动到第5磁道上空,然后等待第七扇区转过来。当第七扇区转到磁头下面的时候,才可以读取数据,这就是机械硬盘的工作原理。
也正是因为机械硬盘是利用磁性极粒来存储数据的,所以机械硬盘通常又被称作磁盘。而固态硬盘同机械硬盘的工作原理完全不同,固态硬盘采用纯电子结构。
固态硬盘(Solid State Drive),简称SSD(固盘),是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)以及缓存单元组成。
区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。
二、SSD的组成
虽然SSD外表看起来只是一个方方正正的硬盘盒子,但内部结构却十分精妙,主要由以下几个部分组成:
1. 主控芯片
数据调度:将用户请求映射到物理存储地址。
纠错:使用BCH或LDPC码修复数据错误。
磨损均衡:避免特定存储单元过度擦写,延长寿命。
垃圾回收:回收无效数据块,释放存储空间。
主流主控厂商包括Marvell、三星、慧荣等,不同主控的性能差异直接影响SSD的读写速度和稳定性。
2. 闪存颗粒
作为硬盘,存储单元绝对是核心器件。在固态硬盘里面,闪存颗粒则替代了机械磁盘成为了存储单元。
闪存(Flash Memory)本质上是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位。
这是SSD真正存储数据的地方。根据技术不同,NAND闪存分为以下几类:
SLC(Single-Level Cell):每个单元存储1比特,速度快,寿命长,但成本高。
MLC(Multi-Level Cell):每单元存2比特,价格与性能折中。
TLC(Triple-Level Cell):存3比特,容量更大,寿命略短。
QLC(Quad-Level Cell):存4比特,主要用于性价比产品。
当前,固态硬盘市场中,主流的闪存颗粒厂商主要有toshiba东芝、samsung三星、Intel英特尔、micron美光、skhynix海力士、sandisk闪迪等。
由于闪存颗粒是固态硬盘中的核心器件,也是主要的存储单元,因而它的制造成本占据了整个产品的70%以上的比重,极端一点说,选择固态硬盘实际上就是在选择闪存颗粒。
一般来说,SLC用于企业级产品,而消费级SSD常用TLC或QLC。
3. DRAM缓存
控制器会使用缓存来暂时存储数据,提高读写效率。
由于固态硬盘内部的磨损机制,就导致固态硬盘在读写小文件和常用文件时,会不断进行数据的整块的写入缓存,然而导出到闪存颗粒,这个过程需要大量缓存维系。
特别是在进行大数量级的碎片文件的读写进程,高缓存的作用更是明显。
这也解释了为什么没有缓存芯片的固态硬盘在用了一段时间后,开始掉速。
三、SSD的核心技术原理
3.1. NAND闪存如何存储数据?
NAND闪存的基本单位是存储单元(Cell),每个单元是一个浮栅晶体管,靠“是否存储电荷”来表示数据的0或1。
浮栅晶体管由存储电子的浮栅层、控制极G、衬底P、源极D与漏极S组成,如下图
我们将浮栅层中的电子数量高于一定值计为0,低于一定值计为1。
浮栅晶体管的工作原理
1.写入数据
写入数据时,需要在控制极G施加一个高压,这样电子就可以穿过隧穿层,进入浮栅层,因为有绝缘层的存在,电子不能再向前移动了,就被囚禁在了浮栅层。
而当我们把电压撤去,这些电子依然会被囚禁在浮栅层,因为隧穿层本质上也相当于绝缘体,所以电子们只能被关押着,这样一位数据就被存储进去了。
这些电子能被“囚禁”多长时间也就是固态硬盘能够存储数据的年限,一般一块新的固态硬盘能够保存数据的年限为10年。因为随着时间的流逝,不断地有电子“越狱”成功。 当“越狱”的电子多到一定的数量,我们保存的数据就不见了。
2.擦除数据
我们擦除固态硬盘上的数据其实就是在释放电子,即在衬底上施加高压,这样电子被吸出来,信息也就被擦除了。
3.读取数据
当浮栅层中不存在电子时(存储数据为1),我们给控制级一个低压,由于电压低,电子只能被吸引到靠近隧穿层的位置,却无法穿过隧穿层,
因而源极漏极可以导通,形成电流。如果检测到电流,那么说明它没有储存电子,则读取数据为1。
当浮栅层中存在电子时(存储数据为0),我们还给控制极一个低压,由于浮栅层里面的电子对这些电子有排斥作用,所以电子无法被吸引到靠近隧穿层的位置,
源极漏极不会导通,不会形成电流。如果无法检测到电流,那么说明浮栅层储存一定量电子,则读取数据为0。
无数的浮栅晶体管堆叠在一块就可以存储大量的0和1,它们就类似于图书馆当中的书架一样,存储着无限的0101数据。
4.以TLC为例
每个单元可以表示8种不同的电压状态,编码为000~111。这种方式大幅提升了存储密度,但也使得写入变慢、寿命缩短。
3.2. 为什么SSD写入比读取慢?
SSD写入数据要经过两个步骤:
擦除:NAND闪存只能以“块”为单位擦除,每个块内包含多个“页”。
写入:只能对空白页写入数据,不能覆盖。
这意味着在修改数据之前,必须先读取整个块、修改其中的数据、擦除原块、再重新写入。这个过程叫写放大(Write Amplification)。
3.3. 垃圾回收
由于写入数据只能落在“空页”,而删除操作只是标记为“无效”,SSD 控制器需要定期清理这些无效页。
原理:
找到包含大量无效页的块;
将其中有效数据拷贝到新块;
擦除旧块;
释放空间。
主动 vs 被动 GC
主动GC:设备空闲时在后台执行;
被动GC:写入空间不足时触发,可能引发性能抖动。
为了避免写放大对性能的影响,SSD会在后台自动进行“垃圾回收”——把有效数据从旧块复制出来,把无效数据擦除,腾出空间供写入。
这也解释了为什么SSD在使用一段时间后写入速度会下降。
3.4. 磨损均衡(Wear Leveling)
SSD使用的NAND闪存有写入寿命限制。每个块(Block)大约只能擦写几千次(例如TLC约3000次,QLC更低),超过这个次数,数据就容易丢失或写入失败。
如果你频繁对某些文件(如日志、缓存)读写,而这些数据总是落在某些块上,那么这些块就会提前老化失效,即便整块SSD还有大面积“健康”的空间,也可能因此提前报废。
NAND闪存为了防止某些块频繁写入而过早损坏,控制器会均匀地分配写入任务,使得所有存储块磨损均衡,延长整盘寿命。
四、纠错机制(ECC):容错的最后防线
随着 Cell 精度提升(TLC/QLC),SSD 出错率(Raw Bit Error Rate)也快速增加,因此必须依赖强大的纠错算法。
主流方案:LDPC(Low Density Parity Check)
LDPC 是现代 SSD 的主流纠错算法,具有:
强纠错能力(支持百万级比特纠错);
多轮迭代,适应不同强度的误码;
部分支持软解码/重读机制,增强可靠性。
补充机制:
BCH(低级纠错):用于较旧的 SSD;
RAID-like 冗余保护:部分高端 SSD 内部使用类似 RAID-5 的块级校验;
Read Retry:对读失败的页面多次尝试,调整参考电压读取。
五、并发架构:控制器设计决定极限速度
SSD 不像机械硬盘只有一个磁头,而是使用多个NAND通道(Channel)、封装(Die)、Plane 实现并发读写。
现代 SSD 控制器可以:
同时对多个通道下发命令;
把读写任务并行分发到多个 Die;
在单一 Die 内多 Plane 并行擦写。
这种多维度并发架构,是 NVMe SSD 实现 5000+ MB/s 吞吐量的硬件基础。
五、接口与协议演进:NVMe 的横空出世
NVMe,全称是 Non-Volatile Memory Express,它不是一块硬盘,而是一种通信协议,是为了闪存(如SSD)设计的一种高性能存储接口协议。
传统的硬盘(HDD)和早期的SSD使用的是 SATA + AHCI 协议。这套协议最早是为机械硬盘设计的,处理速度有限,不能发挥SSD的全部性能。
NVMe 是闪存专用的“数据传输协议”,让SSD跑得更快。
NVMe 支持 65535 个并行队列(每队列最多64K命令),相比 AHCI 的单队列、32命令,极大地发挥 SSD 并发优势。
总结
SSD的迅猛发展,不只是硬件结构的叠加,更是底层算法、并发设计、纠错机制、协议优化和接口带宽协同作用的结果。
从FTL地址转换,到路径冲突优化;从Cell电荷精密控制,到自动擦写与磨损迁移;从错误纠正到指令级调度,它们共同编织出“快、稳定、持久”的存储体验。