USB4 Specification v2.0
usb.org
usb.org
Specifications released today:
- USB4 Specification v2.0 <https://www.usb.org/document-library/usb4r-specification-v20>
- USB Type-C® Cable and Connector Specification Release 2.2 <https://www.usb.org/document-library/usb-type-cr-cable-and-c...>
- USB Power Delivery Revision 2.0 Version 1.3 and Revision 3.1 Version 1.6 <https://www.usb.org/document-library/usb-power-delivery>
Yes, they really called it "USB4 v2.0"...
There has got to be a more simple naming scheme that's easier to follow...
It's almost as if it was designed by a committee.
Alas, I suspect there are many conflicting desires here, and marketing may have something to do with it — the ability to convince customers into buying new hardware by confusing them may have something to do with it.
> If the USB-IF had its way, products using its new open standard will be described as "USB 80Gbps."
Despite the ongoing chaos of USB-IF's technical nomenclature, it sounds like they are well aware of the problem, and the consumer-facing solution they recommend doesn’t sound bad at all.
Look at that article:
> The USB-IF still recommends vendors label USB 2.0, which can take the form of USB-C, USB-A, USB-B, and more, as "Hi-Speed USB" with no performance indicator. > > "Hi-Speed USB has been around for over 20 years and is well established in the marketplace"
They are seriously under the delusion that anyone except USB nerds has even heard of "hi-speed USB".
To developers, the difference between USB 3.1 2x2 and USB 4 is material, and they need two different names.
To end users, they're identical, and different names are confusing.
Changing the labelling of USB 2.0 would be a cure worse than the disease. Approximately nobody is introducing new USB2 products, so having <1% of USB2 products use new nomenclature would only increase confusion rather than decrease it.
They're not though are they? For example USB4 supports Thunderbolt 3 and PCIe tunnelling but USB 3.2 2x2 does not.
WTF?
I had always assumed the number in the name was the spec version. But now the spec version is explicitly v2.0, but the "4" remains in the name. Why isn't this USB5.0?
It's not like USB ports are labelled with what USB version they support or anything, such that there would be valid reasons to have a "compatibility version" that stays at 4. USB ports are just labelled/colored according to a marketing term that loosely maps to supported link speed (Hi-Speed / black, Super-Speed / blue, etc.)
Is this a thing like X11 (the "11" was a protocol version number once upon a time!), where the major version in the name somehow gradually ossified and became hard to change, even as major things kept happening to the spec; and so they just gave up and made the version an opaque part of the name, and lifted the version out somewhere else?
I think the reason why they went with 4 v2 is because they redefined some terminology. E.g. "USB 3.2 Gen2x2" / "USB SuperSpeed 20Gbps" is now "USB 20Gbps". But not sure.
Rather, the spec version — the part that's currently v2.0 — would become globally versioned over all future USB (no longer numbered) standard versions, rather than locally versioned per USB standard version.
By itself, that change would make the new standard "USB, specification v2.0".
But, obviously, that's confusing, since "USB2.0" was also a thing. In fact, starting the global specification-version numbering scheme with any major version number below 5, would make the spec version be confused with a USB standard version. So they'd pretty much have to "skip" to spec version 5.0 as the place to start counting from.
So the result would be "USB, specification v5.0".
But this doesn't mean you want to bump the major version number without making any major changes to it, for example create a new (backward compatible) protocol instead of a new extension to the current protocol.
I mean if we look at it from various perspectives:
- for users it's still the exact same kind of USB, just better labels in the future so even just bumping it to 4.1 would be misleading and 5.0 could be said to be outright user hostile if you consider how it will be misused to sell things
- for tech people 4.1 probably would be the most appropriate but 5.0 would be still misleading
- for people working on usb tech it's also mostly the same and 5.0 would probably still cause additional friction about what needs and doesn't need to be done when discussing it with management
So IMHO 5.0 would be an horrible choice 4.1 would have been nice but I can understand why they didn't do it I think calling it revision 2 instead of version 2 would probably be the most appropriate, except if they already use revision for spelling/formulation improvements idk.
EDIT: In context of them adding a new major alternate mode 4.1 would have been the most appropriate. But then there was a lot of consumer confusion around 3.1, 3.2 and my point about it not being useful for consumers still holds as e.g. a USB 3.2 device doesn't need to support anything added since 3.1 so given that they want to make it less hostile for users it even somewhat makes sense no matter how stupid version 4.0 version 2 sound.
I think people are asking - what really is the 'whatever' behind this version scheme?
In USB3, for example, if you plug in a DisplayPort display via USB-C, there was an alt-mode negotiation, either 2 or 4 of the 4 lanes would switch over to become DisplayPort lanes (leaving you with either 2 or 0 lanes of USB3). Even if you have a 1080p60 (~4.3Gbps) monitor plugged in, you're still losing 20 of the 40Gbps because you're losing half the lanes.
In USB4, everything (except USB1 & USB2, lol) is tunneled over USB4. If you plug a hub in to a computer, and a display (or two or three) into a hub, the displays only take as much bandwidth as they need from the total link budget. Each 1080p60 monitor is taking 4.3 of the 40Gbps (or less, if the monitor has Display Stream Compression). Same goes for devices plugged in via PCIe/Thunderbolt.
There were a lot of weird architecture limitations because of the lane-switched architecture of USB3. It's more or less reason we almost never saw USB hubs with multiple USB-C ports: people would plug in a USB-C monitor, and maybe the hub could be smart enough for that, but plug in a second USB-C monitor, and now the DisplayPort lanes somehow need to serve two monitors. (This is actually achievable with DisplayPort's Multi-Stream-Transport hubs, but lack of support from Apple caused constant angst here.) With USB4 though, a hub can now just route packets, so you can imagine having multiple USB-C hubs fanning out & serving multiple displays; USB-C makes more sense now & has much less caveats under USB4.
In the past there have been some significant limits, like Intel's thunderbolt chips only getting 22Gbps of PCIe data on a 40Gbps link.
My understanding is that TB3 reserved some of the throughput (for video, even if unused?), and then the remaining throughput went through 8b/10b encoding, which left ~26Gbps as the maximum theoretical PCIe bandwidth (significantly less (-18%) than the PCIe 3.0 x4 connection's 32Gbps).
I don't know if there's still restrictions that prevent PCIe from making more use of the link in USB4/TB4. That seemed like a weird restriction, and it'd be especially weird not to see such a big gap when there is USB4 80Gbps. Anyhow, the encoding at least has gone from 8b/10b (+25% overhead) to 64b/66b or 128b/132b (+3%), which I believe should boost TB4 numbers a little.
In practice, rather than the 26Gbps of PCIe it seems like we might be able to get, I've found similar-ish reports that a bit over 22Gbps was all TB3 could typically manage when doing a drive test... I don't know but I'd be very curious to get more details on where the missing 4Gbps are. How much do we lose to NVMe overhead, how much is lost to tunneling overhead, what other factors are there? I haven't heard any real data about what if any additional latency there is. One test I'd like to see is what happens to drive-speed as we go from direct attached, to 1 hub, to 2 to 3 hubs.
As for the future, lots of good questions there; I haven't stumbled into any juicy tidbits at this time. A simple boost to PCIe 4.0 is all too likely, but how great it'd be to specify something more general/generic. It'd be great to see tunnels that have either more fan-in or more fan-out than the underlying connection: here's 8 different PCIe 6 x1 devices plugged in, and yes they're oversubscribed but they all work fine, that'd be a lovely example to see. But that's probably pretty pie in the sky right now.
Switching to USB-C reduced the number of different cables I have at home but almost equally increased the number of different types of USB-C I have. Some work with my monitor, some don’t, some charge, some don’t charge, it’s a mess.
Edit: different devices add even more to this confusion. My MacBook Pro M1 is refusing to work with a 4K USB-C monitor even when using a Thunderbolt 4 cable. LG is convinced that it should be working just fine.
If the above isn't true for your particular cable, it's either broken or what you're trying to do isn't specified by USB-C but rather some proprietary tech instead, in which case, blame your device vendor.
I am trying to keep up with these spec details for a cable that is often marketed as just USB-C... it feels like an unnecessary cognitive load.
How do we get back to that world?
Is this supposed to be new with version 2? Wikipedia lists 2x1 and 2x2 among other speeds for USB4.
USB4 v2.0 is a protocol.
Different things. No need to be this excited.