海绵

数字存储完全指南04固态硬盘的参数解读与

发布时间:2022/9/2 14:32:04   
北京治疗白癜风价格多少 http://pf.39.net/bdfyy/bdfjc/150613/4639051.html

这是aigo国民好物与少数派联合推出的信息储存设备的科普系列文章。

我们希望通过最简洁通俗的描述,带领大家了解信息储存设备的基本原理,知道那些复杂的参数,如何挑选购买适合自己的存储设备,又是如何更好地使用,更安全稳定地保存我们的数据,以及未来我们能够用上什么技术。

在上一章我带大家从微观的晶体管到宏观的闪存颗粒,让大家详细了解了固态硬盘的原理和结构。那么这一章我们就综合上一章学到的知识来介绍一下我们选购和使用固态硬盘时需要了解到的一些参数,以及如何测试固态硬盘的实际性能和速度,相关的性能参数又代表着什么。

固态硬盘的参数解读

在介绍各个参数之前,我想先推荐一个比较好用的查看硬盘信息(机械硬盘和固态硬盘都可以,比较好用)的软件给大家——CrystalDiskInfo,看名字大家都应该能猜到它是和CrystalDiskMark同一家出的软件,完美继承了它家软件的特点:界面简单,功能简洁好用,有二次元皮肤。

CrystalDiskInfo的界面

可以看到无论是固态硬盘还是之前介绍的机械硬盘,它都能读取到比较详细的信息,基本可以覆盖我们下面要介绍到的参数了。

固态硬盘的尺寸

不同于机械硬盘基本上快大一统成SATA接口,只有少部分企业级在用一些特殊的接口,固态硬盘在接口方面可谓是群魔乱舞,不同接口对应的协议和最终的速度也是各不相同。不过等到固态硬盘发展到像机械硬盘那么成熟之后,这个现象也会逐渐消失,比如现在M.2接口就逐渐成为固态硬盘接口的主流,估计以后能像Type-C那样统一固态硬盘领域。

目前固态硬盘的尺寸也像接口那样五花八门。为了跟之前的硬盘位硬盘架通用,早前固态硬盘通常会设计成跟2.5寸机械硬盘一样大,用的也是SATA接口。

aigo的2.5英寸SATA固态硬盘与机械硬盘的大小对比

使用SATA接口的固态硬盘大部分被设计成和机械硬盘通用尺寸和接口。如果你手边刚好有一个SATA固态硬盘,我非常鼓励你试一下把它拆开来,大部分固态硬盘的外壳都没有螺丝,直接用卡扣固定,拆下来之后你就会发现,其实真正储存和电路部分只有一小块,剩下的都是空的:

拆开的SATA固态硬盘,实际储存部分只有一小块

甚至有些商家还会给空空的地方贴一些海绵或者配重块,来让整块固态硬盘手感好一点。外壳纯粹就是为了兼容笔记本或者台式机里的2.5寸硬盘位。

因为SATA接口和走SATA/AHCI协议的接口速度上限被限定在MB/S左右,所以新的固态硬盘都会选择使用M.2接口或者直接插PCIe槽。

主板上的M.2接口

我们在购买NVMe固态硬盘或者把它们装到电脑主板上时,通常都会看到类似于22XX4个数字的参数,这个就表示固态硬盘的尺寸。

22=22mm,也就是固态硬盘宽度是2.2厘米的意思,后面两个数字就是固态硬盘的长度,通常会有20,42,60,80等常见长度,以毫米为单位。我们购买的时候一定要先看看自己设备上的M.2接口预留出了多少空间,免得太长放不进去。

M.2接口上通常也会标注出长度数字

至于长度的固态硬盘估计大部分人都没见过,在早前比较常用,如果你现在在笔记本或者其他地方找到这个接口,大部分时候其实是给WiFi模块用的。

在有些设备上还会使用mSATA固态硬盘,虽然它的缺口和NVMe固态硬盘一样,但是宽度比较宽,所以接口是不通用的。

