Why does USB only use 2 lines for RX, TX instead of multiple data lines? [duplicate]





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







13












$begingroup$



This question already has an answer here:




  • Why is digital serial transmission used everywhere? i.e. SATA, PCIe, USB

    8 answers




Wouldn't it be faster if there were multiple data lines (say 8) to transmit/receive data (say sequential bytes) instead of using a single line to transmit sequential bits?










share|improve this question











$endgroup$



marked as duplicate by Dwayne Reid, RoyC, Nick Alexeev Nov 17 '18 at 17:07


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 3




    $begingroup$
    It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
    $endgroup$
    – JRE
    Nov 16 '18 at 12:20






  • 5




    $begingroup$
    dupe : Why is digital serial transmission used everywhere?
    $endgroup$
    – J...
    Nov 16 '18 at 15:02






  • 1




    $begingroup$
    That's how USB type C is set up. With multiple data lines.
    $endgroup$
    – ratchet freak
    Nov 16 '18 at 16:44






  • 1




    $begingroup$
    @ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
    $endgroup$
    – Neinstein
    Nov 16 '18 at 17:28






  • 1




    $begingroup$
    I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
    $endgroup$
    – Jay Kominek
    Nov 16 '18 at 23:49




















13












$begingroup$



This question already has an answer here:




  • Why is digital serial transmission used everywhere? i.e. SATA, PCIe, USB

    8 answers




Wouldn't it be faster if there were multiple data lines (say 8) to transmit/receive data (say sequential bytes) instead of using a single line to transmit sequential bits?










share|improve this question











$endgroup$



marked as duplicate by Dwayne Reid, RoyC, Nick Alexeev Nov 17 '18 at 17:07


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 3




    $begingroup$
    It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
    $endgroup$
    – JRE
    Nov 16 '18 at 12:20






  • 5




    $begingroup$
    dupe : Why is digital serial transmission used everywhere?
    $endgroup$
    – J...
    Nov 16 '18 at 15:02






  • 1




    $begingroup$
    That's how USB type C is set up. With multiple data lines.
    $endgroup$
    – ratchet freak
    Nov 16 '18 at 16:44






  • 1




    $begingroup$
    @ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
    $endgroup$
    – Neinstein
    Nov 16 '18 at 17:28






  • 1




    $begingroup$
    I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
    $endgroup$
    – Jay Kominek
    Nov 16 '18 at 23:49
















13












13








13


3



$begingroup$



This question already has an answer here:




  • Why is digital serial transmission used everywhere? i.e. SATA, PCIe, USB

    8 answers




Wouldn't it be faster if there were multiple data lines (say 8) to transmit/receive data (say sequential bytes) instead of using a single line to transmit sequential bits?










share|improve this question











$endgroup$





This question already has an answer here:




  • Why is digital serial transmission used everywhere? i.e. SATA, PCIe, USB

    8 answers




Wouldn't it be faster if there were multiple data lines (say 8) to transmit/receive data (say sequential bytes) instead of using a single line to transmit sequential bits?





This question already has an answer here:




  • Why is digital serial transmission used everywhere? i.e. SATA, PCIe, USB

    8 answers








usb






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 '18 at 7:00









Boann

172118




172118










asked Nov 16 '18 at 12:14









UpsideDownTreeUpsideDownTree

7716




7716




marked as duplicate by Dwayne Reid, RoyC, Nick Alexeev Nov 17 '18 at 17:07


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by Dwayne Reid, RoyC, Nick Alexeev Nov 17 '18 at 17:07


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.










  • 3




    $begingroup$
    It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
    $endgroup$
    – JRE
    Nov 16 '18 at 12:20






  • 5




    $begingroup$
    dupe : Why is digital serial transmission used everywhere?
    $endgroup$
    – J...
    Nov 16 '18 at 15:02






  • 1




    $begingroup$
    That's how USB type C is set up. With multiple data lines.
    $endgroup$
    – ratchet freak
    Nov 16 '18 at 16:44






  • 1




    $begingroup$
    @ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
    $endgroup$
    – Neinstein
    Nov 16 '18 at 17:28






  • 1




    $begingroup$
    I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
    $endgroup$
    – Jay Kominek
    Nov 16 '18 at 23:49
















  • 3




    $begingroup$
    It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
    $endgroup$
    – JRE
    Nov 16 '18 at 12:20






  • 5




    $begingroup$
    dupe : Why is digital serial transmission used everywhere?
    $endgroup$
    – J...
    Nov 16 '18 at 15:02






  • 1




    $begingroup$
    That's how USB type C is set up. With multiple data lines.
    $endgroup$
    – ratchet freak
    Nov 16 '18 at 16:44






  • 1




    $begingroup$
    @ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
    $endgroup$
    – Neinstein
    Nov 16 '18 at 17:28






  • 1




    $begingroup$
    I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
    $endgroup$
    – Jay Kominek
    Nov 16 '18 at 23:49










