As a TRIM option isn’t possible on an SSD connected to a PC via USB, companies such as OCZ have produced advanced “garbage collection” schemes, or rather algorithms, that help keep the drives as clean as possible so that the user won’t notice performance degradation. Ahh yes, it seems a bit ironic that as soon as our desktop SSD’s became equipped with TRIM, USB 3.0 came along and took it all away.
To my knowledge, there isn’t a feasible way to get around this. The only possible solution I could figure is if the drive had a built-in ATA controller that intercepted the connection between USB and the drive, but that sounds like more of a makeshift solution than one that we’ll ever see. There would surely be a performance hit in a design like that, and even then, it still might not be technically possible.
The fact that we’re treated to a garbage collection scheme at all is nice though, because otherwise these drives wouldn’t look quite as appealing, especially since you can’t perform a secure erase on them like you can to a regular hard drive or SSD. The reason I became interested in garbage collection on this drive was because after our battery of tests, I noticed that the performance degraded immediately. I found this strange, as I didn’t have that issue with Super Talent’s drive.
In talking to our resident SSD expert Robert Tanner, I was told that our Iometer test likely had something to do with it, as it’s quite brutal, and the Indilinx controller apparently doesn’t handle that kind of battery too well. The key with this drive is that it’s “idle” garbage collection. That means that if the drive’s plugged in and doing nothing, it will clean itself.
After I saw this performance degradation, I let the drive sit idle for a while and then came back to it, and sure enough, performance improved. But, the performance I saw during the second run wasn’t on par with factory-settings. Rather, it was on average about 5% slower. Nothing major, but notable nonetheless. So out of curiosity, I decided to see just how bad I could wreck the Enyo’s performance, and at the same time, see how well OCZ’s garbage collection scheme works.
Before I get into the results, I have to admit that my testing here was absolute overkill. Even just one hour of Iometer is rough on an SSD, but for maximum effect, I planned on running it for two or three. Well, leave it to me to forget that the test was running, only to realize it 12 hours later. Yes, twelve hours. After I stopped the test, I unplugged the drive to give it a break. After all, twelve straight hours of that kind of battery is a little much for any SSD.
With that said, behold the mess I created:
When HD Tach popped up with this result, I laughed so hard that I almost teared. Sure, I ran Iometer for a long time, but I didn’t expect to see a heartbeat monitor as a result. As you can see by the picture, the drive had a write speed of about 29.4MB/s, which is a far cry from the 150MB/s – 200MB/s that the drive is stated for.
At this point, I left the drive to sit idle for quite a while. As I do all USB benchmarking on my own PC, I have to boot between Windows and Linux regularly, since I use the latter as my primary OS. So it’s for that reason that some of the re-tests are spaced out time-wise. During these gaps, the Enyo was plugged in almost the entire time, so it had a good deal of time to clean itself.
The second run came five hours later, and as you can see, the Enyo did a commendable job of cleaning itself up. Interestingly, it seemed to have sacrificed its own read speed in favor of improving the write speed, as the read dropped from 164MB/s to 103MB/s, while the write improved from that sad 29MB/s up to 98MB/s.
About 90 minutes after that test, I re-tested once again, and the performance continued its climb back to its innate status. Here, both the read and write performance saw an increase. It’s very interesting to see the drive clean itself up this way, because you can begin to understand how the algorithm is thinking. Kind of.
After that last test was run, I ended up putting off a re-test for a little while due to other work that had to be done, so I ended up testing it again the very next day, after about 24 hours worth of idle time. I should note that in between all these tests, the drive was completely empty, so the only thing the GC had to clean was free space. When all said and done, the performance was about as remedied as it could be:
Until I decided to test the drive’s garbage collection, I hadn’t tested with HD Tach, so for that reason, I don’t have personal data from what would have been performance on a fresh drive. Thankfully, OCZ did the exact same tests in its own lab, and its performance on a brand-new Enyo was 199MB/s read and 177MB/s write, which means that in the end, our performance seen above with 188MB/s and 167MB/s averages out to a performance loss of 6%, which is exactly the same kind of loss we found in our numerous re-tests of other benchmarks.
As it appears, no matter how hard you are on the Enyo, its built-in GC can work wonders. It’s unfortunate to see a performance drop at all, but <6% is negligible, and very unlikely to even be noticed. The important thing is that even with our hardcore testing, the drive still managed to retain smooth performance across the board, so there was no retained stuttering after the GC did its work.