As USB devices were getting more popular, mainboards offered more and more USB ports. The manufacturers solved the problem of having to share a single USB bus by simply introducing a few buses. For example, the popular Intel P55 chipset turns to have as many as seven UHCI controllers (responsible for Low Speed and Full Speed devices) combined with seven dual-port hubs, and two EHCI controllers (responsible for Hi Speed devices). This is an intricate tree with multiple roots and a few trunks!
The final aspect of USB to be discussed is the power it provides. The load capacity of one port is limited to 0.5 amperes and you must make sure that multiple devices connected to it won’t overload that port. There is a simple mechanism for that. When connected, the device must tell the host how much electric power it needs and remain in sleep mode until the host allows it to turn on. If the total consumption current is higher than 0.5 amperes, the host won’t permit the last connected device to turn on. This mechanism has one vulnerability. Although it is possible to check out if the device indeed consumes as much power as it asks for, this checking would make the USB controller too complex and expensive. Therefore, the majority of USB hosts just trust what the device tells it. On one hand, this may overload the host and even damage it. But on the other hand, USB devices that consume slightly more than 0.5 amperes can work. External hard disk drives are in this category. According to our tests, they need about 0.7 to 0.9 amperes when spinning their spindle up. They inform the host of 0.5A consumption (and cannot report a higher current even theoretically because the USB specification does not provide for that) and their further operation depends on whether the host controller can provide the amount of power they really need. Various USB fans, lamps, etc behave even more irresponsibly. They often don’t have any USB controller inside and do not tell the host anything about their power requirements. No matter how many such devices you have plugged in, the host controller will think that they consume naught.
Of course, it is not normal for a large and popular class of devices, external HDDs, rely upon undocumented capabilities, therefore the low load capacity of a USB 2.0 port is a drawback, too. Many other consumers such as scanners, compact speaker systems, mini-monitors and various chargers wouldn’t refuse to have more power, either.
Winding up this overview of USB 2.0, we want to recall the physical level, i.e. cables. A USB cable has four wires: two for data, one for ground and one +5V line for power. The original USB specification intended the standard flat type A connector for the host controller’s side and the type B connector for the device’s side, but there soon appeared a lot of compact connectors (a few versions of mini-USB and micro-USB).
Now let’s talk about USB 3.0. The new version brings about a new operation mode called Super Speed which has a peak data-transfer rate of 4.8 Gbps. The developers of the new version of USB tried to keep it compatible with all existing USB devices and make it as simple as before.
So, they complemented the UHCI and EHCI controllers one more controller which is responsible for the Super Speed mode. This ensures compatibility and adds a new data channel that old and slow devices won’t affect.
The cables and connectors have changed as the result. Besides the existing four wires, there are now two pairs of signal wires, one for transferring data towards the controller and another, from it. There is also one additional ground wire. The USB connectors have acquired five more pins while retaining compatibility with the older connectors. This helps you easily identify a USB 3.0 device by taking a look at its connector.
USB 3.0 Type A
USB 3.0 Type B
USB 3.0 Type Micro-B
Besides the higher speed, USB 3.0 brings about a lot of other innovations. First, it increases the current for powering a peripheral device up to 0.9 amperes. This is especially good for external storage devices based on 2.5-inch HDDs which can now do without a Y-shaped cable they used to get power from two USB ports at once. Second, the two data transfer lines imply that USB 3.0 allows to send and receive data simultaneously. Third, the new version of USB introduces a full-featured interrupt mechanism that allows to get rid of the time-consuming polling. Fourth, a device can now establish more than one data transfer channel.
Power saving is not forgotten, either. The interrupt mechanism allows to manage the power consumption of devices using low-power modes initiated by the peripheral device itself. In fact, the whole architecture has been dramatically revised and the USB 2.0 compatibility may even look like an addition to a whole new interface.
But that’s enough of theory (you can get more documentation at the official site). Let’s check out how good the new USB is in practice!