SATA Express

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/PCIE分配芯片ASM106SE和相应的多工器芯片支援，不过这款主板仅在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更多用于服务器等企业应用场合。

## 特性

<image>

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

用于向下相容传统的SATA装置（包括使用AHCI逻辑界面的SATA装置）、SATA Express控制器提供的SATA 3.0连接埠。

#### 使用AHCI的PCI Express

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

#### 使用NVMe的PCI Express

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

## 物理界面

<image>

### SATA Express原生物理界面

共有五种物理是SATA Express可用的，取决于装置的用途：

- Host plug：即原生SATA Express物理界面，用于主板、附加控制器（如扩展界面卡）上。与旧型SATA装置无缝相容、不需要额外的适配器或转换器的保守设计。主板一侧的连接器可选择连接两个旧型SATA装置或是一个SATA Express连接线的PCIe固态硬盘。而连接埠上的总线工作在PCIe模式还是SATA模式，取决于所连接的存储装置。
- Host cable receptacle：SATA Express资料连接线上的插头，用于连接主板上的Host plug插座，不相容于旧SATA插座。
- Device cable receptacle：SATA Express资料连接线上的插头，用于连接存储装置，相容旧型SATA插座，一个Device cable receptacle插座可插上一条旧SATA连接线与主板的SATA插座连接，不过这样的话装置只会在SATA模式运作。
- Device plug：使用于SATA Express存储装置上，这种连接埠是部分向下相容设计，可令装置与多连结SAS（MultiLink SAS）或与下面提到的U.2主板插头配合使用。然而，SATA Express在装置与主板连接后，需要装置支援PCIe连接时方能开启PCIe通道。
- Host receptacle：与M.2类似的板上连接方式，不需要连接线。这种连接方式间接相容连接一个旧型SATA装置。

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

### U.2和M.2

事实上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 Express设备线缆插座｜SATA Express主机插座｜SATA线缆插座｜U.2背板插座｜SAS MultiLink插座

SATA Express主机插头｜是｜否｜否｜是｜否｜否

SATA Express设备插头｜否｜是｜是｜否｜是｜是

SATA设备插头｜否｜是｜是｜是｜是｜是

## 相容度

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驱动的情况下安装旧版操作系统。

## 基本资料

- 英文全名：Serial Advanced Technology Attachment Express
- 研发日期：2013年
- 速度：最高 1969 MB/s（采用SATA Express物理界面，PCIe 3.0 ×2）
- 热插拔：支持，需要其他系统组件配合