区块链网站|NFTS 币种百科 数字存储完全指南04:固态硬盘的参数解释和实际性能

数字存储完全指南04:固态硬盘的参数解释和实际性能

广告位

数字存储完全指南 04:固态硬盘的参数解读与实际性能

这是少数民族和民族好爱国者联合推出的信息存储设备系列科普文章。作为国内较早的存储设备制造商和领导者,感谢爱国者为本文提供的一系列支持,包括但不限于技术知识指导,市场上很难找到的老物件,以及作者曾经拆解介绍过的最新产品。

我们希望通过最简洁通俗的描述,带领大家了解信息存储设备的基本原理,知道那些复杂的参数,如何选购适合自己的存储设备,如何更好的使用,更安全稳定的保存我们的数据,未来我们可以用什么技术。此外,虽然该系列是与爱国者联合发起的,但所有内容不涉及任何品牌指导或所需的商业营销。

上一章我带你从微观的晶体管到宏观的闪存颗粒,让你详细了解固态硬盘的原理和结构。那么在本章中,我们将介绍一些选购和使用SSD时需要了解的参数,如何测试SSD的实际性能和速度,以及相关的性能参数代表了什么。

固态硬盘的参数解读在介绍各种参数之前,我先给大家推荐一款比较好用的查看硬盘信息的软件(机械硬盘和固态硬盘都有,比较好用)。看名字大家应该能猜到是和CrystalDiskMark一样的软件,完美继承了其软件的特点:界面简洁,功能简单易用,二次皮肤。

CrystalDiskInfo的界面

可以看出,之前介绍的固态硬盘和机械硬盘都可以读取更详细的信息,基本可以涵盖我们下面要介绍的参数。

SSD的大小与机械HDD不同,基本统一为SATA接口。只有少数企业在使用一些特殊的接口。SSD在接口方面很狂热,不同接口对应的协议和最终速度也不一样。但是,当固态硬盘像机械硬盘一样成熟后,这种现象就会逐渐消失。比如M.2接口已经逐渐成为固态盘接口的主流,估计未来固态盘的领域也能像Type-C一样统一。

目前,固态驱动器的大小就像接口一样多种多样。为了和以前的硬盘架通用,以前的固态硬盘通常设计成2.5寸机械硬盘那么大,使用SATA接口。

爱国者2.5英寸SATA固态硬盘和机械硬盘的尺寸比较

大部分使用SATA接口的固态硬盘都被设计成和机械硬盘一样的大小和接口。如果你手头刚好有一个SATA固态硬盘,我强烈建议你试着拆开它。大多数固态硬盘的外壳没有螺丝,直接用卡扣固定。你拿下来之后会发现,真正的存储和电路只有一小块,其余都是空的:

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

甚至有些商家会在空的地方贴一些海绵或者重物,让整个SSD手感更好。外壳纯粹是为了兼容笔记本或者台式机的2.5寸硬盘。

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

主板上的M.2接口

当我们购买NVMe固态硬盘或将其安装在电脑主板上时,我们通常会看到类似于22×4数字的参数,这些参数表明了固态硬盘的大小。

22=22mm,也就是说SSD的宽度是2.2cm,最后两位是SSD的长度,通常是20、42、60、80等常见长度,单位为毫米。我们在购买的时候,一定要先看看自己设备上的M.2接口预留了多少空间,才不会放进去太久。

M.2接口通常标有长度数字。

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

MSATA SSD将在一些设备上使用。虽然它的缝隙和NVMe SSD一样,但是宽度比较宽,所以接口不通用。

金士顿金士顿金士顿的mSATA固态硬盘,图片来源:亚马逊

固态硬盘的接口协议在介绍机械硬盘结构原理的章节中,我们了解了接口、协议和总线的联系和区别。本章我们可以在介绍SSD接口的同时稍微回顾一下相关知识,同时展开介绍。

我们先简单回顾一下:

总线:交换数据(传输电信号等)的通道。)在计算机设备的组件之间。这个通道每秒可以传输的数据量称为带宽。协议:双方数据交换的规则,比如如何识别对方的身份,如何建立断开,编解码方式(即如何发送和接收电信号)等等。接口:允许两个设备通过特殊的形状进行物理连接。机械硬盘通常使用SATA总线或,然后使用SATA/AHCI协议与设备的其他部分进行通信,但是放在固态硬盘上事情就有点复杂了。在这一节的开头,我们也提到了目前固态硬盘的接口协议还有很多种,这也使得很多用户购买了不适合自己或者速度达不到设备上限的固态硬盘,浪费了额外的时间和性能。

比如M.2接口的B键固态好像只能采用SATA协议。

先说公交车。目前我们民用存储设备常用的总线有SATA总线、PCIe总线和企业级SAS总线(如果用一些服务器主板,可能会有一些)。之前我们了解到SATA总线一般用于机械硬盘,速度上限相对较低,而SAS总线则广泛用于企业级。然后,除了低速固态硬盘,现代NVMe固态硬盘一般都走PCIe总线。

这三种总线的速度分别是上面的PCIe总线和下面的SATA和SAS总线。图片来源:维基百科。

目前民用的协议只有几种,如SATA/AHCI协议、MVMe协议、SCSI协议(在企业服务器中也有广泛应用)。是的,我们经常看到的NVMe SSD中的NVMe就是指这种硬盘使用的协议。一个高效的协议可以让总线以全效率和总线的带宽运行,这也是NVMe SSD能这么快的原因。

与简单的总线协议不同,固态硬盘的接口要复杂得多。最基本的就是我们常见的SATA接口,还有笔记本等便携设备的mSATA接口,还有固态硬盘专属的M.2(NGFF)接口,SATA Express(SATAe)接口,PCIe接口,甚至还有不常见的SAS接口和走SAS总线的U.2,AIC接口等。这些接口各自采用前三种总线和协议,大概是这样的:

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

最近怎么样?很复杂吗?没关系。接下来,我将带您实际上从具有不同接口的固态驱动器开始,并简单地记住它们的关系。

在我一一介绍之前,先说一下整体情况。与机械硬盘相比,物理速度上限低,无需考虑协议和总线速度。对于固态硬盘,尤其是现代高端固态硬盘,不同接口协议的总线已经开始限制固态硬盘的速度。

这里要再次强调一下之前提到的木桶效应。SSD的最终速度取决于接口协议总线最慢的部分。但是通常厂商都会保证速度和协议符合要求后才会推出相应的固态硬盘,所以我们在使用的时候,通常只需要保证它所需要的总线速度足以全速运行即可。

SATA/mSATA/SATAe接口SSD的SATA接口是大多数人刚刚使用过的SSD的唯一接口类型,即使是现在在机箱里。固态硬盘在刚普及民用的时候是比较贵的数码产品,每GB甚至比机械硬盘贵几十倍。

2013-2020年每TB固态硬盘的价格趋势

结果那时候很少有人用固态硬盘,而且那时候固态硬盘的速度也没有现在快,SATA总线的上限也没有突破,主板厂商也不会专门为固态硬盘设计接口。当时的SSD只能继续使用SATA接口,使用SATA3.0协议。

同时,那个时代的电脑机箱通常只是为机械硬盘的硬盘空间而设计的,所以我们上面说过,固态硬盘即使存储颗粒只有很小,也要包裹一个2.5或者3.5寸硬盘那么大的外壳。

外壳的主要部分非常小。

