本帖最后由 nighttob 于 2016-8-7 18:08 编辑
本文会对现今PC常见存储接口,如SATA、PCIe、M.2及AHCI、NVMe等接口做一个简单梳理,便于大家理清各种接口之间的关系
首先列一个表格,让大家对各种接口有一个基本印象
然后进行一些解释说明
AIC:即Add-In-Card,也就是常见的板卡型PCIe插卡,习惯说的显卡和声卡这种都是AIC
SFF:即Small Form Factor,小尺寸架构,这里指SFF-8223规范中的具有串行接口的2.5"外形,也就是常见的2.5"盘,包括厚度为5mm、7mm、9.5mm、12.5mm及15mm的
我们在Intel 750这类“企业级”产品上会见到同时拥有这两种外形,AIC型的便于塔式主机部署,而SFF型的便于存储集群部署
AHCI:全称是Advanced Host Controller Interface,用作SATA设备和系统内存之间的逻辑通用接口
NVMe:即NVM Express,这个专有名词分为两部分,NVM是Non-Volatile Memory的缩写,意思是非易失性存储器,我们现在用的磁盘和闪存都是NVM; Express就是PCIe的那个Express。NVMe是为今后NVM存储设备提供高带宽、低延迟的逻辑接口和指令集。最初NVMe叫做NVMHCI,这个HCI就跟AHCI那个HCI是一个意思。
把这两个放在一起说是因为AHCI和NVMe都是逻辑层面的东西,而不是一个看得见摸得着的插口。虽然目前NVMe SSD都是以PCIe作为物理层的,但NVMe的设计已经超出了PCIe,不像AHCI只是服务于SATA的。这里还是要重复一次,NVMe SSD不等于PCIe 3.0 x4,以后会有使用x1 x8甚至x16链路的NVMe SSD。
关于M.2和SATAe(SATA Express)及U.2/SFF-8639,可以见我之前写的帖子 http://bbs.pceva.com.cn/thread-96050-1-1.html
这里对SATAe和U.2稍作补充
SATAe已经随着Intel 100系列PCH自然升级到了PCIe 3.0 x2,也就是近似2GB/s的理论带宽了。看起来不错,但其处境依然如上面帖子所说——尴尬,如果不是能和SATA接口复用,恐怕没有主板厂家愿意部署SATAe接口,而SATAe设备到目前为止叫得上名字的只有东芝不久前(其实早就计划好的)面向OEM发布的SFF型XG3 SSD,而且受限于接口带宽持续读取跑不过同样方案M.2版的RD400,另外就是某使用ASMedia控制器的外置硬盘盒,还有西数的一个只上过展会的样品HDD。
(SATAe接口的SFF型东芝XG3,看这一面并不明显)
(某使用ASMedia控制器的SATAe外置硬盘盒)
U.2可以说是目前所有SFF串行接口的集大成者,其具有最强的性能和向下兼容性,但也像M.2一样因为兼用太多导致混淆。就比如可考最早使用SFF-8639接口的SFF型美光P320h和东芝新款企业级SAS SSD PX04S(注意不是PX04P)系列,前者是ATA设备,后者则为了是更好的电气性能而借用了SFF-8639的外形(或者只是为了省事,毕竟同代的PX04P是NVMe PCIe),实际上只使用了SAS(SFF-8482/SFF-8680)的14+15pin。所以不要看到U.2接口就认为是NVMe SSD,此二者之间没有必然联系。
(U.2接口的SFF型美光P320h)
SATAe接口的物理外观跟U.2接口做对比的话,最大区别就是SATAe没有SATA7pin及15pin之间的额外6pin
以上正文结束,其实本文的主要目的就是阐明“看上去”和“实际上”是两回事,以及纠正不明所以的混淆名词,比如“NVMe x4”一类的
接下来说一些跟接口有关的杂项
SATA作为物理接口已经到了最后一代,也就是现在普及的SATA 3.0,不会再有SATA 4.0了。SATA Express只能算其“精神继承者”,毕竟物理层上已经用了PCIe的那一套,而且SATA-IO(SATA标准的制定机构)自己都说SATAe可以走AHCI逻辑也可以走NVMe逻辑,现在唯一能拿上台面说的SATAe产品还是后者,所以SATA实际上已完。但不用担心明天就会被淘汰,毕竟普及度高,而且可以作为非关键规模化存储在企业级中部署。
AHCI作为逻辑接口可能要比上面更惨一些,因为AHCI只能用于ATA设备,但ATA设备还可以用SCSI(SCSI / ATA Translation)。事实上Intel很早以前就在其iRST驱动中加入了SCSI层,这也是为什么装了iRST驱动以后,即使是SATA盘的设备名称里面也会带个SCSI的原因。
作为难兄难弟,SATA和AHCI在定制主机上面就更没了活路。对很多只有一个M.2 SSD做内置存储的轻薄本来说,如果采用了使用NVMe协议的产品,则可以完全舍弃掉SATA和AHCI。毕竟AHCI作为一个软件模块(有改BIOS经历的应该明白),即使你不用也是要加载的,而加载一个没有用的模块不仅增加逻辑复杂度,也是浪费人生。
SAS在前年升级到了3.0,配套物理接口也从SFF-8482升级到了SFF-8680,未来还有SAS 4.0,链路速度将再次翻番提高到24Gb/s。而且SAS是双端口,原本用来做冗余和故障转移的设计如今也可以做带宽叠加了,所以这一代SAS SSD的性能相当可观,问题就在于SAS主机控制器够不够给力了。
虽然目前在售的NVMe SSD都使用PCIe 3.0 x4前端的主控(SFF型东芝XG3是只通了x2),但向下x2、x1,向上x8的主控和固件已经在开发当中。一旦低宽度的NVMe产品上市,也就意味着NVMe将走入普及,也意味着SATA的日子更不好过了,不过这也需要有配套接口支持。需要说明的一点是,NVMe SSD也是有类似SAS双端口的设计的,可以连接两台主机,比如我们看Intel 750 U.2接口的定义里面就有,虽然750自己并不支持双端口,但企业级的P3700/P3600未来将会支持。但PCIe毕竟不像SAS设计之初就有双端口,PCIe SSD双端口的实现可能还需要专门PCIe交换设备的支持,包括为后来x8宽度的设备提供支持。
U.2/SFF-8639作为设备端接口,其主机端是SFF-8643(SFF-8613)接口,这个接口同样用于这一代SAS 3.0主机设备接口,但二者不能通用,因为设备端接口的针脚定义不同。SAS使用S1-S14作为数据连接,而PCIe 3.0 x4使用S15-S28及E1-E25作为数据连接,二者全无交集,只是可共用U.2作为设备端接口。但也不用担心用错线缆,如果1个SFF-8643接口只连接1个U.2接口,基本可以确定是用于PCIe SSD的;如果连接2个以上接口,就是用于SAS设备的(不过也不能排除未来会有一条线连接两个PCIe x2 SSD的可能)。
(SFF-8643 to U.2)
(SFF-8643 to 4x SFF-8680)
(SATA Express)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|