Hacker News new | past | comments | ask | show | jobs | submit login

What does the "4" in USB4 mean? When does it change? Why did it change fairly frequently until recently (with minor versions like 3.1), but then stop at 4?

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?




Like anything, they have major versions and minor versions. USB4 was a new major version because it added Thunderbolt. USB4 2.0 (should have been USB4.1 but whatever) adds some minor changes.


USB4 moved from a lane-switched architecture to a packet switched architecture.

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.


Do you know what the max PCIe bandwidth in practice is? I suppose I'm asking about both right now, the next two years, and the further future of USB4 v2.

In the past there have been some significant limits, like Intel's thunderbolt chips only getting 22Gbps of PCIe data on a 40Gbps link.


Good question. I haven't heard any future plans.

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.


The announcement said they're aligning with PCIe 4.0. If we assume that's 4 lanes then hopefully it should support 40-50 Gbps of tunneled PCIe traffic.


> but whatever

I think people are asking - what really is the 'whatever' behind this version scheme?


They 4 is meaningless and confusing. Which is why all version numbers are being dropped completely on labels and marketing. https://arstechnica.com/gadgets/2022/09/usb-if-says-goodbye-...


So, if the USB IF agree on that point, why isn't this spec just called "USB Specification v5.0"? Like when the Linux kernel dropped the 2.x/3.x and just started incrementing major versions with every major release?


It would more be USB 4.1 not 5.0 as it's mostly the same as USB 4.0.

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.


I didn't mean that it was 5 as in the successor to 4. The standard itself wouldn't be named/referred to as USB5; it'd be named/referred to as just "USB".

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".


The version number of USB always had been the specification, hence why you have e.g. "Gen2x2".

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.


The new name is "usb 80gbps". That's better than usb5.


It all makes sense once you understand that they are trying to confuse us as much as possible.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: