jphughan
7 Gold

Demystifying USB-C and Thunderbolt, i.e. adapter and dock capabilities/limitations

Hello everyone,

I was inspired to write this post because I see a lot of confusion about USB-C and Thunderbolt in general, in particular about limitations, such as “Why can I get 4K @ 60 Hz out of a USB-C to HDMI/DP adapter but not out of a USB-C dock that has those same outputs?”, so I figured I’d explain how USB-C and Thunderbolt work in the hopes that it would help make sense of it all.

The USB-C connector is a very interesting and capable design. The focus for our purposes here is that it has 4 pairs of pins that can be used for various types of traffic in various combinations. I’m going to call each of these 4 pairs a “lane” from here on. And since one of the possible uses for these lanes is DisplayPort traffic, another key bit of information to clarify upfront is that DisplayPort is also divided into lanes; it has been from the beginning. A full-bandwidth DisplayPort connection has always been defined as 4 lanes (all carried on a single cable), so when people say DisplayPort 1.2 supports 4K @ 60 Hz, for example, what they technically mean is 4 lanes of DP 1.2 can support that type of output.

So, each of these multi-purpose “lanes” in a USB-C connector is capable of carrying any of these types of traffic:
- USB 3.1 Gen 2 transmit (abbreviated Tx from here on)
- USB 3.1 Gen 2 receive (abbreviated Rx from here on)
- DisplayPort lane (if the USB-C port is wired to a GPU – and again, each lane is 25% of a full-bandwidth output)
- Thunderbolt 3 (if equipped)

Different lanes can be dynamically assigned to different traffic, but those assignments are fixed for the duration of a given device’s connection.  (USB4 will be changing this in favor of operating more like the multiplexing design already used by Thunderbolt 3 and discussed later.) Note that USB 2.0 traffic flows over a completely separate set of pins dedicated solely to that purpose, never over these flexible lanes. Where all of this comes together is in understanding the possible combinations of these lane assignments, their respective use cases, and in some cases their trade-offs, all described below:

#1: 1 lane of USB 3.1 Tx, 1 lane of USB 3.1 Rx, other 2 lanes unused
This is what would be used if you connected a garden variety USB device to your USB-C port, possibly using a USB-A to USB-C adapter dongle. Since only 2 of these lanes are required to achieve USB 3.1 Gen 2’s 10 Gbps full-duplex throughput, the other pins remain unused in this scenario. For a while, a new USB 3.2 standard that would allow up to 20 Gbps data rates was discussed, which would have achieved its bandwidth increase while using the same USB-C connector and cables by allocating 2 lanes each for Transmit and Receive.  But that seems to have been sidelined in favor of moving straight to USB4.

#2: All 4 lanes each carrying a DisplayPort lane
Assuming your system has a GPU output wired to its USB-C port -- and not all systems with USB-C ports do!! -- this is the configuration a USB-C to HDMI or USB-C to DisplayPort dongle/cable would use. Since USB-C has 4 multi-purpose lanes, and a full-bandwidth DisplayPort output is also 4 lanes, this gets you a full DisplayPort output.  If using DisplayPort 1.2, the minimum supported standard for USB-C, that gives you the necessary bandwidth to drive a 4K @ 60 Hz display.  And if you’re using USB-C to DisplayPort (as opposed to HDMI), you can of course take advantage of DisplayPort MST to split that bandwidth across multiple displays, e.g. 2x 2560x1600 displays, 4x 1080p @ 60 Hz displays, etc., assuming your system/GPU can support that many displays. Maximum bandwidth and maximum total displays are separate specs, and your intended display configuration must fall within both limits.

