这是一块普通的
机械硬盘
,它由一张每分钟
旋转7200次的
磁盘
,和一根
每隔十几毫秒就写入一次数据的
磁头
组成。
你平时听见的电脑噪音,大多就是硬盘的机械运动产生的。
这是一块
固态硬盘
,由
主控
、
缓存
、和几块
闪存
芯片组成,通过电信号传输,主控只需要不到
0.1毫秒
的时间,就能存取闪存上不同位置的多个数据。
因此
固态硬盘
要比机械硬盘的读写速度快上几百倍
。
固态硬盘中最关键的部分,是负责存储数据的
闪存
(
NAND Flash Memory
)
。
它决定了固态硬盘的性能
。
闪存最初诞生于一块
硅晶圆
,芯片厂商根据不同需要,将晶圆上品质合格的晶片
切割
出来,再进行
封装
,就得到了被称为
原片
(Original)的闪存。
十几年来,各大芯片厂商先后推出了四代有着不同颗粒结构的闪存。
SLC
Single-Level Cell
单层单元
MLC
Multi-Level Cell
多层单元
TLC
Trinary-Level Cell
三层单元
QLC
Quad-Level Cell
四层单元
在最初代的
SLC颗粒
中,闪存的最小存储单元(Cell)只能储存1比特(Bit)的数据,也就是一个0或者一个1,因此
一个单元只有两种状态
。
在第二代的
MLC颗粒
中,研发者们往一个单元里塞进了两比特的数据,0和1排列组合,
一个单元就能有4种状态
。
以此类推,到了最新一代的
QLC颗粒
,一个存储单元已经可以表达16种状态,存储容量
达到了初代SLC颗粒的8倍
。
但命运所有的馈赠,都早已在暗中标好了价格。
因为
存储容量的翻倍
,同时也会导致闪存颗粒
运行速度和寿命的减少
。
不同于机械硬盘的磁盘,固态硬盘的闪存能够
擦除和写入的次数
有限
,而这个次数就是
闪存的寿命
。当闪存颗粒的擦写次数到达极限时,闪存就会损坏,其中
存储的数据也就会丢失
。
初代的SLC颗粒,可用的擦写次数是
10万次
。在最新一代的QLC颗粒上,擦写次数则骤降到
1000次
。在容量和使用情况相同的情况下,二者的理论寿命
相差了整整
100倍
。
因此可以说,
随着技术的发展,
每一代固态硬盘的性能反而倒退了
。
这种倒退式的发展思路当然是故意为之的,它能
降低固态硬盘的成本
,让我们这样的普通人也能消费得起。
就算性能被打了折扣,固态硬盘的寿命仍然
足够普通人使用
,运行速度也还是会比机械硬盘快上不少。
(公众号回复“SSD”,即可获得寿命计算公式)
更多情况下,固态硬盘存在的问题并不是寿命不足,而是当
固态硬盘快要塞满
的时候,
运行速度会突然降低
。
这个问题产生的原因,和闪存的
擦写过程
(P/E)
有关:
我们用这些格子代表闪存的
存储空间
(Page)
,其中蓝色的是已经存有数据的位置。如果你
删除了某个文件
,硬盘并不会立刻擦除对应位置的数据,而是会给它打上一个
标记
。
当你要存储一份文件时,硬盘也不会在标记的位置写入新的数据,而是会
把数据存进空白的区域
,利用更多的存储空间。
随着读写次数的增加,硬盘里的空白区域很快被用得差不多了。此时如果还要写入新的数据,就需要把这些带有标记的位置腾出来,也就是
擦除其中的数据
。
但闪存要擦除数据,就只能把
一整块区域
(Block)
里有用没用的数据同时擦除
。
因此,硬盘必须先把那些还有用的数据
挪到其他位置
,再把这一整块区域清空,才能写入新的数据。
这整个过程被称为
写入放大
(WAF)
,它意味着更复杂的步骤、更长的耗时,以及更多的擦写次数。