固态硬盘的全面普及首先是在笔记本上。之前笔记本放机械硬盘的做法是在主板上焊接SATA接口,然后在主板上留一个2.5寸机械硬盘大小的位置。不过SSD本身只是一个小的,不需要像机械硬盘那么高的电源。不需要用SATA做电源部分,占接口的一半,也不需要留2.5寸机械硬盘那么大的位置。再加上当时超极本、超薄笔记本等轻薄设备的概念兴起,于是主板厂商设计了mSATA接口。

笔记本上的MSATA界面,图片来源:Reddit用户。

和我们现在看到的M.2接口很像,但还是采用了SATA协议和总线。你可以理解为迷你版的SATA接口。毕竟mSATA是mini SATA的缩写。这时候厂商终于可以把固态做到合适的大小了。

不过到现在基本没有笔记本使用这个接口,用的是更新的M.2接口。如果新笔记本有这个接口,一般是无线网卡而不是固态硬盘。相反,很多移动固态硬盘还在用mSATA接口转USB。毕竟大多数人对移动硬盘的速度要求不高,能超过SATA速度的USB3.2/USB4还没有普及。厂商没有必要使用对硬件要求较高的协议和接口。

笔记本常用的Intel无线网卡一般都有蓝牙。这个型号是AX200。

此外,英特尔还推出了一个名为SATA Express的接口,可以直接插两个SATA走SATA协议,也可以用整个接口走PCIe*1/2。不过这个接口还是太大了,限速也不高。只生产了几块对应的主板,连支持的设备都没生产出来,就这么死了。

随着SSD的速度越来越快,这两种接口已经满足不了SSD的速度,所以厂商必须设计一种专门用于SSD的接口,可以直接和最快的PCIe总线进行通信。

M.2(NGFF) /PCIe接口固态硬盘专用于固态硬盘,可以和最快的PCIe总线通信,也就是我们今天常见的M.2接口。M.2是我们经常听到的一个名字,其实叫NGFF(Next Generation Form Factor),中文翻译过来就是下一代接口,后来改名为M.2,可能是因为我觉得这个接口不可能一直是下一代。“2”表示第二代,“M”是下面提到的M.KEY,表示接口的形状,中间一个点表示它们是不同的参数。

作为目前和未来的主流接口,M.2接口自然是向后兼容的,既可以使用SATA协议,也可以使用NVMe协议。由于支持的协议众多,接口复杂,M.2接口通过接口中的缝隙来确定协议类型,这些缝隙就像钥匙一样,所以被称为key。M.2接口有那么多ABCDEFGHJKLM的键,键不匹配就无法插入对应的接口(真的是键……)。不过不用担心太复杂,因为我们每天只能看到两种:M键和B键。

M.2键的不同用法,图片来源:维基百科。

如果我们看看我们的NVMe固态硬盘,我们会发现差距都在右边。这是M调。如果插槽右侧有相应的突起,我们可以插入。通常,他们只是使用NVMe协议来乘坐PCIe公共汽车。

B键的缝隙在左边,通常只有插在相应的插槽后才能使用SATA总线。另外还有同时有两个缺口的固态硬盘,就是BM KEY,可以走SATA总线,也可以走PCIe总线。不过一般来说,这种类型多为SATA或PCIe*2,速度上限不高。

硬盘适配卡上的M键、B键和对应的M.2接口。

主板上的位置如此珍贵,以至于我们现在看到的主板只会保留M KEY的M.2接口。买固态硬盘的时候,也要认清它是什么样的钥匙。如果是新设备,建议只买M KEY的固态硬盘,避免插上或者插上但只走SATA总线。

A/E密钥是上述无线网卡2220的M.2接口中使用的密钥类型。

使用M.2接口的无线网卡,图片来源:淘宝。

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

由于M.2接口的高速SSD使用的是NVMe协议和PCIe总线,有些厂商干脆把SSD做成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的意思是PCIe加夫里卡。其实和PCIe固态差不多,也可以直接插PCIe接口,主要是服务器上很多设备比较旧,不能用其他接口,所以插PCIe最直接。

爱国者的AIC企业固态硬盘

接口兼容性和速度上限接下来我通过实际例子来说说不同接口的固态硬盘的速度上限。首先,SATA等接口不言而喻,加上最大损耗600 MB/s。

接下来,你应该看看你的设备上的M.2接口。如果是B键,也要看主板说明书。如果主板说明书上没有写明这个接口支持PCIe2总线,那么不管你买什么,只要能插上,最高速度不会超过600 MB/s,如果主板说明书上写明这个接口支持PCIex2总线,那么就需要买一个同样支持PCIex2 B KEY/BM KEY的固态硬盘,插上后最高速度可以在1GB/S左右。B键的M.2接口与速率上限的关系

如果你设备的M.2接口是M KEY,还是需要查一下主板说明书。一般来说,笔记本的M.2接口在向后兼容上是可以走SATA总线的,但是台式机主板上的M.2接口一般只支持PCIe总线。在购买相应的SSD之前,一定要阅读主板说明书。如果接口兼容SATA,那么可以插两个缺口的BM KEY SSD,速度上限600 MB/s.如果插入M-key SSD,具体的速度上限由其使用的PCIe传输模式决定。您可以通过推荐的CrystalDiskInfo查看SSD正在使用的传输模式以及支持的传输模式。M键的M.2接口与速率上限的关系

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

比如普通的NVMe固态硬盘如果取PCIe 3.0×4,上限速度是4GB/S,如果是贵的PCIe4.0 NVMe固态硬盘,上限速度是PCIe4.04,也就是8 GB/s.

爱国者PCIe4.0 P7000固态硬盘(1 TB)最大速度约7 GB/s。

固态硬盘的粒子和主控虽然固态硬盘使用的接口协议总线决定了读写速度的上限,但固态硬盘实际能跑多快,取决于粒子和主控算法的好坏。

当我们购买固态硬盘或查看其他人的评价时,SLC/MLC/TLC/QLC颗粒是最常提到的参数。如果是后两种粒子,通常伴随着对厂商的鄙视。但是它们实际上是什么呢?

评价中提到的QLC基本上是令人尴尬的。

其实人们通常对后面加粒子并不严格,因为它们在物理上是由无数个相同的浮栅晶体管组成的NAND闪存粒子。无论是SLC、MLC还是后面的,都是使用相同的浮栅晶体管,不同的是每个浮栅晶体管的状态数(用其他科普常用的层数表示)不同。

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

SLC=单电平单元,指的是通过阈值电压区分0和1状态的存储单元,因此一个存储单元可以存储1位数据。MLC=多级单元,指的是具有由三个阈值电压区分的四个状态00、10、01和11的存储单元,使得一个存储单元可以存储2位数据。TLC=三电平单元,指的是000、001、010、011、100、101、110、111八种状态的存储单元,通过七个阈值电压,使得一个存储单元可以存储3位数据。QLC=四电平单元,这意味着0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110由十五个阈值电压区分。上一章也有TLC检测数据过程的动态图。

现在连PLC都出来了。根据上述原理,一个存储单元可以存储5位数据。

这样做的好处自然显而易见。与SLC相比,QLC可以存储4倍的数据,这意味着闪存颗粒的密度增加了4倍,这已经是一个惊人的差距。如果同样的闪存颗粒用QLC做,可以有1000GB的容量,那么TLC只有750G,MLC只有500G,SLC只有256G。

而且由于数据密度的增加,同样容量的TLC固态价格大约是数据密度的1/4 SLC,意味着更便宜,也变成了大碗。这听起来很美,那么为什么每个人都如此抗拒使用TLC /QLC存储单元的固态硬盘呢?

