目录
本文目录结构如下:

一、固态硬盘与机械硬盘区别

二、固态硬盘原理
1、组成
固态硬盘是一种以闪存(NAND Flash)作为存储介质的存储设备。主要由闪存芯片、缓存、主控、接口组成。如下图所示:

- 闪存芯片:主要用来存储数据,又可分为SLC、MLC、TLC、QLC,后文会介绍几种芯片的区别。
- 缓存:由于硬盘与内存的读写速度差别巨大,而应用程序数据往往需要从硬盘加载到内存中进行操作。增加缓存的目的就是为了减少两者的速度差所带来的操作上的等待。
- 主控:主要用来管理以及维护固态硬盘的使用。主要功能有磨损平衡、坏块管理、垃圾回收、预留空间、ECC、断电保护、加密等。后文做主要介绍。
- 接口:常见的有M2,SATA;其它的还有PCIE、mSATA、ZIF等,以适配不同的硬件产品。目前市面上常见的为前面两种。
2、读写过程
固态硬盘的读写操作不同于机械硬盘,机械硬盘的读写操作使用的是机械臂,而固态硬盘则是通过主控对闪存颗粒充放电进行读写。
主控对闪存颗粒进行充电
依据充电的电压标识数据
若需要重新写入,需要先擦除数据。
3、主控功能
- 磨损平衡磨损平衡的主要目的是使得每个数据块的擦写次数尽可能的相同。
在日常的使用中,某些区域我们可能会频繁地写入数据,而有些区域的数据却不怎么更新。这就导致了使用频繁的区域磨损严重,加快了该区域的存储介质的损坏。磨损平衡就是为了解决这一问题而产生。
磨损平衡又可以分为以下两种:- 动态磨损平衡:只有被更新的文件所占用的物理页被磨损平衡。
- 静态磨损平衡:在动态磨损算法的基础上,增加了对那些不常用文件占用的物理页进行磨损平衡、
- 垃圾回收
磨损平衡的执行需要又足够的未使用空间来写入更新后的数据,当可用的空间低于一个阈值后,主控就会将那些零散的数据整理起来合并写到新的空白快中,然后擦除这个块以增加可用空间。如下图所示:

- 坏块管理
坏块就是存储介质中包含了不稳定的地址,不能保证读写的可靠性。
当有坏块时,会在坏块的第一页的SA区打上标记,这样坏块管理软件就能依靠SA扇区标记制作坏块表。
SA区指页中的第4096~4319区域,用户不能访问,主要用来存放坏块信息、ECC算法、文件系统等。

- 预留空间
- 预留空间对用户不可见,一般用来处理磨损平衡,ECC和坏块映射表。
- ECC(Error Correcting Code)
- 存储领域要求错误码率不小于10^-9,直接读取的错误码率无法达到这个要求,所以引入了纠错码。
- 一般情况下主控或者驱动会检查闪存区域,尽量保证在出现不可纠正的错误前将该闪存作为坏块屏蔽。
- 不同闪存颗粒要求的ECC不同,不同主控支持的ECC能力也不同,一般,主控越好,ECC能力越强。
三、闪存架构
SSD的基本存储单元分为以下四类:

1、单阶存储单元(Single-Level Cell,SLC)
SLC闪存每个存储单元存储1bit信息,可以表示0或1。
低电位:表示 0 高电位:表示 1
优点:速度快、功耗低、存储单元寿命更长。
缺点:成本高,容量小。
2、多阶存储单元(Multi-Level Cell,MLC)
MLC闪存每个存储单元存储2bits信息,可以表示00、01、10、11。其中的多阶(Multi)指充电的电压标识有多个。
用 低电位、 次低电位、 次高电位、 高电位分别表示 00、 01、 10、 11。
相比SLC,由于一个单元可存储2bit,其生产成本降低,价格更便宜,容量也有所提高,但其传输速度较慢,功耗较高,存储单元寿命较短。
3、三阶储存单元(Triple-Level Cell, TLC)
TLC闪存每个存储单元存储3bits信息,可以表示000、001、······、110、111共八种组合。
需要注意的是,有些地方也把TLC称为3-bit MLC。
用八个阶段电位表示八种不同的比特信息。
相比MLC,由于一个单元可存储更多的bit,其生产成本降低,价格更便宜,容量也有所提高,但其传输速度较慢,功耗较高,存储单元寿命较短。
4、四阶储存单元(Quad-Level Cell, QLC)
QLC闪存每个存储单元存储4bits信息,可以表示0000、0001、······、1110、1111共16种组合。
将电位划分更细来表示更多的信息。
容量大,价格便宜。但于此同时,其功耗最高,寿命最短。
5、3D NAND
3D NAND是一种扩容技术,当平面NAND(Planar NAND)发展到一定时候 ,就会受到容量的限制,在固定的平面上无法安放更多的闪存芯片时,将平面NAND堆叠起来,组成3D NAND以增加容量。

5、区别
下表列出了四种闪存的区别:

四、接口
固态硬盘接口众多,有SATA、PCI Express、mSATA、M.2、ZIF、IDE、U.2、CF、CFast等不同的接口,本文主要就常见的SATA以及M.2接口进行介绍。
1、SATA
串行ATA(英语:Serial ATA,全称:Serial Advanced Technology Attachment),SATA接口最早出现在2003,为SATA 1.0,在2004年又出现了SATA 2.0,2009年推出SATA 3.0,随后又发布了SATA 3.1、SATA 3.2、SATA 3.3接口。下表给出不同版本的SATA接口速率比较:

目前常见的SATA接口多为SATA3,如下图所示:

SATA3接口的固态带宽可达6Gb/s,即理论速度600MB/s。
2、M.2
M.2是由是由 PCI-SIG 和 SATA-IO 标准组织所开发,原名为NGFF (Next Generation Form Factor),2013年正式命名为M.2。
M.2协议广泛涵盖了PCIe、SATA、USB等接口,即原本采用PCIe、SATA、USB等接口的介质,都可以依照NGFF的外形尺寸规范以及脚针定义来加以重新设计,从而变为采用M.2接口的设备。

此外,考虑到PCIe、SATA、USB等不同接口的脚针存在差异,因此,M.2/NGFF为此定制了多组防呆位置来避免混乱或误插。目前在使用的有A/B/E/M key。
M.2模块防呆键位和提供的接口如下


由上表可以看出,目前用于SSD的主要为B key 及 M key两种类型。下面 主要介绍这两种应用于SSD的插槽类型。
3、M.2 SDD两种主要插槽类型(B key 及 M key)
目前市场上的产品中,M.2固态主要有两种插槽类型:B key(socket 2)以及 M key(socket 3),B key的防呆位于左边(12 - 19针,6 pin),M key位于右边(59 - 66针,5 pin)。如下图所示:

两种接口的协议类型以及速度如下:
- B key(socket 2),PCIe×2或SATA协议
- 走PCIe×2:不超过1000Mb/s
- 走SATA:不超过550Mb/s
- M key(socket 3),PCIe×4协议
- 不支持NVME:1500Mb/s
- 支持NVME:超过2000Mb/s
4、M.2 SDD两种主要脚位类型(B+M key 及 M key)
当你对上面的内容有了了解后,你信誓旦旦地去选择SSD,你很快就会发现另外一个问题,市面上的固态并非一个萝卜一个坑地对应着,而是具有两个防呆缺口的B+M key型式以及只有一个防呆缺口的M key 型式。这是因为M.2 SSD 产品为了能同时兼容于两种插槽,便把金手指的部分设计成 B+M Key 的形式,如下图所示:

两种插槽对应两种脚位类型,共有四种组合。对B key来说,B+M key的SSD可以顺利插入,而M key的脚位却无法插入。

对于B key这种类型的插槽,如果你的主板支持PCIe×2的话,那么你可以获得不超过1000Mb/s的传输速度;如果仅支持SATA协议的话,那么你的速度将不超过550Mb/s。
对M key来说,无论是B+M key或是M key的SSD都可以插入。

对于M key来说,走的是PCIe×4,如果主板支持NVME协议的话,可以获得超过2000Mb/s的传输速度。如果不支持NVME的话,只能获得1500Mb/s的传输速度。
5、能插进去未必能正常使用
SSD能插进去不代表就能正常使用。比如某些主板的M.2插槽仅支持PCIe通道,那么SATA 的M.2 SSD就不能正常使用,这个需要具体查看主板说明文档。还有,如果你的固态是走SATA 通道的M.2 SSD,同样会受到6Gb/s 带宽的限制,性能等同于2.5寸的SATA SSD。
五、品牌
自主生产闪存颗粒(推荐指数:★★★★★)

- 三星
- 因特尔
- 美光
- 闪迪
- 东芝
- 海力士
- 英飞凌
这些品牌有自主生产闪存颗粒的技术,往往也会将好的颗粒用在自家的产品上。正因如此,这些厂家的固态硬盘往往品质比较好,使用稳定,往往价格也是最贵的。
使用原厂闪存颗粒(推荐指数:★★★☆☆)

