9/29/2014

USB3.0, Sustaining 88 megabytes/sec transfer rate


I have an ASUS P8Z68-V Gen3 Motherboard with USB3.0 ASMedia XHCI Host controllers.


Until I installed the [optional] ASUS "Boost" BOT Storage Driver, an attached USB Hard drive would drop to 10 MB/s after a few seconds of sustained transfer. After the "Boost" driver is installed it regularly "sustains" 88 MB/s transfer rates. This partially depends upon the capabilities of the device attached to the host controller.


ASUS describes their alternative storage driver as supporting the latest UAS Protocol (UASP) which is a workaround for the USB 2.0 BOT (Bulk Only Transfer) protocol originally designed for USB 2.0 "High Speeds". Theoretically 450 Mb/s divide that by 10 and multiply by 0.8 is practically 36 MB/s but most share the USB bus with other devices and the host controller sits on a PCI bus which allocates a reduced amount of bandwidth.. typically 15% so that comes out to about 5.4 MB/s

So obtaining 10 MB/s on a dedicated USB bus with no other devices is actually quite remarkable.

However using the "Boost" Turbo mode for the USB 3.0 BOT driver consistently returns 88 MB/s for me, and is quite worth the effort to figure all this out.

The details are available online at this URL

How ASUS USB 3.0 Boost UASP Mode accelerates transfer speed

Essentially it appears they are "streaming" the data in a deeper queue before confirming a transfer, taking advantage of greater reliability over the USB 3.0 bus, less retransmits become more efficient and this removes some of the overhead. For network engineers this is the equivalent of using "Jumbo Packets".

Additionally they "package" or bundle the transfers in some manner in "Turbo" mode to increase the speeds further. For the compression specialist think on the fly compression on the device and decompression on the host controller.

It all requires USB 3.0 hub hardware that supports the new modes,  an operating system driver that supports the new modes and a USB 3.0 device connected to the host controller root hub, that at least supports the alternative UASP protocol. The different choices being, run in "Normal" USB 2.0 BOT mode, run in "Enhanced" USAP BOT mode, or run in "Turbo" Boost BOT mode. (the knight rider would be impressed..)


What was missing was the new ASUS [host controller] "root hub" software driver for the operating system I was running. [ ASUS USB 3.0 Boost Storage Driver ]


This had to be downloaded from the ASUS website for my motherboard and operating system:


Installed

And rebooted the new "alternative" USB 3.0 BOT storage driver ["Boost"] is detected and installed, as well as the "normal" USB 2.0 BOT storage driver, there is no need to remove and reinstall the host controller drivers. If you do be aware that the host controller drivers that came on the DVD with your motherboard or system are probably a better "fit" than the latest ones available from the ASUS website or Microsoft driver update. The simple fact is once a batch of motherboards leaves the factory most driver development stops and both of these alternative sources of drivers are not rigourously tested with your particular motherboard. Its sad but true. So your best bet is to stick with host controller drivers you know work, at least until the "Boost" driver is working.


The rest is pretty much automatic, the new driver will detect if UASP or Turbo modes are possible and put them into effect when a compatible USB device is attached to the host controller root hub.

This motherboard has an additional system tray tool for interfacing with the BIOS and can also interact with hardware to show more information than is normally available through the operating system.

In this case it interacts with the USB 3.0 host controller driver to indicate the mode in which it is communicating with my Western Digital Passport USB 3.0 external hard drive.