多层存储单元的缺陷在于,在存储单元中划分的阈值电压越多,它将被读取的次数就越多。比如TLC在读取一页数据时会依次给出七个阈值电压,每次给出阈值电压都要检查存储单元是否导通,而SLC只需要检测一次一个阈值电压,每多检测一个阈值电压读取速度会慢很多倍。

多个阈值电压也会导致读取困难。上一章我们也说过预置电压不能无限细分来提高容量密度。即使我们只达到TLC级别,阈值电压范围也会太小,因为当我们将数据写入存储单元时,我们无法精确控制电子的数量。如果阈值电压太小,电子量刚好卡在中间,隔壁的数据是010还是011?这时候就需要加入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 SSD还是不便宜。

当然,不代表可以无脑购买。一些无良厂商会用回收的或者质量差的颗粒和主控制做一个整体的QLC,然后再用一点高质量的DRAM或者SLC缓存作为高质量的固态出售。这种固态硬盘从外接速度,使用寿命,可靠性来说都是一塌糊涂。

即使是大厂也经常有偷颗粒的新闻,所以买之前要搜一下实体模型,看看有没有相关的黑历史;另外,同类型的颗粒在厂家这边会和原厂颗粒、黑膜、白膜不一样。我会在采购一章详细讲。

单纯看SSD上的颗粒种类就说了这么多,也到了实战的时候了。在这一节中,我将教你如何查看你的SSD中使用了什么类型的闪存颗粒,以及闪存颗粒的质量如何。

可以拿出自己的SSD来观察,也可以在网上搜索相应的照片再购买相应的SSD。闪存颗粒上通常会有一些代码。当然,有些厂商也会使用没有编码的闪存颗粒,或者把闪存颗粒上的编码屏刮掉。在这种情况下,如果你想知道颗粒的具体参数,只能咨询厂家(除非你把闪存颗粒从电路板上拆下来,连接AlcorMP之类的软件去查数字)。

无编码丝网印刷的闪存颗粒

AlcorMP查看闪光粒子数

一般来说,不同厂家使用的不同颗粒的编码会有很大的不同。比如正规厂家通常会在颗粒上带有晶圆厂的Logo,自己的品牌或者产能等等。

西数SN550上的颗粒很清晰。

但是一般我们只需要关注底层或者唯一的代码。说实话,作为芯片这样的高科技技术,目前(文章发表时)我们国家只有三星、海力士、东芝、美光、西部数据(闪迪)和长江存储占据了闪存颗粒市场的绝大部分,基本上所有你能看到的固态都逃不过上述颗粒。

这些公司的原始颗粒是这样的。

如果闪存颗粒上只有一个数字,没有其他信息,那么很大概率是自封的闪存颗粒。自封式闪存颗粒只在原厂生产,后续的封装检验都是企业自己完成的,所以不自封不坏,质量看企业的技术和良心。

像这个只有一个数字的,是自封粒子。

如果是原来的闪存颗粒,我们可以使用SSD-Z或FlashMaster等应用程序来获取详细的存储单元类型和颗粒生产信息。但是如果是自封的flash粒子,那就只能拿着这个固态模型或者代码去问客服或者Google了。没错,因为原来的颗粒是可以的,但是现在很多固态颗粒都是用自封颗粒,没有办法用flash.top或者FlashMaster之类的应用来查询。

原始颗粒的查询结果

目前比较好的检测自密封闪光颗粒的方法是使用俄罗斯Ochkin Vadim开发的闪光ID检测工具来救国。这个工具利用固态硬盘主控的命令读取闪光粒子的序列号,然后与内置的数据库进行比对,得到闪光粒子的真实代码。

Flash ID检测工具

至于如何区分闪存颗粒是原厂颗粒、黑片、白片还是工程版,每个原厂颗粒的命名规则和具体方法,最终决定一个颗粒的好坏。这个过程没有准确的百分百的方法,我就留给采购这一章吧。

其实最好的办法就是直接问对应品牌的客服。一般客服会反馈给工程师,然后得到结果。如果真的想知道一次做不到,可以多问几次,一般都能得到回复。

Master /SSD控制器在物理状态方面,其实粒子的擦写次数并不高,掌握好很重要。主控的水平关系到同一个颗粒下的读写速度,以及寿命,甚至比闪存颗粒的质量更重要。如果两个固态硬盘使用相同的闪存颗粒,如果一个用好的主控,一个用一般的主控,不仅读写速度可以相差数倍,寿命甚至可以相差10倍。

爱国者P7000固态硬盘主控

主控制器又称SSD控制器,本质上是一个小处理器,即使是多核,也像真正的CPU一样有SRAM缓存。与闪存颗粒不同的是,制造固态硬盘主控芯片的厂商很多,国外比较知名的有三星、硅动、群联、Marvell等。在中国,有很多公司,比如Sage,GOKE,MAXIO,YEESTOR,InnoGrit,StarBlaze,DATSSD,DapuStor等。虽然技术不如国外,但还是不如。

三星、容晖科技、群联、Marvell的主控芯片

主控中也会有一个小的操作系统。很多发烧友的“开卡”操作就是掉盘或者修复主控坏掉的固态硬盘,换上新的主控,刷入新的ROM(固件)的操作。

以NVMe SSD为例,主控制器主要做以下工作:

典型主控结构

这是主控的主要工作。比如NVMe SSD,往往需要性能强劲的多核处理器,因为NVMe协议的队列长度和深度都比较大,而且还支持乱序执行。主控制器除了控制上一章提到的数据读写,还执行FTL算法、调度算法、缓存算法等。

FTL(FlashTranslation Layer)算法FTL算法也是上一章提到的将物理地址转换成逻辑地址的算法。主控会将不同页的物理位置转换成一个逻辑代码,形成映射表,每次写入时实时更新每个逻辑扇区的状态。这样做的好处是,文件系统不需要关注实际的物理设备是机械硬盘还是固态硬盘。它只需要发送相同的逻辑扇区读写指令,剩下的交给机械硬盘或固态硬盘的主控制器处理。

映射表本身也存储在闪存粒子上。

不同的FTL算法也会显著影响SSD的4K读写速度。因为映射表本身需要频繁读写,所以映射表一般是在SSD上电后放在缓存中,也就是占用缓存空间。如果FTL按页映射,4K的读写速度会更好,但是映射表会很大,占用大量缓存空间;如果FTL按块映射,不会占用太多的缓存空间,但是4K的读写速度会比页面映射差。固态硬盘主控的实际FTL算法一般是两者的混合。

垃圾收集机制/TRIM收集指令另外,我们了解到,如果闪存颗粒上的块不为空,则需要先擦除才能写入,每次输出都会对相应的存储单元造成物理磨损。因此,FTL算法还应该保证每次写入新块时,不必先擦除旧块,以减少擦除次数,提高块的寿命。

但是这样会导致原块上的相同数据失效(先读出原块的内容,然后和新数据合并写入另一个地方,但原块并没有被擦除,只是原块在FTL表上被标记为可擦除),所以主机也要负责一次性擦除这些块(不同的垃圾收集算法会略有不同),直到这些失效的数据块累积起来,获得可用的空白闪存块。这个过程就是垃圾回收。

此外,固态中还有一种类似的专有机制叫做TRIM,这种机制更加极端。如果系统(比如WIN10)检测到固态硬盘支持这个指令,那么删除数据的时候根本不会发出删除指令,只会创建磁盘那部分的快照(在空白块创建快照的速度比写之前擦除那个块快很多),然后这个快照会交给主控制器,主控制器会在空闲的时候根据这个快照慢慢擦除相应的块,擦除完成后通知系统,这样下次。

CrystalDiskInfo可以看到固态一般支持TRIM指令,默认开启。

大多数系统默认启用该功能。以Windows为例,我们可以通过在命令行键入fsutil行为查询禁用删除来检查是否启用了TRIM。其他系统也可以搜索类似的指令,如果要关机,也可以通过类似的指令关机。

通过命令行查看TRIM的状态。如果禁用,则启用修剪。

通过垃圾收集和TRIM指令,不仅可以大大提高SSD的写入速度,还可以尽可能平均所有块的擦除次数,最大限度地延长闪存颗粒的寿命。

控制通道和队列为了优化性能,SSD会将闪存粒子放在多个通道上,每个通道都有一个I/O总线来接收输出数据,每个通道也有一个独立的通道控制器来与主控制器通信,并将主控制器发送的读写命令进行排队,然后逐一交给相应的闪存粒子执行。

因为固态硬盘没有机械硬盘那样的机械结构,分离多个通道意味着可以同时执行多条指令,保证固态硬盘发挥最高性能。而且通道控制器生成的队列还有一个深度参数,就是一个队列中可以排队多少条命令。现代NVMe固态硬盘使用的NVMe协议可以支持数万个队列,每个队列有数万条命令,因此可以同时支持上亿条读写命令,这也是NVMe固态硬盘顺序读取可以达到8 GB/s的重要原因

纠正比特翻转错误的ECC算法也是主控非常重要的工作。如果看一下企业用闪存颗粒的说明书,会发现还有一个重要的术语—— (R)BER(原始误码率),就是比特周转率。

在上一章和本章中,我们已经多次提到,浮栅中的电子会通过绝缘层慢慢逸出,从而导致读取错误的数据。比如SLC的一个存储单元,写了一个代表0的电子量,由于绝缘层磨损严重、时间过长或者环境温度过高,里面的大部分电子慢慢逃逸,所以这个存储单元里读取的数据就会变成0,这就是所谓的比特翻转。

BER指的是存储单元中的错误概率,而RBER指的是没有纠错算法的存储单元中的错误概率。为了防止错误的发生,每次写入数据时,主机都会将多余的校验码写入闪存页的多余存储区,然后用校验码和ECC纠错算法定期检查错误。如果存储单元中出现错误,纠错算法将使用校验码来计算该存储单元的正确数据并重新写入。

由于需要频繁纠错,每次要检测大量的存储单元,所以一般在主控中内置一个专门用于纠错的硬件——纠错码引擎,它包括很多编码器和解码器,也可以用于并行计算,提高效率。

RBER是衡量闪存颗粒质量的一个重要特性,它会随着闪存颗粒擦除次数的增加而指数恶化。

固态硬盘擦除时间与RBER指数分布的对应关系

当一个存储单元被纠错算法纠正后,很快又会出错,这个存储单元就没救了。UBER(不可纠正的误码率)是指出现不可纠正错误的概率。当UBER到了一定程度,我们就可以说这个闪存颗粒报废了。当闪存颗粒的所有妖孽达到一定程度,那么这个固态硬盘就报废了。

其实不仅仅是写,每个闪存块中的电子量如果读多了也会发生变化,导致数据错误。这个问题叫做读干扰。

还可以看出,TLC/QLC由于状态太多,更容易出现纠错算法无法纠正的错误。

控制缓存/模拟SLC缓存我们之前也提到过,SSD厂商会在SSD上放一个DRAM颗粒,或者让一些闪存颗粒模拟SLC来缓存。在读写数据的时候,他们会先写到缓存里,然后让缓存在空闲的时候写其他没有那么快的颗粒。

用DRAM做缓存通常是1 GB: 1 MB,很好理解。为了防止断电数据,很多固态硬盘还加了电容,给断电后缓存数据写入闪存颗粒留出时间,所以DRAM缓存没有缺点。但是现在很多固态硬盘都没有DRAM缓存,下面我们就来详细说说动态模拟SLC缓存。

上面我们还了解到,SLC和其他类型的存储单元在物理上使用的是同一个浮栅存储单元,所以厂商想到了简单牺牲一部分容量来模拟一部分MLC/TLC/QLC固态硬盘作为SLC,并将这部分作为缓存。这样厂商就可以省下下更贵的DRAM颗粒,把SSD做得更小,整体成本会下降很多(至于价格会不会降,就看厂商良心了)。很多业内人士和评测博主都不会对没有DRAM的SSD给出一个好的评价,因为DRAM缓存和SLC缓存的速度差距太大,使用部分flash颗粒进行缓存也会让flash颗粒的寿命变短。

当SSD使用DRAM时,主控制器还负责动态调整SLC缓存的空间。毕竟如果用固定的地方作为SLC缓存,每次读写数据都要经过这一部分,再优质的闪存颗粒也会突然死掉。所以主会动态分配未使用的块作为SLC缓存,一段时间后清空SLC缓存中的所有数据,恢复到TLC/QLC等其他类型(这个过程一般称为升级/降级)。

SLC缓存不够快,还有一个明显的缺点,就是缓存容量会随着SSD剩余容量的减少而减少。比如一个256G的QLC SSD,如果厂商分配30GB的SLC缓存,就要占用30*4=120GB的QLC空间。当用户使用这块SSD 256-130 30=156 GB时,剩余空间不足以分配这么多SLC缓存。

有良心的厂商会额外增加一些空间来弥补,无良厂商会直接破罐子破摔。毕竟用户在使用156GB后,可以通过减少SLC的缓存容量来继续加载数据,但是SSD的速度会越来越慢,最终成为真正的QLC速度。很多垃圾固态硬盘被戏称为大u盘,即没有缓存后,实际速度甚至会低于u盘,甚至顺序写入也只有几MB,甚至比机械硬盘还不如。

速度慢的杂牌“大u盘”固态硬盘,图片来源:有什么值得买的@blackocean

此外,还有类似的技术,如HMB。原理是支持的操作系统可以分离出一部分运行内存作为固态硬盘的缓存,省去了没有DRAM颗粒的成本,避免了SLC缓存的缺点。不过目前似乎只有NVMe SSD加WIN10 1709以上才能开启这项技术。

我手里的西数SN550的宣传页就强调了这项技术。

OP space看完以上部分,细心的朋友可能会发现,SSD除了用户数据,还有很多多余的数据要安装—— FTL映射表、校验码纠错、SLC缓存等等。

所以厂商通常会让SSD的实际容量大于标称容量,根据良心程度从5%到30%不等,也就是说256G SSD的真实空间甚至可以有332GB。这个额外的空间称为OP空间(OP=Over Provisioning,意思是额外供应)。

这部分空间也是动态的,由主控调整。除了把我们上面说的多余数据放进去,当一些存储单元坏了的时候,主控制器还要负责把OP空间里的容量释放到正常使用,保证用户可以使用的总容量不变。此外,额外留出一部分空间来平衡擦除次数,也可以在一定程度上延长SSD的使用寿命。如果有30%的OP空间,固态硬盘的使用寿命甚至可以延长50%以上。

一些玩SSD的发烧友,所谓的打开操作,一部分就是用专门的出厂软件打开这个空间,获得额外的空闲容量。想折腾手,刚好有闲置固态硬盘的朋友可以去找相应品牌的出厂软件玩玩。

