13
\$\begingroup\$

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

\$\endgroup\$
  • \$\begingroup\$ Not sure the "cost-effective" part is answerable just yet.. \$\endgroup\$ – user2813274 Nov 3 '14 at 20:39
  • 3
    \$\begingroup\$ Full disclosure: I asked at superuser.com but it seems people misunderstood my question as being about the politics or about whether manufacturers would do this, rather than about the engineering issues (technical feasibility and cost effectiveness), and I didn't get an answer to my question there. \$\endgroup\$ – Porthem Nov 3 '14 at 20:41
  • \$\begingroup\$ @Porthem For future reference: Please don't cross-post. StackExchange policy is against cross-posting. You can make a flag to the moderators to migrate a question to another stack, if you so choose. \$\endgroup\$ – Nick Alexeev Nov 3 '14 at 20:47
  • 1
    \$\begingroup\$ Sorry, I wasn't aware of that. Before re-asking here, I did ask on superuser if it would be ok to re-ask here, but I didn't get a response. \$\endgroup\$ – Porthem Nov 3 '14 at 21:01
  • 1
    \$\begingroup\$ I neither see an actual question, or if the question is "is x technically possible", the answer is yes. \$\endgroup\$ – Passerby Nov 3 '14 at 23:29
10
\$\begingroup\$
  • 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.

\$\endgroup\$
  • \$\begingroup\$ I don't see why you say using USB-C for something other than the USB protocol is a terrible idea. It's the entire point of the Alt Mode feature, and both Displayport and PCIe are already planned for use through USB-C. Out-of-band signaling is done upon connection (via the CC line) to negotiate which protocol to use on TX/RX-1/2, designed to prevent damage when incompatible devices/hosts are connected, and the USB billboard class informs users when incompatible devices are connected. The extra lanes of SFF-8639 are an advantage, though, and that looks like the main reason USB-C is unsuitable. \$\endgroup\$ – Porthem Nov 8 '14 at 10:06
  • \$\begingroup\$ @Porthem - If there are provisions for signaling the use of the connector for alternative signaling systems, it becomes merely a rather bad idea, rather then a terrible idea. Having multiple, non-compatible signaling systems using the same connector will lead to end-user confusion. It also means that every SATA-Express device using the USB-c connector will have to have the additional hardware built-in to allow it to handle the negotiation process when it's plugged in somewhere wrong. \$\endgroup\$ – Connor Wolf Nov 8 '14 at 11:54
  • \$\begingroup\$ Really, I think the question here is "why"? We have a connector specifically designed for SATA-Express. Why would you use a different connector? The cost difference is negligible, the benefits are highly debatable, and doing so will almost inevitably lead to confusion. It's not like space on computer motherboards is at that much of a premium. \$\endgroup\$ – Connor Wolf Nov 8 '14 at 11:57
  • \$\begingroup\$ Furthermore, USB-c normally (I.e. when used for actual USB) only uses 1/2 of the pairs, which means that it's almost guaranteed that 95% of the USB-c cables will only have the number of conductors needed to support that use-case. It'd be like trying to explain why you need a special dual-link DVI cable for some monitors, only 100x worse because it would be a very heavily commoditized cable, rather then the occasional DVI lead. \$\endgroup\$ – Connor Wolf Nov 8 '14 at 12:01
  • 1
    \$\begingroup\$ I asked about technical viability, which you explained is "yes" for current SATA Express but "no" for later versions of it (SFF-8639) due to the latter's additional lanes, and about cost effectiveness, which it appears is still unknown and will depend on the cost of the protocol negotiation hardware. You additionally opined that it's a bad idea, and asked "why", so I responded about those things. I'll mark your answer as accepted; can you split the factual part ("yes" for current SATA Express but "no" for 8-signaling-pair versions) and the opinion part into separate sections? \$\endgroup\$ – Porthem Nov 11 '14 at 3:15
1
\$\begingroup\$

This should be possible for sure because Type C can carry a Pcie3 x4 connection an can provide up to a 100 watts of power. But it would probably not be powered from the motherboard.

And For the problem that was pointed out of the PCIe connecting wrong: there you can use highspeed mux for.

Plus I Don't think this would be used yet for the simple reason of latency: fist the connection determines orientation, then it negotiates Poserdilivery and then it negotiates the communication protocol. And then the ahci/nvme can initiate.

enter image description here source: http://www.ti.com/lit/wp/slly021/slly021.pdf

\$\endgroup\$
-1
\$\begingroup\$

I don't think so. SATA Express uses two PCIe lanes. USB 3.1 only provides one.

\$\endgroup\$
  • 2
    \$\begingroup\$ USB-C provides four signaling pairs, which is enough for two bidirectional PCIe lanes. \$\endgroup\$ – Porthem Nov 8 '14 at 9:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.