USB throughput ??? Big Question

What is the USB throughout can be achieved during a large file download or large file upload ? Theoretically Full speed device should support 12Mbps but I am only achieving 4Mbps in download and 7 Mbps in upload. Can anyone help me to find where am i losing ?

Subhashis Sikder wrote:

What is the USB throughout can be achieved during a large
file download or large file upload ?

I think Tim Roberts will be more than happy to answer this particular question.

xxxxx@gmail.com wrote:

Subhashis Sikder wrote:

> What is the USB throughout can be achieved during a large
> file download or large file upload ?
>

I think Tim Roberts will be more than happy to answer this particular question.

Get your glass ready…


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

xxxxx@gmail.com wrote:

What is the USB throughout can be achieved during a large file download or large file upload ? Theoretically Full speed device should support 12Mbps but I am only achieving 4Mbps in download and 7 Mbps in upload. Can anyone help me to find where am i losing ?

We were able to do between 8 and 9 Mbps over a full-speed bulk pipe, in
each direction. Is this a custom device, or are you talking about a USB
Mass Storage device using the standard class driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

a usb custom device using the usbsamp driver.

the main question here is why do they say full speed is 12mbps if its never achievable ? where r we losing ?

On 8/13/2009 6:34 AM, xxxxx@gmail.com wrote:

the main question here is why do they say full speed is 12mbps if its
never achievable ? where r we losing ?

Some reasons:

(a) USB protocol overhead:
See the USB spec at www.usb.org. Smaller packages mean more overhead -
if you send 8-byte-packages, your bandwidth will be lower than using
64-byte-packages.

(b) USB device properties:
The achievable throughput may be limited by the device itself - memory
interconnect, USB I/F chipset, processor.
E.g., if you use a SoC with a slow/low-power 8051 core with integrated
USB I/F, you might not be able to achieve even full speed.

(c) Other devices. The available bandwidth on one root hub is shared
between all devices connected to that hub. E.g. if your mouse nad
keyboard are on the same USB root as your device, you will never come to
the achievable maximum.

(d) OS/USB chipset driver internals: USB is polling-based, the PC (USB
host) needs to poll the devices. If your OS is busy with other things
(e.g. playback of your YouTube video) this may slow down other transfers.

Thanks Hegen, for the detailed information. I always wanted something like this so that i can start my digging.

xxxxx@gmail.com wrote:

the main question here is why do they say full speed is 12mbps if its never achievable ? where r we losing ?

Allow me to add to Hagen’s very good explanation.

The bus clock for USB runs at 12 Mbps. However, you’re looking at the
throughput for a single device. Remember, USB is a shared, polled bus,
running a bus protocol. A certain fraction of the bus is reserved for
“emergency” control pipe operations. A certain fraction of the bus is
used up by protocol overhead. If you have USB audio or video, a
fraction of the bus is reserved for those devices.

The exact same thing is true for Ethernet. You can’t actually pump 100
megabits of data through a 100 megabit Ethernet cable, for much the same
reasons.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thank u Tim… i’ll surely keep ur point too in my mind during my analysis…