东芝的SSD管理软件可以轻松调整OP空间。

至于如何检查缓存容量和OP空间的大小,OP空间一般需要相应品牌的出厂软件才能看到,缓存容量需要通过实际测试用完。我会在下面的实际测试部分教你怎么认真做。

主控协议ONFI/Toggle至于闪存颗粒的接口标准和主控之间的交互协议,目前有两种ONFI/Toggle,厂商围绕这两种协议形成了联盟。ONFI协议联盟主要有英特尔、镁和海力士;Toggle协议主要包括三星和东芝,ONFI协议的诞生主要是为了对抗三星和东芝的垄断,背后也有故事。这个协议的细节和背后的故事,我在这里就不细说了。有兴趣的朋友可以看看相关文件的内容,或者自己找找。

看我们对主控工作的了解,算法越高级,各部分的效率越好,而越高级的算法对主控性能的要求越高。相信大家对主控性能和算法质量的重要性有了更深刻的理解。

就像CPU需要散热风扇一样,SSD的主控性能日臻完善,需要一件散热背心用颗粒产生的热量压住,甚至未来还会专门为SSD准备散热风扇。

温度升高后,PCIe4.0的固态硬盘速度立刻下降。

其他SSD参数P/E(编程/擦除周期)周期擦除次数在SSD部分,我们已经反复介绍了擦除对闪存颗粒寿命的影响。其实有一个特殊的参数可以量化SSD的寿命,那就是P/E。

一个P/E就是把整个SSD上的所有块擦除一次。如果一个SSD的产品参数上写着10000 P/E,那就说明SSD生产10000次后,里面的存储单元就无法存储电子了,也就是SSD的寿命。

通常SLC SSD的市盈率都在10万倍以上,MLC SSD是1万倍,TLC SSD是3000倍,现在越来越多的QLC SSD只有不到1000倍(金士顿,2021.04)。

是不是听起来比预想的少很多?一些朋友甚至想知道QLC固态硬盘能坚持多久。但是我们在上面介绍主要控制工作内容的时候,所有工作内容的最终效果几乎都是减少缸体磨损,减少磨损的操作统一起来叫磨损平衡。

本来P/E的意思是每个存储单元擦除一次,但是因为磨损均衡,优秀的FTL算法和OP空间使得每个存储单元尽可能均匀地擦除,所以P/E就变成了将整个SSD上的所有块擦除一次。

我们来看看实际场景。如果512G固态硬盘每天写入20G数据,则:

SLC SSD的理论寿命是512 * 10万/207000年。MLC SSD的理论寿命是512*10000/20700年。TLC SSD的理论寿命为512*3000/20200年。QLC SSD的理论寿命是512*1000/2070年。未来流行的PLC固态硬盘按照现在的技术理论寿命是512*35/202年。除了PLC看起来还不错,但是所有类型的固态硬盘实际寿命都会更长。首先,20G的日写容量即使从系统盘来说也是比较大的。除非你每天安装卸载很多软件游戏或者高清音视频文件,否则不会需要那么多。

其次,根据上面的计算,你有没有发现,容量越大,寿命越长,所以如果你用的是大容量的固态硬盘,不管是什么类型的颗粒,基本上都不用担心寿命的问题。所以很多人买固态硬盘,关注市盈率周期数,意义不大。

当然,如果按照另外一种计算方法就会比较惊悚,那就是连续写入,就是24 小时不断写文件进去固态硬盘,按照这种计算方法QLC 只需要三天就会挂掉。这种场景民用领域比较小众,但还是有的,比如挂PT 下载或者做监控和直播,这种情况就千万不要选择SLC 以外的固态硬盘了。

其实固态硬盘写入还有一种叫做写入放大的问题,首先就是上面提到的空闲时GC 垃圾回收还有TRIM 机制造成的无效数据搬运,增加擦写次数的问题;另外当用户使用固态硬盘大部分容量之后(比如512GB 用了400G),只剩下一小部分可用空间来装新数据,如果这个时候用户就不动前面这400GB 然后不断删除再写入新数据,这个时候主控再怎么做磨损均衡,也只能把数据写在那100GB 的闪存块里,导致这100GB 闪存块擦写次数要比剩下的400G 多得多。就会让固态硬盘实际寿命短不少,剩下这部分空间也容易出现错误,不断纠错导致读写速度下降,这也是固态硬盘使用容量多之后掉速的原因之一。

写入量参数:TBW/DWPD与其关注P/E,写入量更为重要,这点是有厂商背书的。虽然民用固态硬盘一般不会标出预计写入量,但企业级固态都会标出TBW/DWPD,而且会以这个作为保修的标准之一。

TBW(TB Write)就是固态硬盘的总写入量,一般都会写在厂商保修条款里面:

单位就是TB,一般保修年限和TBW 以先到的为准。TBW 单位是TB,别以为普通用户用不了这么多,这里放个只挖了几个月虚拟货币的固态硬盘参数给大家开开眼:

挖了几个月矿的西部数据SN550,读写都快1200TB 的固态硬盘你见过吗

更别说企业用户了,所以对于写入量更大的企业用户还有另外一个参数DWPD,这个参数代表每天全盘写入次数,也就是每天写满多少个硬盘容量。

DWPD 一般只有用料十足卖的贼贵的企业级固态才敢这么标,民用级固态可不敢这么玩,拿我们上面举例的512GB QLC 固态来讲,与普通企业级硬盘10DWPD 也就是每天写10 个盘容量来算:512*150/5120=15 天,半个月就能把这个盘干废了,所以知道为什么买二手硬盘要小心小心再小心了吧。而企业级固态这么玩还能有几年的保修时长,足以看出颗粒和主控品质的差距。

三星关于DWPD 和TBW 的介绍

TBW 除以固态硬盘本身的容量就可以转换为P/E 次数,DWPD 乘以保修时长大概就可以得到TBW。

总体来讲,一块闪存颗粒或者说固态硬盘的寿命是以颗粒类型为基底,好的颗粒质量和主控算法能在此基础上让寿命延长。

查看固态硬盘寿命看到这里很多朋友是不是已经迫不及待想知道自己固态硬盘的剩余寿命了,其实固态硬盘主控都帮我们统计好了读取和写入量。使用CrystalDiskInfo 这类软件就可以直接看到总写入量和读取量,然后再查看你的固态硬盘对应的产品参数,结合颗粒类型就可以算出这个固态硬盘的健康程度和剩余寿命。另外说一下CrystalDiskInfo 左边的健康度其实大概也是这么算出来的,不过偏向保守,实际数值会比这个差,CrystalDiskInfo 显示60% 以下基本就可以当做寿命快到了。

CrystalDiskInfo 的健康度和总写入读取量

按照我用来做系统盘的普通NVMe 固态硬盘来讲,已经使用了得有两三年了吧,目前写入量18401GB,换算成P/E 大概是71,按照TLC P/E 来讲才消耗了14% 的寿命。这就是我一个日常用户大概的使用情况,所以说与其担心颗粒寿命不如担心一下主控能不能挨这么久,毕竟大部分固态坏掉的都是主控,颗粒还能被厂商回收起来再次利用。

相关文献:

