Given the now stable, but relatively low price of SSDs today, I still regularly lament the small size and low performance of USB sticks. While I haven’t purchased any newer USB 3.0 memory sticks recently, I did have a sizable collection of “high performance” USB 2.0 sticks which were starting to be woefully slow. As power users start to see USB 3.0 adoption widespread, it would be advantageous to make the most of this speed.
But why would one care about the speed of their USB key? Well, most people wouldn’t if all they were toting around were Word Documents and Excel Spreadsheets. But the more advanced users may desire having a Linux operating system boot from USB, have several portable programs on it, or even use it to transport larger libraries of files. Existing USB key performance leaves a lot to be desired when dealing with many many small files! And their random small-block access is poor.
SSDs, by virtue of their design, are designed to be speedy under almost all circumstances. They’re designed to replace a boot drive, which would traditionally house an OS with a mixture of large and small files with many many small block accesses. So this, it seems, would be an ideal solution.
But there are a few considerations:
- SSDs have great performance, but this performance does “drop off” after a while due to the consumption of flash blocks and the lack of spare blocks to do wear levelling with. Modern OSes have used a system called TRIM which allows the OS to signal to the drive when certain sector ranges no longer contain useful data, letting the SSD erase and use those blocks in the wear levelling process, or consolidate many larger pages with little useful data into one block. Unfortunately, being connected via USB is likely to prevent TRIM from functioning. Again, I have to blow on my Sandforce trumpet as they have several technologies which can keep performance better under non-TRIM situations. Their data compression inherently reduces write amplification, but also reduces the number of flash cells needed to hold the data thus meaning the pool of spare blocks will always be larger than in a drive which doesn’t compress its data (unless all the data is incompressible). Secondly, the reserved area for Sandforce drives is typically larger than on other drives, which can help as well. Finally, they have had much experience in designing for non-TRIM situations, whereas more recent drives seem to take TRIM for granted and are rarely shown in non-TRIM configurations.
- SSDs are fast, but other things can slow it down. One thing is the chipset which bridges the SATA to USB 3.0. Depending on the chipset, this may mean the SATA protocol being spoken is SATA I (1.5Gbit/s) limiting to 150MB/s, or SATA II (3Gbit/s) limiting to 300MB/s. I have yet to meet a SATA III (6Gbit/s) USB 3.0 bridge, possibly due to the overheads of USB 3.0 (nominally 5Gbit/s, but with reserved bandwidth and overhead) meaning that there is no appreciable gain anyway. A refresh to USB 3.0 to bring it up to 10Gbit/s may see some gains from implementing SATA III bridges.
- USB 3.0 controllers can have an impact on the speed. Depending on the bridge and controller used, the older USB Bulk Only Transport mode is common for Mass Storage Class devices. This mode does not offer command queuing, which limits throughput due to latencies on the bus. A newer UASP (USB Attached SCSI Protocol) system allows for the use of pipelining and command queueing and offloads many of the tasks to the controller and a separate software stack. Using UASP enabled controllers and bridges can bring tangible performance increases.
- SSDs may not be designed for the plug-unplug scenarios experienced in USB – they may not be designed to take unexpected power outages as gracefully as USB key controllers are. In fact, Sandforce based SSDs count this in a SMART parameter – I think only time will tell if unexpected powerdown will result in any serious corruption. If corruption occurs during background garbage collection, active wear levelling or during updates of the flash map which details which physical blocks map to logical blocks, this could be quite serious. But at the same time, I have faith that the designers of these SSDs are not so silly – after all, unexpected shutdowns are a fact of life when a machine locks up, or you experience a blackout.
The difficulty is knowing if all the stars align for you when it comes to purchasing your parts. The SSD chipset is easy to find online, on reviews, etc. But the support of your USB 3.0 controller and the USB 3.0 bridge chip in any given enclosure is a luck of the draw.
The Experiment Begins
So for today’s experiment, we take a Kingston 120Gb SSDNow V300 SSD ($92.90 at ARC) which is Sandforce based, using 19nm NAND (eugh) but being very reasonably priced with good performance specifications. We will marry this to a generic 2.5″ SATA no-brand USB 3.0 enclosure ($16.50 at ARC). Testing is conducted on an old Gigabyte 890FXA-UD7 motherboard with an AMD Phenom II x6 1090T running at 4Ghz (overclocked), under Windows 7 Ultimate using the onboard NEC based USB 3.0 solution running the latest firmware and drivers available from station-drivers.com.
In the interests of full disclosure, the information provided here is all from my own independent testing and was not funded by any external parties.
The USB Enclosure
First, this must be commended as an example of true Chinese packaging. It’s an Enclosuer alright.
Generously, the package includes a USB 3.0 A to microB lead, and a very thin, smelly (smells like plastic chemicals) pouch along with the enclosure itself which is plastic on its top face.
The bottom of the case is shiny chrome-finished steel with a single barcode label and a single screw being the main detraction from an otherwise iPod-esque back. Undoing the screw gets us into the enclosure where we find the bridge board:
Not much from this side but you can see the QC labels and the PCB date. There are two small screws holding it into the enclosure, so it stays put.
Now this is what we came to see. There’s a voltage regulator, likely for 3.3v or 1.8v on the side, along with an inductor. There’s a crystal for timing reference, and an LED. The bridge chip is present, but the pads for an SPI Flash chip are not populated. This will be of significance later.
There’s no doubt that the bridge chip is from Asmedia, being an ASM1051. Asmedia has been a company at the forefront of SATA III and USB 3.0 controllers, and has seen much success in breaking into the peripheral board and motherboard markets often being integrated as additional ports on brand-name motherboards. They are a relatively recent company, but their high performance products speak for themselves.
Interestingly, the Asmedia controllers are generally firmware upgradable. This particular unit shipped with 091029000000 which is quite an old firmware, but when an update was attempted (instructions here, and files here, in French but one can easily follow) – it would always fail but with no damage. I suspect this may be due to the chip licensing conditions (maybe there’s a OTP fuse which prevents further programming, or locks out the option), or the lack of the external SPI Flash means that it is operating off an internal mask ROM. But this is pure speculation, what I do know is that I can’t update it.
The trip to MPTool did say that this controller is not UASP capable. That’s a bit of a disappointment. As a result, we will be working in the less efficient Bulk Only Transport (aka BOT) mode.
The firmware updates may have provided throughput enhancement, compatibility improvements, etc. But even without them, we know this controller is capable of SATA II connections at 3Gbit/s – so the upper limit is 300MB/s rather than the old SATA I at 150MB/s. That’s a good thing.
As with all consumer value-oriented products, the Kingston SSD is pretty much a bare bones package. One nasty thing is the use of this plastic clamshell packaging – it’s not easy to open without leaving sharp edges and hazards all about!
Opening the package, we get the SSD itself, and a plastic frame which is backed with self adhesive which raises the profile of the drive from the now-popular 7mm ultrabook thickness to the former-standard of 9.5mm.
The rear of the SSD itself has nothing special, but it does have a two-toned reflective warranty label. Okay, Okay! I won’t open you up!
Putting it Together and Testing
Putting it together has never been more “plug and play”. No jumper settings to set, no ribbon cable or power cable to connect. Just slide it into the SATA connector, close the lid and you’re ready to go!
In fact, I plugged it right in and it just worked. How about that! I haven’t lost any data yet over a short course of playing, but here’s some lovely numbers to mull over.
CrystalDiskMark is my preferred benchmark which gives you data on sequential access, 512Kb random access, 4Kb random access and 4Kb random access with a Queue Depth of 32 (really only important for NCQ/TCQ or anything with pipeline-able I/O). Of course, sequential access speeds are the big number which many flash drive manufacturers would tout, but small file speeds are dominated by the 4Kb and 512Kb numbers.
Connected to my USB 3.0 onboard controller (an NEC Renesas chipset) – this is what I got:
I look at that and I can immediately say wow. That’s impressive. For USB 3.0, it’s not the fastest result, but I wasn’t expecting it to be this quick using an older USB 3.0 controller and a BOT only bridge. The performance internally is MUCH faster, closer to 450MB/s for sequential read, but as we know, that’s not something which this bridge can do. Realistically, I think 250MB/s for a SATA II based bridge is the maximum expectation. The latency of USB does hurt the 4k figures quite severely and possibly goes to demonstrate where UASP can have demonstrable improvement.
Attached to USB 2.0, we expect a decrease in performance, and accordingly, we get that.
However, the performance sequentially rides along with the best USB 2.0 hard drives, and the random performance is still very very good!
As a bonus, this bridge is supported by CrystalDiskInfo, so one can get a SMART readout of its health while in the enclosure. Some of the bridge chips don’t let you access this – another big tick for Asmedia here!
So, what about the USB 2.0 keys?
You might think I’m being a little unfair because I’m comparing older USB 2.0 keys with this drive, and the fact that this drive is massive compared to a humble key. Guilty on both counts. But I don’t have a more modern USB 3.0 key to test against – and lets just say we compare with the USB 2.0 results in CDM, okay?
The same port on the same computer was used with the same software. We’re generally talking apples to apples except the USB keys have been used, and a few were not blanked prior to running the tests. This shouldn’t be too much of an issue as flash memory does not vary speed across its surface, and fragmentation will have minimal impact on the device results.
The first contender – my personal favourite, the Corsair Flash Voyager GT 16Gb.
It tries to put up a good fight, and it’s pretty much bang on or exceeds its paper specs for sequential, but its random performance is poor. No wonder why people wait forever for small files to copy.
Next up – Patriot Swing 32Gb mini flash drive
This drive is fast to read, but again, fails badly at writes, especially small ones. This one being one of the newer “tiny” drives, is made of a single-chip construction, and my personal experience with these have been that they are slow, and possibly less reliable despite their one-piece design.
Another chip-style one – Toshiba 8Gb USB
Another slowpoke. But at least this one takes apart easily so you can see the all-in-one chip construction and the markings on the back of it. But they don’t really seem to lead you anywhere.
Lets try another chip-one, this time in a novelty Kingston CNY 2012 8Gb drive
It may be cute, and only costed me a few dollars, but it’s even slower. Slow slow slow. In fact, these tests took hours to run for the comparisons, to the point it bored me to death! But it’s only right to do this, if only just to illustrate …
Finally, a Sandisk Ultra 32Gb
This one really didn’t fare well on the 512Kb test, and it looks a bit anomalous. I’m not sure why there was so big a difference between the 4K random tests as well. It could be possible that this key was formatted non-aligned or something strange had happened to the wear-levelling algorithms.
While it might initially sound crazy to shove an SSD into an enclosure, testing shows that it can make perfect sense to those who need the performance. Even under USB 2.0, the performance was notably better than even high performance USB keys from previous years. While USB 3.0 keys may perform better, manufacturer focus on sequential speeds often leave their small block performance lacking. The SSD in an enclosure does have several disadvantages, one of them being physical size and possible performance and reliability problems, but this initial experiment proved to be promising. For those with a little cash could buy cheaper mainstream capacities. Those with older/smaller SSDs could consider this as a “second life” for them. For those with a lot of cash to spare, a fast 480/512Gb USB device can be realized today!
After posting links to this article to several popular forums, some others who have done just the same have come forward with similar results which is quite heartening. One in particular has seen much closer to native performance by using a UASP compatible controller and bridge.
For reference, I have tested the same drive (although with some data on it) on my Intel B75 based motherboard and it achieved lower results, so your USB 3.0 controller definitely counts.
And this is how an identical model SSD used as a boot drive, attached internally to a SATA III controller, performs under the same benchmark:
UPDATE: I tried it again with a newer SSD with a different chipset, and a new enclosure, and the problem of TRIM rears its head.