【硬盘购买科普】 SATA M.2 NGFF NVME等是什么意思,解读硬盘的总线、协议和接口
前景提要
当硬件小白在各大平台购买硬盘时,总会碰到各种各样的名词:M.2、SATA、NGFF、NVME、PCIe、AHCI等等不熟悉的名词,这些和固态硬盘有关的英文到底时什么意思,如果你在网络上搜索有关硬盘的科普,你能找到SATA硬盘最快500MB/s,m2又分为SATA和MVNe两种NVMe可以跑到4GB/s,大多时类似不太详尽系统的描述,网络上都讲过的东西在cv一遍旧没有什么意思了。所以这篇文章将从计组的角度,探究关于硬盘—协议(protocol)、总线(Bus)、**接口(Interface)**三者之间的关系,让大家对硬盘的接口和协议的了解会更加深刻。
一、总线和协议
在这之前我们先介绍几个相关概念。
总线(Bus):总线是一组能为多个部件分时共享的公共信息传输线路。分时和共享时总线的两个特点。
袁春风. 计算机组成与系统结构[M]. 北京:清华大学出版社,2015
计算机内部有很多的电子元器件,那如果A元器件想给B元器件传输数据那他就需要建立通路
比如说CPU想和显卡交互数据,那CPU就需要拉一条通往显卡的电路,CPU要想和硬盘交互数据,那CPU就需要拉一条通往硬盘的电路,在电脑里像这种不同设备之间交互数据的通路就被我们称之为总线,无论是什么线路他都是基于目前的物理准则之上的,总线也是有一定的承载能力的,你不可能做到所有的数据秒传,总线在单位时间内也只能传输一定量的数据,就被我们称之为总线的带宽。
协议(protocol):是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述。
参见维基百科中的 通信协议
谈到固态硬盘的接口以及相容性就一定避不开协议这两个字,协议简单来讲就是电脑内部的一种规矩,其规定了两个设备通讯时如何识别对方、建立链接、使用的讯号类型、数据的编码解码方式、数据传输类型、数据传输方式、以及物理层面上的电压电流保持和截止时间等等规定、两个设备只有协议完全一样或者相容、他们之间才能够进行通讯。
嗯。。。看起来挺枯燥令人费解的。。。为了能让大家更直观的理解协议这个概念,举一个例子:
假设A B元器件之间有一根电路,可以通电和断电,如果我不做任何的规定和约束,那这个总线除了能通电和断电之外,就无法实现任何的功能,而如果我规定一秒为10个周期 通电为1 断电为0,那A只需要通过大量的通电和断电,就可以把想发送的信息以1秒10Bit的速度传输给B,而这个一秒为10个周期,通电代表1断电代表0这个规定,就是AB之间通讯的协议。
当然电脑那真正运作的协议远远比这个复杂的多,我只是这么举例方便小白们去理解。如果对计算机协议感兴趣的同学,可以研读这本书。
那这里大家可以发现,如果A不按照这个协议去发送数据,或者B不按照这个协议去接受数据,那AB之间就无法达成有效的沟通,因此两个电子元器件如果要达成有效的数据传输,他们之间的协议必须要是相同或者相容。
而除此之外一个更高效率的沟通协议可以非常显著的提高两者的沟通效率,但是反过来,高效率的协议同样需要硬件作为后背的支撑才能得以实现,所以简单理解就是,协议就是一种双方提前约定好采用某种形式,以某种规格利用某种物体把数据传输出去,而另一方再以同样的规则和流程,去接收数据的约定制度或者规章。
当你了解清楚总线和协议之后,接下来的内容就很好理解了,硬盘要想和电脑其他的元器件交互数据,那就一定需要数据协议作为沟通传输总线作为媒介,除此之外还需要物理接口,让硬盘能够接入。
二、接口
目前硬盘的数据协议有四种,大众民用的IDE AHCI和NVMe,IDE是早期硬盘使用的协议,目前已经被淘汰了,所以接下来就不讲他了,不大众的就是服务器用的比较多的SCSI协议了;
除开协议,你还是要总线做沟通来作为数据传输的载体,目前电脑内传输数据的总线也是三种:SATA总线和PCIe总线,同样不大众的是服务器上的SAS总线;
当你有了协议和总线之后,你还是要物理层面的接口,把硬盘接入你的电脑,目前你能接触到的民用硬盘接口,主要就是五种:SATA MSATA SATA Express PCIe M.2,M.2又分为B-Key和M-Key两种,当然,除开民用企业级硬盘长用接口就是U.2和SAS了
这里面协议 总线 接口都能限制一块硬盘的性能发挥,你有一个超级强大的协议,但是总线或者接口无法承载起来,你也跑不动;你有一个超级强大的总线和接口,但是没有足够好的协议,数据也无法完成高速的传输;所以他们之间是相辅相成的,但是通常来讲,厂商都会保证这三者是处于一个匹配的状态,比如说一块性能很强大的固态;厂商一定会设计出性能足够强大的协议与总线,还有与之匹配的接口才会推出这款产品。
所以大部分时候我们往往不需要考虑协议层面与接口层面,只是要看传输总线的承载能力即可,换而言之大部分硬盘的性能发挥其实是受制于传输总线,因此判断出一个硬盘的传输总线的承载能力,就能基本判断出一个硬盘的速率上限,这里我要强调一下,这里判断出来的是接口的速度上限,实际这个硬盘能跑多快,还是要看硬盘本身的设计与用料。
常见总线:SATA总线、PCIE总线、SAS总线
SATA总线的版本目前普及的比较广的是:SATA 3.0 理论带宽6Gbps,8:10编码,换算windows内显示的传输速度就是600MB/S
PCIe总线的版本目前普及的比较广是PCIe3.0和4.0,具体的带宽如图,PCIe的带宽和长度有关系,也就是上面那个乘几:×4的速率就是×1的四倍,×16的速度就是×4的四倍
服务器上用的SAS总线目前普及的比较广的是SAS 3.0
接下来我们来一个个介绍接口:
常见接口
1.SATA
最常见的接口就是SATA了,SATA接口使用的是SATA传输总线,协议是AHCI,目前几乎所有的民用3.5寸和2.5寸机械硬盘、2.5寸固态硬盘使用的都是这个接口。
SATA接口分为两部分:一个是长一点的供电,另一个短一点的则是数据,供电接驳在电脑电源上,数据则是用SATA数据线接驳到主板上。
由于SATA3总线速率上限就是600MB/S,再加上各种损耗和干扰,实际上这个接口的速度最多就只能跑到五百多兆每秒,所以凡是使用SATA3总线作为传输载体的硬盘,无论是固态硬盘还是机械硬盘,其速率都不可能突破五百多兆每秒。
2.mSATA
下一个接口是mSATA: 同样是SATA总线 AHCI协议;这个接口在一些已经淘汰的老旧笔记本上非常常见, 其诞生的目的就是给接口的固态缩小体积。机械硬盘2.5寸基本上是填满的,而sata固态,如果你拆开,你会发现真正的硬盘基本上只有很小的一块儿。
机械硬盘2.5寸基本上是填满的,而sata固态,如果你拆开,你会发现真正的硬盘基本上只有很小的一块儿。
外壳的作用只是让它是一个2.5寸的规格而已,所以在固态硬盘刚刚普及的那会儿m.2接口还没有大面积的推广开来。为了节约空间,不少笔记本上就搭载了这个接口,可惜这个接口也没有绕开总线,速度500M每秒的限制。由于速率没有提升,也没有前瞻性的提供高带宽,只是单纯的减少体积,因此这个接口在m.2接口普及开来以后就消失掉了。
3.SATA Experss接口
下一个接口是SATA Experss,使用的PCIe_2总线,既可以走AHCI协议 也可以走NVMe协议,它的结构很有特色,为了向下兼容,你可以把它当成两个普通SATA用,也可以用一整个宽的接口然后走PCIe_1或者PCIe*2
虽然这个接口相对于SATA 3来讲速度翻倍,但是由于提升的速率有限,同样是对未来的产品不够具有前瞻性啊。而且接口体积过于庞大,所以这个接口基本上没出现,一两年就被淘汰掉了。由于SATA express消失的太快。市面上并没有对应的产品,这里就不多介绍了
4. m.2接口
接下来就是目前大家接触比较多的M.2接口了。NGFF则是m.2接口的行业规范的别名。
今天在逛淘宝找移动硬盘盒的时候,🤣大家能发现商家的图片什么问题吗
好我们继续:
m2接口既可以走SATA总线AHCI协议,那此时它和普通的SATA硬盘没有区别,速率同样会被限制在550MB/S左右,就是体积小一点。
m2接口也可以走PCIE总线AHCI协议,比如说数量比较稀少的三星SM951 AHCI版本。速率上限由PCIe版本和长度决定.
除此之外,M.2还可以走PCIe总线NVMe协议,速率上限同样由PCIe版本和长度决定,这个也是目前用途最广泛的组合,大部分固态硬盘都是*_PCIe3.0_4*_,那也就是4GB/S以内了,目前PCIe4.0_4的固态开始逐渐普及。那速度上限就是8GB/S以内了
M.2接口又分为B-key和M-Key两种,B-key的豁口在左边 M-key则是在右边,扩展:有些固态为了兼容两个接口同时有b-key和m-key,例如SN500,现在不多见了。
B-key被称为Socket2,支持SATA总线和PCIe_2,M-key则是被称为Socke3,支持SATA总线和PCIe_4。这里我要提醒一下大家,不能通过外形去判断M.2支持什么总线和协议,有的主板的B-key可能只能走SATA不能走PCIe总线,而有的M-key可能只能走PCIe 不能走SATA。具体你这个接口能走什么总线还是要看你主板官网的描述和主板的接口说明书。
5.PCIE接口
接下来是PCIE接口,PCIE接口应该是除了m2和SATA接口之外,大家最熟悉的接口了。PCIE既可以作为总线承担传输通道的存在。也可以直接以接口的形式存在,
如果在PCIe插槽安装固态硬盘,使用的就是PCIe总线 NVMe协议,早期的企业级固态也有使用PCIe插槽,PCIe通道 SCSI协议的比如Intel的1910
本质上是多个SCSI协议的SAS硬盘,通过LSISAS控制器组建阵列然后接入PCIe总线的
通常主板上横着的那些长槽和短槽就是PCIe插槽,大部分人应该都是知道显卡是插在这里的,PCIe接口除了插显卡之外,还可以插无线网卡,有线网卡,声卡 采集卡 转接卡之类的,当然也可以直接插走PCIe通道,NVME协议的固态硬盘。
目前直接以PCIE为接口的固态硬盘常见于超高性能等级以及企业级固态硬盘上,民用级固态硬盘大多还是以m2接口为主。
6.SAS接口
接下来是SAS接口,SAS接口使用的是SAS总线,SCSI协议,这种接口通常来讲是服务器上用的非常多,你可以把他理解为一种强化版SATA接口。
在SATA上增加了更多的功能,并且支持更高速率的SAS总线,SAS总线还有一个特点他就是一分多以满足服务器硬盘柜多硬盘要求,由于是直接在SATA接口上改款而来的所以SAS接口可以向下兼容SATA硬盘,走AHCI协议;但是要注意这里是SAS接口兼容SATA硬盘,而SAS硬盘由于本身是SAS总线SCSI协议,所以他只能接在支持SAS总线的口上用。
7.U.2接口
最后一个就是u2接口了,u2接口的是在接口上继续改款而来。除了兼容下面的SATA,还可以兼容sas,还额外提供了PCIE×4的总线支持,这个接口也是在服务器和高端HEDT平台上使用的比较多。很多的企业级固态使用的都是这种接口。和sas一样,除了硬盘架这种一体成型的母口外,还可以使用线缆接驳,U.2在主板上的接口非常类似,两个USB接口摞起来的形状。还是比较有辨识度的
三、总结
所有的硬盘和接口到这里,就算介绍完毕了,这时候你再回去看这个很乱的结构图,基本上大概就明白是啥意思了。
这里面有一个比较有意思的点就是,PCIe总线的硬盘,他们之间的接口大部分都是可以互相转换的, 比如PCIe可以转成U.2 PCIe可以转成M.2 M.2可以反过来转成PCIe M.2还可以转成U.2 U.2反过来可以转成M.2
所以你可以发现接口其实并不是完全限制速率发挥的因素,真正要判断一个硬盘所使用的接口,其速率上限以及你主板上的接口会不会限制你硬盘性能发挥?你最好是去参考一下他们所使用的总线比较好单纯的通过协议去判断,其实并不准确
举例
接下来我选几个例子配合接口总线协议图讲解一下。注意以下分析的速率都只是硬盘的接口理论,速率上限不是实际的硬盘运行速度,实际这个硬盘能跑多快还是要看硬盘本身的设计和用料了。
如上图:传统的SATA3机械西数蓝盘1T,SATA接口 SATA3.0总线 AHCI协议,速率上限600MB/S
传统的SATA3固态铠侠 TC10 SATA接口 SATA3.0总线 AHCI协议 速率上限600MB/S
三星860EVO M.2版本,M.2 B&M-key接口 SATA3.0总线 AHCI协议,速率上限600MB/S
三星SM951 ACHI版本,M.2 M-Key接口,PCIe3.0*4总线 AHCI协议,速率上限4GB/S
三星XP941 M.2 M-Key接口 PCIe2.0*4总线 NVMe协议 速率上限2GB/S
西部数据SN500 M.2 B&M-Key接口 PCIe3.0*2总线 NVMe协议 速率上限2GB/S
西部数据SN750 M.2 M-Key接口 PCIe3.0*4总线 NVMe协议 速率上限4GB/S
三星980PRO M.2 M-Key接口 PCIe4.0*4总线 NVMe协议 速率上限8GB/S
三星983ZET PCIe接口 PCIe3.0*4总线 NVMe协议 速率上限4GB/S
Intel910 PCIe接口 PCIe2.0*8总线 SCSI协议 速率上限4GB/S
希捷银河4T SAS接口 SAS3.0总线 SCSI协议 速率上限1.2GB/S
Intel P4510 U.2接口 PCIe3.0*4总线 NVMe协议 速率上限4GB/S
以上的硬盘例子,再加上之前那张协议总线接口的结构图稍微加以研究,基本上就能搞清楚一个硬盘以及它的接口。最快能跑到多快了,希望大家在看完这篇文章后,能够对硬盘的协议总线以及接口有一个大概的认知,将来选择硬盘的时候不会再被接口和协议迷惑。OK,关于固态硬盘的总线协议接口,我们就算全部介绍完毕了。
参考文献:
【1】素材来源:B站硬件茶谈:详解硬盘的总线协议与接口 https://www.bilibili.com/video/BV1Qv411t7ZL
【2】袁春风. 计算机组成与系统结构[M]. 北京:清华大学出版社,2015
【3】英睿达:固态硬盘协议 https://www.crucial.cn/articles/about-ssd/what-is-the-interface-specification-for-ssd
更新了部分图片不显示的问题