SATA Express

SATA Express (sometimes unofficially shortened to SATAe) is a computer bus interface that supports both Serial ATA (SATA) and PCI Express (PCIe) storage devices, initially standardized in the SATA 3.2 specification. The SATA Express connector used on the host side is backward compatible with the standard SATA data connector, while it also provides two PCI Express lanes as a pure PCI Express connection to the storage device.

Instead of continuing with the SATA interface's usual approach of doubling its native speed with each major version, SATA 3.2 specification included the PCI Express bus for achieving data transfer speeds greater than the SATA 3.0 speed limit of 6 Gbit/s. Designers of the SATA interface concluded that doubling the native SATA speed would take too much time to catch up with the advancements in solid-state drive (SSD) technology, would require too many changes to the SATA standard, and would result in a much greater power consumption compared with the existing PCI Express bus. As a widely adopted computer bus, PCI Express provides sufficient bandwidth while allowing easy scaling up by using faster or additional lanes.

In addition to supporting legacy Advanced Host Controller Interface (AHCI) at the logical interface level, SATA Express also supports NVM Express (NVMe) as the logical device interface for attached PCI Express storage devices. While the support for AHCI ensures software-level backward compatibility with legacy SATA devices and legacy operating systems, NVM Express is designed to fully utilize high-speed PCI Express storage devices by leveraging their capability of executing many I/O operations in parallel.

History


The Serial ATA (SATA) interface was designed primarily for interfacing with hard disk drives (HDDs), doubling its native speed with each major revision: maximum SATA transfer speeds went from 1.5 Gbit/s in SATA 1.0 (standardized in 2003), through 3 Gbit/s in SATA 2.0 (standardized in 2004), to 6 Gbit/s as provided by SATA 3.0 (standardized in 2009). SATA has also been selected as the interface for gradually more adopted solid-state drives (SSDs), but the need for a faster interface became apparent as the speed of SSDs and hybrid drives increased over time. As an example, some SSDs available in early 2009 were already well over the capabilities of SATA 1.0 and close to the SATA 2.0 maximum transfer speed, while in the second half of 2013 high-end consumer SSDs had already reached the SATA 3.0 speed limit, requiring an even faster interface.

While evaluating different approaches to the required speed increase, designers of the SATA interface concluded that extending the SATA interface so it doubles its native speed to 12 Gbit/s would require more than two years, making that approach unsuitable for catching up with advancements in SSD technology. At the same time, increasing the native SATA speed to 12 Gbit/s would require too many changes to the SATA standard, ending up in a more costly and less power efficient solution compared with the already available and widely adopted PCI Express bus. Thus, PCI Express was selected by the designers of SATA interface, as part of the SATA 3.2 revision that was standardized in 2013; extending the SATA specification to also provide a PCI Express interface within the same backward-compatible connector allowed much faster speeds by reusing already existing technology.

Some vendors also use proprietary logical interfaces for their flash-based storage products, connected through the PCI Express bus. Such storage products can use a multi-lane PCI Express link, while interfacing with the operating system through proprietary drivers and host interfaces. Moreover, there are similar storage products using NVM Express as the non-proprietary logical interface for a PCI Express add-on card.

Availability
Support for SATA Express was initially announced for the Intel 9 Series chipsets, Z97 and H97 Platform Controller Hubs (PCHs), with both of them supporting Intel Haswell and Haswell Refresh processors; availability of these two chipsets was planned for 2014. In December 2013, Asus unveiled a prototype "Z87-Deluxe/SATA Express" motherboard based on the Intel Z87 chipset, supporting Haswell processors and using additional ASMedia controller to provide SATA Express connectivity; this motherboard was also showcased at CES 2014 although no launch date was announced.

In April 2014, Asus also demonstrated support for the so-called separate reference clock with independent spread spectrum clocking (SRIS) with some of its pre-production SATA Express hardware. SRIS eliminates the need for complex and costly shielding on SATA Express cables required for transmitting PCI Express synchronization signals, by providing a separate clock generator on the storage device with additional support from the motherboard firmware.

In May 2014, Intel Z97 and H97 chipsets became available, bringing support for both SATA Express and M.2, which is a specification for flash-based storage devices in form of internally mounted computer expansion cards. Z97 and H97 chipsets use two PCI Express 2.0 lanes for each of their SATA Express ports, providing 1 GB/s of bandwidth to PCI Express storage devices. The release of these two new chipsets, intended primarily for high-end desktops, was soon followed by the availability of Z97- and H97-based motherboards.

In late August 2014, Intel X99 chipset became available, bringing support for both SATA Express and M.2 to the Intel's enthusiast platform. Each of the X99's SATA Express ports requires two PCI Express 2.0 lanes provided by the chipset, while the M.2 slots can use either two 2.0 lanes from the chipset itself, or up to four 3.0 lanes taken directly from the LGA 2011-v3 CPU. As a result, the X99 provides bandwidths of up to 3.94 GB/s for connected PCI Express storage devices. Following the release of X99 chipset, numerous X99-based motherboards became available.

In early March 2017, AMD Ryzen became available, bringing native support for SATA Express to the AMD Socket AM4 platform, through use of its accompanying X370, X300, B350, A320 and A300 chipsets. Ryzen also supports M.2 and other forms of PCI Express storage devices, using up to the total of eight PCI Express 3.0 lanes provided by the chipset and the AM4 CPU. As a result, Ryzen provides bandwidths of up to 7.88 GB/s for connected PCI Express storage devices.

SATA Express is considered a failed standard, because when SATA Express was introduced, the M.2 form factor and NVMe standards were also launched, gaining much larger popularity than Serial ATA and SATA Express. Not many storage devices utilizing the SATA Express interface were released for consumers, and SATA Express ports quickly disappeared from new motherboards.

