固态硬盘的PCIE,SATA,M2,NVMe,AHCI

[转自 https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc]

提纲

  • 区别
    • M2和SATA
    • SATA和PCIE
    • NVME和AHCI
  • NVME介绍
  • NVMe的由来
  • NVME的优势

区别

固态硬盘近年来也是随着计算机的发展而得到了迅速的发展,目前已经隐隐有要取代机械硬盘的势头,只要成本价格控制下来,相信取代机械硬盘也只是时间问题

但是关于固态硬盘的概念实在是太繁琐了,很多人选购固态时也是看到商家宣传NVMe,PCIE固态却不懂到底是什么意思,今天我们就来为大家详解这些都是什么东西

 

M2 和 SATA

首先我们要把M2跟SATA放一起说,我们常说的M2其实是M.2,更多是指一种尺寸或者插槽,就是上图中右边的尺寸较小的直接插主板上的这种,而SATA也是,通常是指上图左边那个尺寸较大的一大块那种

还要提的是M.2插槽也是有两种的,一种是金手指有两个缺口的Socket 2跟金手指只有一个缺口的Socket 3,这两种可以走不同的通道,我们后面会说到

 

SATA和PCIE

接下来要搞懂的是SATA跟PCIE,这两个东西是指串行接口或者就是数据走的通道,相信有人看到这个SATA就要迷糊了,其实上面的SATA更多是指插槽,而这里的SATA是指数据走的通道,目前的新设备普遍都是SATA3接口了,但是SATA3是向下兼容SATA2跟SATA1的(所以下文我们只讨论SATA3)

PCI-E跟SATA3简单说就是数据走的“路”,PCI-E就像是特别宽大的路,数据可以走的特别快,而SATA3与之相比更像是一条崎岖的小路,数据走的特别慢,但是CPU内部就那么大一点,修不了特别多的大路,所以PCI-E通道也就仅有那么几条。

通常SATA的插槽只能走SATA3的通道

而M.2的插槽上文我们说了分为Socket 2跟Socket 3,

M.2(Socket 2)的固态可以走SATA3或者PCI-E 3.0×2通道(就是两条PCI-E),而M.2(Socket 3)的固态则可以走PCI-E 3.0×4通道

需要说的是每条PCI-E 3.0的带宽是8Gbps,而SATA 3.0的带宽则只有6Gbps。

NVME和AHCI

最后要说的就是经常被商家拿来当作卖点的NVMe了,其实NVMe跟AHCI都是一种规范,就像是在路上走如果没有交通规则的限制,那么肯定是一团拥挤肯定都走不动了,而NVMe跟AHCI就像是这种交通规则

AHIC是针对SATA这种弯路的交通规则,然后开发者发现,这种针对弯路的规范,数据只能一个一个通过的规则用在宽敞的PCIE通道上面实在太浪费了,于是针对PCIE通道又开发出了NVME规范,可以让很多数据同时通过

总结:M.2跟SATA其实可以说是插槽的形状,而PCI-E跟SATA3就是数据从硬盘到CPU或者内存走的通道,而NVME跟AHCI就是针对PCI-E跟SATA通道的“交通规则”

 

NVME

【转:http://www.expreview.com/42142.html】

有关注SSD的朋友应该今年听到NVMe这个词的频率应该不低,随着高端SSD的战场已经抛弃SATA向PCI-E转移,老旧的AHCI标准已经不合时宜, 未来是属于NVMe的,那么NVMe到底是啥呢?

有玩过SSD的朋友应该都清楚想要让SSD发挥出真正实力的话要去BIOS里面把SATA控制器模式切换成AHCI对SATA设备来说使用AHCI模式的确是正确的选择,切换成AHCI可获得更好的性能。但是现在最新存储接口M.2和SATA-E接口走的都是PCI-E通道,对与PCI-E来说AHCI可不是一个好的选择,想发挥最佳性能其实需要新的标准——NVMe。


Intel 750就是NVMe SSD的代表作

如果说AHCI的话大家应该会了解多一点,NVMe其实与AHCI一样都是逻辑设备接口标准(是接口标准,不是接口!不是接口!不是接口!因为很重要所以说三次),NVMe全称Non-Volatile Memory Express,非易失性存储器标准,是使用PCI-E通道的SSD一种规范,NVMe的设计之初就有充分利用到PCI-E SSD的低延时以及并行性,还有当代处理器、平台与应用的并行性。SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。

    NVMe的官方定义将其描述为“一个开放的标准和信息集合,以充分释放非易失性存储在从移动端到数据中心的所有类型的计算环境中能够提供的优势。NVMe从底层开始设计,为当前和未来的NVM技术提供高带宽和低延迟存储访问。”NVMe是通过PCI Express总线将存储连接到服务器的接口规范,简单来说就是,使SSD与主机系统通信的速度更快。它有助于缓解闪存通过最初为HDD设计的SAS或SATA连接到系统时出现的瓶颈。

NVME介绍

1.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,最新的NVMe 1.2标准是在2014所推出的。

首款支持NVMe标准的产品是三星XS1715,与2013年7月所发布,随后陆续有企业级的NVMe标准SSD推出,直到今年Intel 750发布,NVMe标准的产品才开始进入消费级市场。

2、NVMe的速度远远快于SATA或SAS

  NVMe控制器通过几种不同的方式提高性能。一种是使用PCIe总线,它将存储直接连接到系统CPU。这种直接连接消除了SATA的一些必要步骤,并提高了整体性能。

  此外,NVMe SSD在很大程度上实现了并行性,极大地提高了吞吐量。当数据从存储传输到服务器主机时,它会进入一行或队列。传统的SATA连接只能支持一个队列,一次只能接收32条数据。再回到车的类比上,这就像只有一条车道的车流可以容纳32辆车。

  而NVMe存储支持最多64000个队列,每个队列有64000个条目。换句话说,这就像从一条单行道走到一条6.4万车道的路上,每条车道都能容纳6.4万辆汽车,这对整体表现产生了巨大的影响。

  正如我们的类比中说城市道路一般限速在几十公里每小时一样,SATA和SAS连接也有速度限制。对于SATA,理论最大传输速度为6.0 Gbps(在实践中,最大传输速度要低得多)。这就相当于给SATA SSD的运行速度设定了上限。超过一定限度,使用再快的闪存对系统的整体性能没有影响,因为SATA连接会造成瓶颈。

  对于大多数消费者来说,SATA SSD提供了足够的性能来完成日常工作。而且由于SATA SSD比NVMe SSD便宜,大多数消费者级别的固态存储仍然使用SATA接口。

  然而,企业处理的数据通常比消费者多得多,对他们来说,SATA连接带来的延迟可能会成为一个问题。

