Comment by masklinn

4 years ago

Some of the entries seem incorrect: "USB 3.2 (USB 3.2 Gen 2x2) and "USB 4" (USB 4 USB4 Gen 2×2) should have the same nominal data rate of 2500MB/s, they're 2 lanes (x2) of 10GB/s. Though they are apparently coded differently electrically, so they're distinct protocols.

The tables would benefit from mentioning the coding (8/10 or 128/132) as IMO it's one of the most confusing bits when you see the effective data rates:

* USB 3.2 Gen 1x2 has a nominal data rate of 10G (2 lanes at 5G) with a raw throughput of 1GB/s (effective data rates topping out around 900MB/s)

* USB 3.2 Gen 2x1 has the same nominal data rate of 10G (1 lane at 10G) but a raw throughput of 1.2GB/s (and effective data rates topping out around 1.1GB/s)

The difference is that Gen 1x uses the "legacy" 8/10 encoding, while Gen 2x uses the newer 128/132 encoding, and thus has a much lower overhead (around 3%, versus 20).

Thank you for noticing these issues, I have updated the table.

I would be happy to improve it and add encoding. I am surprised by some of the summary entries on Wikipedia (https://en.wikipedia.org/wiki/USB4). Looks like USB4 "reverted" to 128b/132b. It is accurate?

  • 128b/132b is the more efficient coding. The closer to 1 the fraction is, the less coding overhead it has, and 128/132 is larger than 8/10.

    • Actually, I just noticed that 128/132 is the same fraction as 66/64 so both scheme has the same encoding efficiency. So USB-4 did no "revert in terms of efficiency.

      1 reply →

  • Fyi, last two columns in table 2 are a bit confusing: footnote c says "real life sequential speed", but then the last column title is "real life", so it's unclear what the difference is

He goes off the rails earlier than that, by saying that USB 2.0 is "also known as" Hi-speed. HS is only one data rate supported by the USB 2.0 standard; it incorporates both full speed from the earlier standard and low speed, which isn't mentioned at all.

  • That's more of an approximation matching how, frankly, most people think of the specs: yes USB 2.0 supersedes 1.1 entirely, but everyone will think of "full speed" and "low speed" as USB 1 which are BC supported by USB 2.0.

    That's also why USB 3.1 and 3.2's rebranding of previous versions is so confusing and a pain in the ass to keep straight: USB 3.2 1x1 is USB 3.1 Gen 1 is USB 3.0 (ignoring the USB 2.0 BC).

  • Right, per his chart "Full Speed" should be known as USB 1.1 Full Speed and USB 2.0 Full Speed.

Also should be:

12 Mbps -> 1.43 MiB/s -> 1.5 MB/s

480 Mbps -> 57 MiB/s -> 60 MB/s

5000 Mbps (5 Gbps) -> 596 MiB/s -> 625 MB/s

10000 Mbps (10 Gbps) -> 1192 MiB/s -> 1250 MB/s

20000 Mbps (20 Gbps) -> 2384 MiB/s -> 2500 MB/s

40000 Mbps (40 Gbps) -> 4768 MiB/s -> 5000 MB/s

  • No, some of your rates are wrong.

    The so-called 5 Gb/s USB has a data rate of 4 Gb/s.

    The marketing data rates for Ethernet are true, i.e. 1 Gb/s Ethernet has a 1 Gb/s data rate, but a 1.25 Gb/s encoded bit rate over the cable.

    The marketing data rates for the first 2 generations of PCIe, for all 3 generations of SATA, and for USB 3.0 a.k.a. "Gen 1" of later standards, are false, being advertised as larger with 25% (because 8 data bits are encoded into 10 bits sent over the wire, which does not matter for the user).

    All these misleading marketing data rates have been introduced by Intel, who did not follow the rules used in vendor-neutral standards, like Ethernet.

    So PCIe 1 is 2 Gb/s, PCIe 2 & USB 3.0 are 4 Gb/s and SATA 3 is 4.8 Gb/s.

    So USB "5 Gbps" => 500 MB/s (not 625 MB/s), and after accounting for protocols like "USB Attached SCSI Protocol", the maximum speed that one can see for an USB SSD on a "5 Gbps" port is between 400 MB/s and 450 MB/s.

    The same applies for a USB Type C with 2 x 5 Gb/s links.

    As other posters have already mentioned, USB 3.1 a.k.a. the "Gen 2" of later standards has introduced a more efficient encoding, so its speed is approximately 10 Gb/s.

    The "10 Gbps" USB is not twice faster than the "5 Gbps" USB, it is 2.5 times faster, and this is important to know.

    • I should add Nominal vs Raw vs Effective speed to the table.

      Can you confirm with the rule to be used.

      Raw Speed = Nominal / Encoding

      UMS Speed = Raw / UMS overhead

      In the case of 3.0 that would be:

      Nominal = 625 MiB/s

      Raw = 625 - 20% = 500 MiB/s

      UMS = 500 - 20% = 400 MiB/s

      2 replies →