Things get a bit more complicated if your system and equipment support DisplayPort 1.4 over USB-C.  First, DisplayPort 1.4 supports more bandwidth per lane, using a mode called "HBR3", compared to DP 1.2's HBR2.  That already expands the possible display setups in terms of resolution, refresh rate, and/or quantity of displays in a daisy chain or MST hub setup.  For example, 4 lanes of DP 1.4/HBR3 can run 2x 4K 60 Hz displays and up to 4x 1440p 60 Hz displays (if the GPU supports running 4 displays in the first place).  But on top of that, DisplayPort 1.4 systems can also optionally support DisplayPort DSC (Display Stream Compression).  This is claimed to be "visually lossless", and since its compression ratio can be as high as 3:1, its use can dramatically increase display setup possibilities even over what HBR3 already offers.  But it requires support from both your PC and the other equipment involved.

#3: 1 lane of USB 3.1 Tx, 1 lane of USB 3.1 Rx, 2 lanes for DisplayPort
This is the configuration almost all USB-C docking stations with video outputs use, because they want to support both USB 3.1 and video output simultaneously. They can do this without any penalty to USB (since remember back in #1, that only uses 2 lanes to begin with), but carrying USB 3.1 cuts the available DisplayPort bandwidth in half. This is why USB-C docks that only support DisplayPort 1.2 can only do 4K @ 30 Hz, or 2x 1080p @ 60 Hz.  A USB-C dock that supports DisplayPort 1.4 when paired with a system that also supports it would be able to run 4K @ 60 Hz, or 2x 1440p @ 60 Hz, even if DisplayPort DSC is not in use.  Note that a small number of USB-C docking stations allow flashing alternate firmware onto them. By default, they operate in the manner I’ve just described, but the alternate firmware causes them to use all 4 available lanes for DisplayPort, thereby gaining support for the display configurations listed in #2 -- with the trade-off that any USB 3.1 ports on the docking station now only run at USB 2.0 speeds. Remember, USB 2.0 always flows over a separate, dedicated set of pins.

#4: All 4 lanes carrying Thunderbolt 3 (if equipped)
A Thunderbolt 3 port can work as a regular USB-C port, but when running in Thunderbolt mode, it can carry up to either 8 lanes of DisplayPort 1.2 (i.e. two full-bandwidth outputs) or 5 lanes of DisplayPort 1.4 (more on that later), AND up to 4 lanes of PCIe Gen 3.  Thunderbolt docks that offer USB connectivity do so by incorporating a PCIe-based USB 3.1 controller.  Note that the capabilities of a given system’s Thunderbolt 3 interface will depend on how many GPU outputs and how many PCIe lanes are wired to its Thunderbolt 3 controller, although the spec mandates at least 1 full DisplayPort output (4 lanes) and 2 PCIe Gen 3 lanes. The way this can all be carried simultaneously over just 4 USB-C lanes is that the Thunderbolt controller multiplexes the DisplayPort and PCIe signals into just a “Thunderbolt signal” before sending it out of the USB-C connector, then the device on the other end de-multiplexes it as needed. Those of you doing some quick math here may have realized that Thunderbolt 3’s maximum 40 Gbps rate is not high enough to handle both traffic types running their respective max bandwidth simultaneously. Dual 4K @ 60 Hz displays would consume ~32 Gbps all on its own, for example, and PCIe Gen 3 x4 is another 32 Gbps.  Note however that Thunderbolt can carry 40 Gbps in each direction simultaneously – so for example you could theoretically use dual 4K displays (consuming 32 Gbps of only transmit bandwidth) while also receiving data from a PCIe-based capture device at its full 32 Gbps. When there simply isn’t enough bandwidth to meet demand, Thunderbolt 3 gives priority to display traffic, then PCIe.

And if you were wondering why TB3 can only carry 5 lanes of DisplayPort 1.4/HBR3, it's because more than that would exceed the 40 Gbps max of TB3 itself.  But 5 lanes of DisplayPort 1.4 is close to 8 lanes of DisplayPort 1.2.

Phew! Well for those of you who read this far, I hope you found this illuminating or at least interesting. If you have any questions, please don’t hesitate to ask and I will do my best to answer. Enjoy!