英特尔750系列是支持NVMe技术的固态硬盘产品之一

  3、只有SSD运行在NVMe上

  因为NVMe驱动器要比SATA快得多,所以将NVMe与HDD放在一起使用来提高性能似乎是个好主意。但是请记住,NVMe代表非易失性存储接口规范,它是专门为NAND 闪存等非易失性存储设计的(尽管它也可以用于较新的非易失性内存,比如3D XPoint)。

  当系统从HDD读取数据时,它一次只能读取一块数据。因为它必须进行旋转以定位到第一个数据块的正确物理位置,然后再次旋转,移动到第二个数据块的正确位置,以此类推。另一方面,闪存和其他非易失性存储技术没有移动部件。这意味着系统可以同时从许多不同的位置读取数据。这就是为什么SSD可以利用NVMe提供的并行性,而HDD不能。

  4、PCIe和NVMe有关系,但它们不是同一个东西

  对于很多人来说,NVMe最令人困惑的部分是它与PCIe的关系。一些厂商使用NVMe作为标签来指代他们的SSD,另外一些厂商则使用PCIe标签,还有一些厂商似乎可以互换使用这些术语。

  虽然PCIe和NVMe密切相关,但两个术语指的是略有不同的技术。可以将PCIe看作是系统的物理部分。当您将一个NVMe SSD插入服务器时,您需要通过一个PCIe插槽连接它。

  相比之下,NVMe是一种协议,是一组允许SSD使用PCIe总线的软硬件标准。可以这么说,NVMe是允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。

  5、NVMe-oF连接SSD到网络

  本文主要关注的是标准的NVMe,它将SSD直接连接到服务器,但是NVM Express组织也发布了NVMe over Fabric (NVMe- oF)的规范,它将用于块存储的非易失性存储连接到网络。根据该组织的说法,“NVMe- oF定义了一个通用架构,它支持一系列存储网络结构,用于存储网络结构之上的NVMe块存储协议。”这包括在存储系统中启用前端接口,扩展到大量NVMe设备,并在数据中心内延长NVMe设备和NVMe子系统可访问的距离。

  NVMe-oF规范与NVMe规范有大约90%的相同;然而,它确实使用了一种不同的传输映射机制。NVME-oF也有两种不同的变体:一种用于RDMA,另一种用于光纤通道

  NVMe-oF规范也比NVMe规范新得多,尽管一些厂商已经宣布支持这项技术,但实际上很少有厂商销售NVMe的产品。期待这种技术在未来几年变得更加普遍。

 

NVME的优势总结

1、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传输能力暴涨

2、NVMe的优势二:IOPS大增

另外NVMe也大大的提升了SSD的IOPS性能,在制定AHCI规范时并行性的想法并没有完全融合到规范内,利用NCQ功能可以对传输能力进行优化,但是接口并不允许SSD真正最大限度地发挥其应有的并行性。

现在SSD测试通常最多只会测试到队列深度为32的IOPS能力,其实终究原因这是AHCI的上限,其实许多闪存主控可以提供更好的队列深度。而NVMe则可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升。

NVMe还支持同一时间从多核处理器接受命令和优先处理请求,这个特性在企业级的重负载时优势就会显露出来。

低延时和良好的并行性的优势就是可以让SSD的随机性能得到大幅度提升,我们测试过的Intel 750就是一块NVMe SSD,它的随机性能表现绝对是一流的,在任何队列深度下都能发挥出极佳的速度。

3、NVMe的优势三:功耗更低

NVMe加入了自动功耗状态切换和动态能耗管理功能,设备从Power State 0闲置50ms后可以切换到Power State 1,继续闲置的话,在500ms后又会进入功耗更低的Power State 2,切换时会有短暂延迟。SSD在闲置时可以非常快速的控制在极低的水平,在功耗管理上NVMe标准的SSD会比现在主流的AHCI SSD拥有较大优势,这一点对移动设备来说尤其重要,可以显著增加笔记本和平板电脑的续航能力。

4、NVMe的优势四:驱动适用性广

驱动程序的兼容性也是所有PCI-E SSD的一个共有问题,每个产品都有对应不同系统的专用驱动,这方面有些厂商做的非常出色,而另一些则 不怎么样,然而许多PCI-E SSD需要加载驱动才能够正常引导。

NVMe标准的出现解决了这个问题,NVMe SSD可以很方便的匹配不同的平台、系统,无需厂家提供相应的驱动就可以正常工作,目前Windows、Linux、Solaris、Unix、VMware、UEFI等都加入了对NVMe SSD的支持。当然Intel的产品拥有自己的驱动程序,不安装Intel驱动的话SSD能正常工作,但是性能不能完全发挥,之前测试Intel 750时就有这个问题,其他厂商的不知道怎么样。

posted @ 2019-03-04 10:56  yimuxi  阅读(25961)  评论(0编辑  收藏  举报