Performance Testing and Conclusion
Performance Testing
We fired up the system sent over by MSI and started with some testing. First up were some simple file copies from within Windows 8.1. An Intel P3700 NVMe PCIe SSD was used as the source and destination for these copies, ensuring that the USB 3.1 side of things was the bottleneck.
We used all three USB 3.x controllers (ASMedia, Intel, and VIA), and to each of those host controllers we connected the USB 3.1 demo board (RAID-0 Intel SSD 730) and a Samsung USB T1 (Single 850 EVO). The T1 is only USB 3.0, but is used as a point of reference as a device capable of nearly saturating the bus at its respective speed grade. Here are those results:
Starting from the bottom, the VIA controller (bottom pair), while significantly faster than USB 2.0, falls short of the other two controllers. Intel's USB 3.0 controller (middle pair) turns in great results, but note that the T1 actually beats the ASM1352R in reads, suggesting that the 1352R may not be as optimized as it could be. Moving onto the ASMedia USB 3.1 host controller (top pair), while we see an absolute improvement in throughput, it is not the doubling we expected to see.
The pair of Intel SSD 730's are more than capable of 1GB/sec when in RAID-0, so I believe we can attribute the disparity to the first generation design of the ASM1142 and ASM1352R. Sure they don't completely saturate the theoretical bandwidth of USB 3.1, but if you recall, first generation USB 3.0 hardware came nowhere near the speeds we see in modern hardware. Digging a bit deeper with some other tests, it appeared the ASM1352R was not handling queued commands as efficiently as it could have. Here is a short excerpt of the specs of that chip which apply to queueing:
- Support Mass Storage Class, Bulk-Only Transport Specification Revision 1.3
- Support Universal Attached SCSI Protocol Specification Revision 1.0
- Compliant with USB3.1 Specification Revision 1.0
- Serial ATA bus up to 6Gbps Signal bandwidth
- Support SATA NCQ command
- Support over 2TB drives
- Compliant with Serial ATA Specification Revision3.2
- Support Spread Spectrum Control of USB3.0 and SATA interface to improve the EMI performance
One of the easiest ways to determine QD response of a storage medium (especially an external one which may or may not play nicely with Iometer) is with successive ATTO runs using different queue depth settings. Here are three successive ATTO runs of the ASM1142/ASM1352R pair at various queue depths:
QD=2:
QD=4:
QD=10:
Note the near negligible difference between QD=4 and QD=10. The Intel 730's alone would show a very noticeable difference across that same QD delta, however something about either the ASM1352R's RAID efficiency or the ASM1142's implementation of UASP is limiting the maximum effective queue depth here. If I was to guess based on the results seen here, I would suggest that UASP is at work, but the RAID controller may not be passing those queued commands onto the connected SSDs. The slight increase in throughput from QD2-4 could be explained by increased effective parallelism via UASP over the USB 3.1 bus itself, but that type of scaling could only be effective at lower queue depths, which is the behavior we are seeing here.
Conclusion
MSI's demo has shown us that USB 3.1 (Superspeed+) is here and capable of some very impressive throughputs. The first generation hardware we tested today was not able to reach the theoretical maximum of 1.1GB/sec, but achieving those speeds may require optimizations extending outside of the USB pipeline (i.e. motherboard BIOS tweaks and Windows kernel optimizations). We hope to dive further into USB 3.1 very soon, hopefully with a closer look at the Type-C connector. More to follow on this front for sure!
A big thanks goes out to MSI for providing the X99A Gaming 9 ACK motherboard as well as the prototype USB 3.1 hardware for our testing today!
usb blah blah blah, it’s
usb blah blah blah, it’s fast blah blah blah. so hows that 3440×1440 monitor.
It looks pretty sweet
It looks pretty sweet actually. We'll have something up on that shortly!
Allyn, Do you know if one
Allyn, Do you know if one could configure an OS “software” RAID using those 2 x AsMedia USB 3.1 integrated ports on the rear panel of that motherboard? You could eliminate that extra printed circuit board, if that were possible. I realize that one cannot boot from such a software RAID, but other OS functions could benefit e.g. pagefile.sys and browser caches. We have used a ramdisk with Firefox for several years, and the performance difference has been quite dramatic and consistent.
MRFS
You’re still going to see
You're still going to see much lower latencies with a good SATA or even PCIe SSD for those purposes. Too many layers between the host and the device with USB 3.1 to make it useful for those purposes.
Many thanks, Allyn:
YOU BE
Many thanks, Allyn:
YOU BE THE BEST!
p.s. Care to speculate about “SATA-IV”?
Seems logical to support the 128b/130b “jumbo frame”
in the PCIe 3.0 spec + a higher clock rate:
I like “interleaved” pre-sets: 6G, 8G, 12G, 16G etc.
(e.g. via auto-detection, jumper blocks, or Option ROMs).
Keep up the good work, Allyn.
/s/ Paul
See also:
Adata puts Type-C
See also:
Adata puts Type-C connector on tiny USB stick, speedy RAID drive
http://techreport.com/news/27627/adata-puts-type-c-connector-on-tiny-usb-stick-speedy-raid-drive
Those poor graphic
Those poor graphic designers…
Slaving away all day staring at monitors and ruining their eyesight to the point where they can’t notice that the they’ve made the 10Gbps bar more than 3 times longer than the 5Gbps bar.
If it stood for usable
If it stood for usable transfer rate, then 2.44x would be accurate, but it does look like it is about 3x in the graph.
Your calculation is very
Your calculation is very close. Here’s what I get:
USB 3.1 uses a 128b/132b jumbo frame with 16 bytes @ 8 bits each
i.e. 132 bits / 16 bytes = 8.25 bits per byte in each frame
10 Gbps / 8.25 bits per byte = 1212.12 Megabytes per second
USB 2.0 uses an 8b/10b legacy frame with 1 byte
i.e. 5 Gbps / 10 bits per byte = 500 Megabytes per second
1212.12 / 500 = 2.42X
HAHA – So true!
HAHA – So true!
Why USB 3.1 and not just USB
Why USB 3.1 and not just USB 4…? Just like why displayport 1.3a and crap why not just go to the next number…?