这是少数派与国民好物 aigo 联合推出的信息储存设备的科普系列文章。作为国内早期的存储设备制造商及佼佼者,感谢 aigo 对本文提供的一系列支持,包括但不限于技术知识指导、市场难寻的老物件以及作者用于拆解介绍的最新产品等。
我们希望通过最简洁通俗的描述,带领大家了解信息储存设备的基本原理,知道那些复杂的参数,如何挑选购买适合自己的存储设备,又是如何更好地使用,更安全稳定地保存我们的数据,以及未来我们能够用上什么技术。 另本系列虽然与 aigo 联合发起,但所有内容不涉及任何品牌指导或要求的商业营销。
在上一章我带大家从微观的晶体管到宏观的闪存颗粒,让大家详细了解了固态硬盘的原理和结构。那么这一章我们就综合上一章学到的知识来介绍一下我们选购和使用固态硬盘时需要了解到的一些参数,以及如何测试固态硬盘的实际性能和速度,相关的性能参数又代表着什么。
固态硬盘的参数解读
在介绍各个参数之前,我想先推荐一个比较好用的查看硬盘信息(机械硬盘和固态硬盘都可以,比较好用)的软件给大家 —— CrystalDiskInfo,看名字大家都应该能猜到它是和 CrystalDiskMark 同一家出的软件,完美继承了它家软件的特点:界面简单,功能简洁好用,有二次元皮肤。
可以看到无论是固态硬盘还是之前介绍的机械硬盘,它都能读取到比较详细的信息,基本可以覆盖我们下面要介绍到的参数了。
固态硬盘的尺寸
不同于机械硬盘基本上快大一统成 SATA 接口,只有少部分企业级在用一些特殊的接口,固态硬盘在接口方面可谓是群魔乱舞,不同接口对应的协议和最终的速度也是各不相同。不过等到固态硬盘发展到像机械硬盘那么成熟之后,这个现象也会逐渐消失,比如现在 M.2 接口就逐渐成为固态硬盘接口的主流,估计以后能像 Type-C 那样统一固态硬盘领域。
目前固态硬盘的尺寸也像接口那样五花八门。为了跟之前的硬盘位硬盘架通用,早前固态硬盘通常会设计成跟 2.5 寸机械硬盘一样大,用的也是 SATA 接口。
使用 SATA 接口的固态硬盘大部分被设计成和机械硬盘通用尺寸和接口。如果你手边刚好有一个 SATA 固态硬盘,我非常鼓励你试一下把它拆开来,大部分固态硬盘的外壳都没有螺丝,直接用卡扣固定,拆下来之后你就会发现,其实真正储存和电路部分只有一小块,剩下的都是空的:
甚至有些商家还会给空空的地方贴一些海绵或者配重块,来让整块固态硬盘手感好一点。外壳纯粹就是为了兼容笔记本或者台式机里的 2.5 寸硬盘位。
因为 SATA 接口和走 SATA/AHCI 协议的接口速度上限被限定在 700MB/S 左右,所以新的固态硬盘都会选择使用 M.2 接口或者直接插 PCIe 槽。
我们在购买 NVMe 固态硬盘或者把它们装到电脑主板上时,通常都会看到类似于 22XX 4 个数字的参数,这个就表示固态硬盘的尺寸。
22=22mm,也就是固态硬盘宽度是 2.2 厘米的意思,后面两个数字就是固态硬盘的长度,通常会有 20,42,60,80 等常见长度,以毫米为单位。我们购买的时候一定要先看看自己设备上的 M.2 接口预留出了多少空间,免得太长放不进去。
至于 2220 长度的固态硬盘估计大部分人都没见过,在早前比较常用,如果你现在在笔记本或者其他地方找到这个接口,大部分时候其实是给 WiFi 模块用的。
在有些设备上还会使用 mSATA 固态硬盘,虽然它的缺口和 NVMe 固态硬盘一样,但是宽度比较宽,所以接口是不通用的。
固态硬盘的接口协议
在介绍机械硬盘结构原理的那一章,我们已经了解到接口,协议,和总线的联系和区别。这一章我们介绍固态硬盘接口时可以顺便稍微复习相关的知识,同时拓展介绍一下它们仨。
先来简单复习一下:
- 总线:计算机设备里各个部件之间交换数据(传输电信号等)的通道,这个通道每秒能传输的数据量就叫做带宽。
- 协议:双方交换数据的规则,比如如何识别对方的身份、如何建立断开连接、编码解码方式(也就是电信号怎么传输接收)等等。
- 接口:让两个设备之间可以通过特殊的形状物理连接起来。
机械硬盘一般使用的就是 SATA 总线或者,然后使用 SATA/AHCI 协议来和设备其他部件沟通,但放在固态硬盘上事情就有一些复杂了。在本小节开头,我们也提到目前固态硬盘的接口协议等等种类还比较多,也让很多用户稀里糊涂买到了不适合自己的固态硬盘或者速度没有达到设备上限的固态硬盘,浪费了额外的时间和性能。
我们先来说一下总线,目前我们民用储存设备常见到的总线有 SATA 总线、PCIe 总线和企业级 SAS 总线(如果你用一些服务器主板的话,可能会有)。之前我们了解到 SATA 总线一般是给机械硬盘使用,而且速度上限比较低,而 SAS 总线又是企业级使用比较多,那么除了低速的固态硬盘走 SATA 总线,现代的 NVMe 固态硬盘一般都是走 PCIe 总线了。
而协议方面目前民用的也是只有比较少的几个,SATA/AHCI 协议,MVMe 协议,SCSI 协议(同样是企业级服务器用的比较多),没错,我们常看到的 NVMe 固态硬盘中的 NVMe 指的就是这个硬盘使用的协议。高效的协议能让总线满效率运行,跑满总线的带宽,这也是 NVMe 固态硬盘能那么快的原因。
和简单的总线协议不同,固态硬盘接口方面可就复杂多了。最基础的就是我们常见的 SATA 接口,还有为了笔记本等便携式设备引申出来的 mSATA 接口,还有固态硬盘专享的 M.2(NGFF) 接口,SATA Express(SATAe) 接口,PCIe 接口,甚至还有不常见的走 SAS 总线的 SAS 接口与 U.2,AIC 接口等等,这些接口各自走前面的 3 个总线和协议,大概像是这个样子:
怎么样?是不是觉得很复杂?没关系,接下来我就来带你实际从不同接口的固态硬盘出发,简简单单就记住它们的关系。
在逐个介绍之前我先说一下总体情况,和机械硬盘物理速度上限较低,所以不太需要考虑协议和总线速度的情况不同,对固态硬盘,特别是对现代高端固态硬盘来讲,不同接口协议总线已经开始可以限制固态硬盘的速度发挥了。
这里又要重新强调一下之前讲过的木桶效应,固态硬盘最终速度取决于接口协议总线最慢的部分。但通常厂家都会保证速率和协议达到要求,才会推出对应的固态硬盘,所以我们使用的时候,通常只需要保证它走的总线速率足够就可以满速运行。
SATA/mSATA/SATAe 接口固态硬盘
SATA 接口是大部分人刚用上固态硬盘,甚至现在机箱里面唯一的固态硬盘接口类型。固态硬盘刚开始普及民用的时候算是比较贵重的数码产品,每 GB 比起机械硬盘甚至要贵上好几十倍。
这导致那个时候没什么人用固态硬盘,加上那个时候固态硬盘速度也没有现在那么快,还没突破 SATA 总线上限,所以主板厂商并不会专门设计一个专供固态硬盘使用的接口。那个时候的固态硬盘只能是继续使用 SATA 接口,使用 SATA3.0 协议。
同时那个年代的计算机机箱通常只设计了给机械硬盘的硬盘位,所以就像我们上面提到的即使固态硬盘的储存颗粒只有小小的一颗,也是要用一个 2.5 或者 3.5 寸硬盘那么大的壳子来包住它。
固态硬盘的全面普及最早是在笔记本上,之前笔记本放机械硬盘的做法是把 SATA 接口焊在主板上,然后在主板上留一个 2.5 寸机械硬盘那么大小的位置。但固态硬盘本身只有很小的一个,也不需要机械硬盘那么高的供电,没有必要用 SATA 这个电源部分就占了一半的接口,跟没有必要留 2.5 寸机械硬盘那么大的位置,加上那个时候超极本超薄本等轻薄设备的概念兴起,所以主板厂商就设计出了 mSATA 接口。
它和我们现在见到的 M.2 接口已经非常相似了,不过仍然是走的 SATA 协议和总线,你可以把它理解为 SATA 接口的迷你版,毕竟 mSATA 就是 mini SATA 的缩写,这个时候厂商终于可以把固态做到合适的大小。
不过到现在这个接口基本上已经没有什么笔记本在使用,都用上了更新的 M.2 接口,如果新笔记本里面还有这个接口,通常上面插的都是无线网卡而不是固态硬盘。倒是很多移动固态硬盘内部还在使用 mSATA 接口转 USB,毕竟大部分人对于移动硬盘的速度需求并不高,能超越 SATA 速率的 USB3.2/USB4 也还没有普及,厂商没必要用上对硬件要求更高的协议和接口。
另外英特尔还推出过一个叫做 SATA Express 的接口,他可以直接插两个 SATA 来走 SATA 协议,也可以用整个接口走 PCIe*1/2,不过这个东西接口还是太大,速度上限提升也不高,只出过几款对应的主板,连支持的设备都没有出就夭折了。
随着固态硬盘的速度越来越高,这两个接口已经远远无法满足日益加快的固态硬盘,所以厂商必须设计一个专门用于固态硬盘,并且可以直接与速度最快的 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 这么多种 KEY,KEY 对不上是插不进去对应接口的(真就钥匙呗……)。不过倒不用担心太过复杂,因为我们日常只能看到两种:M KEY 和 B KEY。
如果我们观察自己的 NVMe 固态硬盘,会发现缺口都在右边,这个就是 M Key,如果插槽右边有对应的突出就可以插进去,通常它们就是使用 NVMe 协议走 PCIe 总线。
而 B KEY 的缺口则是在左边,插进对应的插槽之后通常只能走 SATA 总线。另外还有同时有两个缺口的固态硬盘,这种就是 B