Faster USB 3.0 Performance: Examining UASP And Turbo Mode

USB Attached SCSI (UAS): Enabling Even Better USB 3.0 Performance

USB Attached SCSI (UAS) is a new USB 3.0 protocol that replaces the older USB 2.0 BOT protocol. Intended to more completely exploit USB 3.0's potential, UAS introduces two major architectural changes. 

  1. Four-Pipe Model: Previously, query and command signals shared the same pipe with transferred data. USB 3.0's UAS protocol (UASP) does not mix transfer types, and each data type has its own pipe. Think of UAS as multi-threaded, whereas BOT is more of a serial process.
  2. Command queuing: Unlike BOT, UAS processes transfers in parallel, eliminating the need to wait for the next signal.

The thing is, UAS support is not a simple switch you turn on. It requires four platform-oriented elements in order to work:

  1. UAS support in the USB driver stack.
  2. Device hardware supporting UAS.
  3. Device firmware supporting UAS.
  4. UAS-compatible system controller.

If any of those are missing, UAS won't function and USB 2.0's BOT becomes the fallback mode for preserving compatibility. So, you wouldn't want to plug a UAS-capable device into a motherboard that doesn't support it, or connect a client device limited to BOT support into a platform that enables UAS.

We can only guess how many existing USB 2.0 or 3.0 devices might be UAS-enabled. But what we do know is that the host's and device's controller must have hardware-based support for the feature. We are told that many shipping USB devices likely already support UAS. But vendors are ultimately responsible for providing firmware updates to enable it.

Thermaltake's BlacX 5G features ASMedia's ASM1051, a USB 3.0 controller with UAS support. However, a firmware update from Thermaltake's website is required to turn it on.

UAS support is currently missing from Windows 7, OS X, and Linux (depends on kernel), but Microsoft confirmed that Windows 8 will feature native UAS support late last year. Indeed, installing the Windows 8 Release Preview reveals the native UAS Mass Storage Driver. However, Windows 8 UAS support only seems to work for USB 3.0. We're told that a Windows 7 update for UAS support is probable some time after Windows 8 ships.

There is no word on the status of UAS support in OS X. However, we do know that Apple developers have been involved with UAS, so it's possible that native support could appear in the operating system succeeding Lion. Unfortunately, we have no information on UAS support for Linux.

We do not have to wait for Windows 8 to test UAS. Fortunately, Asus has been making a big deal about USB 3.0 Boost, an application that adds Turbo mode and UASP support to select models, including Z77-, X79-, Z68-, 990FX/990X/970-, and A75-based platforms with ASMedia's ASM1042 USB 3.0 controller.

If you happen to own a board from Asus equipped with the requisite hardware, either "Turbo" or "UASP" appears alongside the Normal button in Asus' USB 3.0 Boost utility once the drive is formatted and plugged into a USB 3.0 port. It can be a port native to the chipset or attached to ASMedia's controller; it doesn't matter. Turbo mode is specific to any USB 2.0 or non-UAS USB 3.0 devices, and you don't get the option to select Turbo mode if your USB 3.0 device supports UAS. "Normal" mode (BOT) is the default option for all devices.

ASRock's XFast USB is a more polished piece of software, enabling Turbo mode on any USB port without requiring the device to be NTFS- or FAT-formatted. However, Asus is alone in supporting UAS in Windows 7, and it does so through by licensing MCCI's ExpressDisk UASP Driver.

The Asus UASP driver performs better than BOT and the native Windows 8 UAS driver, particularly in random reads.

