USB 3.x vs. USB 2.0

Even though the USB 3.x standard attempts to present a compatible interface to host's software, it has very little in common with USB 2.0 as far as the low-level communication goes. In fact, connecting a standard USB 3.0 device to a host is almost equivalent to connecting two devices, one with a fullblown USB 2.0 protocol stack, and one USB 3.0 device. A host can in theory interact with a device through both interfaces in parallel, but it so happens that the USB protocol requires that one should be selected and the other turned off.

All communication related to the USB 3.x protocol takes place through (at least) 4 dedicated wires, which form a Multi-Gigabit Transceiver (MGT) channel or lane: One pair of differential wires for transmission and one pair for reception. It's yet another variant of the same physical interface used by Gigabit Ethernet, SATA, PCIe, DisplayPort and often in fiber optics.

This is why special cables and connectors are required for USB 3.x: It's not a matter of higher quality, but more wires in the cable, and connectors that may look the same (in particular the type-A connector) but have in fact additional contacts for these extra 4 (or more) wires. The raw link data rate on these wires starts at 5 Gb/s in each direction, which is 10 times faster than USB 2.0's 480 Mb/s. More details on data rates below.

One major leap forward with USB 3.x is that the communication is full-duplex, unlike USB 2.0, which uses the same pair of wires for communication in both directions. This doesn't just double the total throughput by allowing both sides to send data at the same time, but improves it significantly by removing the bus turnaround delays and the mechanisms required to prevent both sides from transmitting at the same time (and resolve these situations, should they occur). Another related difference is that all packets arriving to a port are intended for that port, even in the presence of USB 3.x hubs along the link. There are no broadcasts to all downstream ports as USB 2.0 hubs do, except for ITP packets, but these are intended for all peripherals.

The USB 2.0 is relatively well known and documented, and therefore not discussed further. In what follows, some USB 3.x-related terms will be presented briefly and in a shallow manner. This is by no means a substitute for reading the standard itself.

SuperSpeed vs. SuperSpeedPlus

"SuperSpeed" is the term implying that USB 3.0 is faster than USB 2.0 ("High Speed"). Later on, with USB 3.1, there was obviously some rethinking done, and "SuperSpeedPlus" was introduced.

This should not be confused with Gen1 and Gen2, which merely denote the lane speed: 5 Gb/s and 10 Gb/s, respectively. Gen2 doesn't just have a faster low-level bit speed, but there are other improvements as well: For example, the 8b/10b coding is replaced with 128b/132b, allowing for a much better utilization of the physical bandwidth, applying alternative solutions for 0/1 balancing (scrambler), symbol alignment (with SYNC ordered set) and clock rate differences (a dedicated SKP ordered set). The link setup patterns ("ordered sets", TSEQ, TP1, TP2) are also different.

SuperSpeedPlus does not indicate a specific lane speed nor an overall throughput, but reflects several changes in the low-level protocol. SuperSpeed, on the other hand, is limited to a single lane of 5 Gb/s (Gen 1 x 1).

In fact, the major improvement made in SuperSpeedPlus is the ability to advertise each side's capabilities (link speeds, number of lanes, and who knows what's to come) during the early stages of the link training, and settle on a combination both sides support. This makes so much sense, that it's not clear why it wasn't included in USB 3.0 already.

This is why SuperSpeed stands for USB 3.0, while SuperSpeedPlus is likely to cover any later USB 3.x protocol. If there are new features, there are reserved fields in the negotiation packets for this purpose.

SuperSpeedPlus comes with a few other changes, among others the protocol layer's rules are relaxed and enhanced, allowing reordering of link layer packets in some cases, as well as interleaving packets for different endpoints in mid-transaction.

Note that a SuperSpeedPlus device may in theory have only a single lane of 5 Gb/s (Gen 1 x 1), even though there's not much point for such a configuration, in particular as any port operating in Gen 1 x 1 mode must not use features of the SuperSpeedPlus architecture (as stated in the introduction of section 8 of the specification).

Summary of the USB 3.x revisions

  • USB 3.0:  SuperSpeed only. A single 5 Gb/s lane (hence 4 wires) is added on top of USB 2.0's wires. As 8b/10b encoding is employed to maintain the same number of 0's and 1's on the electrical level, the raw data throughput is limited by 4 Gb/s in each direction.
  • USB 3.1: SuperSpeedPlus. A single 10 Gb/s lane, hence same electromechanics, but the introduction of SuperSpeedPlus changes much under the hood, part of which is mentioned above. With the 128b/132b encoding, the raw data throughput rises to ~9.7 Gb/s, which is 2.4 times better than USB 3.0.
  • USB 3.2: SuperSpeedPlus again, supporting two lanes of 10 Gb/s each. This calls for different connectors and cables. Time will tell if there will be a demand that justifies the hassle.

Almost needless to say, protocols of higher revisions are backward compatible with lower revisions, and fallback mechanism are in place to support lower speeds, fewer lanes and SuperSpeed instead of SuperSpeedPlus as necessary.