For the past six months I've been working on research and testing for the next major AnandTech SSD article. I figured I had enough time to line up its release with the first samples of the next-generation of high end SSDs. After all, it seems like everyone was taking longer than expected to bring out their next-generation controllers. I should've known better.

At CES this year we had functional next-generation SSDs based on Marvell and SandForce controllers. The latter was actually performing pretty close to expectations from final hardware. Although I was told that drives wouldn't be shipping until mid-Q2, it was clear that preview hardware was imminent. It was the timing that I couldn't predict.

A week ago, two days before I hopped on a flight to Barcelona for MWC, a package arrived at my door. OCZ had sent me a preproduction version of their first SF-2500 based SSD: the Vertex 3 Pro. The sample was so early that it didn't even have a housing, all I got was a PCB and a note:

Two days isn't a lot of time to test an SSD. It's enough to get a good idea of overall performance, but not enough to find bugs and truly investigate behavior. Thankfully the final release of the drive is still at least 1 - 2 months away, so this article can serve as a preview.

The Architecture

I've covered how NAND Flash works numerous times in the past, but I'll boil it all down to a few essentials.

NAND Flash is non-volatile memory, you can write to it and it'll store a charge even if you remove power from the device. Erase the NAND too many times and it will stop being able to hold a charge. There are two types of NAND that we deal with: single-level cell (SLC) and multi-level cell (MLC). Both are physically the same, you just store more data in the latter which drives costs, performance and reliability down. Two-bit MLC is what's currently used in consumer SSDs, the 3-bit stuff you've seen announced is only suitable for USB sticks, SD cards and other similar media.

Writes to NAND happen at the page level (4KB or 8KB depending on the type of NAND), however you can't erase a single page. You can only erase groups of pages at a time in a structure called a block (usually 128 or 256 pages). Each cell in NAND can only be erased a finite number of times so you want to avoid erasing as much as possible. The way you get around this is by keeping data in NAND as long as possible until you absolutely have to erase it to make room for new data. SSD controllers have to balance the need to optimize performance with the need to write evenly to all NAND pages. Conventional controllers do this by keeping very large tables that track all data being written to the drive and optimizes writes for performance and reliability. The controller will group small random writes together and attempt to turn them into large sequential writes that are easier to burst across all of the NAND devices. Smart controllers will even attempt to reorganize data while writing in order to keep performance high for future writes. All of this requires the controller to keep track of lots of data, which in turn requires the use of large caches and DRAMs to make accessing that data quick. All of this work is done to ensure that the controller only writes data it absolutely needs to write.

SandForce's approach has the same end goal, but takes a very different path to get there. Rather than trying to figure out what to do with the influx of data, SandForce's approach simply writes less data to the NAND. Using realtime compression and data deduplication techniques, SandForce's controllers attempt to reduce the size of what the host is writing to the drive. The host still thinks all of its data is being written to the drive, but once the writes hit the controller, the controller attempts to reduce the data as much as possible.

The compression/deduplication is done in realtime and what results is potentially awesome performance. Writing less data is certainly faster than writing everything. Similar technologies are employed by enterprise SAN solutions, but SandForce's algorithms are easily applicable to the consumer world. With the exception of large, highly compressed multimedia files (think videos, MP3s) most of what you write to your HDD/SSD is pretty easily compressible.

You don't get any extra space with SandForce's approach, the drive still has to accommodate the same number of LBAs as it advertises to the OS. After all, you could write purely random data to the drive, in which case it'd behave like a normal SSD without any of its superpowers.

Since the drive isn't storing your data bit for bit but rather storing hashes, it's easier for SandForce to do things like encrypt all of the writes to the NAND (which it does by default). By writing less, SandForce also avoids having to use a large external DRAM - its designs don't have any DRAM cache. SandForce also claims to be able to use its write-less approach in order to use less reliable NAND, in order to ensure reliability the controller actually writes some amount of redundant data. Data is written across multiple NAND die in parallel along with additional parity data. The parity data occupies the space of a single NAND die. As a result, SandForce drives set aside more spare area than conventional controllers.