The Windows 8 UAS driver is fastest in sequential transfers, pushing almost 360 MB/s and leading the Asus UASP driver by 25 MB/s in sequential reads, specifically. In contrast, BOT tops out at ~300 MB/s. Asus' UASP driver leads in sequential writes, achieving up to ~340 MB/s. Windows 8's native UAS driver only manages to hit ~325 MB/s. But both UASP modes show a marked improvement over BOT, which levels off at ~315 MB/s.

  • jimmysmitty
    One thing with USB is that it was never designed for massive large data thoroghputs like eHDDs and larger flash drives. And while its nice to have a faster USB standard like USB 3.0, the main idea behind USB, a single connector for peripherals like mice, KB and printer, was designed when eHDDs were almost non existent.

    Firewire was designed more with eHDDs and the such in mind and had better encoding and protocols in place to support eHDDs and such.

    Even better is Thunderbolt which has shown the ability to reach top end speeds of the attached device:

    http://www.macnn.com/reviews/elgato-thunderbolt-ssd.html

    While its a Mac based drive you can clearly see that as the size goes up (4KB->1024KB), the speed goes up which makes sense. A 4GB file will have a better average transfer rate than a 4MB file on USB, eSATA or TB. As well, it reaches almost 300MB/s read and write which is just as fast as a SATA 3Gbps SSD goes. I imagine if the drive had a better controller (say current Sandforce) it could reach 500MB/s (SATA 6Gbps speeds easily since the interface was designed with this in mind.

    So while USB 3.0 is great for where I work and such, as a lot of customers may not be able to afford eSATA or TB devices or have those on their PC, its not going to be able to keep up with demands of people who use multiple large eHDDs for data storage and thats where eSATA 6Gbps and TB will come into play. I imagine USB might just become a smaller part unless the reengineer the protocols and encoding but that might also kill any backwards compatibility it has currently.
    Reply
  • forestie
    Overall, good article.

    However, it seems the author didn't look very far regarding USB attached SCSI protocol on Linux: a simple Google search: "uas protocol usb attached scsi linux" gives the first link: "http://cateee.net/lkddb/web-lkddb/USB_UAS.html", which teaches us that UAS support is available since Linux kernel 2.6.37 and enabled by option "CONFIG_USB_UAS".

    I suppose it is a safe bet to assume that most modern distributions ship with this option enabled, as is often the case with Linux distributions; they tend to provide almost all the kernel modules "just in case".
    Reply
  • forestie
    By the way, I am not 100% sure but I think the correct name is "USB attached SCSI", not "USB attached serial". I had to put the proper term in my aforementioned Google search.

    In Linux terminology, USB attached serial seems to correspond to USB-to-serial adapters (RS-232, aka COM/serial port).
    Reply
  • merikafyeah
    This article says that the Syba SD-PEX20122 card has ASM1042 controller hardware, yet Syba's site and everywhere else says that this card is based on "VLI VL80x USB 3.0 Host Controller IC". Is this referring to something else, or has Syba switched to a different controller since the time this article was written?

    EDIT: Nevermind, the article linked to the wrong card but referenced the correct model number. The model referenced was SD-PEX20112, which does include the ASM1042 controller. The model the link sends you to is SD-PEX20122, which has the VLI VL80x chipset.
    This is the correct link: Syba SD-PEX20112
    Recap:
    Syba SD-PEX20112: Based on Asmedia ASM1042 USB 3.0 Host Controller ICSyba SD-PEX20122: Based on VLI VL80x USB 3.0 Host Controller IC(This model includes a 20-pin header for up to 2(two) additional external USB 3.0 connectors on newer cases which can be used simultaneously with the rear connectors, so this is technically a 4-port card and is the better deal IMO, but I digress.)

    P.S. I noticed another typo on page 4:
    However, Asus is alone in supporting UAS in Windows 7, and it does so through by licensing MCCI's ExpressDisk UASP Driver.

    BTW, very interesting article. USB is well underway to being one of two "be-all-end-all" connectors for consumer tech of the future. The second of course, being HDBaseT. USB is so ubiquitous that it can't be overtaken. However, the same cannot be said for FireWire/eSATA/Thunderbolt/HDMI/DVI etc, which have all been made obsolete by the existence of HDBaseT. Once HDBT penetrates the market, only USB will stand a chance at remaining relevant.
    Reply
  • acku
    merikafyeahThis article says that the Syba SD-PEX20122 card has ASM1042 controller hardware, yet Syba's site and everywhere else says that this card is based on "VLI VL80x USB 3.0 Host Controller IC". Is this referring to something else, or has Syba switched to a different controller since the time this article was written?EDIT: Nevermind, the article linked to the wrong card but referenced the correct model number. The model referenced was SD-PEX20112, which does include the ASM1042 controller. The model the link sends you to is SD-PEX20122, which has the VLI VL80x chipset.This is the correct link: Syba SD-PEX20112Recap:Syba SD-PEX20112: Based on Asmedia ASM1042 USB 3.0 Host Controller ICSyba SD-PEX20122: Based on VLI VL80x USB 3.0 Host Controller IC
    Sorry for the confusion. We made a typo. It happens to us all. :)

    Cheers,
    Andrew Ku
    TomsHardware.com
    Reply
  • A Bad Day
    My main problem with my NEC USB 3.0 (first generation i7 laptop)?

    It won't accept USB 2.0 flash drives, and I only have USB 2.0 flash drives.

    Derp.
    Reply
  • sickbyreputation
    usb 3 is for small transfers because it boost small files transfer speed and on large files they slow down to normal 2.0 speed anyway your best bet is sdd to sdd with esata and teracopy is a great app file file transfer copied 78gb in 3 1/2 min from main system ssd to hotswap sdd
    Reply
  • TeraMedia
    Outstanding article. This is the kind of information that can help make the difference between an informed purchase and a regrettable one, and keeps the manufacturers innovating. I hadn't even heard of UASP, but now I know to look at the specs before I buy any USB 3.0 storage devices, motherboards or add-in USB 3.0 cards, to verify this latent feature.

    Off-topic, but an article request with similar technical analysis requirements:
    It would be great if you could do a similar analysis for lossless audio streaming over HDMI - i.e. Dolby TrueHD and DTS Master Audio - on a handful of different current-gen chipsets and GPUs, and explain why some work and others don't.
    Reply
  • jn77
    I think the joke comes in here where the USB Fanboys that hate Firewire need to re-think what they were talking about with USB2.0.

    While by spec, Firewire 400 or 800 was "slower" than USB 2.0, why did all my FireWire devices transfer data at speeds almost double what USB 2.0 did? Because its all jargon on paper. FireWire actually had a good protocal and in reality, transfered date faster than USB ever did. We really need FireWire 3200, 6400, 12,800, etc. USB was always a replacement for PS/2 connectors.
    Reply
  • LukeCWM
    jn77While by spec, Firewire 400 or 800 was "slower" than USB 2.0, why did all my FireWire devices transfer data at speeds almost double what USB 2.0 did?
    Somewhere at sometime, I read an article that indicated that Firewire 400 is 400 Mb/s per channel, while USB 2.0 is 480 Mb/s shared for all channels. So the more devices you have plugged in, the more your bandwidth suffers. Hopefully someone more educated than I or with more time to research will clarify this.
    Reply