>There are several reasons why your device will never be able to use all of this bandwidth. First of all, the USB bus is shared among several users. Even if you are plugged into different ports on the motherboard, you are probably sharing the same host controller as all of the other devices on the bus, so your device is sharing the USB bus bandwidth with all of the other devices.
>Second, USB is a packetized protocol where longer blocks of data are divided into 512-byte packets. Each packet contains a header identifying the packet contents, and a CRC at the end of the packet for data integrity. Each packet also requires an ACK from the other side of the link. Start of Frame (SOF) packets are sent every 125 uSec (microframe) to maintain timing on the bus. The net effect of this is that the theoretical maximum bandwidth of USB is 13 bulk packets per microframe, or 53,248,000 bytes/second. Even this limit is not achievable with current host controllers, which can receive 10 bulk packets/microframe or send 8 bulk packets/microframe.
>500mA – This is the absolute maximum power allowed under the USB spec