Enter the SandForce

OCZ actually announced its SandForce partnership in November. The companies first met over the summer, and after giggling at the controller maker’s name the two decided to work together.


Use the SandForce

Now this isn’t strictly an OCZ thing, far from it. SandForce has inked deals with some pretty big players in the enterprise SSD market. The public ones are clear: A-DATA, OCZ and Unigen have all announced that they’ll be building SandForce drives. I suspected that Seagate may be using SandForce as the basis for its Pulsar drives back when I was first briefed on the SSDs. I won’t be able to confirm for sure until early next year, but based on some of the preliminary performance and reliability data I’m guessing that SandForce is a much bigger player in the market than its small list of public partners would suggest.

SandForce isn’t an SSD manufacturer, rather it’s a controller maker. SandForce produces two controllers: the SF-1200 and SF-1500. The SF-1200 is the client controller, while the SF-1500 is designed for the enterprise market. Both support MLC flash, while the SF-1500 supports SLC. SandForce’s claim to fame is thanks to their extremely low write amplification, MLC enabled drives can be used in enterprise environments (more on this later).

Both the SF-1200 and SF-1500 use a Tensilica DC_570T CPU core. As SandForce is quick to point out, the CPU honestly doesn’t matter - it’s everything around it that determines the performance of the SSD. The same is true for Intel’s SSD. Intel licenses the CPU core for the X25-M from a third party, it’s everything else that make the drive so impressive.

SandForce also exclusively develops the firmware for the controllers. There’s a reference design that SandForce can supply, but it’s up to its partners to buy Flash, layout the PCBs and ultimately build and test the SSDs.

Page Mapping with a Twist

We talked about LBA mapping techniques in The SSD Relapse. LBAs (logical block addresses) are used by the OS to tell your HDD/SSD where data is located in a linear, easy to look up fashion. The SSD is in charge of mapping the specific LBAs to locations in Flash. Block level mapping is the easiest to do, requires very little memory to track, and delivers great sequential performance but sucks hard at random access. Page level mapping is a lot more difficult, requires more memory but delivers great sequential and random access performance.

Intel and Indilinx use page level mapping. Intel uses an external DRAM to cache page mapping tables and block history, while Indilinx uses it to do all of that plus cache user data.

SandForce’s controller implements a page level mapping scheme, but forgoes the use of an external DRAM. SandForce believes that it’s not necessary because their controllers simply write less to the flash.

Index The Secret Sauce: 0.5x Write Amplification
Comments Locked

100 Comments