金士顿Kingston的mSATA固态硬盘

固态硬盘的接口协议

在介绍机械硬盘结构原理的那一章,我们已经了解到接口,协议,和总线的联系和区别。这一章我们介绍固态硬盘接口时可以顺便稍微复习相关的知识,同时拓展介绍一下它们仨。

先来简单复习一下:

总线:计算机设备里各个部件之间交换数据(传输电信号等)的通道,这个通道每秒能传输的数据量就叫做带宽。

协议:双方交换数据的规则,比如如何识别对方的身份、如何建立断开连接、编码解码方式(也就是电信号怎么传输接收)等等。

接口:让两个设备之间可以通过特殊的形状物理连接起来。

机械硬盘一般使用的就是SATA总线或者,然后使用SATA/AHCI协议来和设备其他部件沟通,但放在固态硬盘上事情就有一些复杂了。在本小节开头,我们也提到目前固态硬盘的接口协议等等种类还比较多,也让很多用户稀里糊涂买到了不适合自己的固态硬盘或者速度没有达到设备上限的固态硬盘,浪费了额外的时间和性能。

比如看起来是M.2接口的BKey固态只能走SATA协议

我们先来说一下总线,目前我们民用储存设备常见到的总线有SATA总线、PCIe总线和企业级SAS总线(如果你用一些服务器主板的话,可能会有)。之前我们了解到SATA总线一般是给机械硬盘使用,而且速度上限比较低,而SAS总线又是企业级使用比较多,那么除了低速的固态硬盘走SATA总线,现代的NVMe固态硬盘一般都是走PCIe总线了。

这三种总线的速度,上面是PCIe总线,下面是SATA和SAS总线

而协议方面目前民用的也是只有比较少的几个,SATA/AHCI协议,NVMe协议,SCSI协议(同样是企业级服务器用的比较多),没错,我们常看到的NVMe固态硬盘中的NVMe指的就是这个硬盘使用的协议。高效的协议能让总线满效率运行,跑满总线的带宽,这也是NVMe固态硬盘能那么快的原因。

和简单的总线协议不同,固态硬盘接口方面可就复杂多了。最基础的就是我们常见的SATA接口,还有为了笔记本等便携式设备引申出来的mSATA接口,还有固态硬盘专享的M.2(NGFF)接口,SATAExpress(SATAe)接口,PCIe接口,甚至还有不常见的走SAS总线的SAS接口与U.2,AIC接口等等,这些接口各自走前面的3个总线和协议,大概像是这个样子:

机械硬盘和固态硬盘不同接口对应的总线协议

怎么样?是不是觉得很复杂?没关系,接下来我就来带你实际从不同接口的固态硬盘出发,简简单单就记住它们的关系。

在逐个介绍之前我先说一下总体情况,和机械硬盘物理速度上限较低,所以不太需要考虑协议和总线速度的情况不同,对固态硬盘,特别是对现代高端固态硬盘来讲,不同接口协议总线已经开始可以限制固态硬盘的速度发挥了。

这里又要重新强调一下之前讲过的木桶效应,固态硬盘最终速度取决于接口协议总线最慢的部分。但通常厂家都会保证速率和协议达到要求,才会推出对应的固态硬盘,所以我们使用的时候,通常只需要保证它走的总线速率足够就可以满速运行。

SATA/mSATA/SATAe接口固态硬盘

SATA接口是大部分人刚用上固态硬盘,甚至现在机箱里面唯一的固态硬盘接口类型。固态硬盘刚开始普及民用的时候算是比较贵重的数码产品,每GB比起机械硬盘甚至要贵上好几十倍。

-固态硬盘每TB价格走势

这导致那个时候没什么人用固态硬盘,加上那个时候固态硬盘速度也没有现在那么快,还没突破SATA总线上限,所以主板厂商并不会专门设计一个专供固态硬盘使用的接口。那个时候的固态硬盘只能是继续使用SATA接口,使用SATA3.0协议。

