Single page Print

SandForce showdown: Corsair's Force F100 and OCZ's Agility 2 and Vertex 2 SSDs


A distinctly different approach to solid-state storage
— 11:29 PM on May 17, 2010

As we've learned over the past few years, a solid-state drive's destiny is determined largely by its underlying storage controller. Some controllers, like JMicron's JMF602, were doomed from the beginning. The JMicron was plagued by severe stuttering issues when it was first released, dragging down a whole wave of SSDs based on the chip. A new revision and updated firmware attempted to address the issue, but problems persisted, and the damage was done. Even today, SSDs based on new JMicron controllers are viewed with a healthy—and prudent—dose of skepticism.

JMicron might never have managed to fix the JMF602, but Indilinx had much better luck tuning its original Barefoot controller. First popularized by OCZ's Vertex SSD, the Barefoot design had promise but suffered from poor used-state write performance, particularly under Windows XP. Then came a flurry of firmware updates that improved internal garbage collection schemes, added a manual wiper utility to clear erased flash pages, and eventually incorporated long-promised native support for the TRIM command built into Windows 7. The addition of TRIM support is probably most responsible for the excellent all-around performance offered by Indilinx-based drives in Microsoft's latest operating system; it's just a shame the update didn't become available to end users until some eight months after drives like the Vertex hit shelves.

The controller that powers Intel's X25-series drives has been the most resilient design we've seen thus far. Yes, the chip giant's second-generation drives were plagued by a couple of embarrassing firmware issues. While those problems are certainly inexcusable, they don't take away from the exceptional all-around performance that Intel SSDs have offered since before TRIM came into the picture. Intel SSDs have only gotten faster with TRIM, and they're arguably the gold standard against which all newcomers are judged.

As you might have heard, the next big thing on the SSD front is a controller from a company called SandForce. We've been hearing bits and pieces about SandForce and its SF-1000-series storage controllers for a little while now, and consumer-oriented drives based on the SF-1200 have finally started to show up on store shelves. The chip's specifications certainly look impressive: 260MB/s for sequential reads and writes, 30,000 IOps for 4KB random reads, and 10,000 IOps for random writes. No wonder there's been a lot of hype.

But is it deserved? To find out, we've take a closer look at SandForce's controller architecture and the unique approach it takes to prolonging drive life. We've also tested a handful of SF-1200-based SSDs, including Corsair's Force F100 and OCZ's Agility 2 and Vertex 2, to see how they measure up against the fastest drives on the market. Read on for everything you need to know about the SF-1200 and the new wave of SandForce-based SSDs it has spawned.

Introducing the SF-1000 family
SandForce emerged from a self-imposed "stealth mode" a little more than a year ago when it first introduced (PDF) the SF-1000 SSD controller family. There are two members of the family thus far: the SF-1200 and its enterprise-oriented twin, the SF-1500. The two models use the very same silicon, with the only differences between them being more extensive validation for the SF-1500 and a firmware-level cap on the SF-1200's random-write performance. Without that cap in place, the SF-1500 can purportedly push 30,000 4KB random-write IOps—a threefold increase over the SF-1200.

The SF-1500's impressive random-write capacity suggests the controller's architecture was developed with enterprise-class workloads in mind. Enterprise-class SSDs tend to employ pricey single-level cell (SLC) flash, so it's no surprise to see that the SF-1000 family supports SLC memory. However, SandForce very much wants to bring less expensive multi-level cell (MLC) flash into the enterprise world. SLC memory has proven popular for server applications because it has ten times the write-erase-cycle endurance of the MLC flash typically found in consumer-grade SSDs. Few desktop users write more than a few gigabytes in a given day, but enterprise applications can generate mountains of data very quickly and continuously, and that'll burn through an SLC-based drive a lot slower than one with MLC flash.

To combat MLC's comparatively low write-erase ceiling, SandForce has focused on more efficiently using the limited cycles available. In addition to increasing the lifespan of consumer-grade drives based on the SF-1200, SandForce says its approach will enable drive makers to craft SSDs using the lower-grade flash memory usually reserved for thumb drives. This B-grade flash tops out at 2,000-5,000 write-erase cycles, while the fancier stuff generally lasts for 10,000 cycles.

Limiting the number of write-erase cycles the SF-1000 family consumes is handled by collection of techniques shrouded by a mysterious black box dubbed DuraWrite. Some form of compression undoubtedly plays a role in DuraWrite, although it may be more along the lines of block-level deduplication than the equivalent of a real-time WinZip. When pressed for details, SandForce Senior Marketing Manager Jeremy Werner would only say that SandForce is using the "right feature set," and that DuraWrite "in no way compromises data integrity."