- 金士顿
- 光宝
- 浦科特
这些品牌虽然没有自主生产闪存颗粒的技术,但是使用的都是原厂的闪存颗粒,然后再自己进行封装。价格便宜一些,但是稳定性不如具有自主生产闪存颗粒的厂商。
其它(推荐指数:★☆☆☆☆)
各种品牌定制,一般使用白片(原厂检测不合格的,但是能用)。或者是一些价格低的可拍的品牌,一般使用黑片。
对于这类产品,一般价格比较便宜,但是稳定性差,不推荐购买。
六、IOPS读写性能
IOPS(Input/Output Operations Per Second),是一个用于存储设备性能测试的测量方式,可以看作是每秒的读写速度。
IOPS的测试方式可以分为以下几种:

主要分为随机读写测试以及顺序读写测试,如下图所示:

比如某款500G固态的读写速度如下:

其中顺序读写达到了2600MB/s,但是随机读取却没给出指标,只标注了410K IOPS(即每秒读写次数)。
再看一下三星的两款1T SSD的读写性能:


需要注意,大多数时候的读写性能都是顺序读写的性能测试。
再来看一个因特尔的660P

参数中明确表明了随机读写/顺序读写性能。
需要注意的是,商品介绍中给出的速度一般为顺序读写的速度,某些商品会给出随机读写的IOPS指标。
SSD推荐
以下推荐按250GB、500GB、1TB、2TB排列
256GB
三星(SAMSUNG)250GB SSD固态硬盘 M.2接口 980 PRO (MZ-V8P250BW)

顺序读取:6400MB/S
顺序写入:2700MB/S
NVMe协议PCIe 4.0 x4
三星(SAMSUNG)250GB SSD固态硬盘 M.2接口 970 EVO Plus(MZ-V7S250B)

顺序读取:3500MB/S
顺序写入:2300MB/S
NVMe协议
闪迪(SanDisk)250GB SSD固态硬盘 M.2接口

顺序读取:2400MB/S
顺序写入:950MB/S
NVMe协议
西部数据(Western Digital)250GB SSD固态硬盘 M.2接口(NVMe协议)WD_BLACK SN750

顺序读取:3100MB/S
顺序写入:1600MB/S
NVMe协议
500GB
三星(SAMSUNG)500GB SSD固态硬盘 M.2接口 980 PRO (MZ-V8P500BW)

顺序写入:6900 MB/s
顺序读取:5000 MB/s
NVMe协议PCIe 4.0 x4
三星(SAMSUNG)500GB SSD固态硬盘 M.2接口 970 EVO Plus(MZ-V7S500B)

顺序写入:3500 MB/s
顺序读取:3200 MB/s
NVMe协议
闪迪(SanDisk)500GB SSD固态硬盘 M.2接口

顺序写入:3500 MB/s
顺序读取:3200 MB/s
NVMe协议
1TB
三星(SAMSUNG)1TB SSD固态硬盘 M.2接口 980 PRO (MZ-V8P1T0BW)

顺序读取:7000 MB/s
顺序写入:5000 MB/s
NVMe协议PCIe 4.0 x4
三星(SAMSUNG)1TB SSD固态硬盘 M.2接口(NVMe协议) 970 EVO Plus(MZ-V7S1T0B)

顺序读取:3500 MB/s
顺序写入:3300 MB/s
NVMe协议
西部数据(Western Digital)1TB SSD固态硬盘 M.2接口(NVMe协议) WD_BLACK SN750

顺序读取:3400 MB/s
顺序写入:3000 MB/s
NVMe协议
闪迪(SanDisk)1TB SSD固态硬盘 M.2接口

顺序读取:2400 MB/s
顺序写入:1950 MB/s
NVMe协议
西部数据(Western Digital)1TB SSD固态硬盘 M.2接口(NVMe协议)WD Blue SN550

顺序读取:2400 MB/s
顺序写入:1950 MB/s
NVMe协议
海康威视SSD固态硬盘C2000PRO M.2 NVME 2280接口支持笔记本台式机 C2000PRO 1T

顺序读取:3000 MB/s
顺序写入:2100 MB/s
NVMe协议
2TB
西部数据(Western Digital)2TB SSD固态硬盘 PCIe Gen4技术 WD_BLACK SN850 NVMe SSD

顺序读取:7000 MB/s
顺序写入:5100 MB/s
NVMe协议PCIe 4.0 x4
三星(SAMSUNG) 2TB SSD固态硬盘 M.2接口(NVMe协议) 970 EVO Plus(MZ-V7S2T0B)

顺序读取:3500 MB/s
顺序写入:3300 MB/s
NVMe协议
西部数据(Western Digital)2TB SSD固态硬盘 M.2接口(NVMe协议)WD Blue SN550

顺序读取:1800 MB/s
顺序写入:2600 MB/s
NVMe协议