3




3




$begingroup$
It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
$endgroup$
– JRE
Nov 16 '18 at 12:20




$begingroup$
It would be far more difficult to make it run at high speeds using multiple wires. There's a good reason behind it, but writing an answer that explains why would take too long - and I'm probably not the best person to explain it.
$endgroup$
– JRE
Nov 16 '18 at 12:20




5




5




$begingroup$
dupe : Why is digital serial transmission used everywhere?
$endgroup$
– J...
Nov 16 '18 at 15:02




$begingroup$
dupe : Why is digital serial transmission used everywhere?
$endgroup$
– J...
Nov 16 '18 at 15:02




1




1




$begingroup$
That's how USB type C is set up. With multiple data lines.
$endgroup$
– ratchet freak
Nov 16 '18 at 16:44




$begingroup$
That's how USB type C is set up. With multiple data lines.
$endgroup$
– ratchet freak
Nov 16 '18 at 16:44




1




1




$begingroup$
@ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
$endgroup$
– Neinstein
Nov 16 '18 at 17:28




$begingroup$
@ratchetfreak I believe you don't even have to go that far, USB 3.0 has 4 data lines instead of 2.
$endgroup$
– Neinstein
Nov 16 '18 at 17:28




1




1




$begingroup$
I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
$endgroup$
– Jay Kominek
Nov 16 '18 at 23:49






$begingroup$
I feel like a lot of these responses are responding as though USB has 1 transmit wire, and 1 receive wire, when instead it has a single differential pair. Both sides both transmit and receive are on that differential pair. That distinguishes it from at least SATA.
$endgroup$
– Jay Kominek
Nov 16 '18 at 23:49












5 Answers
5






active

oldest

votes


















33












$begingroup$

It would be faster indeed if instead of one line you'd feed multiple lines at the same symbol clock.



But, USB's primary and foremost goal is to provide easy, serial (hence the S in USB) interfacing between low-cost devices (hence the U in USB) with low-cost, lightweight cabling.



So, that's why USB doesn't do parallel data lines: It's simply not the niche it's supposed to fill.



Also, don't neglect that having multiple high-speed parallel lanes requires the transceiver system to introduce a relative high amount of effort to compensate different skews on different lines, which at high rates are inevitable.



It's often become cheaper to make something work twice as fast than building two of the slower variant, unless you're really directly talking to hardware that is in its raw principle bit-parallel (e.g. DDR memory chips).






share|improve this answer











$endgroup$













  • $begingroup$
    Could you explain how U in USB is related to "low cost devices"?
    $endgroup$
    – gnasher729
    Nov 17 '18 at 15:33










  • $begingroup$
    USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
    $endgroup$
    – Marcus Müller
    Nov 17 '18 at 15:34



















14












$begingroup$

One of the main hurdles with any type of parallel bus is skew. If you have 8 separate wires all carrying data, it is important that all of the bits arrive at the approximately the same time. Otherwise, the bits of Byte A could get mixed up with the bits of Byte B. This means that the length of those parallel wires must be matched, within some percentage of the clock speed, so that the travel time of the signal down the wire is approximately the same. The faster the clock speed, the tighter the tolerance on the length between parallel wires.



On a PCB design for something like a motherboard, very tight design constraints are commonplace. PCB traces can achieve 1 mil or better length matching, which is good enough to implement high speed parallel interfaces. One common example of this is the DDR memory interface. This interface relies on parallel communication to move data at very high rates, but it's only possible to (affordably) implement these interfaces internally.



Imagine trying to build an external computer cable with 30+ wire connections, all length matched within a thousandth of an inch! Those cables would be very expensive compared to USB cabling.



Older computers did use a Parallel Port, which had 8 data lines but could only achieve a data rate of around 2.5 MB/s. Compare that to the 60 MB/s of USB 2.0, let alone the newer flavors of USB.






share|improve this answer











$endgroup$









  • 1




    $begingroup$
    You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
    $endgroup$
    – Marcus Müller
    Nov 16 '18 at 14:28






  • 6




    $begingroup$
    PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
    $endgroup$
    – Jörg W Mittag
    Nov 16 '18 at 14:52












  • $begingroup$
    good catch, updated
    $endgroup$
    – Chris Fernandez
    Nov 16 '18 at 14:55






  • 3




    $begingroup$
    electronics.stackexchange.com/a/393469/87770
    $endgroup$
    – Jörg W Mittag
    Nov 16 '18 at 14:56



















13












$begingroup$

While the answer of Marcus is 100% correct, I want to add that USB 3.2 Gen 1x2 and Gen 2x2 are using two data lanes in each direction while the lanes still run at 5Gbit/s resp. 10Gbit/s each.






share|improve this answer









$endgroup$





















    10












    $begingroup$

    USB doesn't have Rx & Tx lines. It has one pair of differential lines, similar to RS485, with the data & clock signal encoded together. The sender sends data one way using both wires, and the receiver sends data back the other way using both lines.



    Otherwise, yes, a parallel bus of signals can be very fast. Best for short distances for the reasons mentioned already.



    Example of a USB data transfer:



    enter image description here






    share|improve this answer











    $endgroup$





















      2












      $begingroup$

      As pointed out in other answers,




      • You are right, If you use twice as many lanes, you get twice the speed.

      • Earlier, parallel busses (with many data lanes) were widespread. Examples are the parallel printer interface, PATA, and PCI. But it is hard to build fast parallel busses because differences in the lengths of individual wires will cause timing differences. Parallel busses are still in widespread use on PCBs (DRAM, QSPI, GMII, ...) and on chips (AXI, AHB, QPI, ...), but for longer distances, it is actually much cheaper to build a high-speed serial link than a lower-speed parallel link with the same data throughput. Modern super-high-speed, longer-distance data links such as Gigabit Ethernet, PCIe and USB3 do have multiple data lanes, but each of those lanes is a completely independent high-speed serial link; the data streams from the individual links are combined back together at a later point. This is why you can put a PCIe x16 graphics card into a PCIe x1 slot with a fitting adapter (or sufficient violence).

      • Parallel busses have more wires (duh), so cable will be thicker and heavier and more expensive, and the connector as well.


      Historically, when USB was designed, high-speed data transfer was not its main focus. The main focus was to create a universal and cheap bus system for connecting peripherals like keyboards, mouses and printers.
      A parallel design would have been a bad choice; it would have ruined the revolutionary small connector size and probably increased the cost of USB enough to prevent its widespread adaption.






      share|improve this answer









      $endgroup$




















        5 Answers
        5






        active

        oldest

        votes








        5 Answers
        5






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        33












        $begingroup$

        It would be faster indeed if instead of one line you'd feed multiple lines at the same symbol clock.



        But, USB's primary and foremost goal is to provide easy, serial (hence the S in USB) interfacing between low-cost devices (hence the U in USB) with low-cost, lightweight cabling.



        So, that's why USB doesn't do parallel data lines: It's simply not the niche it's supposed to fill.



        Also, don't neglect that having multiple high-speed parallel lanes requires the transceiver system to introduce a relative high amount of effort to compensate different skews on different lines, which at high rates are inevitable.



        It's often become cheaper to make something work twice as fast than building two of the slower variant, unless you're really directly talking to hardware that is in its raw principle bit-parallel (e.g. DDR memory chips).






        share|improve this answer











        $endgroup$













        • $begingroup$
          Could you explain how U in USB is related to "low cost devices"?
          $endgroup$
          – gnasher729
          Nov 17 '18 at 15:33










        • $begingroup$
          USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
          $endgroup$
          – Marcus Müller
          Nov 17 '18 at 15:34
















        33












        $begingroup$

        It would be faster indeed if instead of one line you'd feed multiple lines at the same symbol clock.



        But, USB's primary and foremost goal is to provide easy, serial (hence the S in USB) interfacing between low-cost devices (hence the U in USB) with low-cost, lightweight cabling.



        So, that's why USB doesn't do parallel data lines: It's simply not the niche it's supposed to fill.



        Also, don't neglect that having multiple high-speed parallel lanes requires the transceiver system to introduce a relative high amount of effort to compensate different skews on different lines, which at high rates are inevitable.



        It's often become cheaper to make something work twice as fast than building two of the slower variant, unless you're really directly talking to hardware that is in its raw principle bit-parallel (e.g. DDR memory chips).






        share|improve this answer











        $endgroup$













        • $begingroup$
          Could you explain how U in USB is related to "low cost devices"?
          $endgroup$
          – gnasher729
          Nov 17 '18 at 15:33










        • $begingroup$
          USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
          $endgroup$
          – Marcus Müller
          Nov 17 '18 at 15:34














        33












        33








        33





        $begingroup$

        It would be faster indeed if instead of one line you'd feed multiple lines at the same symbol clock.



        But, USB's primary and foremost goal is to provide easy, serial (hence the S in USB) interfacing between low-cost devices (hence the U in USB) with low-cost, lightweight cabling.



        So, that's why USB doesn't do parallel data lines: It's simply not the niche it's supposed to fill.



        Also, don't neglect that having multiple high-speed parallel lanes requires the transceiver system to introduce a relative high amount of effort to compensate different skews on different lines, which at high rates are inevitable.



        It's often become cheaper to make something work twice as fast than building two of the slower variant, unless you're really directly talking to hardware that is in its raw principle bit-parallel (e.g. DDR memory chips).






        share|improve this answer











        $endgroup$



        It would be faster indeed if instead of one line you'd feed multiple lines at the same symbol clock.



        But, USB's primary and foremost goal is to provide easy, serial (hence the S in USB) interfacing between low-cost devices (hence the U in USB) with low-cost, lightweight cabling.



        So, that's why USB doesn't do parallel data lines: It's simply not the niche it's supposed to fill.



        Also, don't neglect that having multiple high-speed parallel lanes requires the transceiver system to introduce a relative high amount of effort to compensate different skews on different lines, which at high rates are inevitable.



        It's often become cheaper to make something work twice as fast than building two of the slower variant, unless you're really directly talking to hardware that is in its raw principle bit-parallel (e.g. DDR memory chips).







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 16 '18 at 12:25

























        answered Nov 16 '18 at 12:20









        Marcus MüllerMarcus Müller

        35.2k362101




        35.2k362101












        • $begingroup$
          Could you explain how U in USB is related to "low cost devices"?
          $endgroup$
          – gnasher729
          Nov 17 '18 at 15:33










        • $begingroup$
          USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
          $endgroup$
          – Marcus Müller
          Nov 17 '18 at 15:34


















        • $begingroup$
          Could you explain how U in USB is related to "low cost devices"?
          $endgroup$
          – gnasher729
          Nov 17 '18 at 15:33










        • $begingroup$
          USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
          $endgroup$
          – Marcus Müller
          Nov 17 '18 at 15:34
















        $begingroup$
        Could you explain how U in USB is related to "low cost devices"?
        $endgroup$
        – gnasher729
        Nov 17 '18 at 15:33




        $begingroup$
        Could you explain how U in USB is related to "low cost devices"?
        $endgroup$
        – gnasher729
        Nov 17 '18 at 15:33












        $begingroup$
        USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
        $endgroup$
        – Marcus Müller
        Nov 17 '18 at 15:34




        $begingroup$
        USB =**universal** serial bus. With "universal" was meant that it was designed to be the low-cost bus for all kind of low-cost computer peripherals.
        $endgroup$
        – Marcus Müller
        Nov 17 '18 at 15:34













        14












        $begingroup$

        One of the main hurdles with any type of parallel bus is skew. If you have 8 separate wires all carrying data, it is important that all of the bits arrive at the approximately the same time. Otherwise, the bits of Byte A could get mixed up with the bits of Byte B. This means that the length of those parallel wires must be matched, within some percentage of the clock speed, so that the travel time of the signal down the wire is approximately the same. The faster the clock speed, the tighter the tolerance on the length between parallel wires.



        On a PCB design for something like a motherboard, very tight design constraints are commonplace. PCB traces can achieve 1 mil or better length matching, which is good enough to implement high speed parallel interfaces. One common example of this is the DDR memory interface. This interface relies on parallel communication to move data at very high rates, but it's only possible to (affordably) implement these interfaces internally.



        Imagine trying to build an external computer cable with 30+ wire connections, all length matched within a thousandth of an inch! Those cables would be very expensive compared to USB cabling.



        Older computers did use a Parallel Port, which had 8 data lines but could only achieve a data rate of around 2.5 MB/s. Compare that to the 60 MB/s of USB 2.0, let alone the newer flavors of USB.






        share|improve this answer











        $endgroup$









        • 1




          $begingroup$
          You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
          $endgroup$
          – Marcus Müller
          Nov 16 '18 at 14:28






        • 6




          $begingroup$
          PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:52












        • $begingroup$
          good catch, updated
          $endgroup$
          – Chris Fernandez
          Nov 16 '18 at 14:55






        • 3




          $begingroup$
          electronics.stackexchange.com/a/393469/87770
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:56
















        14












        $begingroup$

        One of the main hurdles with any type of parallel bus is skew. If you have 8 separate wires all carrying data, it is important that all of the bits arrive at the approximately the same time. Otherwise, the bits of Byte A could get mixed up with the bits of Byte B. This means that the length of those parallel wires must be matched, within some percentage of the clock speed, so that the travel time of the signal down the wire is approximately the same. The faster the clock speed, the tighter the tolerance on the length between parallel wires.



        On a PCB design for something like a motherboard, very tight design constraints are commonplace. PCB traces can achieve 1 mil or better length matching, which is good enough to implement high speed parallel interfaces. One common example of this is the DDR memory interface. This interface relies on parallel communication to move data at very high rates, but it's only possible to (affordably) implement these interfaces internally.



        Imagine trying to build an external computer cable with 30+ wire connections, all length matched within a thousandth of an inch! Those cables would be very expensive compared to USB cabling.



        Older computers did use a Parallel Port, which had 8 data lines but could only achieve a data rate of around 2.5 MB/s. Compare that to the 60 MB/s of USB 2.0, let alone the newer flavors of USB.






        share|improve this answer











        $endgroup$









        • 1




          $begingroup$
          You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
          $endgroup$
          – Marcus Müller
          Nov 16 '18 at 14:28






        • 6




          $begingroup$
          PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:52












        • $begingroup$
          good catch, updated
          $endgroup$
          – Chris Fernandez
          Nov 16 '18 at 14:55






        • 3




          $begingroup$
          electronics.stackexchange.com/a/393469/87770
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:56














        14












        14








        14





        $begingroup$

        One of the main hurdles with any type of parallel bus is skew. If you have 8 separate wires all carrying data, it is important that all of the bits arrive at the approximately the same time. Otherwise, the bits of Byte A could get mixed up with the bits of Byte B. This means that the length of those parallel wires must be matched, within some percentage of the clock speed, so that the travel time of the signal down the wire is approximately the same. The faster the clock speed, the tighter the tolerance on the length between parallel wires.



        On a PCB design for something like a motherboard, very tight design constraints are commonplace. PCB traces can achieve 1 mil or better length matching, which is good enough to implement high speed parallel interfaces. One common example of this is the DDR memory interface. This interface relies on parallel communication to move data at very high rates, but it's only possible to (affordably) implement these interfaces internally.



        Imagine trying to build an external computer cable with 30+ wire connections, all length matched within a thousandth of an inch! Those cables would be very expensive compared to USB cabling.



        Older computers did use a Parallel Port, which had 8 data lines but could only achieve a data rate of around 2.5 MB/s. Compare that to the 60 MB/s of USB 2.0, let alone the newer flavors of USB.






        share|improve this answer











        $endgroup$



        One of the main hurdles with any type of parallel bus is skew. If you have 8 separate wires all carrying data, it is important that all of the bits arrive at the approximately the same time. Otherwise, the bits of Byte A could get mixed up with the bits of Byte B. This means that the length of those parallel wires must be matched, within some percentage of the clock speed, so that the travel time of the signal down the wire is approximately the same. The faster the clock speed, the tighter the tolerance on the length between parallel wires.



        On a PCB design for something like a motherboard, very tight design constraints are commonplace. PCB traces can achieve 1 mil or better length matching, which is good enough to implement high speed parallel interfaces. One common example of this is the DDR memory interface. This interface relies on parallel communication to move data at very high rates, but it's only possible to (affordably) implement these interfaces internally.



        Imagine trying to build an external computer cable with 30+ wire connections, all length matched within a thousandth of an inch! Those cables would be very expensive compared to USB cabling.



        Older computers did use a Parallel Port, which had 8 data lines but could only achieve a data rate of around 2.5 MB/s. Compare that to the 60 MB/s of USB 2.0, let alone the newer flavors of USB.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 16 '18 at 14:54

























        answered Nov 16 '18 at 14:24









        Chris FernandezChris Fernandez

        555319




        555319








        • 1




          $begingroup$
          You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
          $endgroup$
          – Marcus Müller
          Nov 16 '18 at 14:28






        • 6




          $begingroup$
          PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:52












        • $begingroup$
          good catch, updated
          $endgroup$
          – Chris Fernandez
          Nov 16 '18 at 14:55






        • 3




          $begingroup$
          electronics.stackexchange.com/a/393469/87770
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:56














        • 1




          $begingroup$
          You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
          $endgroup$
          – Marcus Müller
          Nov 16 '18 at 14:28






        • 6




          $begingroup$
          PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:52












        • $begingroup$
          good catch, updated
          $endgroup$
          – Chris Fernandez
          Nov 16 '18 at 14:55






        • 3




          $begingroup$
          electronics.stackexchange.com/a/393469/87770
          $endgroup$
          – Jörg W Mittag
          Nov 16 '18 at 14:56








        1




        1




        $begingroup$
        You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
        $endgroup$
        – Marcus Müller
        Nov 16 '18 at 14:28




        $begingroup$
        You can actually work around that with link training over multiple lanes, and it is done even on typically PCB-bound links like PCIe – but it really only pays to do that if you save yourself a lot of trouble by going through that amount of trouble.
        $endgroup$
        – Marcus Müller
        Nov 16 '18 at 14:28




        6




        6




        $begingroup$
        PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
        $endgroup$
        – Jörg W Mittag
        Nov 16 '18 at 14:52






        $begingroup$
        PCIe is actually a serial connection which only uses one differential pair of lines for Rx and another pair for Tx. The multiple PCIe lanes are not parallel signal lines. They only need synchronization based on the frames transmitted on it, not the digital signals. There was a discussion about this question on Electrical Engineering a couple of weeks ago.
        $endgroup$
        – Jörg W Mittag
        Nov 16 '18 at 14:52














        $begingroup$
        good catch, updated
        $endgroup$
        – Chris Fernandez
        Nov 16 '18 at 14:55




        $begingroup$
        good catch, updated
        $endgroup$
        – Chris Fernandez
        Nov 16 '18 at 14:55




        3




        3




        $begingroup$
        electronics.stackexchange.com/a/393469/87770
        $endgroup$
        – Jörg W Mittag
        Nov 16 '18 at 14:56




        $begingroup$
        electronics.stackexchange.com/a/393469/87770
        $endgroup$
        – Jörg W Mittag
        Nov 16 '18 at 14:56











        13












        $begingroup$

        While the answer of Marcus is 100% correct, I want to add that USB 3.2 Gen 1x2 and Gen 2x2 are using two data lanes in each direction while the lanes still run at 5Gbit/s resp. 10Gbit/s each.






        share|improve this answer









        $endgroup$


















          13












          $begingroup$

          While the answer of Marcus is 100% correct, I want to add that USB 3.2 Gen 1x2 and Gen 2x2 are using two data lanes in each direction while the lanes still run at 5Gbit/s resp. 10Gbit/s each.






          share|improve this answer









          $endgroup$
















            13












            13








            13





            $begingroup$

            While the answer of Marcus is 100% correct, I want to add that USB 3.2 Gen 1x2 and Gen 2x2 are using two data lanes in each direction while the lanes still run at 5Gbit/s resp. 10Gbit/s each.






            share|improve this answer









            $endgroup$



            While the answer of Marcus is 100% correct, I want to add that USB 3.2 Gen 1x2 and Gen 2x2 are using two data lanes in each direction while the lanes still run at 5Gbit/s resp. 10Gbit/s each.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 16 '18 at 12:26









            Manu3l0usManu3l0us

            1,239919




            1,239919























                10












                $begingroup$

                USB doesn't have Rx & Tx lines. It has one pair of differential lines, similar to RS485, with the data & clock signal encoded together. The sender sends data one way using both wires, and the receiver sends data back the other way using both lines.



                Otherwise, yes, a parallel bus of signals can be very fast. Best for short distances for the reasons mentioned already.



                Example of a USB data transfer:



                enter image description here






                share|improve this answer











                $endgroup$


















                  10












                  $begingroup$

                  USB doesn't have Rx & Tx lines. It has one pair of differential lines, similar to RS485, with the data & clock signal encoded together. The sender sends data one way using both wires, and the receiver sends data back the other way using both lines.



                  Otherwise, yes, a parallel bus of signals can be very fast. Best for short distances for the reasons mentioned already.



                  Example of a USB data transfer:



                  enter image description here






                  share|improve this answer











                  $endgroup$
















                    10












                    10








                    10





                    $begingroup$

                    USB doesn't have Rx & Tx lines. It has one pair of differential lines, similar to RS485, with the data & clock signal encoded together. The sender sends data one way using both wires, and the receiver sends data back the other way using both lines.



                    Otherwise, yes, a parallel bus of signals can be very fast. Best for short distances for the reasons mentioned already.



                    Example of a USB data transfer:



                    enter image description here






                    share|improve this answer











                    $endgroup$



                    USB doesn't have Rx & Tx lines. It has one pair of differential lines, similar to RS485, with the data & clock signal encoded together. The sender sends data one way using both wires, and the receiver sends data back the other way using both lines.



                    Otherwise, yes, a parallel bus of signals can be very fast. Best for short distances for the reasons mentioned already.



                    Example of a USB data transfer:



                    enter image description here







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Nov 16 '18 at 15:57

























                    answered Nov 16 '18 at 15:52









                    CrossRoadsCrossRoads

                    2,12728




                    2,12728























                        2












                        $begingroup$

                        As pointed out in other answers,




                        • You are right, If you use twice as many lanes, you get twice the speed.

                        • Earlier, parallel busses (with many data lanes) were widespread. Examples are the parallel printer interface, PATA, and PCI. But it is hard to build fast parallel busses because differences in the lengths of individual wires will cause timing differences. Parallel busses are still in widespread use on PCBs (DRAM, QSPI, GMII, ...) and on chips (AXI, AHB, QPI, ...), but for longer distances, it is actually much cheaper to build a high-speed serial link than a lower-speed parallel link with the same data throughput. Modern super-high-speed, longer-distance data links such as Gigabit Ethernet, PCIe and USB3 do have multiple data lanes, but each of those lanes is a completely independent high-speed serial link; the data streams from the individual links are combined back together at a later point. This is why you can put a PCIe x16 graphics card into a PCIe x1 slot with a fitting adapter (or sufficient violence).

                        • Parallel busses have more wires (duh), so cable will be thicker and heavier and more expensive, and the connector as well.


                        Historically, when USB was designed, high-speed data transfer was not its main focus. The main focus was to create a universal and cheap bus system for connecting peripherals like keyboards, mouses and printers.
                        A parallel design would have been a bad choice; it would have ruined the revolutionary small connector size and probably increased the cost of USB enough to prevent its widespread adaption.






                        share|improve this answer









                        $endgroup$


















                          2












                          $begingroup$

                          As pointed out in other answers,




                          • You are right, If you use twice as many lanes, you get twice the speed.

                          • Earlier, parallel busses (with many data lanes) were widespread. Examples are the parallel printer interface, PATA, and PCI. But it is hard to build fast parallel busses because differences in the lengths of individual wires will cause timing differences. Parallel busses are still in widespread use on PCBs (DRAM, QSPI, GMII, ...) and on chips (AXI, AHB, QPI, ...), but for longer distances, it is actually much cheaper to build a high-speed serial link than a lower-speed parallel link with the same data throughput. Modern super-high-speed, longer-distance data links such as Gigabit Ethernet, PCIe and USB3 do have multiple data lanes, but each of those lanes is a completely independent high-speed serial link; the data streams from the individual links are combined back together at a later point. This is why you can put a PCIe x16 graphics card into a PCIe x1 slot with a fitting adapter (or sufficient violence).

                          • Parallel busses have more wires (duh), so cable will be thicker and heavier and more expensive, and the connector as well.


                          Historically, when USB was designed, high-speed data transfer was not its main focus. The main focus was to create a universal and cheap bus system for connecting peripherals like keyboards, mouses and printers.
                          A parallel design would have been a bad choice; it would have ruined the revolutionary small connector size and probably increased the cost of USB enough to prevent its widespread adaption.






                          share|improve this answer









                          $endgroup$
















                            2












                            2








                            2





                            $begingroup$

                            As pointed out in other answers,




                            • You are right, If you use twice as many lanes, you get twice the speed.

                            • Earlier, parallel busses (with many data lanes) were widespread. Examples are the parallel printer interface, PATA, and PCI. But it is hard to build fast parallel busses because differences in the lengths of individual wires will cause timing differences. Parallel busses are still in widespread use on PCBs (DRAM, QSPI, GMII, ...) and on chips (AXI, AHB, QPI, ...), but for longer distances, it is actually much cheaper to build a high-speed serial link than a lower-speed parallel link with the same data throughput. Modern super-high-speed, longer-distance data links such as Gigabit Ethernet, PCIe and USB3 do have multiple data lanes, but each of those lanes is a completely independent high-speed serial link; the data streams from the individual links are combined back together at a later point. This is why you can put a PCIe x16 graphics card into a PCIe x1 slot with a fitting adapter (or sufficient violence).

                            • Parallel busses have more wires (duh), so cable will be thicker and heavier and more expensive, and the connector as well.


                            Historically, when USB was designed, high-speed data transfer was not its main focus. The main focus was to create a universal and cheap bus system for connecting peripherals like keyboards, mouses and printers.
                            A parallel design would have been a bad choice; it would have ruined the revolutionary small connector size and probably increased the cost of USB enough to prevent its widespread adaption.






                            share|improve this answer









                            $endgroup$



                            As pointed out in other answers,




                            • You are right, If you use twice as many lanes, you get twice the speed.

                            • Earlier, parallel busses (with many data lanes) were widespread. Examples are the parallel printer interface, PATA, and PCI. But it is hard to build fast parallel busses because differences in the lengths of individual wires will cause timing differences. Parallel busses are still in widespread use on PCBs (DRAM, QSPI, GMII, ...) and on chips (AXI, AHB, QPI, ...), but for longer distances, it is actually much cheaper to build a high-speed serial link than a lower-speed parallel link with the same data throughput. Modern super-high-speed, longer-distance data links such as Gigabit Ethernet, PCIe and USB3 do have multiple data lanes, but each of those lanes is a completely independent high-speed serial link; the data streams from the individual links are combined back together at a later point. This is why you can put a PCIe x16 graphics card into a PCIe x1 slot with a fitting adapter (or sufficient violence).

                            • Parallel busses have more wires (duh), so cable will be thicker and heavier and more expensive, and the connector as well.


                            Historically, when USB was designed, high-speed data transfer was not its main focus. The main focus was to create a universal and cheap bus system for connecting peripherals like keyboards, mouses and printers.
                            A parallel design would have been a bad choice; it would have ruined the revolutionary small connector size and probably increased the cost of USB enough to prevent its widespread adaption.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Nov 16 '18 at 18:16









                            mic_emic_e

                            437312




                            437312















                                Popular posts from this blog

                                Xamarin.iOS Cant Deploy on Iphone

                                Glorious Revolution

                                Dulmage-Mendelsohn matrix decomposition in Python