We can tell you that DuraWrite is handled by the storage processor in hardware. SandForce says the SF-1000 family has a lot of built-in hardware acceleration, and that all data written to the flash is encrypted on the fly using a 128-bit AES algorithm. On-the-fly encryption can't be disabled, suggesting that it's a key component of the whole DuraWrite scheme. Drives are configured with a blank password by default, allowing them to behave like unencrypted SSDs unless users choose to set their own passwords.


SandForce's SF-1200 storage controller

Just how effective is DuraWrite? That depends on the nature of the data. SandForce says that program files are particularly vulnerable to its secret SSD shrink ray. Files that already contain compressed data, such as DivX movies, MP3s, or even JPEG images, will be less amenable to further belt-tightening.

According to SandForce, a Windows Vista and Office 2007 install that totals 25GB invokes just 11GB worth of flash writes thanks to DuraWrite. That's an impressive 56% reduction in writes, and close to what SandForce says you can expect with "typical" workloads. The company claims a write amplification factor of 0.5 for the controller, which means that a 1GB host write typically translates to only 500MB worth of flash writes. Windows will still see 1GB of data on the drive, but writing the data will have used up half the number of write-erase cycles than would have otherwise been necessary.

Covering host writes with half the number of flash writes is particularly impressive considering that all other SSDs have write-amplification factors of greater than 1—that is, that they use more write-erase cycles than would strictly be necessary to complete a host write. SSD controller makers generally don't publish write-amplification specifications, but Intel says its X25 series has factor of 1.1. SandForce suggests that a write amplification factor of 10 is typical for the industry.

In addition to the collection of techniques masked under DuraWrite, SandForce attempts to reduce flash wear further by being less aggressive with garbage collection. The SF-1000 series supports the TRIM command, which flags flash pages containing deleted data as available to be erased. A performance-oriented garbage-collection scheme might reclaim these deleted pages eagerly to avoid the effects of the block-rewrite penalty, sacrificing precious write-erase cycles in the process. SandForce's desire to write as little as possible to the flash dictates a less aggressive garbage-collection routine for the SF-1000 line.

The SF-1000 series attempts to use the write-erase cycles at its disposal efficiently, but it's considerably less efficient at providing storage capacity. SandForce reserves a whopping 28% of available flash capacity as "free area" that may be used only by the controller. Consumer-grade SSDs typically provision only 7% of their flash for free area, which is why 50 and 100GB SandForce drives are lining up against 60 and 120GB models based on competing controllers. Greater overprovisioning is par for the course in enterprise-class drives, though. Intel's X25-E, for example, allocates 27% of its flash capacity for spare area; the X25-M only sections off 7%.

Like the Intel controller, the SF-1000 family will reclaim additional spare area if you create a partition smaller than the total capacity of the drive right after a secure erase. If you'd rather move in the other direction, SandForce has developed a firmware revision for the SF-1200 that only allocates 7% of the drive's flash capacity as free space. This firmware is available to SandForce's drive partners. They can release the update to end users, incorporate it into existing drives, or even use it to create higher-capacity models.


The SF-1000 family's block diagram. Source: SandForce.

An SSD's free area is generally used as a working space for garbage-collection and wear-leveling algorithms. The SF-1000 series also employs it as a part of RAISE, which stands for Redundant Array of Independent Silicon Elements. Sound familiar? If you're thinking RAID, you're on the right track. SandForce says that RAISE is similar to RAID 5, although Werner fell short of confirming that actual parity bits are being calculated. Given the SF-1000 family's built-in encryption, RAISE may use some sort of hash/parity hybrid to achieve a measure of redundancy within a drive.

According to SandForce, RAISE reserves the capacity of one flash die in an SSD to store its pseudo-parity information. Rather than being housed on a single chip, this redundancy data is spread across the entirety of the drive. Using it, RAISE can recover entire pages or blocks worth of lost or corrupted data.

SandForce pairs RAISE with a robust error-correction engine and end-to-end CRC protection. This blend of elements is claimed to reduce the controller's Uncorrectable Bit Error Rate (UBER) dramatically, which SandForce says is important to bringing MLC memory into enterprise environments. The SF-1000 family's resiliency in this department is also key to bringing three-bit-per-cell and 2x-nano flash into the mainstream, the company says.

You'll note that we haven't made any mention of cache thus far. Unlike most SSD controllers, the SF-1000 family wasn't designed to be paired with a DRAM sidekick. SandForce points out that cache memory chips add to a drive's cost and increase its power consumption. Enterprise folks also prefer that cache be backed by a battery, which can further inflate costs. I suspect the controller has large internal caches to make up for the lack of a separate DRAM chip, but SandForce wouldn't provide details.

Without a separate cache, there's little need for the SF-1000 family to reach into 6Gbps Serial ATA territory. Remember that the controllers are only rated for maximum sequential read and write rates of 260MB/s, which nicely fit under the old SATA spec's 300MB/s ceiling.