新起点
SATA Express
2021-04-12 17:45:38

SATA Express(英文:Serial Advanced Technology Attachment Express,亦可缩写为Serial ATA Express,也有坊间的非官方缩写SATAe)是一种基于SATA和PCI Express(PCIe)而来的高速电脑总线,用于SATA、PCIe存储设备,最初是作为SATA 3.2版标准发表。

最初内置SATA Express控制器的是英特尔于2014年的9系列PCH芯片组(H97、Z97),适用于Haswell微架构的处理器(LGA 1150插槽)。不过,2013年11月华硕发布了带有SATA Express连接端口的“Z87-Deluxe/SATA Express”主板,使用一颗由祥硕科技提供的控制芯片提供SATA Express支持,不过这款主板仅在2014年的CES消费电子展上展出以后便无任何推出市场的计划了。

2014年4月,华硕公开展示了一种准量产型的SATA Express硬件,并支持华硕称为“带独立展频时钟的分立式基准时脉”(SRIS)特性。SRIS的要点在于在SATA Express存储设备上增加一个用于资料信号传输的时钟发生器,在主板的固件上予以额外支持,来降低SATA Express资料连接线传输同步PCIe总线信号时屏蔽的技术需求。

2014年5月,首批使用Z97和H97芯片组的主板上架贩售,不少主板不仅提供了SATA Express连接端口,还提供了M.2插槽(M.2是一种界面卡式存储器连接结构,安装于主板上,和SATA Express原生物理界面一样提供PCIe和SATA的脚位)。Z97和H97为每个SATA Express连接端口各提供了PCIe 2.0 ×2规格的PCIe通道,每个SATA Express设备可拥有1GB/s的带宽。不过这两款芯片组的主板都主要用于高端性能机桌面型平台,对一般主流级市场影响不大。而极致性能级桌机平台上,英特尔于2014年8月推出了支持SATA Express的X99芯片组。X99主板上SATA Express界面的PCIe通道仍由X99 PCH提供,而M.2插槽的PCIe通道则是视主板厂商而定,可从X99 PCH上引出两条PCIe 2.0通道,也可从LGA 2011-v3插槽的处理器上引出最多4条PCIe 3.0通道,来供M.2插槽使用。

AMD则于2017年发表了Socket AM4和Socket SP3(r2)/LGA 4094处理器平台,内置SATA Express控制器。

SATA Express的推广使用上,分为两种情况。单就SATA Express控制器本身而言是算成功的,至2017年推出的主板芯片组、x86 CPU/SoC均有支持。然而就SATA Express物理接口上来说则是相当的失败,以至于SATA Express协议被NVMe协议取代,SATA Express物理接口也被后续者M.2和U.2取代,载有SATA Express物理界面的主板可谓是相当的少,早期甚至连驱动程序也欠奉;至于SATA Express物理界面的存储设备也可谓寥寥无几。

2015年SATA Express发布了一种兼容SAS、PCI Express x4、SATA总线的的U.2连接器界面,U.2更多用于服务器等企业应用场合。

SATA Express本身配备了新的物理连接界面,连接端口可向下兼容原有SATA标准的SATA连接线插头,而实际上SATA Express是使用两条PCIe通道传输资料,其对应的连接端口几乎相当于一个特化的PCIe ×2插槽,所以基于SATA Express的存储设备是通过PCIe总线与SATA Express控制器进行通信的。不像此前的数个SATA标准,由于固态硬盘驱动器(SSD)的长足发展和越发广泛的使用,SATA 3.0对于SSD来说已不敷使用,能在与旧设备兼容的基础上比SATA 3.0(6 Gbps)提升多倍的总线带宽,SATA 3.2选择使用PCIe和SATA共享技术标准。不过相比原来的SATA标准来说,为了能在PCIe总线上运行而修改了大量的技术参数标准,而为了兼容旧有的SATA,运作时功耗又会比只使用PCIe总线的控制器要高。选择与PCIe走在一起的另一个原因是,作为一个可广泛适配的电脑总线,PCIe可在提供足够的带宽的同时,还能通过增加PCIe通道数来达成成倍带宽提升。

此外,因为SATA Express支持原来在SATA逻辑接口层(面向操作系统)上运作的AHCI,使得支持只有逻辑接口层标准的NVMe(AHCI的继任者)也成为了可实现的目的,只要SATA Express的存储设备支持。支持AHCI可确保能兼容现时大量的旧型SATA设备和旧版的操作系统(如Windows 7),对NVMe的支持则可全力发挥PCIe存储设备的功能与性能,像是大量I/O操作的并行化运行。

SATA Express接口同时支持PCIe存储设备和SATA存储设备,其物理连接接口占用两条PCIe 2.0/3.0通道和两个SATA 3.0(6.0 Gbps)连接端口(两种连接接口重用一个物理连接端口),主机和存储设备之间的连接是纯PCIe总线连接的,不需要额外的总线抽象层。 2013年8月的SATA 3.2版本规范中,正式将SATA Express总线标准推出,并公布其硬件规格以及电气特性参数。

SATA Express选择使用PCIe,使得其性能可以通过多条并行的或是更高版本的PCIe总线来获得性能的提升。举个例子,使用PCIe 2.0 ×2时,可在8b/10b编码及2×5 GT/s的吞吐量时获得1GB/s的带宽;而使用PCIe 3.0 ×2时,同样通道下使用128b/130b编码、2×8 GT/s的吞吐量时可获得接近2 GB/s(实际1,969MB/s)的带宽。作为对比,SATA 3.0(6 Gbps)仅拥有0.6 GB/s的带宽,使用的是效率相对较低的8b/10b编码。

