Electronic – Is USB-C a technically viable substitute for SATA Express connectors

pciesatausb

SATA Express, the successor to SATA, is too new to be widely used yet, but the advancing speed of SSDs appears to make it inevitable, the same as SATA replaced parallel IDE. Despite the name, it isn't SATA at all; it's either the AHCI or the NVMe protocol over PCIe, similar to what SOP (SCSI over PCIe) does. The SATA Express connector directly passes two full speed bidirectional PCIe lanes via four signaling pairs, with no protocol encapsulation or translation, and the AHCI or NVMe controller is integrated into the HD or SSD rather than the AHCI controller being on the motherboard as for traditional SATA.

This summer, the USB-C specification was finalized*, with a feature called Alt Mode, which enables use of non-USB protocols through a USB-C port. In particular, it enables passing two full speed bidirectional PCIe lanes via four signaling pairs, with no protocol encapsulation or translation (unlike Thunderbolt, which encapsulates PCIe). Unlike the big and specialized SATA Express connector, which is only used for the SATA Express protocol, USB-C is small and general, and is widely expected to soon become ubiquitous and replace all other USB connector types (all combinations of full-size, mini, and micro type-A and type-B connectors for both USB 2 and USB 3) on all types of devices and hosts, and even replace Displayport connectors since USB-C's Alt Mode enables passing the Displayport protocol.

My question is for an engineer who works with these kinds of interfaces, and it's this: would it be technically feasible and cost effective to use USB-C instead of the specialized SATA Express connector for connecting SATA Express devices (i.e. devices that use AHCI or NVMe over PCIe) to motherboards? It appears that the SATA Express connector was created simply due to lack of better options at the time, but since USB-C can directly pass PCIe (and power too, including an option for the 12V commonly used by 3.5" HDs), it looks like it would be a technically feasible substitute and maybe even cheaper since it's smaller and consumes less PCB space. But since I don't engineer these kinds of things, I want to ask somebody who does, to see if my analysis is accurate.

Of course, technical feasibility and cost effectiveness are necessary but not sufficient for HD and SSD manufacturers to use USB-C in this way, but the other factors (especially inter-company politics) are outside the scope of my question. If manufacturers were to use USB-C connectors on their new SATA Express HDs and SSDs, then there would be a transition period in which motherboards would include both USB-C and SATA connectors, the same as motherboards included both SATA and parallel IDE connectors during that transition.

*See http://www.usb.org/developers/docs/usb_31_102214.zip

Best Answer

  • Sata-Express uses 4 differential pairs for signaling, composing two PCI-e lanes.
    It also requires some auxilliary connections (ground, etc), but the primary signaling is done using the 4 differential pairs.
  • The USB-3.1 spec defines a number of different connectors: However, all but the USB-c connector clearly have insufficent pins to be applicable.

  • The USB-c connector's pinout: enter image description here

The connector does have enough differential pairs to properly carry two PCI-e lanes (and by effect, it could probably theoretically carry Sata-Express. However:

  • This connector is, by design, not "keyed". This means it can be inserted in two different orientations. When it's used for USB-3, the matching pairs are connected together (e.g. A1-B1, A2-B2, etc...) so reversing the connector is harmless. For PCI-e, this could be a problem, as it would either completely reverse the wiring, or (with some clever design) swap the ordering of the lanes in the PCI-e bus.
    I confess I do not know enough about PCI-e to tell you if swapping the physical lanes would be a problem here.
  • From an implementer's standpoint, using the USB-c connector for something other then USB-c is a terrible idea, as it will lead to people plugging USB-3 devices into their hypothetical PCI-e-over-USB-c motherboard, and plugging PCI-e-over-USB-c devices into USB-3 ports. There is a reason we have different connectors for different things.

Realistically, the USB-c connector could be fairly easily modified to make it incompatible with USB-3 connectors, at which point you'd basically just have yet another PCI-e connector. Considering that one of the major design decisions for the current Sata-Express connector is backwards compatibility with normal SATA, it's not likely to happen.

Furthermore, the SATA-express interface definition provides a lot of further connectivity intended for enterprise use (take a look at SFF-8639). There are specialized versions that have four PCI-e lanes, and an additional optional plain SATA channel. This is physically compatible with the normal device-end SATA-express connector (if you connect a SFF-8639 device to a SATA-express interface, it simply falls back to SATA-express). There is no physical way that you could route all the required connectivity for a SFF-8639 interface over a USB-c connector.

enter image description here

The current SATA standard has a lot of things in it for enterprise use that you may have not seen. In particular, there are SAS drives, which use the SFF 8482 connector, which is, again, physically compatible with current SATA connectors (and will safely interoperate at the slower device's transfer speed if interconnected, just like SFF-8639).

The design decisions for the SATA-express connector are very clearly inline with the design decisions for the SATA & SAS connectors.

TL;DR - Theoretically, it could work. Realistically, no one is likely to do it.