同时那个年代的计算机机箱通常只设计了给机械硬盘的硬盘位,所以就像我们上面提到的即使固态硬盘的储存颗粒只有小小的一颗,也是要用一个2.5或者3.5寸硬盘那么大的壳子来包住它。

壳子里面的主要部分就很小一块

固态硬盘的全面普及最早是在笔记本上,之前笔记本放机械硬盘的做法是把SATA接口焊在主板上,然后在主板上留一个2.5寸机械硬盘那么大小的位置。但固态硬盘本身只有很小的一个,也不需要机械硬盘那么高的供电,没有必要用SATA这个电源部分就占了一半的接口,跟没有必要留2.5寸机械硬盘那么大的位置,加上那个时候超极本超薄本等轻薄设备的概念兴起,所以主板厂商就设计出了mSATA接口。

笔记本上的mSATA接口,图片来源:Reddit用户

它和我们现在见到的M.2接口已经非常相似了,不过仍然是走的SATA协议和总线,你可以把它理解为SATA接口的迷你版,毕竟mSATA就是miniSATA的缩写,这个时候厂商终于可以把固态做到合适的大小。

不过到现在这个接口基本上已经没有什么笔记本在使用,都用上了更新的M.2接口,如果新笔记本里面还有这个接口,通常上面插的都是无线网卡而不是固态硬盘。倒是很多移动固态硬盘内部还在使用mSATA接口转USB,毕竟大部分人对于移动硬盘的速度需求并不高,能超越SATA速率的USB3.2/USB4也还没有普及,厂商没必要用上对硬件要求更高的协议和接口。

笔记本上常见的英特尔无线网卡,一般还会带蓝牙,这个型号是AX

另外英特尔还推出过一个叫做SATAExpress的接口,他可以直接插两个SATA来走SATA协议,也可以用整个接口走PCIe*1/2,不过这个东西接口还是太大,速度上限提升也不高,只出过几款对应的主板,连支持的设备都没有出就夭折了。

随着固态硬盘的速度越来越高,这两个接口已经远远无法满足日益加快的固态硬盘,所以厂商必须设计一个专门用于固态硬盘,并且可以直接与速度最快的PCIe总线交流的接口。

M.2(NGFF)/PCIe接口固态硬盘

专门用于固态硬盘,并且可以与速度最快的PCIe总线交流的接口,说的就是我们今天常见的M.2接口了。M.2是我们比较常听说的名字,但它其实叫做NGFF(NextGenerationFormFactor),翻译成中文就是次世代接口,后来被改名叫M.2,可能是觉得这个接口不可能一直次世代吧。「2」就是第二代的意思,「M」则是我们下面提到的M.KEY,表明接口的形状,中间用点隔开表示它们俩是不同的参数。

M.2接口作为现在和未来的主流接口,自然有向后兼容,既可以使用SATA协议也可以使用NVMe协议,由于支持协议众多并且接口复杂,M.2接口通过接口上的缺口来确定协议类型,由于不同缺口像钥匙那样,所以叫做KEY,M.2接口有从ABCDEFGHJKLM这么多种KEY,KEY对不上是插不进去对应接口的(真就钥匙呗……)。不过倒不用担心太过复杂,因为我们日常只能看到两种:MKEY和BKEY。

不同M.2KEY的用途

如果我们观察自己的NVMe固态硬盘,会发现缺口都在右边,这个就是MKey,如果插槽右边有对应的突出就可以插进去,通常它们就是使用NVMe协议走PCIe总线。

而BKEY的缺口则是在左边,插进对应的插槽之后通常只能走SATA总线。另外还有同时有两个缺口的固态硬盘,这种就是BMKEY,既可以走SATA总线也可以走PCIe总线。不过一般来讲这种类型都是SATA或者PCIe*2居多,速度上限不高。

硬盘转接卡上的MKEY,BKEY和对应的M.2接口

