数据存储(4):SATA/M.2/PCI-E/AHCI/NVME这些的区别是什么?
Author:zhoulujun Date:
之前在写微星电脑升级固态盘(《MSI电竞笔记本硬盘扩容固态盘选择与内存条选择》)里面提过,固态盘有m.2接口与sata接口。但是不止看接口,还要看协议。今天好好来科普这个。
新一代的固态硬盘普遍采用SATA-2接口、SATA-3接口、SAS接口、MSATA接口、PCI-E接口、NGFF接口、CFast接口、SFF-8639接口和M.2 NVME接口等。
这么多,看着懵B……
1. 物理接口
M.2 , U.2 , AIC, NGFF 这些属于物理接口。
像 M.2 可以是 SATA SSD 也可以是 NVMe(PCIe) SSD。金手指上有一个 SATA/PCIe 的选择信号,来区分两者。很多笔记本的M.2 接口也是同时支持两种类型的盘的。
M.2 , 主要用在 笔记本上,优点是体积小,缺点是散热不好。
U.2,主要用在 数据中心或者一些企业级用户,对热插拔需求高的地方。优点热插拔,散热也不错。一般主要是pcie ssd(也有sas ssd),受限于接口,最多只能是 pcie 4lane
AIC,企业,行业用户用的比较多。通常会支持pcie 4lane/8lane,带宽上限更高
2. 高速信号协议
SAS,SATA,PCIe 这三个是同一个层面上的,模拟串行高速接口。
SAS 对扩容比较友好,也支持双控双活。接上SAS RAID 卡,一般在阵列上用的比较多。
SATA 对热插拔很友好,早先台式机装机市场的 SSD基本上都是SATA的,现在的 机械硬盘也是SATA接口居多。但速率上最高只能到 6Gb/s,上限 550MB/s左右,现在已经慢慢被pcie取代。
PCIe 支持速率更高,也离CPU最近。很多设备 如 网卡,显卡 也都走pcie接口,当然也有SSD。现在比较主流的是PCIe 3.0,8Gb/s 看起来好像也没比 SATA 高多少,但是 PCIe 支持多个LANE,每个LANE都是 8Gb/s,这样性能就倍数增加了。目前,SSD主流的是 PCIe 3.0x4 lane,性能可以做到 3500MB/s 左右。
3. 传输层协议
SCSI,ATA,NVMe 都属于这一层。主要是定义命令集,数字逻辑层。
SCSI 命令集 历史悠久,应用也很广泛。U盘,SAS 盘,还有手机上 UFS 之类很多设备都走的这个命令集。
ATA 则只是跑在SATA 协议上
NVMe 协议是有特意为 NAND 进行优化。相比于上面两者,效率更高。主要是跑在 PCIe 上的。当然,也有NVMe-MI,NVMe-of之类的。是个很好的传输层协议。
上面的这个看的还是很懵,这篇文章先从SATA-2、SATA-3、M.2接口接口开始,从固态盘Socket 2跟Socket 3到NVME和AHCI协议,一些杂乱的笔记
SATA接口
SATA:是Serial ATA的缩写,即串行ATA
SATA接口,从洞那里分为两部分,少的那边是走数据的,多的那边是供电的。
作为目前应用最多的硬盘接口,SATA 3.0接口最大的优势就是成熟。普通2.5英寸SSD以及HDD硬盘都使用这种接口,理论传输带宽6Gbps(实际读写最高500MB/s左右),虽然比起新接口的10Gbps甚至32Gbps带宽差多了,对于机械音频最高,最高速度也很难突破200。之前的老的2.5英寸SSD也没这么高的需求,500MB/s多的读写速度也够用。到那时新的固态盘,这个就不够用了。
SATA发展简洁
速度越来越快
Generation | Speed | Special Features |
---|---|---|
SATA 1.0 | 1.5Gbs(150 MB/s) | |
SATA 2.0 | 3Gbs(300 MB/s) | Native Command Queueing(NCQ) support |
SATA 3.0 | 6Gbs(600 MB/s) | NSQ management feature,Improved power management, Support for new connectors,TRIM Command |
SATA 3.1 | 6Gbs(600 MB/s) | mSATA support |
mSATA接口
mSATA接口,全称迷你版SATA接口(mini-SATA)。是早期为了更适应于超级本这类超薄设备的使用环境,针对便携设备开发的mSATA接口应运而生。可以把它看作标准SATA接口的mini版,而在物理接口上(也就是接口类型)是跟mini PCI-E接口是一样的。
这玩意很快就死了,因为:mSATA接口是SSD小型化的一个重要过程,不过mSATA依然没有摆脱SATA接口的一些缺陷,比如依然是SATA通道,速度也还是6Gbps。
SAS:Serial Attached SCSI 串行连接SCSI
从外观上看,区别不大,唯一的不同是SATA接口中间有个洞,SAS接口中间那片也没有针脚,但不是一个洞,两边是连通起来的。请放大上图仔细看。
SATA的针脚都是29针的,SAS的针脚就有不同的款型,也有29针的可兼容SATA,如上图。也有36针的mini SAS, 如下图,在企业存储中,mini SAS应用比较广泛
也许你会奇怪36明明比29大,为啥还叫mini SAS呢,因为29针的是平铺,36的是4层,每层只有9针,所以整体体积就小了很多,如上图。除了29和36,SAS还有其他的针脚规格,就不展开。
盘的大小上,SATA一般是3.5寸,SAS一般是2.5寸
SAS也是一种数据传输协议,同样也是SATA对比,SATA 3.0传输速率是6Gb/s, SAS目前应用最广泛的是SAS-3速度是SATA的两倍 12Gb/s简单总结,提到SAS盘的时候可以反应过来,是SAS接口,普通家用是和SATA一样的29针规格的接口,企业存储中多为36针脚的小巧型mini SAS接口,比SATA盘小,2.5寸,速度比SATA快很多。
M.2接口
M.2接口是Intel推出的一种替代mSATA的新的接口规范,也就是我们以前经常提到的NGFF,即Next Generation Form Factor。
早先我们使用的电脑硬盘都是3.5英寸或者2.5英寸IDE或者SATA机械硬盘,这个相信大家都有印象。2.5英寸的设计源自于服务器,由于碟片尺寸更小,2.5英寸机械硬盘更容易实现高转速,如15000rpm,它在容量方面虽然不及3.5英寸机械硬盘,但通过部署多张2.5英寸盘,可以实现更高的IOPS性能。
SSD最早的样式也是源自2.5英寸硬盘,采用SATA接口,可以和SATA机械硬盘无缝衔接,没有兼容问题,但性能更好。这个阶段大概在十年前,特别是当年ThinkPad X300问世的时候,其64GB SLC 2.5英寸SSD可谓是惊艳全场。
PCIe SSD最早可能要追溯到国内的一个小团队,Memblaze,其研究PCIe SSD的时间恐怕比Intel还要早一些,也正是通过其首个PCIe SSD样品,IOPS大约30、40万,第一次让整个SSD行业看到了PCIe的巨大潜力。
早先的PCIe SSD都是AIC(类似显卡)的样式,走私有协议,需要安装独立的驱动程序才能使用。NVMe协议大概是2011年推出的,由Intel发布了首个NVMe产品,但是,真正跟进该协议,并推出全球第二款NVMe SSD的团队,还是Memblaze,甚至比三星、西数、东芝(现在的铠侠)都要早。
链接:https://www.zhihu.com/question/48972075/answer/2488169003
M.2接口的固态硬盘宽度22mm,单面厚度2.75mm,双面闪存布局也不过3.85mm厚,但M.2具有丰富的可扩展性,最长可以做到110mm,可以提高SSD容量。M.2 SSD与mSATA类似,也是不带金属外壳的,常见的规格有主要有2242、2260、2280三种,宽度都为22mm,长度则各不相同。
不仅仅是长度,M.2的接口也有两种不同的规格,分别是“socket2”和”socket3”
一种是金手指有两个缺口的Socket 2跟金手指只有一个缺口的Socket 3,这两种可以走不同的通道,我们后面会说到
看似都是M.2接口,但其支持的协议不同,对其速度的影响可以说是千差万别,M.2接口目前支持两种通道总线
SATA总线:当然,SATA通道由于理论带宽的限制(6Gb/s),极限传输速度也只能到600MB/s,
PCI-E总线:带宽可以达到10Gb/s,所以看似都为M.2接口
但走的“道儿”不一样,速度自然也就有了差别。
M.2(Socket 2)的固态可以走SATA3或者PCI-E 3.0×2通道(就是两条PCI-E),而M.2(Socket 3)的固态则可以走PCI-E 3.0×4通道。
PCI-E接口已经发展到 了第4代,PCI-E接口支持1,2,4,8,16个总线宽度。消费级SSD使用的大多数是PCI-E3.0 x4,也就是说消费级SSD最大传输速率理论上可以达到4GB/s,这个比SATA的SSD快了差不多7倍。
PCI-E Architecture | Interconnect Bandwidth | Bandwidth Lane Direction | Total Bandwidth for x16 link |
---|---|---|---|
PCIE 1.1 | 2 Gbs | 250 MB/s | 4 GB/s |
PCIE 2.0 | 4 Gbs | 500 MB/s | 8 GB/s |
PCIE 3.0 | 8 Gbs | 1 GB/s | 16 GB/s |
PCIE 4.0 | 16 Gbs | 2 GB/s | 32 GB/s |
M.2 固态硬盘的两种类型:SATA 和 NVMe https://www.kingston.com/cn/blog/pc-performance/two-types-m2-vs-ssd
NVME和AHCI
其实NVMe跟AHCI都是一种规范——都是逻辑设备接口标准!
AHIC是针对SATA这种接口的数据协议
NVME规范是走PCI-E这种接口的数据协议。
如果是之前老旧笔记本把HDD机械硬盘换成SDD固态盘硬盘,想要让SSD发挥出真正实力的话要去BIOS里面把SATA控制器模式切换成AHCI,对SATA设备来说使用AHCI模式的确是正确的选择,切换成AHCI可获得更好的性能(但是现在最新存储接口M.2和SATA-E接口走的都是PCI-E通道,对与PCI-E来说AHCI可不是一个好的选择,想发挥最佳性能其实需要新的标准——NVMe)。
随着高端SSD的战场已经抛弃SATA向PCI-E转移,老旧的AHCI标准已经不合时宜, 未来是属于NVMe的,那么NVMe到底是啥呢?
NVMe
NVMe全称Non-Volatile Memory Express,非易失性存储器标准,是使用PCI-E通道的SSD一种规范,NVMe的设计之初就有充分利用到PCI-E SSD的低延时以及并行性,还有当代处理器、平台与应用的并行性。SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。
NVMe的由来
所用的SATA接口与AHCI标准其实是为高延时的机械硬盘而设计的,目前主流SSD依然继续使用它们,早期SSD性能不高时可能还不觉得有什么问题,但是随着SSD的性能逐渐增强,这些标准已经成为限制SSD的一大瓶颈,专为机械硬盘而设计的AHCI标准并不太适合低延时的SSD。
当然,业界早就意识到这一问题,2009年下半年,关于NVMe的技术工作正式启动,NVMe规范由包含90多家公司在内的工作小组所定制,Intel是主要领头人,小组成员包括美光、戴尔、三星、Marvell、NetAPP、EMC、IDT等公司,目的就是为SSD建立新的存储规范标准,让它在老旧的SATA与AHCI中解放出来。
2011年,NVMe标准正式出炉,该标准是根据闪存存储的特点量身定制的,新的标准解除了旧标准施放在SSD上的各种限制。2012年标准升级到NVMe 1.1,2014所推出NVMe 1.2标准。
只有SSD运行在NVMe上
因为NVMe驱动器要比SATA快得多,所以将NVMe与HDD放在一起使用来提高性能似乎是个好主意。但是请记住,NVMe代表非易失性存储接口规范,它是专门为NAND 闪存等非易失性存储设计的(尽管它也可以用于较新的非易失性内存,比如3D XPoint)。
当系统从HDD读取数据时,它一次只能读取一块数据。因为它必须进行旋转以定位到第一个数据块的正确物理位置,然后再次旋转,移动到第二个数据块的正确位置,以此类推。另一方面,闪存和其他非易失性存储技术没有移动部件。这意味着系统可以同时从许多不同的位置读取数据。这就是为什么SSD可以利用NVMe提供的并行性,而HDD不能。
PCIe和NVMe有关系,但它们不是同一个东西
Me最令人困惑的部分是它与PCIe的关系。一些厂商使用NVMe作为标签来指代他们的SSD,另外一些厂商则使用PCIe标签,还有一些厂商似乎可以互换使用这些术语。
虽然PCIe和NVMe密切相关,但两个术语指的是略有不同的技术。可以将PCIe看作是系统的物理部分。当您将一个NVMe SSD插入服务器时,您需要通过一个PCIe插槽连接它。
相比之下,NVMe是一种协议,是一组允许SSD使用PCIe总线的软硬件标准。可以这么说,NVMe是允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。
NVME的优势总结
NVMe的优势一:低延时
说到NVMe标准对比AHCI标准的优势,其中之一就是低延时,看上图比较直观,NVMe标准是面向PCI-E SSD的,使用原生PCI-E通道与CPU直连可以免去SATA与SAS接口的外置控制器(PCH)与CPU通信所带来的延时。
在软件层方面,NVMe标准的延时只有AHCI的一半不到,NVMe精简了调用方式,执行命令时不需要读取寄存器;而AHCI每条命令则需要读取4次寄存器,一共会消耗8000次CPU循环,从而造成大概2.5微秒的延迟。
更低的延时可让SSD的4KB QD1传输能力暴涨!
NVMe的优势二:IOPS大增
另外NVMe也大大的提升了SSD的IOPS性能,在制定AHCI规范时并行性的想法并没有完全融合到规范内,利用NCQ功能可以对传输能力进行优化,但是接口并不允许SSD真正最大限度地发挥其应有的并行性。
现在SSD测试通常最多只会测试到队列深度为32的IOPS能力,其实终究原因这是AHCI的上限,其实许多闪存主控可以提供更好的队列深度。而NVMe则可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升。
NVMe的优势三:功耗更低
NVMe加入了自动功耗状态切换和动态能耗管理功能,设备从Power State 0闲置50ms后可以切换到Power State 1,继续闲置的话,在500ms后又会进入功耗更低的Power State 2,切换时会有短暂延迟。SSD在闲置时可以非常快速的控制在极低的水平,在功耗管理上NVMe标准的SSD会比现在主流的AHCI SSD拥有较大优势,这一点对移动设备来说尤其重要,可以显著增加笔记本和平板电脑的续航能力。
NVMe的优势四:驱动适用性广
驱动程序的兼容性也是所有PCI-E SSD的一个共有问题,每个产品都有对应不同系统的专用驱动,这方面有些厂商做的非常出色,而另一些则 不怎么样,然而许多PCI-E SSD需要加载驱动才能够正常引导。
NVMe标准的出现解决了这个问题,NVMe SSD可以很方便的匹配不同的平台、系统,无需厂家提供相应的驱动就可以正常工作,目前Windows、Linux、Solaris、Unix、VMware、UEFI等都加入了对NVMe SSD的支持。当然Intel的产品拥有自己的驱动程序,不安装Intel驱动的话SSD能正常工作,但是性能不能完全发挥,之前测试Intel 750时就有这个问题,其他厂商的不知道怎么样。
参考文章:
SATA、mSATA、M.2、M.2(NVMe)、PCIE固态硬盘接口详解 https://zhuanlan.zhihu.com/p/490076119
固态硬盘的PCIE,SATA,M2,NVMe,AHCI https://www.cnblogs.com/yi-mu-xi/p/10469458.html
SATA与PCI-E速度对比 https://www.cnblogs.com/chaoguo1234/p/14828624.html
转载本站文章《数据存储(4):SATA/M.2/PCI-E/AHCI/NVME这些的区别是什么?》,
请注明出处:https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/Constitution/2023_0911_8979.html