20
\$\begingroup\$

This is a very ignorant question, as I am just getting into wiring diagrams and trying to understand them, but look at this picture of usb-C with usb 3.2:

enter image description here

With 2 high speed data paths, plus the old usb 2.0 data wires still there, how is this still considered a serial device? It seems like it's sending more than one stream of data simultaneously. Are the multiple data streams resolved on the software side?

\$\endgroup\$
7
  • 15
    \$\begingroup\$ It's multiple serial busses in one cable. The data doesn't have to arrive at the same time, like it does with a parallel bus. 5 busses, since the D pins in the middle are mirrored, and the CC and SBU wires aren't part of the actual bus \$\endgroup\$
    – user253751
    Nov 28, 2022 at 19:59
  • 5
    \$\begingroup\$ This is how many serial buses work. Not just USB, but also 1GBASE-T (gigabit ethernet over twisted pair) and all forms of PCIe work on this concept of running several independent serial buses in parallel to increase throughput. \$\endgroup\$
    – Hearth
    Nov 28, 2022 at 20:57
  • 2
    \$\begingroup\$ @user253751 I'd call that three busses, not 5. HS1 and HS2 use a dedicated differential pair for each direction, and the original USB2 bus has a single bidirectional differential pair. \$\endgroup\$
    – Alnitak
    Nov 29, 2022 at 13:35
  • 1
    \$\begingroup\$ @user253751 But 1000BASE-T doesn't meet your definition of data arriving at the same time... you're allowed 6.25 symbol periods of skew. \$\endgroup\$
    – user71659
    Nov 30, 2022 at 0:14
  • 1
    \$\begingroup\$ same to PCI-Express 1x, 2x, 4x, 8x, 16x, with the number of serial data buses multiplied \$\endgroup\$
    – phuclv
    Dec 1, 2022 at 1:56

8 Answers 8

25
\$\begingroup\$

It seems like it's sending more than one stream of data simultaneously.

Those are still serial data streams, just like in ≥gbit ethernet, etc. There can be multiple serial streams running in parallel to increase the bandwidth, but it's not parallel data transmission by any reasonable definition. The streams are individually equalized, clock recovery is done for each of them individually, etc. They are independent other than participating as transports for a higher level protocol that bonds them for a given application.

\$\endgroup\$
4
  • 11
    \$\begingroup\$ It's not parallel data transmission by the standard definition. It is parallel data transmission by the nonstandard, but hardly unreasonable, definition that multiple bits of information travel through the connection simultaneously. \$\endgroup\$ Nov 29, 2022 at 17:10
  • 12
    \$\begingroup\$ @leftaroundabout Yes, multiple bits of information do travel through the cable simultaneously — but they're unrelated bits, which is why they're not parallel. Technical terms do tend to have fairly precise meanings; if everyone used their own loose, general English definitions, confusion would reign and we'd never get anywhere! (And OP is clearly asking about the standard meaning.) \$\endgroup\$
    – gidds
    Nov 29, 2022 at 18:06
  • 9
    \$\begingroup\$ @gidds that's all fine, I just disagree that it isn't “reasonable” to think parallel means simply multiple-simultaneously. In particular because the perhaps more widely known parallel computing does have a far looser standard definition – unless you specifically say e.g. “SIMD parallelism”, it allows for asynchronous operation. \$\endgroup\$ Nov 29, 2022 at 18:12
  • \$\begingroup\$ @leftaroundabout: True. I think it might be better to just point out that there are still serial links involved, so the name didn't need to be changed. It's not a single parallel bus, but we can't deny that there's parallelism in general. \$\endgroup\$ Dec 1, 2022 at 5:53
18
\$\begingroup\$

It seems like it's sending more than one stream of data simultaneously.

It is, but they're all serial.

First off, not everything is active at once. USB2 uses D+/D-; The USB 3.0 and 3.1 modes use TX1+/TX1-/RX1+/RX1-, and the USB3.2 and USB4 "x2" modes use all four SuperSpeed pairs (two in each direction). We'll consider the last one, since it's the most parallel-looking.

If this was a parallel system, we would probably have one end supplying a clock/strobe, and on a given edge of that clock, all four lines would have to have valid bits on them, so we would move two bits in each direction on every clock.

But with USB that doesn't happen. Each pair is self-clocking (8b/10b, 64b/66b, or 128b/132b, depending on the version), and independently recovered on the receiving end. The RX and TX directions are independent of one another, and while the two lanes in each direction do have a timing relationship to one another (they carry alternating bytes of the same stream, basically), this is put back together a bit later in the process, which means it can stand more timing skew than if we were trying to line things up on a bit-by-bit basis.

So, yeah, it's complicated. But folks are telling the truth when they say it's more serial than parallel.

\$\endgroup\$
13
\$\begingroup\$

Traditional parallel interfaces, where all signals were timed off the same clock, suffered from "skew": signals arriving on different wires at different times. This made it difficult to continue increasing the speed of parallel interfaces, particularly those that operated over longer distances.

As a result, serial interfaces with clocking embedded in the data stream rose in popularity. Parallel printer ports gave way to USB, PATA gave way to SATA, SCSI gave way to SAS.

However there is a limit (which increases over time as technology improves) to how fast a serial interface can be with affordable transceivers and wiring. The solution to this are what are known as "multi-lane serial" interfaces. Each "lane" has its own timing, but the data streams are split at the source and merged back together at the destination.

Multi-lane techniques have allowed serial interfaces to not only compete in, but come to dominate the high speed world. A single lane of PCI express 1.0 could outperform regular PCI, but not the faster variants of PCI-X or AGP. On the other hand with 16 lanes PCI express could easily outperform PCI-X and AGP.


USB was originally designed to replace a bunch of PC peripheral interfaces, none of which were particularly fast. The priority was to be cheap; people wouldn't switch to USB devices if they were significantly more expensive than their traditional counterparts. A single half-duplex serial link was the order of the day. It got a speed bump with USB 2 to better support external storage.

With USB 3, the original design had run out of steam and the solution was essentially to put two entirely independent interfaces on the same connector: the original bidirectional low/full/high speed data pair and two new unidirectional data pairs to carry the "superspeed" traffic. USB 3.1 bumped up the data rate on the "superspeed" pairs.


USB C was created to be "one connector to rule them all"; in addition to supporting all the existing USB functionality, it was also designed to carry a variety of "alternate modes" including DisplayPort, HDMI and Thunderbolt. The connector was also designed to be reversible and to support delivery of substantial amounts of power. The alternate modes necessitated having four high performance data pairs. There were also two "sideband use" pins to support the alternate modes and two "configuration and control" pins, which are used to detect, negotiate alternate modes, and negotiate power delivery.


So it all comes together, USB C had four high-performance pairs (plus the legacy pair) but two of them weren't actually used in USB mode. Furthermore thanks to the reversibility, superspeed devices with USB C ports were required to have either multiple transceivers or signal switches to direct the superspeed signals to the correct pins depending on cable orientation. Multi-lane serial was a proven technology (PCIe had been in widespread use for over a decade). The natural thing to do was to add a two-lane mode to USB, doubling throughput at little extra cost.

\$\endgroup\$
1
  • \$\begingroup\$ Very detailed answer with a good history lesson, thank you sir \$\endgroup\$ Dec 1, 2022 at 19:27
8
\$\begingroup\$

USB3 uses high speed link to device and another high speed link from device. It may use one or two pairs per direction.

Yes, it is still serial, as data is not sent in parallel. PCIe x16 is also still serial link, even if it uses 16 data lanes in parallel for transmission and another 16 data lanes for reception.

The other data pins are for backward USB2 compatibility, CC pins for cable flip and device presence detection, etc.

In alternate mode it supports also DisplayPort video, which uses the SBU pins.

\$\endgroup\$
1
  • 3
    \$\begingroup\$ Note also that for example the TX1+/- is only a single "lane" of data transfer since it's a differential signal and takes two wires to transfer data. \$\endgroup\$
    – vir
    Nov 28, 2022 at 19:28
3
\$\begingroup\$

USB Type C / USB 3.2 is not 'single-wire' serial, instead being composed of multiple serial links, plus sideband and power.

For being ‘serial’ it nevertheless uses a lot of wires.