[1]. 固态硬盘的主要尺寸标准可以参考全球网络储存工业协会SNIA 的介绍。[2]. NVMe 协议以及对应控制器的详细情况,可以参考这份NVM Express 官方的开发者文档。[3]. 查看储存颗粒详细参数可以上https://www.flashinfo.top/这个网站或者使用FlashMaster,另外这里也放一份俄罗斯人Ochkin Vadim 制作的Flash ID 读取工具。[4]. 闪存颗粒的生产过程可以看一下镁光官方在YouTube 上传的视频「Making Memory Chips Process Steps」。[5]. ONFI 与Toggle 协议的介绍可以查看各自的官方文档「ONFI Specifications」和「TOSHIBA memory Toggle DDR1.0 Technical Data Sheet」。[6]. 各家固态硬盘更新固件,还有开盘的工具:铠侠(东芝)固态硬盘固件管理工具Kioxia Storage Utilities,三星固态硬盘管理工具Samsung SSD Magician Software,西部数据固态硬盘管理工具WD SSD Dashboard。[7]. 未来我们能买到的便宜的PLC 颗粒的介绍。[8]. 关于我们常看见的BiCS4 3D NAND 名词可以参考铠侠(东芝)官方的介绍

测试固态硬盘的实际性能了解完对应的参数之后,我们就来到了实际测试环节了。在这个环节使用的软件和基本参数反映的意义与机械硬盘部分都差不多,有一些在固态硬盘特性加持下会有一些不同。

但我们需要知道的是,和机械硬盘直接跑就能获得比较准

确的速度不同,固态硬盘在不同负载和扇区大小的情况下,性能都会有明显的差别。除此以外,不同的文件系统,不同的CPU,不同的内存主板供电,甚至是不同操作系统的格式化方法等等都会影响到固态硬盘的实际性能,有时候带宽足够固态硬盘也会跑不出标称的性能,最重要的还是散热,不同的散热对高端固态硬盘的性能有巨大的影响。

也正因为如此固态硬盘的标准测试方法,一直都众说纷纭,特别是行业联盟或者业内给出的测试方法往往过于复杂,要求很高,对于普通用户不太适用。这种复杂程度也让固态硬盘的国标测试方法直到最近才出来(GB/T 36355-2018,2019 年生效)

固态盘测试国标 GB/T 36355-2018 封面

但国标测试方法对普通用户而言还是有点复杂,所以通常用户自己使用的时候,只需要按照我下面给的方法测试一下,接近标称性能就足够了,不过这种波动也成为很多无良厂商混用主控,偷偷更换内存颗粒的借口。

测试环境:AMD 5600X + 华硕 B550M-PRO + 海盗船复仇者 8G*2 3200Mhz,室温 27℃ 空闲固态硬盘无散热马甲(吐槽一下华硕主板 PCIe3.0 M.2 接口有散热马甲,PCIe4.0 M.2 接口反而没有就离谱),新建简单卷关闭文件压缩。

空盘、半盘、满盘测试

测试方法简单总结就是:空盘,半盘,和满盘测试。在这部分我们依旧使用 ASS SSD Benchmark 和 CrystalDiskMark 这两款软件。

注意,以下测试基本都是最极端的情况,实际使用情况会比测试结果好。

我们以 aigo 性价比 SATA 固态硬盘 S500 和高端 NVMe4.0 固态硬盘 P7000 为例:

首先是两个盘刚刚格式化之后,或者容量为空的时候,开始用两个测试软件跑一次测试。

SATA 固态硬盘 S500 空盘测试结果

NVMe4.0 固态硬盘 P7000 空盘测试结果

接下来我们可以用手头上的大文件,比如电影或者游戏安装包等等来把硬盘的容量用到一半,接下来再进行同样的测试。

SATA 固态硬盘 S500 半盘测试结果

NVMe4.0 固态硬盘 P7000 半盘测试结果

最后我们把所有的固态硬盘容量用到只剩 50GB 左右,再进行最后一次测试。

SATA 固态硬盘 S500 满盘测试结果

NVMe4.0 固态硬盘 P7000 满盘测试结果

如果你只想测试不同容量下的日常速度,每次填满到目标容量之后等待 0.5~1 个小时让缓存容量恢复(上面测试就是这种);如果你想测试固态硬盘缓存外的极限速度,那么这几次测试过程最好是连续的,另外如果你想获得更加准确的数据,可以把软件跑的数据量从 1GB 提升到 10GB,但是测试时间会长很多很多。

测试过程从头到尾不要让其它硬盘占用带宽,同时建议打开 CrystalDiskInfo 或者类似软件来实时监看固态硬盘温度,如果温度过高,性能低就不关固态硬盘本身的事了,需要我们自己加强散热。

之所以我们要这样测试,是因为厂商对于固态硬盘通常标注的都是空盘 1GB 测试容量下连续读取的速度,也就是最理想情况下最好的那个数据。我们日常使用基本上不会有这种良好的场景(比如你不会买一个固态硬盘一直让它空着吧,也不会每天都只复制单个 1GB 左右的文件吧)。

我们分为空盘,半盘和满盘来进行测试,不仅可以模拟日常使用固态硬盘各个阶段的实际场景,满盘容量加上连续的测试也可以让 DRAM 和 SLC 缓存都被用完,测出真正的缓外速度,看看厂商的颗粒主控质量。

如果一个固态硬盘跑分和官方标称的速度差不多,并且空盘半盘满盘三个状态下跑分速度都没有明显掉速,或者只有满盘状态下才会有不严重的掉速,那么这个盘的质量还是很不错的。如果半盘的情况下开始掉速,但不严重,那么这个盘的质量还可以。如果半盘或者写入量大一点就开始严重掉速,那么这个固态硬盘的质量就需要好好考虑了。

HD Tune Pro:测出缓外速度和缓存容量

上一个测试,算上填满容量的时间需要蛮久的,特别是当一些固态硬盘缓外速度比较慢的时候,整个过程还是挺煎熬的。而且要进行 5,6 个步骤,还挺麻烦。如果你想要简单直接一点就能测出最好的速度和缓外速度,顺便还能大概估算出缓存容量,那么可以试试使用 HD Tune Pro。

HD Tune Pro 界面

HD Tune Pro 原本是为测试机械硬盘而设计的,所以对于固态硬盘的测试数据仅供参考。但它有一个优点,可以设置自动写入不同类型的文件直到达到特定的硬盘容量来测试。并且测试的结果有很明确直观的图表,这样就很方便,我们看出缓存内和缓存外的速度,通过跌下来的那一瞬间,我们还可以判断出固态硬盘大概的缓存容量。

SATA 固态硬盘 S500 写速度与缓存容量

SATA 固态硬盘 S500 读速度与缓存容量

NVMe4.0 固态硬盘 P7000 写速度与缓存容量

NVMe4.0 固态硬盘 P7000 读速度与缓存容量

HD Tune Pro 的使用有一点需要注意,就是需要硬盘没有被格式化而且没有分区,不然选择写入的时候就会提示写入已被禁用。如果已经建好分区卷,可以在 Windows 的磁盘管理里面选择对应的磁盘右键选择删除卷就可以了。另外软件默认的块大小是 64KB,与其他测试软件对比时块大小要对应才可以。

对应的固态硬盘要未分配才行

实际复制测试

很多同学觉得这样子测试耗时也比较长,不如我直接拿大文件来复制粘贴测试算了。虽然这样子也能测试出实际的使用场景,但前提是你必须保证大文件所在的原始盘读取速度要大于目标盘的写入速度,无论你是测 4K 还是连续读写都是一样。比如极端一点,你从一个机械硬盘复制 50GB 的电影到 NVMe 固态,那么你测出来的写入速度就只有 100MB/S 左右,之所以使用测试软件,就是因为测试软件它的测试文件是生成在运行内存里的,速度保证能达到最快。

保证原始盘比目标盘快的情况下,我们只需要在原始盘准备大约 30~50G 的单个文件和 1000 个小文件(比如图片或者小说),就可以通过反复复制查看缓存内与缓存外的速度了。

空盘情况下,如果速度再复制某个文件的时候突然掉下来,那么这时候查看固态硬盘已用容量,大概就是固态硬盘缓存的大小了。

测试缓外速度的意义

有些朋友可能会问了,我们日常使用固态硬盘基本都没有这么大的文件或者这么长时间的读写,那么测试缓外速度和缓存容量还有意义吗?

不管我们自己跑,还是查看别人的评测,缓存容量都是很有必要测试的一项,虽然一般缓存我们用户日常也够用了,通常也不会有很多写入超过缓存大小文件的场景。不过如果是电影文件或者安装系统游戏的时候,还是有可能跑出真实速度,所以我们平时也是要测试固态硬盘缓存外速度的,如果缓存外的速度特别烂,那这个固态用料和厂商的良心也好不到哪里去。而且首先既然缓存是比较快的,那么同样价格买到的固态硬盘,缓存容量和缓存外速度自然是越大越好。

上面几种测试方法,一般都是给用户或者媒体简单测试一下使用的,想要查看更详细准确的数据或者做更专业的测试,可以使用 FIO 等这类专业的储存设备测试软件,不过它们通常没有安装包下载,需要自己根据使用平台去编译源代码,使用的时候也是要用命令行,普通用户用我推荐的软件方法去测试就足够了。

相关文献:

[1]. 英睿达 Crucial 官方的简单固态硬盘测试方法。[2]. 国家标准 GB/T 36355-2018《信息技术 固态盘测试方法》[3]. 希捷科技 Seagate 的固态硬盘性能测试方法。[4]. JEDEC 固态技术学会发表的固态硬盘测试标准和固态硬盘负载测试标准。

机械硬盘和固态硬盘的优缺点及使用场景

到这里你已经基本上了解完了机械硬盘和固态硬盘的原理结构,还有常见的参数。这一小节我们就来对比一下它们两个之间的优缺点,以及推荐的使用场景。

以下讨论的优缺点均截止于文章发布前,讨论的设备仅限民用普及的储存设备。

尺寸

尺寸方面固态硬盘十分占优,即使是 2.5 英寸机械硬盘制作成的移动硬盘,加上保护措施等外壳仍然会比银行卡大上不少。而固态硬盘只需要将颗粒和电路板集成度做高,就可以做得非常小,即使是比较大的 2280 NVMe 固态硬盘加上外壳,体积仍然只有机械硬盘的几分之一。

所以固态硬盘十分适合放到笔记本,平板等等便携式设备里面。而机械硬盘现在的用途越来越偏向大容量的存储设备,比如台式机和 NAS。

价格/容量

储存设备价格通常是以每 GB 多少元为标准。

机械硬盘方面,随着 16TB 甚至 18TB 机械硬盘的出现,让机械硬盘的每 GB 价格降到了一毛多左右,这个价格是固态硬盘,暂时还追不上来的。

但是通过使用 QLC 颗粒还有其他一些技术,固态硬盘的价格也迅速下降,现在每 GB 价格低的也只有 5 毛不到。

容量方面也是类似,目前机械硬盘的容量在 20TB 左右,而固态在 8-12TB,虽然未来两个类型都会有厂商推出更大容量的产品(机械硬盘和固态硬盘都有 100TB 的产品问世了),但高容量都会带来一些妥协的问题,比如机械硬盘的叠瓦和固态硬盘的颗粒速度与寿命。

写入/读取

这方面就是固态硬盘的天下了,机械硬盘的机械结构决定了它的速度达不到太快,每次读取和写入都需要几次等待和物理移动,完成每次请求都要几十毫秒;固态硬盘的全电气化和量子隧穿效应让读写 I/O 速度可以达到纳秒级别。

另外也大家有没有发现,因为读写都是相同的机械结构和类似的原理,机械硬盘是不分读取写入速度的,读取和写入通常都差不多;而固态硬盘因为读写原理和实现方法稍有不同,导致读取和写入速度通常都是不一样的。

耐用性与数据恢复

耐用性方面也是固态硬盘比较占优势,还是因为固态硬盘没有机械结构,所以不会因为震动跌落影响工作,把机械硬盘的磁头臂离盘面只有几十纳米,工作的时候一旦跌落或者有大的震动,磁头臂很容易就刮到盘面,直接把触碰部分的数据报废。即使机械硬盘储存数据的寿命比较长,但日常使用的情况下,机械硬盘和固态硬盘的寿命都是以 10 年为单位,所以这方面不用太多考虑。

但数据恢复方面是机械硬盘的强项,一来是机械硬盘删除数据不是直接删除,而是先标记对应区域可以写入。这样在这块区域没有新的数据写入之前原本的数据还在上面,可以通过特殊的方法提取出来。即使有新的数据覆盖写入,之前的磁颗粒还会残留一些「数据阴影」在上面,技术比较高的数据恢复公司还是有可能恢复数据(详细内容会在数据恢复章节介绍)。

固态硬盘就不一样了,写入之前需要先擦除块,擦除之后块上的所有储存单元的电子都跑掉了,加上垃圾回收机制和 TRIM 功能会在空闲时把块擦除,所以一旦数据被覆盖,除非第一时间拔出固态硬盘断电,不然基本上是没有可能恢复回来了。SLC 可能还有牛逼的数据恢复公司根据残留电子量推断原来的数据,MLC 以上的多层储存单元基本上没戏了。

掉速

机械硬盘和固态硬盘都会掉速,但是原因却不一样。机械硬盘掉速主要是在文件碎片方面,而固态硬盘掉速主要则是因为缓存。但即使固态硬盘用到缓存外,我们日常碰到比较多的情景 —— 4K 读写能力仍然好于大部分机械硬盘。

机械硬盘换固态硬盘的提升

很多人认为把机械硬盘换成固态硬盘,然后把系统装在固态硬盘里,只是提升了开机速度,但其实除了开机速度和复制文件变快,整个系统的反应都会因此提升。原因部分是因为固态硬盘更快的读写速度,但更直接的原因是固态硬盘更高的 I/O 数。

我们日常在操作系统上运行软件游戏,除了操作系统在不断的调用系统目录里面的各种库文件,软件和游戏本身也在不停的访问自己安装目录里面的文件。

比如我们 Chrome 浏览器访问少数派首页,表面上看只是一个网页,但浏览器需要加载很多个脚本文件、样式文件、还有网页上的每一张图片等等的各种资源。

这些资源不仅数量众多,其实容量也不小,用浏览器的开发者模式就可以看到,每加载一个网页就要往硬盘上写入几十 MB 的数据。资源被加载后,浏览器会先把它们放在硬盘上的一个缓存目录里面,等全部加载完再运行上面的代码并图片显示出来。之前我们学到这几百个小文件考验的是什么?没错就是 4k 读写能力,而固态硬盘的同样时间内完成的 I/O 请求是机械硬盘的几百倍甚至几千倍,所以同样的几百个资源,放到缓存目录和读取用时只是机械硬盘的几百分之一甚至几千分之一,最后我们用户感受到的效果是什么 —— 就是加载网页变快了。

你看机械硬盘换成固态硬盘甚至能让网页加载变快。不仅如此,打开关闭软件、登录退出软件、加载保存工程文件、游戏加载地图等等日常操作都会变快不少,综合到用户体验上就是感觉整个系统反应都变快了。

不同类型硬盘的适合人群和应用场景

中和机械硬盘和固态硬盘的优缺点,以及日常使用人群的用途,我来给大家讲讲不同类型硬盘适合的人群和场景。

机械硬盘

影音发烧友和不放到本地就不放心的用户,那么非常推荐使用机械硬盘,更便宜同时容量更大,尽量不要使用固态硬盘,因为频繁写入颗粒寿命本来就短,而喜欢下载用户很快把剩余容量用到很小,反复擦写剩下的部分导致固态硬盘寿命更加短。

省钱专家/办公用户,不是所有用户都需要很快的速度,如果你的需求只是组一台用来办公或者轻度影音娱乐的电脑,不玩游戏,偶尔看看电影,那么固态硬盘也是一个不必要的选项,毕竟垃圾固态硬盘便宜,小容量的机械硬盘更便宜。

工程专业/安防监控,工程专业的学生或者业内人员往往会有一大堆像鬼那么大的工程文件,这个时候同时满足大容量优先和 4K 读写能力没有那么重要两个条件,机械硬盘就是一个不错的选择;另外像是安防监控这些需要不停连续读写,容量满之后还要滚动擦写的领域,上面我们已经提到了固态硬盘连续读写寿命能有多短,机械硬盘就是唯一选择。

NAS 和数据仓库,这是机械硬盘另一个典型的应用场景,就是容量大 + 断电保存 + 数据安全,毕竟固态硬盘一旦出错或者误删除里面的数据基本就不用期待着能找回来了。同时机械硬盘的磁化是永久的,同时固态硬盘断电之后闪存颗粒里面的电子会慢慢流失,QLC 固态硬盘在实际生活中往往几年后就会开始丢失数据。

可以使用像 aigo H809 这样的 2TB 移动机械硬盘,不仅花一点钱能装很多数据,也能随时带走。

aigo H809 2TB 移动机械硬盘

SATA/低速固态

经常出差的商务办公人士,他们的数据比较重要也比较多,同时经常出差,最好就是把笔记本里面的机械硬盘全部换成固态硬盘,防止经常旅途中的忘记休眠或者关机笔记本的意外和震动让机械硬盘损坏。但他们的关注点主要在数据安全上,不想要 U 盘那么慢的速度但也没有很多大文件需要经常复制,特别是商务人士换设备的频率比较低,用上最新设备的比例很低,这个时候 SATA 接口的固态硬盘就是一个很实惠的选择。

固态硬盘当移动硬盘用的人,很多人需要更高速度更耐用的移动硬盘,同时现在除了雷电接口其它接口的速率上限往往不高,即使是 USB3.1 接口速度上限也只有 1.25GB/S,用 SATA 接口的固态硬盘加上硬盘盒作为移动硬盘使用就很合适。其实市面上很多固态移动硬盘产品就是这样做的,拆开外壳以后就是完整的一个 SATA 固态硬盘。

旧机升级,直到现在仍然有很多人在使用没有 M.2 高速储存接口的设备,比如给父母用的电脑或者学校教室用的教学电脑,虽然不需要很快的读写速度,但又想提升现有设备的体验。这个时候就可以先上低速固态,低速只是相对于高端固态来讲,对比机械硬盘仍然是几十倍的提升,能够明显提升旧设备的反应速度。

单机游戏玩家,这是低速固态硬盘的一个经典使用场景 —— 储存不太重要的数据,同时对读写速度都有要求。单机游戏容量越来越大,同时主机游戏玩家也在追求更好的游戏体验,用低速的固态硬盘就能获得几百倍与机械硬盘的 4K 读写能力,同时用较低的价格获得较大的容量。

所以像是 aigo 固态硬盘 S500 或者 aigo 移动固态硬盘 S7 Pro 这样子的设备就很适合上面几种用户了。比银行卡还小的体积加上轻薄机身,固态硬盘不怕摔不怕晃,价格便宜同时拥有优秀 4K 读写能力加上 1TB 的大容量,既可以做商务人士的第二文档库,也可以做游戏玩家的移动游戏库。

aigo 移动固态硬盘 S7 Pro

NVMe/高速固态

系统盘/移动系统盘,我们用计算机就是在用操作系统和各种软件,所以系统盘一定要用你预算以内能买到最快的固态硬盘,插在你主板上最快的接口上。最近所有储存设备再快也快不过处理器和运行内存,完全没有性能过剩的问题,能买多快使用体验就能提升多少。

摄影师/数字画家,对于摄影师和数字画家这种,靠影像来工作的人,随着工作经验的积累带来的还有成千上万张图片。这个时候连低速固态硬盘都已经满足不了需求,必须上高速固态硬盘才能让工作流变得流畅。

影视行业人士/音乐工作者,对于影视行业和音乐工作者这种专业领域来说,经常需要加载大量的素材,不仅容量大数量还多,对储存设备读写速度还有 4K 能力都有极高的要求,基本上都是能上多好就上多好,毕竟在专业领域速度快一点,赚钱就多一点。另外固态硬盘还有一个优点就是安静,没有机械硬盘那种咔哒咔哒的读取声音,能够让创作者更好地集中注意力。

其实对于所有工作需要经常和数字设备打交道的人来讲,都应该选择尽量快的固态硬盘。毕竟效率就是金钱,对于效率提升赚来的钱来讲,高速固态最大的缺点 —— 贵,也就显得微不足道了。

重度/职业游戏玩家,对于重度游戏玩家和职业选手来讲,高速固态就意味着进入游戏更快,加载地图更快,死掉之后重生更快,传送更快,经常玩游戏的话不仅能省下可观的时间,也能让玩游戏更加舒服。现在的游戏也越来越偏向高速固态优化,像是 PS5 和 XBox 今年都以超高速固态、无缝切换地图和快速恢复游戏为卖点,以后超高速固态将会成为游戏玩家的刚需。

不差钱的土豪,最后一种自然就是各位不差钱的土豪了,什么原理结构通通都不重要,直接上最贵的。至少在储存设备这个领域,最贵的就是最好的这句话大部分时候是适用的,所以各位不差钱的土豪们直接上最好的就行。

高速固态可以试试 aigo 的 P3000/5000 系列高速 NVMe 固态硬盘,甚至可以直接往 PCIe 槽插一张 P3000A 企业及固态,什么都不用介绍了,想要用比较低的价格买到参数比较顶级的固态,选这几个很 OK。

aigo P5000

高速固态还可以更好地战未来,比如等未来微软的 Direct Storage 普及之后,PCIe4.0 的重要性就会更加突出,用了一阵子的高速固态还能发挥出更高的性能。

我在查找资料的时候,居然还发现有 NVMe 机械硬盘这种神奇的东西。大家也可以去搜一下相关的信息,如果有机会我会把它放到最后一章讲一下。

总结

到这里,我用两章的篇幅给大家非常全面地介绍了固态硬盘的原理,结构还有参数,还给大家对比了一下机械硬盘和固态硬盘的优缺点,同时针对不同受众和情景做了推荐。可以说看到这里的你,已经比绝大部分人都要更加了解固态硬盘这个领域了。

在下一章,我们将介绍运行内存、内存卡、手机内存芯片等其他存储设备的参数原理,接着就要进入大家最感兴趣的选购和使用的环节啦。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/xinbi/59607.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部