What were the technical reason(s) USB massively overtook parallel interfaces such as SCSI, IEEE-488, and enhanced parallel ports? I understand the hardware can be simpler with just one data line rather than eight. But intuitively there would be a significant speed advantage to transferring full bytes at a time rather than bits. Is it a matter of USB being both hardware-simple and "fast enough"?
-
\$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. \$\endgroup\$– Voltage Spike ♦Commented Feb 25, 2021 at 1:29
-
\$\begingroup\$ Other answers don't mention that USB connectors are dirt cheap and easy to manufacture compared to connectors with many pins and sockets \$\endgroup\$– NavinCommented Feb 25, 2021 at 15:52
-
\$\begingroup\$ Fewer wires, fewer pins. \$\endgroup\$– Hot LicksCommented Feb 25, 2021 at 18:54
11 Answers
At face value sending 8 bits at once seems faster than sending just one at a time. In reality, there are other factors that affect parallel transfers.
The Achilles heel of parallel is the wait time between bytes. When the transmitter places a set of 8 bits on 8 lines it takes those bits a non zero amount of time to arrive at the receiver. Furthermore, those bits do not arrive at the same time. There is a spread between the fastest bit and the slowest bit. This spread requires that there is a blanking time between when the bits are asserted and when the bits are read.
At slow speeds this blanking time is irrelevant. As the speeds increase this blanking time becomes significant. The blanking time has to account for the worst-case scenario. This includes the cable, connectors, circuit board traces, etc... As speeds increase the blanking time will become the limiting factor.
With serial, all the bits come down the line back to back and require no blanking time. A speed increase only really requires the ability to cram the bits down the line faster. I'm glossing over that with serial signal integrity still needs to be maintained. Serial is also less sensitive to cabling abnormalities.
-
21\$\begingroup\$ Of course, you can still run multiple lanes of serial signals (e.g., USB x2, PCIe x16) to get the theoretical speed benefit of parallel signals, without the skew problems. Well, the skew problem becomes a transfer/packet-level problem, rather than a bit-level, which is easier to deal with \$\endgroup\$– 小太郎Commented Feb 24, 2021 at 4:56
-
1\$\begingroup\$ I'm unconvinced skew is a dealbreaker at the speeds the original USB ran at. SCSI ran a 16 bit paralell bus in 80MHz DDR. \$\endgroup\$ Commented Feb 24, 2021 at 8:50
-
7\$\begingroup\$ @PeterGreen SCSI was also an expensive, power hungry dog. Dealbreakers are usually economic arguments, not technical ones. It's not that it can`t be done, it's just that it's cheaper and easier to do it another way. SCSI died at the stillborn Ultra-640 because cabling was getting nightmarish - to the point where SCSI was barely able to still call itself a bus, being able to support only two or maybe three devices at ~5Gbps. With SATA 2.0 at 3Gbps, and way cheaper, just a year later the writing was pretty much on the wall. \$\endgroup\$– J...Commented Feb 24, 2021 at 10:23
-
3\$\begingroup\$ Also, wasn't there a problem that at higher speeds interference in the cables became more and more of an issue? That is, the bits sent down in parallel through separate wires started to induce currents in each other and muddled the signal. So you had to either add a helluva lot of shielding, or… just go serial. \$\endgroup\$– Vilx-Commented Feb 24, 2021 at 10:46
-
2\$\begingroup\$ @PeterGreen While there are many reasons why USB won out, the OP was specifically questioning speed issues. Because of skew, speed gains in a parallel interface become more difficult when compared to similar speed gains in a serial interface. \$\endgroup\$– vini_iCommented Feb 24, 2021 at 12:07
At the time of its introduction, USB was quite slow by today's standards. Operating at 1.5 Mb/s it was designed to replace even slower serial, parallel, and other low-speed interfaces that were used to connect things like printers, modems, scanners, and the like.
As USB became more popular, its capabilities were enhanced to what we now have today with USB 3.0 operating at 5-20 Gb/s.
It won out for several reasons:
It was one interface for PC makers to support. So rather than having to figure out what interfaces customers needed they could simply include some USB ports and be done with it.
It worked really well for customers since plugging and unplugging USB is easy. If you have ever struggled with those silly screws on serial and parallel ports you know what I mean.
It could handle almost any type of peripheral imaginable with only software drivers needed. This was a HUGE deal and it allowed all sorts of things to work on USB that its original designers never imagined.
It was fast enough, faster than any other interface on PCs of the day and it also was able to be extended to be fast enough even to support storage that could boot and run a PC.
-
6\$\begingroup\$ Those "silly screws" would be useful on some of today's USB stuff. You've be surprised how often somebody pulls on, for example, a USB headset cable and unplugs it while talking on the telephone. Even worse is when somebody pulls on it just hard enough that it sort of half way makes contact and wiggles on and off. \$\endgroup\$– JRECommented Feb 23, 2021 at 11:33
-
12\$\begingroup\$ +1, and just wanted to say that it's not USB 3.0 anymore. The dumb people of USB Forum have renamed it a few times: It was USB 3.0 first, then became USB 3.1 Gen 1 (5Gbps) after introducing USB 3.1 (it became USB 3.1 Gen 2 - 10Gbps). Today they have been all renamed again: There is USB 3.2 Gen 1 (5Gbps), USB 3.2 Gen 2 (10Gbps), and USB 3.2 Gen 2x2 (20Gbps). It became even worse on marketing names: USB Superspeed, USB Superspeed+, and USB Superspeed++, respectively. \$\endgroup\$ Commented Feb 23, 2021 at 12:15
-
12\$\begingroup\$ @RohatKılıç it's doubleplus unslow! \$\endgroup\$ Commented Feb 23, 2021 at 12:28
-
8\$\begingroup\$ I believe the original USB 1.0 defined both 1.5 Mb/s and 12 Mb/s modes at the same time. \$\endgroup\$– NayukiCommented Feb 24, 2021 at 2:58
-
6\$\begingroup\$ Don't forget the fact that USB provides bus power, which is useful for all sorts of peripherals. \$\endgroup\$ Commented Feb 24, 2021 at 6:16
jwh20 has already given a number of reasons. I would also add that parallel cables can be annoyingly fat when compared with USB3.
Parallel cables can be problematic at very high speeds. Unless every wire pair in the cable is perfectly matched, the speed of propagation can be different between them. This leads to "skew", where the signal arrives at different times on each pair, totally confusing the receiver. That results in parallel connections using wider and wider cables, rather than increasing the clock rate.
Switch to serial, and the skew problem goes away.
-
5\$\begingroup\$ By the time USB 3.0 came along the IEEE 1284 parallel port was already dead. USB 3.x (3.x as a shorthand for 3.0, 3.1, and 3.2) was made to compete with Thunderbolt, SATA, FireWire (or what was left of it by then), and whatever else was popular circa 2010. USB 1.1 and 2.0 came around circa 1995 and 2000. IEEE 1284 defines parallel ports in the Mbps range and USB 3.x transfers are in the Gbps range, so not in the same territory. USB 3.x is essentially Firewire bolted on to USB 2.0, and in many ways done badly. If USB 2.0 had not killed IEEE 1284 it's likely RS-422 would have. \$\endgroup\$ Commented Feb 23, 2021 at 20:51
-
2\$\begingroup\$ Parallel as in printer cables were heavy (and expensive for any length with all that copper) but SCSI cables were truly evil. Some connectors used clips rather than securing screws, and the weight/stiffness of a short cable was enough to pop the clips. \$\endgroup\$– Chris HCommented Feb 24, 2021 at 9:32
-
1\$\begingroup\$ @ChrisH: Parallel (printer) cables also had clips. They are standard on a Centronics connector (as opposed to a DB-25). See for example kvmgalore.com/shopping/… \$\endgroup\$ Commented Feb 24, 2021 at 19:01
-
2\$\begingroup\$ @BenVoigt they did (still do - my laserjet has parallel as well as USB) and those clips work. When SCSI uses centronics connectors the clips work too.But there was a smaller SCSI connector with useless clips, that I had on my SCSI card \$\endgroup\$– Chris HCommented Feb 24, 2021 at 19:58
Is it a matter of USB being both hardware-simple and "fast enough"?
IMO yes, it was cheap enough and fast enough, but that is only part of the story.
Equally important IMO was it's general purpose plug and play nature. Printer ports were intended for printers and while they could be used for other things doing so was always a hack and there could be compatibility issues.
intuitively there would be a significant speed advantage to transferring full bytes at a time rather than bits
Yes but it's not that simple.
IEEE 488 and the parallel printer interface used connectors and cables that date from the 1970s. They used single ended signalling, on generic multi core cables without worrying too much about things like termination. That seriously limits the speeds that can be achieved before signal integrity issues rear their ugly heads.
USB on the other hand used differential signalling on purpose-designed cables. Initial speeds were a relatively slow 1.5Mbps "low speed" and 12Mbps full speed. Theese speeds were fast enough for most of the common PC peripherals, like keyboards, mice, printers and scanners, though slow for external storage. USB 2 pushed up the speed to 480Mbps while keeping the same physical connectors and cabling enabling external storage to run at decent speeds.
SCSI on the other hand did migrate to wider busses and better cabling over the years and offered higher throughput than USB2, but it was expensive and user-unfriendly.
I think other answers overplay the importance of skew, it was certainly an issue for parallel interfaces, but it could be mitigated to a large extent with good physical layer design and fast parallel interfaces like IDE, SCSI and PCI offered more throughput than USB 2.
-
1\$\begingroup\$ If connector were the limiting factor, then they could easily have changed those. Cost of manufacturing the circuits and the cables was the primary driver of USB pounding the final nail in the IEEE 488 interface. \$\endgroup\$ Commented Feb 24, 2021 at 19:20
-
1\$\begingroup\$ The signaling technology used in parallel ports was already being addressed in several other standards at the time, but the costs of implementation, priced them out of the market. \$\endgroup\$ Commented Feb 24, 2021 at 21:06
Other answers are good, but they all miss two things.
First, USB carried both power (about 2W at first, up to 100W for modern versions) and data in one connector and in one (thin and manageable) cable. This enabled a lot of bus-powered devices and helped a lot for the USB proliferation.
Neither SCSI, nor parallel, nor serial interfaces (the "universal" ones of the time) offered power for the connecting devices. RS-232 Serial was barely able to power a mouse (absolutely not by design, it was a dirty hack and not every serial port could work with every serial mouse).
Yes, the keyboard (and later mouse) interfaces of the time also did carry some power, but they were quite specific (why, WHY PS/2 mouse and PS/2 keyboard used different interfaces and protocols?) and weren't really able to carry much data.
And second, USB introduced to the masses the concept of the hot-plug (and hot-unplug as well). While both FireWire and SCSI back then did have some hot-plug provisions (and later developed more), it was USB that most people first associated with the hot-plug.
In short, it was not only about the data rate.
-
1\$\begingroup\$ RS-232 was rather limited compared to USB but there were other kinds of serial ports of the era that were far more capable. Apple used RS-422 serial ports but they called it "GeoPort" that shared a lot of features with USB. It offered 2 Mbps of bandwidth (some claim 10 Mbps was possible), 2 watts of power, a small connector, built to handle a variety of peripheral types, and the ability to daisy chain with the LocalTalk protocol. What it had against it was a delicate DIN connector (much like PS/2) and was expensive to implement. It was a universal serial bus a decade before USB. \$\endgroup\$ Commented Feb 25, 2021 at 9:08
-
\$\begingroup\$ @MacGuffin Delicate? I've never heard of anyone breaking a PS/2 connector (without the kind of excessive force that would also break a USB connector) \$\endgroup\$ Commented Feb 25, 2021 at 10:30
-
\$\begingroup\$ @user253751 I did. And, pinned connectors and ordinary users don't mix well. \$\endgroup\$– fraxinusCommented Feb 25, 2021 at 10:59
-
3\$\begingroup\$ @user253751 I've seen more than one PS/2 (or S-Video, or any DIN-type connector) plug rendered unusable by a pin being bent from a user attempting to blind-plug a connector; most often they bent because the user would twist while inserting, and if a pin caught on anything it'd bend with almost no resistance due to its thinness, and when all the other pins and key finally aligned, the insertion force would just mash the pin into the bottom of the plug. Delicate work with jewelry pliers (or replacing the plug) was about the only way to fix that. \$\endgroup\$– Doktor JCommented Feb 25, 2021 at 17:01
-
1\$\begingroup\$ @jwdonahue RS-232 (not sure about the others) was somewhat safe to hotplug (and we all did, and the serial chip didn't hold much of a state for one to care for), but not really designed for hotplug. Their connectors didn't guarantee ground pins touching first and the acceptable static safety was more of a side effect and not part of the standard. Parallel port was pretty much NOT static-safe, it exposed bare TTLs. \$\endgroup\$– fraxinusCommented Feb 25, 2021 at 22:03
Is it a matter of USB being both hardware-simple and "fast enough"?
Yes it was. The real problem with parallel ports was that they had a limited future in terms of scaling up their speed. Faster circuits require more power. Multiply that by the width of the bus and compare to serial, and you can easily see that serial has a faster, better, cheaper future than parallel ports/busses. Add that cabling and connectors are the biggest cost in external interfaces, it's easy to see how manufacturers could save billions of dollars by switching to serial.
Then look at the hub and spoke architecture that USB promised. You build smaller computers, with more internal hubs and external connectors, for less than a single parallel port would cost, plus end users could buy your accessory USB hubs to extend their hardware capabilities.
There was also a growing trend towards smaller, more portable computers, where connectors placed a lower limit on device size. The number of types of interconnects demanded by customers also influences this limit. They needed portable printers/scanners and modems. Accessory device manufactures needed smaller, faster, better, cheaper ways to connect to PC's and laptops. Hence the "universal" in USB.
The printer manufacturers were also beginning to add ethernet and eventually Wi-Fi, rendering the "printer port" nearly obsolete by the early 2000's. All of which could easily have been predicted as early as the late 80's. I was even an early promoter of dedicated (hub/switch-less) ethernet connections for control systems, going back to the early 90's. With good enough serial bandwidth available, parallel ports were definitely a dead-end technology by the end of the 90's.
Clearly, if you were a computer manufacturer in the mid 90's, you'd be looking to the future for any competitive edge you could find. You would have seen the trend toward the need for more and faster device interconnects. Your engineers would have already done the math and told you that the cost of faster parallel scaled exponentially while faster serial scales more or less linearly. You certainly didn't want to pass up something like USB, if your competitors were adopting it.
One thing the other answers miss is cost. Parallel interfaces need fewer transistors and those transistors can be slower for the same data rate. When fast transistors were expensive, it made sense to spend more on cables and connectors to minimize cost of silicon.
-
\$\begingroup\$ Good point. I did address cost in my answer btw. I think that transistor price and count really only comes into play at the upper end of the performance curve. But since you mentioned it, I think I can build a serial interface with exactly the same number of transistors as one of your parallel channels, so my serial interface will be cheaper and consume less energy than your parallel device. So in the case where serial is fast enough, it's always going to win. Remember, we had RS-232 right along side parallel ports on those old machines. \$\endgroup\$ Commented Feb 25, 2021 at 20:59
-
\$\begingroup\$ @jwdonahue Except that in serial, you have to sync up, keep track of where the word boundaries are, and detect and recover from lost sync. While in a parallel interface, you can send not only data, but clock and control in parallel. So, serial needs a bunch more logic. Then, put yourself back in 1978 when achieving a clock rate of more than a few MHz is expensive. Sure, RS232 at 1200 bps was common, but fast serial was difficult. \$\endgroup\$ Commented Feb 25, 2021 at 23:04
-
\$\begingroup\$ Both serial (in the absence of bit banging) and parallel need to latch at least 8 bits of data. Parallel needs clock generation/decoding and serial needs some edge detection and timing circuits. Most of that is inexpensive, low power circuitry. But parallel needs more line drivers/receivers and those are more expensive and power hungry circuits than serial. I am sure there's a cross-over point where for a given throughput, parallel is cheaper than serial. Being mechanical devices, printers have never really needed lots of bandwidth, so I suspect we left that territory in the 70's. \$\endgroup\$ Commented Feb 25, 2021 at 23:59
-
\$\begingroup\$ Come to think of it, weren't the early teletypes all serial devices? Wasn't it high speed printers in the early 70's that drove the need for parallel interconnect? You needed less logic in the printer, with a parallel interface. I just have a hard time accepting that parallel printer ports were driven by the need for higher throughput. On the PC side, they cost more than serial, but on the printer side, you eliminate a bunch of circuitry. You can operate the print head without needing a CPU or serial to parallel conversion of any kind. Your customer's total investment is lower. \$\endgroup\$ Commented Feb 26, 2021 at 0:18
-
\$\begingroup\$ @jwdonahue You're forgetting that serial needs a state machine with at least a state per bit in a word. Parallel needs no such thing. And, since for the same throughput, the serial needs a higher bit rate per line, the drivers have to be faster and more powerful. It was a pain making Mbit/s serial interfaces with MSI four decades ago: I did a few. It was only worth the trouble if you had a long cable, 10's of meters. \$\endgroup\$ Commented Feb 26, 2021 at 1:30
Busses needed to be parallel before around 2000 because it was simpler and faster than serial connections.
USB interfaces aren't simple, USB2 and USB 3 controllers and endpoints are orders of magnitude more complex than Centronics or early SCSI.
What has changed is due to miniaturisation a very complex chip with a fast serial interface is now cheaper than a parallel interface (fewer pins, fewer wires, simpler connectors...). And miniaturisation has also allowed the development of very fast transistors allowing datarates of several Gbits/second.
But to raise bandwidth, it's still useful to use many wires, it's the case with PCIexpress wich is a serial bus but uses many parallel lanes (typ. 16 lanes for video cards)
-
\$\begingroup\$ How are busses simpler than serial connections? A bus of width W, is at least W times more complicated than a single trace/wire. The OP's question has to do with external interconnect btw. \$\endgroup\$ Commented Feb 25, 2021 at 20:51
-
\$\begingroup\$ The complexity of USB has nothing to do with the complexity of serial communication channels and everything to do with "universal" aspect of the standard. The fact that it was intended to replace every peripheral interconnect, from about 10cm out to about 3m is the driving force behind that complexity. Yes, chip density enables ever increasing complexity, up to a point. But those same gains, can also be applied to build parallel interfaces. Why the former and not the later? The cost of cabling and the size of connectors. Even USB cables cost more than the USB chips on both ends of the cable. \$\endgroup\$ Commented Feb 25, 2021 at 21:10
-
\$\begingroup\$ The trade-offs between parallel and serial are the same today as they have always been, but you don't see many 8 bit or wider parallel external interconnects today. At some point, you saturate available bandwidth on a pair of conductors, and the only alternative is go parallel. For printers in the 70's and 80's, transistors weren't the issue. Computers couldn't keep up with the interrupts required for fast printers, so they went wide in order to deliver more content per interrupt. Eventually optimizing it to an interrupt per content line. \$\endgroup\$ Commented Feb 25, 2021 at 21:17
It wasn't just about the communication, there were software and economic advantages too.
Standard device classes
Before USB, most devices were either parallel or SCSI. SCSI was expensive and had its own cabling problems as described here. One thing SCSI did bring to the table was standardised specifications for how scanners, hard drives, tape drives and CD-ROM drives should communicate - you could plug in any drive and you didn't need a specific driver for it.
Over in parallel and serial port land, cabling was cheaper and simpler, but there was no standardisation. That meant you needed a driver for your specific piece of hardware, and you could guarantee that every vendor did things a different way so there was no cross-compatibility.
USB came with standard device classes (HID, mass storage, camera, audio, printer, etc) so manufacturers could implement their hardware in a particular way and no driver would be required. It hasn't always worked out perfectly, but in general you can often plug something in and it'll work without any drivers.
Multi-drop
SCSI had a concept of being able to wire up to 7 devices (plus the host controller) on a single cable. The classic 50 way ribbon cable had multiple connectors you could hang several drives off (assuming you got the termination right). Of course, being SCSI, cabling was complicated and messy.
In parallel port land it was much simpler: one port, one device. Sometimes there was a 'passthrough' port on the device, but typically that port would only support a printer (couldn't chain several devices together). Similarly you couldn't chain serial port devices together (unless you used RS485 and the devices were designed for it).
USB brought in the concept of hubs which could be chained, allowing numerous devices to be connected to the single port. That meant machines could be made smaller because they didn't need a back panel full of ports to cater for everything that might be connected.
Discoverability
USB provides a way to examine which devices are attached. You couldn't do that with serial, parallel and PS/2 ports. Being able to examine your devices means you can go and find the drivers for them if they aren't installed. With parallel and other devices you had to manually select the right driver (it probably came with the device on a floppy disc you had to install).
Low cost
USB puts most of the work on the host side. This means it's feasible to build cheap devices. SCSI devices had to run a fairly complex (for the day) CPU to interpret the protocol which increased the cost. This is less of an issue nowadays compared with the mid 90s, but compare how many microcontrollers have USB device support with those having USB host.
Aside from the many excellent reasons already posted here, I remember parallel and SCSI cables as just being a pain to use because of their bulkiness (due to width). They were also more expensive.
I could argue that the question is based on a false premise. USB didn't necessarily "win" against parallel interfaces like EPP and SCSI. I could argue that USB "won" largely by replacing serial communications port devices, and it was those devices that made parallel communications devices obsolete.
FireWire predates USB. Early iPods used FireWire. Later iPods used the 30-pin dock connector which allowed connecting to either USB 2.0 or FireWire 400 ports for charging and loading music. USB 1.1 was not practical for replacing FireWire 400 but USB 2.0 was. This was not limited to just iPods. SCSI was the norm for many segments of the computer market to connect external drives, and plenty of them switched to FireWire only to switch again to some form of USB.
USB 1.1 was not very practical for storage but it works well for human interface devices. When USB 1.1 was introduced it was largely replacing serial ports like ADB, PS/2, RS-232, RS-422/GeoPort, and MIDI.
The IEEE-1284 port is synonymous with "printer port" but that's not all it was used for. It should not take much digging to find scanners, drives of various kinds, as well as printers that used this interface. What I can argue is the popularity of using the "printer port" for non-printer devices came from people moving their printers off the "printer port" an on to the network. When USB inkjet printers became popular it was at the expense of networked laser printers, not printers on the IEEE-1284 port.
Zip drives, CD drives, floppy drives, and tape drives that were using SCSI and IEEE-1284 interfaces may have been replaced with USB versions. What was also likely was these being replaced with flash drives on a serial port, DVD drives on a FireWire port, networked file shares, and eSATA drives. If or when USB equivalents come along then it's not replacing anything on a parallel communications interface.
What we are seeing with USB 3.0, USB 3.1, and USB 3.2 is each version being one step behind Thunderbolt. With USB4 it looks like USB is going to join Thunderbolt since it can't beat it.
I'll argue that USB didn't "win" because USB 2.0 was merely "good enough" for a lot of people that they accepted it as a less expensive option over FireWire. FireWire lost a lot of users to USB 2.0 but not all of them. FireWire continued to coexist with USB until Thunderbolt arrived as a replacement. Someone could argue that now USB finally won over all the old parallel communications interfaces because it now includes what it needed to replace everything SCSI could do. It's only about 20 years late.