对于SATA Express控制器和其连接的存储设备,它们可使用3种不同的逻辑器件接口和命令集:

用于向下兼容传统的SATA设备(包括使用AHCI逻辑接口的SATA设备)、SATA Express控制器提供的SATA 3.0连接端口。

一来是用于使用PCIe总线并通过AHCI逻辑接口与主机连接的PCIe SSD;而二来是在操作系统中以兼容性为目的,提供非性能优化,以广泛使用的SATA模式(通过AHCI逻辑接口)访问PCIe SSD(即AHCI模式,方便安装不支持NVMe的旧版操作系统,如Windows 7)。在AHCI开发的时代,系统的主机适配器将CPU/存储器子系统与相对慢得多的、基于旋转磁性介质的存储子系统,AHCI是针对这种悬殊的速度差来进行优化设计的。而到了固态硬盘广泛使用的时代,AHCI便出现了一些与固态硬盘的运作原理不相适应之处而导致的性能低落,现时固态硬盘驱动器采用的闪存,存储原理与DRAM有类似之处(尽管速度仍是慢得多),不同于旋转存储介质。

用于使用PCIe总线并通过NVMe逻辑器件接口与主机连接的PCIe SSD。NVMe是一种转为闪存设计的高性能、可扩展的主机控制器接口,其高性能主要在于低延时和I/O操作的并列性,现代CPU、系统平台及应用均可受益。相比AHCI,NVMe提供在主机硬件和软件可支持的情况下提供本地的存储并发性支持,更少的资料存储层级、更深的命令队列和更高效的中断处理。

共有五种物理是SATA Express可用的,取决于设备的用途:

这五种SATA Express物理连接器仅提供两个PCIe通道(即PCIe ×2规格),毕竟一开始就是基于旧版SATA及SAS物理接口改造的保守设计,注重向下兼容性和成本效益,以便降低推广成本,而且就算因性能接受度问题(仅支持到PCIe ×2)没有厂商愿意推出搭载这类连接器的主板或设备,兼容SATA接口的设计也能保证其可用性及重用性。

事实上SATA-IO并不满足于让SATA Express仅支持到PCIe x2的规格。SFF-8639连接器规格(即后来的U.2)支持PCI Express x4、SAS、SATA总线,但采用线缆结构,主要用于企业级、服务器固态存储设备。至2015年3月,一些厂商推出了使用U.2连接器、支持NVMe的固态硬盘产品(如Intel 750系列),预料本规格在性能上会获得更广的接受度,因为和M.2一样可以使用PCIe x4的规格,比原生SATA Express的高出一倍的PCIe通道,能达成最高约32Gbps(约4GB/s)的带宽,同时保有SATA等旧型总线的间接兼容性。因针脚定义相同,SATA Express也可直接使用M.2物理接口来实现板上连接,而市面上也有M.2与U.2的被动转接器贩售。也有SATA Express设备直接采用PCIe物理规格的例子。

U.2支持热插拔而M.2不支持热插拔;U.2可使用3.3V电源电压和12V电源电压,而M.2只能使用3.3V电源电压;M.2可应用于固态硬盘、无线网卡等设备,而U.2仅用于2.5英寸固态硬盘。

下表简略展示SATA Express不同连接器之间的兼容度:

SATA Express向下兼容是设备层级的,只要存储设备支持SATA均可使用;而PCIe模式,只要主板芯片组/SoC有SATA Express控制器,也只需设备支持即可正确开启。不过无论是何种模式,仍然需要操作系统驱动程序的支持。

机械参数上,无论是原生SATA Express连接器还是U.2连接器,针脚的功能设置类似于USB 3.0向下兼容USB 2.0的做法,原生SATA Express在两个旧型SATA 7针连接器的基础上另外新增了其它PCIe所需针脚位,也因此可让旧型SATA资料传输线适配(最多插入两个设备)。而U.2则是采用与M.2类似的针脚定义,U.2需要额外的被动适配器才能与旧型SATA设备连接。另外,现时不是所有的主板都配备U.2连接端口,与M.2类似的,需要PCIe转接卡(被动或主动的,无桥接芯片的被动接口卡一般用于纯PCIe设备,带桥接芯片的主动接口卡一般用于转接SATA连接端口设备);如果主板上配备了M.2连接端口,除了使用M.2规格的设备以外,也可通过被动转接器使用U.2的设备而无带宽损失。

软件层面上,操作系统只要有AHCI驱动程序即可开启SATA Express的SATA模式(AHCI接口)访问旧型SATA设备,或是通过AHCI接口访问SATA Express连接器的PCIe固态硬盘,与使用普通的SSD无甚区别。但是NVMe的支持上,则需要较新的操作系统才有内置的驱动程序支持,旧操作系统(包括Windows 8及之前版本的Windows、Linux内核版本3.3以前的Linux内核、FreeBSD 9.2以前的FreeBSD、Mac OS X 10.10以前的Mac OS X)需要额外的驱动程序方能支持。虽然一些支持NVMe的SSD有兼容模式以便安装旧版操作系统,不过像是Intel 600p这样的SSD,本身无AHCI兼容模式支持的,需要在加载NVMe驱动的情况下安装旧版操作系统。

相关:

网站公告: