Why USB sucks

From CMPLWiki
Jump to: navigation, search

Here's my common diatribe against USB.

The main thing is USB's speed. Yeah, USB 2.0 High Speed is 480 Mbit/s. That's 60 Mbyte/s, right?

No. It is 24 Mbyte/s.

  • First of all, USB's spec says that each byte is sent with start and stop bits. That means for every 8-bit byte, it takes 10 bits. So that 480 Mbit/s turns into 48 Mbyte/s.
  • Second, USB's spec says it's not only synchronous, but also each device cannot "interrupt" the bus. The PC must probe each device on a regular basis and handle the transfer. No PC chipset has off-loaded the handling of USB from the CPU. That halves the speed and drags down the CPU to boot, making it 24 Mbyte/s.

Firewire doesn't have that latter set of limitations and hits a solid 40 Mbyte/s.