Overview
The Universal Serial Bus (USB) is an expansion bus that's designed for
robust physical connectors and cheap/simple implementation. It supports
hubs so that a single port on a computer can support multiple devices (and
hubs can be plugged in to other hubs). There are several standards for
USB devices that are commonly used including keyboard, mouse, and mass-storage
(for hard drives, flash drives, and digital cameras).
Here is a brief FAQ
about USB. In summary USB 1.1 does 1.5MB/s (12Mb/s) and USB 2.0 (AKA
Hi-Speed USB does 60MB/s (480Mb/s). Due to some overhead and
inefficiencies you won't expect to see such speeds, better than 30MB/s is a
good speed for USB mass storage with USB 2.0, and you are shouldn't expect
more than 1MB/s with USB 1.1.
According to the everythingusb.com site USB flash devices can deliver up to
30MB/s read speed and 24MB/s write speed. Note that the good thing about
flash devices is that there is almost no seek time which makes the fastest
ones give better performance than the fastest hard drives in some situations,
the down-side to them is that there is a limit to the number of writes to
flash memory.
Compatability
The USB hardware has two different interfaces for USB 1.1 and USB 2.0 which
are seen by the OS. It is
possible for an outdated or misconfigured OS to talk to a USB 2.0 device at USB
1.1 speed even though it's in a USB 2.0 socket. Any combination of USB 2.0
and USB 1.1, but if anything in the chain (PC, OS, hub, or device) is USB 1.1
then you get USB 1.1 speed.
USB was originally designed as a replacement for PS/2 keyboard and mouse
ports. Some USB mouses come with an adapter so that they can be used in a
PS/2 port. However the adapters aren't fully compatable, my KVM switches
won't accept them (I'm not sure how prevalent this problem is).
Other Uses of USB
Windows Vista used a USB 2.0 flash storage device as a
read cache for the hard drive. If your hard drive has an average access
time of 10ms then a request for less than 300KB of data could be satisfied
by a USB flash device faster than the hard drive could read the data (assuming
that the 8M cache which is common on modern hard drives doesn't have the data,
IDE and SCSI interfaces transfer data faster than the USB interface can).
Another possible benefit of this is for the situation where the hard drive is
very busy, having part of the work offloaded to another device can improve
overall system performance (this is one of the benefits that a RAID system
can offer). For servers this is of no use as hardware RAID devices do such
caching already. For machines with a decent amount of RAM it's not of much
use either as RAM is much faster than a USB device. For machines with RAM
that's significantly smaller than a USB device (not a common situation given
that the maximum size of a flash is 1G) that might give some benefits.
Also given that a 120G hard drive is the same price as a hi-speed 1G flash
device software RAID might be a better option. For a machine with a small
amount of RAM and no ability to install more than one hard drive or a caching
drive controller this might offer some benefits. The only machines which
don't have much option for upgrading RAM and no option for adding a second
hard drive are laptops, however the older laptops which can't be upgraded to
1G of RAM tend to not support USB 2.0...