I'm doing a system design in which many flash-memory devices are connected into a USB tree of hubs, and I need to estimate how long it will take for them all to do a download ... which is complicated by my lack of in-depth understanding of USB! I'm hoping to find a simulation that will let me explore some alternatives, but some experience-wisdom would sure help!

I have from 1..200 USB 2.0 devices each with 1GB to offload as quickly as possible. The scenario is that someone sets up the tree of hubs - 2-port laptop to a couple hubs, which each branch N-way until I get to the 200 leaves. (Fewer is certainly possible, there's no certainty they'll get handled in full-size batches.) Then, we start plugging in devices. When a device is available, we want to start an automatic download of the full 1GB memory from that device.

These will be "generation2" versions of some existing devices, so there's a mix of design freedom and legacy constraint... The devices will have both HID and MSD functions. They are USB 2.0 but have very limited CPU so I expect each device is limited to Full speed (12Mbps). The devices need to pick up charge while plugged in and downloading, so I gather I need to ensure the devices and hubs implement Battery Charging Spec v1.2 (hubs being "downstream charging"). I get to specify the hubs to be used, so they can be USB 3.0 or whatever. I think I can specify the peripheral devices will use Link Power Management though I'm not yet certain of the implications.

I don't know how bandwidth divides on a many-device USB setup like this, what's the impact of the plugging in and unplugging, would it be better to split the devices 100/100 vs 127/73 ... that sort of question. So, how do I guesstimate how long this will take (wall-clock time) to pull the 200GB into the laptop?


SSD speed ... 100-600 MB/s;

HDD 10000 ~ 100-150MB/s; HDD 7200 ~ 70-120MB/s; HDD 5200 ~ 40-70MB/s

USB 1.0 ~ 12 MB/s;

USB 2.0 ~35 MB/s;

USB 3.0 around 3.2 Gbit/s (0.4 GB/s or 400 MB/s), but 100 ...150 ...200MB/s max 300MB/s at practic ...

USB 3 300MB/s: Thermaltake BlacX 5G - ASM1051 + Bulk-only transport.

registry play speedup USB:

HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Control\usbstor\<usb device>
MaximumTransferLength DWORD <test good data at device>
DeviceHackFlags DWORD <test good data at device>

MCCI ExpressDisk UASP Driver:

UASP USB 3 Driver

MCCI vs Microsoft USB 3 UASP Driver


Practical book helps developers apply USB-interfaced mass-storage devices

PDF Universal Serial Bus Mass Storage Class Bulk-Only Transport

May be use HDMI?

HDMI 1.0 1080p 4,9 Gbit/s ... 612,5 MB/s;

HDMI 1.3, 1.4 10,2 Gbit/s ... 1275 MB/s;

  • Interesting, I didn't know about that driver, thanks! Looks like it brings UASP to USB2 ... But, I'm limited to Full Speed 12MBps at any one device, with a lot of device - s and that topology issue is what concerns me most right now. Any thought on that? – Wayne Mar 8 '13 at 22:59
  • @Wayne I add link, may be help ... – STTR Mar 8 '13 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.