Features


SATA Express interface supports both PCI Express and SATA storage devices by exposing two PCI Express 2.0 or 3.0 lanes and two SATA 3.0 (6 Gbit/s) ports through the same host-side SATA Express connector (but not both at the same time). Exposed PCI Express lanes provide a pure PCI Express connection between the host and storage device, with no additional layers of bus abstraction. The SATA revision 3.2 specification, in its gold revision, standardizes the SATA Express and specifies its hardware layout and electrical parameters.

The choice of PCI Express also enables scaling up the performance of SATA Express interface by using multiple lanes and different versions of PCI Express. In more detail, using two PCI Express 2.0 lanes provides a total bandwidth of 1000 MB/s (2 × 5 GT/s raw data rate and 8b/10b encoding), while using two PCI Express 3.0 lanes provides 1969 MB/s (2 × 8 GT/s raw data rate and 128b/130b encoding). In comparison, the 6 Gbit/s raw bandwidth of SATA 3.0 equates effectively to 600 MB/s (6 GT/s raw data rate and 8b/10b encoding).

There are three options available for the logical device interfaces and command sets used for interfacing with storage devices connected to a SATA Express controller:


 * Legacy SATA
 * Used for backward compatibility with legacy SATA devices, and interfaced through the AHCI driver and legacy SATA 3.0 (6 Gbit/s) ports provided by a SATA Express controller.


 * PCI Express using AHCI
 * Used for PCI Express SSDs and interfaced through the AHCI driver and provided PCI Express lanes, providing backward compatibility with widespread SATA support in operating systems at the cost of not delivering optimal performance by using AHCI for accessing PCI Express SSDs. AHCI was developed back at the time when the purpose of a host bus adapter (HBA) in a system was to connect the CPU/memory subsystem with a much slower storage subsystem based on rotating magnetic media; as a result, AHCI has some inherent inefficiencies when applied to SSD devices, which behave much more like DRAM than like spinning media.


 * PCI Express using NVMe
 * Used for PCI Express SSDs and interfaced through the NVMe driver and provided PCI Express lanes, as a high-performance and scalable host controller interface designed and optimized especially for interfacing with PCI Express SSDs. NVMe has been designed from the ground up, capitalizing on the low latency and parallelism of PCI Express SSDs, and complementing the parallelism of contemporary CPUs, platforms and applications. At a high level, primary advantages of NVMe over AHCI relate to NVMe's ability to exploit parallelism in host hardware and software, based on its design advantages that include data transfers with fewer stages, greater depth of command queues, and more efficient interrupt processing.

Connectors


Connectors used for SATA Express were selected specifically to ensure backward compatibility with legacy SATA devices where possible, without the need for additional adapters or converters. The connector on the host side accepts either one PCI Express SSD or up to two legacy SATA devices, by providing either PCI Express lanes or SATA 3.0 ports depending on the type of connected storage device.

There are five types of SATA Express connectors, differing by their position and purpose:
 * Host plug is used on motherboards and add-on controllers. This connector is backward compatible by accepting legacy standard SATA data cables, resulting in the host plug providing connectivity for up to two SATA devices.
 * Host cable receptacle is the host-side connector on SATA Express cables. This connector is not backward compatible.
 * Device cable receptacle is the device-side connector on SATA Express cables, backward compatible by accepting one SATA device.
 * Device plug is used on SATA Express devices. This connector is partially backward compatible by allowing SATA Express devices to be plugged into U.2 backplanes or MultiLink SAS receptacles; however, a SATA Express device connected that way will be functional only if the host supports PCI Express devices.
 * Host receptacle is used on backplanes for mating directly with SATA Express devices, resulting in cableless connections. This connector is backward compatible by accepting one SATA device.

The above listed SATA Express connectors provide only two PCI Express lanes, as the result of overall design focusing on a rapid low-cost platform transition. That choice allowed easier backward compatibility with legacy SATA devices, together with making it possible to use cheaper unshielded cables. , some NVM Express devices in form of 2.5-inch drives use the U.2 connector (originally known as SFF-8639, with the renaming taking place in June 2015 ), which is expected to gain broader acceptance. The U.2 connector is mechanically identical to the SATA Express device plug, but provides four PCI Express lanes through a different usage of available pins.

The table below summarizes the compatibility of involved connectors.

Compatibility
Device-level backward compatibility for SATA Express is ensured by fully supporting legacy SATA 3.0 (6 Gbit/s) storage devices, both on the electrical level and through the required operating system support. Mechanically, connectors on the host side retain their backward compatibility in a way similar to how USB 3.0 does it – the new host-side SATA Express connector is made by "stacking" an additional connector on top of two legacy standard SATA data connectors, which are regular SATA 3.0 (6 Gbit/s) ports that can accept legacy SATA devices. This backward compatibility of the host-side SATA Express connector, which is formally known as the host plug, ensures the possibility for attaching legacy SATA devices to hosts equipped with SATA Express controllers.

Backward compatibility on the software level, provided for legacy operating systems and associated device drivers that can access only SATA storage devices, is achieved by retaining support for the AHCI controller interface as a legacy logical device interface, as visible from the operating system perspective. Access to storage devices using AHCI as a logical device interface is possible for both SATA SSDs and PCI Express SSDs, so operating systems that do not provide support for NVMe can optionally be configured to interact with PCI Express storage devices as if they were legacy AHCI devices. However, because NVMe is far more efficient than AHCI when used with PCI Express SSDs, SATA Express interface is unable to deliver its maximum performance when AHCI is used to access PCI Express storage devices; see above for more details.