Why? Several reasons:

  • legacy compatibility
  • flip-over compatibility
  • simple-ish power delivery
  • optimal PHY implementation (SuperSpeed pairs don't need to also support 3.3V LS/HS modes)
  • multi-standard support (e.g,. PCIe, DisplayPort and other modes on the SS pairs)
  • additional SS pairs (TX2/RX2) for higher speed

However, like you, I feel that USB Type C it is a bit of a mess. With so many modes and cable variants to choose from it's a challenge to get the right combo. It suffers from classic feature-creep. Maybe down the road it will drop the legacy USB pairs and only support SuperSpeed (this is allowed for devices already.)

Nonetheless it has the might of Intel to push it along, and in furtherance of that goal they've placed the standard in the open to promote its adoption, as they have all the other USB standards before it. And despite being so complex, the USB type C connector has proven robust - even more so than micro-USB or Apple’s Lightning.

A downside to its aspirations to be, well, universal, USB Type C pin count and the complex software stack it brings with it make USB a poor choice for high-reliability and long-cable applications (not to mention extreme low cost.) There are more-specialized standards that do it better over fewer wires.

\$\endgroup\$
5
  • \$\begingroup\$ I can't see dropping the "legacy" pairs happening any time soon. Keyboards and Mice are still very much part of USB's bread and butter and they need to remain cheap. \$\endgroup\$ Nov 30, 2022 at 11:50
  • \$\begingroup\$ Yeah Bluetooth keyboards and mice exist, but I'm confident far more USB keyboards and mice are shipped (generally bundled with PCs) than bluetooth ones. I guess it's not impossible that USB could "bifrucate" with USB C stuff dropping support for low/full/high speed while USB A keeps it but I think even that is unlikely. \$\endgroup\$ Nov 30, 2022 at 15:25
  • \$\begingroup\$ … both of which can be connected wirelessly to the host. \$\endgroup\$ Nov 30, 2022 at 15:27
  • 1
    \$\begingroup\$ Personally I have always experienced a bit of input lag from bluetooth devices, which drives me insane. Maybe this has been remedied in the past few years but I'd rather use wired for kb / ms \$\endgroup\$ Dec 1, 2022 at 19:29
  • \$\begingroup\$ @justdoingmyjob Nope, bluetooth keyboards and mice still have unusably high latency in 2022. Wireless mice with acceptable latency such as Logitech's LIGHTSPEED series exist, but most people aren't aware of them \$\endgroup\$
    – Navin
    Dec 21, 2022 at 23:07
3
\$\begingroup\$

In the world of computing, parallel means "two or more things are done (more or less) at the same time". Even when processes run one at a time, controlled by a preemptive scheduler, overall they are called to be run "in parallel".

The situation is similar with USB. The difference discussed is:

parallel synchronous transmission of bits (e.g., the classic parallel port)

versus

parallel transmission of serial streams of bits - asynchronous at electrical level, but (mostly?) synchronous at higher levels (from the user's POV)

Also please note that when the data streams flow in opposite directions, we change the discussion from "parallel or not" to "bi-directional or not" (even though bi-directionality is also a form of parallelism - it avoids time multiplexing).

\$\endgroup\$
2
\$\begingroup\$

Usually any transmission line with a interface less than the whole data bus (or word size) is considered serial. Actually, If all bits don't go all at once, then it is considered serial. QSPI for example, has 4 serial lines while the the data bus or word size of that peripheral or chip could be 8bits; It is the maximum number of data lines on an 8bit system that is not considered parallel. The same applies for the USB.

\$\endgroup\$
1
\$\begingroup\$

A very important thing that people don't understand (and was missed in the rest of the responses): USB "C" is a cable, USB 3.0 is a Standard which includes cables, and different transmission systems, such as conventional and High Speed USB.

So the USB 3.x specification defines a USB-C cable, which can carry multiple different types of (serialized) protocols such as Conventional USB, USB SuperSpeed, HDMI, PCI and others. (But not all at the same time...)

\$\endgroup\$
2
  • 1
    \$\begingroup\$ USB Type-C isn't merely a cable, but a connection standard. It includes a cable, connectors, but also protocols for negotiating what goes over the cable, adaptations of other protocols (DisplayPort, HDMI, MHL, USB 3.0), host software standards (Billboard, UCSI), a related charging protocol (USB-PD), etc. USB Type-C is not a subset of USB 3.x, but its own specification that refers to other specifications like USB 3.x and DisplayPort. \$\endgroup\$
    – user71659
    Nov 30, 2022 at 21:08
  • 1
    \$\begingroup\$ As far as I know, USB 3.2 version 2x2 is ONLY available on USB-C (not so with 3.1) so that particular case might be different. But that's an important distinction, thank you. \$\endgroup\$ Dec 1, 2022 at 19:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.