主板上的位置寸土寸金,所以一般我们现在看到的主板只会保留MKEY的M.2接口。大家购买固态硬盘的时候也要认清是哪种KEY,如果是新设备建议只购买MKEY的固态硬盘,免得到时候插不进去或者插进去却只能走SATA总线。

A/EKEY就是我们上面提到这种无线网卡比较常用的M.2接口所用的KEY类型。

使用M.2接口的无线网卡

NVMe协议中的NVM其实就是我们之前提到的非易失性储存器英文,整个名字可以简单理解为非易失性储存器控制协议。

既然M.2接口的高速固态硬盘使用的是NVMe协议走PCIe总线,有些厂商干脆就把固态硬盘做成PCIe接口,插到PCIe插槽插使用。这就是PCIe固态硬盘,用的一般也是NVMe协议。

比如英特尔的高端AIC固态硬盘一般都是PCIe接口

其它接口:SAS/AIC/U.2接口

上面介绍的都是我们日常比较常见的一些固态硬盘接口类型,下面简单介绍一下比较少见的接口,这些接口一般都是企业级或者服务器使用比较多,如果我们使用服务器主板的话,还是有机会看见的。

SAS和U.2这些都是SATA接口改过来的接口,目的就是为了兼容SATA硬盘的同时能够用上其他协议总线。比如SAS就可以有服务器常见的SCSI总线,U.2可以用NVMe协议走PCIe总线。

SAS和U.2接口的样子

SATA硬盘可以插到SAS和U.2接口上,反过来SAS硬盘和U.2硬盘则不能插到SATA接口上。

AIC就是PCIeAddinCard的意思,其实就和PCIe固态差不多,也可以直接插在PCIe接口上使用,主要是因为服务器上有很多设备都比较老,用不了其他接口,插PCIe是最直接的。

aigo的AIC企业级固态硬盘

接口兼容性与速度上限

接下来我通过实际的例子来说一下不同接口的固态硬盘的速度上限,首先SATA这类接口就不用说了,加上损耗最高MB/S。

接下来你再看你设备上的M.2接口,如果是BKEY,还要在看主板说明书。

如果主板说明书上没有写明这个接口支持PCIe×2总线,那么无论你买啥,只要能插进去,最高速度都不超过MB/S。

如果主板说明书上写明这个接口支持PCIex2总线,那么就要购买同样支持PCIex2的BKEY/BMKEY的固态硬盘,插上去之后最高速度大概能来到1GB/S左右。

BKEY的M.2接口与速率上限的关系

如果你设备的M.2接口是MKEY,还是要查看主板说明书。

一般来讲笔记本的M.2接口都有可能向下兼容走SATA总线,但台式机主板上的M.2接口一般只支持走PCIe总线。一定要先看主板说明书再购买对应的固态硬盘。

如果接口兼容SATA,那么有两个缺口的BMKEY固态硬盘能插进去,此时速度上限就是MB/S。

如果插入MKEY的固态硬盘,具体的速度上限就由它使用的PCIe传输模式决定,通过前面推荐的CrystalDiskInfo就可以看到固态硬盘正在使用的传输模式和支持的传输模式。

MKEY的M.2接口与速率上限的关系

CrystalDiskInfo上查看储存设备的传输模式

比如常见的NVMe固态硬盘走PCIe3.0x4,那么速度上限就是4GB/S,如果是比较贵的PCIe4.0NVMe固态硬盘速度上限则是PCIe4.04也就是8GB/S。

aigoPCIe4.0P0固态硬盘(1TB)的速度最高可以到7GB/S左右

固态硬盘的颗粒与主控

虽然固态硬盘使用的接口协议总线决定了读写速度的上限,但固态硬盘实际能跑多快,还是要看颗粒的质量还有主控算法。

SLC/MLC/TLC/QLC颗粒

这几个名词算是我们购买固态硬盘,或者看其他人评测时最常提到的参数了,如果是后两个颗粒,通常还伴随着对厂家的鄙视。但实际上它们都是什么呢?

评测里面提到QLC基本上都是骂的

其实通常人们在他们后面加上颗粒是不太严谨的,因为它们从物理上都是由无数相同的浮栅晶体管组成的NAND闪存颗粒。无论是SLC还是MLC还是后面几个,它们用的储存单元都是一样一样的浮栅晶体管,而区别在于每个浮栅晶体管组成的储存单元,它的状态数量(其它科普常用层数来表示)不一样。

再上一章,我们已经用TLC来演示现代固态硬盘NAND闪存颗粒的原理,通过给储存单元阈值电压,检测电路是否导通来读取储存单元里面的数据。其它的几个类型也是类似:

SLC=SingleLevelCell,指的是通过一个阈值电压区分0,1两种状态的储存单元,这样一个储存单元就能储存1bit的数据。

MLC=MultiLevelCell,指的是通过三阈值电压区分00,10,01,11四种状态的储存单元,这样一个储存单元就能储存2bit的数据。

TLC=TripleLevelCell,指的是通过七个阈值电压区分,,,,,,,八种状态的储存单元,这样一个储存单元就能储存3bit的数据。

QLC=QuadrupleLevelCell,指的是通过十五个阈值电压区分0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1十六个状态的储存单元,这样一个储存单元就能储存4bit的数据。

上一章也有的TLC检测数据过程动图

现在连PLC都快出来了,按照上面的原理一个储存单元就能储存5bit的数据。

这样做的好处自然显而易见,同样面积的储存单元,QLC比起SLC能够存放4倍的数据,也就是说闪存颗粒的密度提升了4倍,这已经是很惊人的差距了,同一块闪存颗粒如果全做QLC可以有1GB容量,那么TLC只有G,MLC只有G,SLC更是只有G了。

而且由于数据密度提高,相同容量的TLC固态价格也和数据密度一样是SLC的1/4左右,也就是说便宜同时还变大碗。这听起来好像很美好,那么为什么大家都那么抵制使用TLC/QLC储存单元的固态硬盘呢?

多层储存单元的缺陷

首先就是一个储存单元上,分的阈值电压越多读取的时候就要越多次,比如TLC读取一次一页的数据就要轮流给7个阈值电压,每给一次阈值电压都要一个个检测储存单元是否导通,而SLC只要一个阈值电压检测一次,每多一个需要检测的阈值电压,读取速度就会慢很多倍。

多个阈值电压也会带来读取困难后果,上一章我们也讲到不能无限细分预置电压去无限提高容量密度。即使只做到TLC的级别也会带来阈值电压区间过小的问题,因为我们往储存单元写入数据的时候,并不能精确控制电子量,如果阈值电压过小电子量又刚好卡在中间,那么数据到底是还是隔壁的呢?这个时候就需要ECC纠错算法的加入,通过校验数据纠正这个储存单元上的信息然后重新写入正确的数据,这一步又大大减慢了读取速度。

写入的时候也是这样,阈值电压越多,储存单元储存数据需要的电子量要求就越精准,自然就越容易出错。出错的时候又要ECC纠错算法来校验重新写入正确数据,写入速度也被拉慢了。

阈值电压变的设置对储存单元的寿命也有影响,先不说上面提到反复写入影响到的寿命,我们知道每一次写入都会对包括浮栅的绝缘层造成物理损伤,而闪存颗粒又是每一次写入数据都需要先擦除对应块再写入数据,这样时间长了浮栅里面保存的电子就会越来越容易穿过漏洞逐渐增多的绝缘层「越狱」跑掉。

对于SLC而言,0,1两个状态相差的电子量很多,即时跑掉一点也不影响读取;不过当到QLC这种,每个状态之间电子量差很小,只需要有一点点电子从浮栅中跑出来,就会让这个储存单元读取的数据变成另一个状态。而当写入后短时间内电子跑掉的量大于两个数据状态之间的差,主控就会认定这个储存单元已经挂掉了。清楚了原理之后,我们很容易就能发现比起SLC,MLC/TLC/QLC等等越多层的储存单元挂掉需要的时间越来越短。

SLC对比其它类型储存单元检测数据时间,写入时间,擦除时间和平均寿命对比

多层储存单元还会带来其它问题,比如数据可靠性不足,对保存环境要求更高等等。

从MLC到QLC,容量密度越来越高,价格越来越便宜的同时,以上提到的缺点也会越来越严重。简单总结就是,在对比之下SLC读写速度最快,数据保存最稳定可靠,寿命最长,对比之下我们才知道SLC除了数据密度低和贵,真的是哪哪都好。这也不怪大众批评厂商用TLC/MLC是「偷工减料」了。

正确看待多层储存单元

看完上面的部分,很多人可能就觉得哎呀,我一定要花很多钱去上SLC/MLC固态硬盘,不然总感觉用不了多久也不可靠。

但其实没有必要,我觉得只要在商品详情和包装盒上标明储存单元类型(虽然基本没有厂商这么干),然后容量价格比的确够低,那么大家还是值得根据自己的需求去购买的(虽然现在市面上基本没有全盘SLC的民用产品了,很快估计连全盘MLC的产品厂家都不会再生产了)。

标明储存单元类型的固态硬盘

现在厂商都会使用DRAM或者将固态硬盘的一部分空间模拟成SLC来加当做缓存来解决TLC/QLC的速度问题,而且即使是QLC,只要容量足够大并且有一个好的主控,那么我们日常使用每个储存单元的擦写数据可以控制得很低,只要你不是每天24小时不停在写入,基本上也有十几年的寿命(详细的参数在下面会介绍)。所以最后还是要看个人的需求,如果的确对数据可靠性和速度有很高要求,并且价格不敏感,那的确不要考虑QLC甚至是TLC,感觉大部分时候都可以,具体的我会在选购那章详细介绍。

说实话基本很少见硬盘颗粒坏掉的,一般都是主控先坏,不然也不会有那么多厂家回收固态颗粒再当做新的卖了。

大厂的QLC固态硬盘也还是不便宜

当然也不是说就能无脑买了,某些无良厂商会用回收或者质量差的反正就很垃圾的颗粒和主控弄成全盘QLC,然后配上一丁点高质量DRAM或者SLC缓存当做高配固态卖,这种固态硬盘无论是缓外速度还是寿命,可靠性都一塌糊涂。。

即使是大厂也经常会有偷换颗粒这种新闻,所以我们买之前也要搜一下固态型号,看看有没有相关的黑历史;另外相同类型的颗粒在厂家那边还会有原厂颗粒、黑片、白片等区别,详细的我会在选购那章展开讲。

简单查看固态硬盘上的颗粒类型

说了这么多,也来到了实战的环节。这一节我就来教教大家怎么看自己固态硬盘用了什么类型的闪存颗粒,闪存颗粒的质量怎么样。

各位可以拿出自己的固态硬盘来观察一下,或者购买对应固态硬盘之前先网上搜一下对应的照片,闪存颗粒上面一般会有一些编码。当然有一些厂家也会使用没有编码的闪存颗粒,或者把闪存颗粒上的编码丝印刮掉,这种的话想要了解颗粒的具体参数,就只能去咨询厂家了(除非你把闪存颗粒从电路板上拆下来,接上AlcorMP这类的软件进行查看编号)。

没有编码丝印的闪存颗粒

AlcorMP查看闪存颗粒编号

一般来讲,不同厂家使用不同颗粒的编码差别会很大,比如正规的大厂一般会在颗粒上带有晶圆厂的Logo,自家的品牌或者产地容量等等。

西部数据SN上面的颗粒就是很清楚

但一般我们只需要

转载请注明:http://www.aideyishus.com/lkjg/1254.html

------分隔线----------------------------