View All Comments

  • semo - Saturday, January 2, 2010 - link

    Anand,

    After reading your very informative SSD articles, I still found something new from GullLars. I think it would be useful to include the queue length when stating IOPS figures as it will give us more technical insight of the inner workings of the different SSD models and give hints to performance for future uses.

    When dial up was the most common way of connecting to the internet, most sites were small with static content. As connection and CPU speeds grew, so did the websites. Try going to a big ugly site like cnet with a 7-8 year old pc with even the fastest internet connection. I'm sure that all this supposed untapped performance in SSDs will be quickly utilized in future (probably because of inefficient software in most cases rather than for legit reasons). With virtualization slowly entering the consumer space (XP mode, VM unity and so on) as giant sandboxes and legacy platforms, surely disk queue lengths can only grow...
  • shawkie - Saturday, January 2, 2010 - link

    Anand,

    I agree that its also helpful to know what the hardware can really do. It seems to me that longer queue depths are becoming important for high performance on all storage devices (even hard disks have NCQ and can be put in RAID arrays). At some point software manufacturers are going to wake up to that fact. This is just like the situation with multi-core CPUs. I'm fortunate because in my work I not only select the hardware platform but also develop the software to run on it.
  • DominionSeraph - Monday, January 4, 2010 - link

    A jumble of numbers that don't apply to the scenario at hand is nothing but misleading.

    Savvio 15K.1 SAS: 416 IOPS
    1TB Caviar Black: 181.

    Ooooh... the 15k SAS is waaaay faster!! Sure, in a file server access pattern at a queue depth of 64. Try benchmarking desktop use and you'll find the 7200RPM SATA is generally faster.
  • BrightCandle - Friday, January 1, 2010 - link

    With which software and parameters did you achieve the results you are talking about? Everything I've thrown at my X25-M has shown results in the same park as Anand's figures so I'm interested to see how you got to those numbers.
  • GullLars - Friday, January 1, 2010 - link

    These numbers have been generated by several testing methods.
    *AS SSD benchmark shows 4KB random read and random write at Queue Depth (QD) 64, and x25-M gets in the area of 120-160MB/s on read and 65-85MB/s on write.
    *Crystal Disk Mark 3.0 (beta) tests 4KB random at both QD1 and QD32. At QD32 4KB random read, Intel x25-M gets 120-160MB/s, and at random write it gets 65-85MB/s here too.
    Here's to a screenshot of CDM 2.2 and 3.0 of x25-M 80GB on 750SB with AHCI in fresh state. http://www.diskusjon.no/index.php?act=attach&t...">http://www.diskusjon.no/index.php?act=attach&t...
    *Testing with IOmeter, parameters 2GB length, 30 sec runtime, 1 worker, 32 outstanding IO's (QD), 100% read, 100% random, 4KB blocks, burst lenght 1. On a forum i frequent most users with x25-M get between 30-40.000 IOPS with theese parameters. For the same parameters only 100% write the norm is around 15K IOPS on a fresh drive, and a bit closer to 10K in used state with OS running from the drive. x25-E has been benched to 43K random write 4KB IOPS.

    Regarding the practical difference 4KB IOPS makes, the biggest difference can be seen in the PCmark vantage test Application Launching. Such workloads involve reading a massive amount of small files and database listings, pluss logging all file access this creates. Prefetch and superfetch may help storage units with less than a few thousand IOPS, but x25-M in many cases actually get worse launch times with these activated. Using a RAM disk for known targets of small random writes make sense, and i've put my browser cache and temp files on a RAM disk even though i have an SSD.
    With x25-M's insane IOPS performance, the random part of most workloads is done whitin a second and what you are left waiting for is the loading of larger files and the CPU. Attempting to lower the load time of small random reads during an application launch from say 0,5 sec by running a superfetch script or read-caching with a RAMdisk makes little sense.
  • Zool - Friday, January 1, 2010 - link

    For a average user 4KB random performance are the most useless results out there. If a user encounters that much random 4KB read/writes than he need to change the operating system asap.
    And if something realy needs to randomly read/write 4KB files than your best bet is to cache it to Ram or make Ram disk i think.
  • LTG - Thursday, December 31, 2009 - link

    This statement seems really dubious - Isn't it in fact the opposite?

    The majority of storage space is taken up by things that don't compress well: Music, Videos, Photos, Zip style archives...

    Everything else is smaller.


    Anand Says:
    ==========================
    That means compressed images, videos or file archives will most likely exhibit higher write amplification than SandForce’s claimed 0.5x. Presumably that’s not the majority of writes your SSD will see on a day to day basis, but it’s going to be some portion of it.
  • DominionSeraph - Friday, January 1, 2010 - link

    That stuff just gets written once.
    Day-to-day operations sees a whole lot of transient data.
  • Shining Arcanine - Thursday, December 31, 2009 - link

    As someone else suggested, I imagine that the SATA driver could take all of the data written/read to the drive and transparently implement the algorithms on the much more powerful CPU.

    Is there anything to stop people from reverse engineering the firmware to figure out exactly what the drive in terms of compression is doing and then externalizing it to the SATA driver, so other SSDs can benefit from it as well? i.e. Are there any legal issues with this?
  • Anand Lal Shimpi - Friday, January 1, 2010 - link

    Patents :) SandForce holds a few of them with regards to this technology.

    Obviously that's up to the courts to determine if they are enforceable or not, SandForce believes they are. Other companies could license the technology though...

    Take care,
    Anand

Log in

Don't have an account? Sign up now