On A Quest For Better USB 3.0 Performance
Depending on controllers, devices, and hosts, USB 3.0 performance varies widely, and those jumps up and down are made evident in our benchmarks. And it's worth the research to figure out which combination of components is going to yield the best experience.
Turbo mode and UAS are both attractive technologies able to bolster the default behavior of USB 3.0. But they both require you connect devices that let the interface shine, meaning you need storage that won't gum up performance as a bottleneck. Hook up an external hard drive via USB 3.0, and it's going to deliver the same speed in pretty much every situation. Really, it takes some form of solid-state storage to make a difference.
And don't cross your fingers for better random I/O performance, either. Although we have to imagine that the number of folks leaning on USB-attached storage for workloads pushing heavy random accesses, it's worth mentioning that Turbo mode and UAS don't help. Really, sequential access patters stand to gain the most from both technologies.
Perhaps oddly enough, we saw the biggest gains from Turbo mode using the USB 3.0 devices that delivered the worst performance. Apricorn's SATA-USB 3.0 Adapter is a favorite lab tool, but it employs a poorly optimized USB 3.0 controller. A lot of inexpensive USB 3.0 enclosures and thumb drives fall into this category, and they're the ones that benefit most from Turbo—good news, since Turbo mode is basically free.
Enabling Turbo mode is a fruitless endeavor when you're using higher-end USB 3.0 devices, though, like Thermaltake's BlacX 5G, because its normal (BOT) performance is so good. UAS is the game-changer in this particular scenario; its sequential performance is as much as 20% higher, depending on your setup.
UAS is a fairly new technology, and so we're withholding judgement on it for now. Some of the vendors we contacted report much higher numbers than the ones reported here in their own labs, and we have every reason to believe higher speeds are possible. According to several of the engineers we contacted, development hardware achieves sequential speeds as high as 430 MB/s and random I/O exceeds 100 MB/s. In comparison, we hit 350 and 70 MB/s in both metrics, respectively, with our shipping hardware.
At the end of the day, UAS still offers tremendous potential, though PC enthusiasts might not even be the primary beneficiaries of it. As one Western Digital engineer pointed out, this technology is a real boon in the mobile and low-end desktop spaces. USB imposes a significant processing overhead using BOT, which helps explain why USB 2.0 and 3.0 often shows so poorly on older machines. The UAS protocol is more efficiently streamlined, creating less work for the host CPU. The addition of command queuing support opens the door to better performance because storage operations are processed in parallel. This combination of lower signal overhead and more efficient data transfers helps boost performance on older and cheaper computer systems, freeing the processor for other tasks.
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:
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.
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".
In Linux terminology, USB attached serial seems to correspond to USB-to-serial adapters (RS-232, aka COM/serial port).
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
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:
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.
Sorry for the confusion. We made a typo. It happens to us all. :)
It won't accept USB 2.0 flash drives, and I only have USB 2.0 flash drives.
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.
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.
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.