What's New

Everything I've described up to this point applies to both the previous generation (SF-1200/1500) and the new generation (SF-2200/2500) of SandForce controllers. Now let's go over what's new:

1) Toggle Mode & ONFI 2 NAND support. Higher bandwidth NAND interfaces mean we should see much better performance without any architectural changes.

2) To accommodate the higher bandwidth NAND SandForce increased the size of on-chip memories and buffers as well as doubled the number of NAND die that can be active at one time. Finally there's native 6Gbps support to remove any interface bottlenecks. Both 1 & 2 will manifest as much higher read/write speed.

3) Better encryption. This is more of an enterprise feature but the SF-2000 controllers support AES-256 encryption across the drive (and double encryption to support different encryption keys for separate address ranges on the drive).

4) Better ECC. NAND densities and defect rates are going up, program/erase cycles are going down. The SF-2000 as a result has an improved ECC engine.

All of the other features that were present in the SF-1200/1500 are present in the SF-2000 series.

The Unmentionables: NAND Mortality Rate
Comments Locked

144 Comments

View All Comments

  • bigboxes - Thursday, February 17, 2011 - link

    Anand, I know you mentioned read/write and having your data a year after your last write. Does the future of SSD going to allow long-term storage on these devices? Will our data last longer than a year in storage or in use as read-only? I figured when cost went down and capacity went up that we'd start seeing SSD's truly replace HDD as the medium of long-term storage. Any insights into the (near) future?
  • marraco - Thursday, February 17, 2011 - link

    We need a roundup of SATA 6Gb controllers on AMD and Intel.

    How do added cards perform against integrated SATA 6Gb?
  • jwilliams4200 - Thursday, February 17, 2011 - link

    Here are the numbers given in the AS-SSD incompressible write speed chart for
    SF-2500 (clean, dirty, after TRIM):

    229.5 MB/s 230.0 MB/s 198.2 MB/s

    Logically, I would expect the dirty number to be less than or equal to the after-TRIM number. Is there a typo here?
  • jwilliams4200 - Thursday, February 17, 2011 - link

    Anand:

    Could you run the data files for your 2011 storage bench (heavy and light cases) through a couple of standard compression programs and report the compressed and uncompressed file sizes? That would be useful information to know when evaluating the performance of Sandforce SSDs on your storage benchmark.
  • Chloiber - Thursday, February 17, 2011 - link

    Indeed, this would be an important piece of information.
  • mstone29 - Thursday, February 17, 2011 - link

    It's been out for a few weeks and the performance is on par w/ the OCZ V3.

    Does OCZ pay better?
  • Anand Lal Shimpi - Sunday, February 20, 2011 - link

    We're still waiting for our Corsair P3 sample, as soon as we get it you'll see a review :)

    Take care,
    Anand
  • gotFrosty - Thursday, February 17, 2011 - link

    I personally will never buy from OCZ ever again... The way that they are treating the customers (including me) with this shady marketing scandal. Never will I deal with them. Never. Who is to say that they will not pull this crap somewhere down the line again.
    They changed the way they manufactured the drives. Ok thats well and fine, but at least change the product number/name whatever so that end users can distinguish between the products. Right now I'm sitting with a drive that they can't tell me whether its the slower 25nm or the 34. What kind of crap is that. I can't tell either because my build is waiting on the P67's to get fixed. Oh and to still market the drive as the same Vertex 2 that got all the great reviews.
    Lets just say I'm a little irritated with the whole scheme. I feel robbed.
  • Mr Perfect - Friday, February 18, 2011 - link

    Just stumbled across the whole Vertex 2 issue myself. Link to an explanation of what Frosty is mad about below:

    http://www.storagereview.com/ocz_issues_mea_culpa_...

    I'm not impressed with OCZ right now. Anand, any way you could talk to OCZ about this issue?
  • db808 - Thursday, February 17, 2011 - link

    Hi Anand,

    Thanks for another great SSD article. I own a OCZ Vertex 2 for my personal use, and I have been doing some testing of SSDs for work use.

    I have a questions/comments that will probably stir up some additional discussion.

    1) You present a good description on your personal workload write volume at 7GB / day, and how that even with that heavy amount of activity, the SSD life expectancy is much greater than the warranty period.

    Did you ever try to correlate this with the life expectancy (or read and write activity) reported by the SSD using the SMART attributes?

    In my first 3 weeks using a new Vertex 2 SSD as my boot disk, I averaged over 18 GB/day of write activity ... much greater than your reported 7 GB/day.

    I can not say for other Sandforce implementations, but the OCZ Vertex 2 does report a wide variety of useful statistics via the vendor-specific SMART statistics. These statistics can be displayed using the OCZ Toolbox:
    http://www.ocztechnologyforum.com/forum/showthread...

    I don't know if other SSD vendors have similar information. Crystal Disk Info (http://crystalmark.info/software/CrystalDiskInfo/i... also displays and formats many of the vendor-specific fields, but I don't know if it specifically displays the extended info for specific SSDs.

    Using the OCZ Toolbox (which works with all OCZ Sandforce SSDs), you can display a lot of interesting information. Here is the statistics for the first 3 weeks of usage from my SSD. No real benchmarking, just doing the initial install of Windows 7 64-bit, and then installing all the apps that I run. My 120 GB SSD is about half full, including a 8 gb page and 8 gb hiberbate file. I also relocated my Windows search index off the SSD. Temp IS on the SSD (my choice).

    SMART READ DATA
    Revision: 10
    Attributes List
    1: SSD Raw Read Error Rate Normalized Rate: 100 total ECC and RAISE errors
    5: SSD Retired Block Count Reserve blocks remaining: 100%
    9: SSD Power-On Hours Total hours power on: 351
    12: SSD Power Cycle Count Count of power on/off cycles: 84
    171: SSD Program Fail Count Total number of Flash program operation failures: 0
    172: SSD Erase Fail Count Total number of Flash erase operation failures: 0
    174: SSD Unexpected power loss count Total number of unexpected power loss: 19
    177: SSD Wear Range Delta Delta between most-worn and least-worn Flash blocks: 0
    181: SSD Program Fail Count Total number of Flash program operation failures: 0
    182: SSD Erase Fail Count Total number of Flash erase operation failures: 0
    187: SSD Reported Uncorrectable Errors Uncorrectable RAISE errors reported to the host for all data access: 0
    194: SSD Temperature Monitoring Current: 1 High: 129 Low: 127
    195: SSD ECC On-the-fly Count Normalized Rate: 100
    196: SSD Reallocation Event Count Total number of reallocated Flash blocks: 0
    231: SSD Life Left Approximate SDD life Remaining: 100%
    241: SSD Lifetime writes from host Number of bytes written to SSD: 384 GB
    242: SSD Lifetime reads from host Number of bytes read from SSD: 832 GB

    For my first 3 weeks, using the PC primarily after work and on weekends, I averaged 18.2 GB/day of write activity ... or 384 GB total.

    You may want to re-assess the classification of your 7 GB/day workload as "heavy". I don't think my 18.2 GB/day workload was extra heavy. My system has 8 GB of memory, and typically runs between 2-3 gb used, so I don't believe that there is a lot of activity to the page file. I have a hibernate file because I use a UPS, and it allows me to "resume" after a power blip vs. a full shutdown.

    Well ... back to the point .... The OCZ toolbox reports an estimated remaining life expectancy. I have not run my SSD long enough to register a 1% usage yet, but I will be looking at what volume of total write activity finally triggers the disk to report only 99% remaining life.

    I don't know if the OCZ Toolbox SMART reporting will work with non-OCZ Sandforce-based SSDs.

    If you can get a life expectancy value from your Sandforce SSDs, it would be interesting to see how it correlates with your synthetic estimates.

    Thanks again for a great article!

Log in

Don't have an account? Sign up now