This is an announcement we have eagerly been waiting for. LSI gave us a short overview of their third generation controller at CES 2012 but it was merely a heads up that the third generation was in the works. Back then the development was at a very early stage and details were scarce; basically LSI said that performance will be improved but they are not even set on the interface. Now, two years later, LSI is finally making the third generation SandForce controllers official. Please meet the SF3700.

While the SF3700 takes advantage of the same technologies as its predecessor (such as DuraWrite and RAISE), it has been designed from scratch. SandForce wasn't fully satisfied with the SF-2200 series as they had to make compromises and rely on the architecture of SF-1200 series to get the product to market in time. This is one reason why we saw the same sort of worst case scenario behavior persist between SF-1200 and SF-2200 drives as the two shared the same fundamental architecture. The SF3700 is a complete departure from the previous two designs. It's interesting to note that this isn't the first time we've seen a complete redesign for the latest generation of a SSD controller. Intel went through the same process last year with the introduction of their DC S3700 SSD.

Now that SandForce is under the LSI umbrella, its designs seem a little more forward looking. The SF3700 is a more modular design than its predecessors. The front end, core and back end of the SoC are all modular. Adding support for new types of NVM (e.g. 3D NAND) should be far easier, not to mention the flexibility in adapting to new interface standards. Given that we're in a transition period between SATA and PCIe, modularity on the front end will come in handy as we start looking at interfaces beyond PCIe gen 2.

On the back end interface side, the SF3700 has nine NAND channels (I'll get to that soon) that are compatible with both Toggle-Mode and ONFI NAND. SandForce has always supported a variety of different NAND configurations and this is the case with SF3700 too. You can pretty much use any NAND (including TLC) that is currently in the market and as outlined above SandForce can and will quickly adapt to NAND changes in the future. Similar to earlier SandForce controllers, the SF3700 doesn't use any extrernal DRAM either -- the NAND mapping table and other crucial bits of data are stored in the controller's internal SRAM.

It's impossible to ship a modern SSD controller without talking about PCIe these days. Thankfully, the SF3700 supports both SATA 6Gbps and PCIe 2.0 x4. That's a single silicon offering with support for both interfaces. The interface is selectable during manufacturing at the drive level. End users won't be able to switch between interfaces, but drive makers can quickly shift production between SATA and PCIe drives all with the same silicon.

The SF3700 Family SKU SF3719 SF3729 SF3739 SF3759 Market Entry Client Mainstream Client Enthusiast Client Value Enterprise Enterprise Caching Enterprise Storage Interface SATA + PCIe x2 SATA + PCIe x2 PCIe x4 Scalable PCIe Suggested Form Factors M.2 M.2 M.2 & 2.5" HHHL

There are four SKUs in the SF3700 family. The entry-level SKU, SF3719, is meant for budget PCs. It shares the same SATA 6Gbps and PCIe 2.0 x2 interfaces as the SF3729 but has fewer supported firmware features (no word on what these are, unfortunately) and is generally optimized for power over performance. The SF3729 is something you should expect to find in Ultrabooks and other premium notebooks. The SF3739 is the go-to SKU for enthusiasts. It drops SATA support in favor of two more PCIe lanes (x4) and also brings full power-loss protection. It will of course be up to the OEM whether they use the power-loss protection or not, but at least it's supported because with the SF-2200 series it was limited to enterprise SKUs. The SF3759 will be the only SKU at launch aimed at the enterprise market, and it'll ship with the usual set of enterprise specific features.

The SF3700 is still a few months away from retail availability, but LSI did provide us with some performance targets for its reference drive based on the controller (256GB/512GB).

LSI SandForce SF3700 Expected Performance (Worst Case) Interface PCIe 2.0 x4 SATA 6Gbps Random Read 150K IOPS 94K IOPS Random Write 81K IOPS 46K IOPS Sequential Read 1800MB/s 550MB/s Sequential Write 1800MB/s 502MB/s

With SATA we are still limited by the 6Gbps link speed, but the PCIe 2.0 x4 allows for much higher performance. Note that all of the performance scores are reported using high entropy data, which should defeat SandForce's real-time compression/data de-dupe engines. Performance can be even higher if you're dealing with low entropy data. It's very clear that LSI is now optimizing for the worst case data scenario rather than counting on some amount of compressibility in the data it encounters.

LSI's targets are far from humble as it's shooting for 1.8GB/s for the PCIe 2.0 x4 version, which is only 200MB/s short of the theoretical 2GB/s limit. LSI is expecting to be able to hit these performance targets, but it's not quite there yet. Based on LSI's own tests, they've been able to achieve 1.45GB/s sequential read speed with early firmware. Power consumption specs have not been finalized either but LSI said that currently the power consumption is about 4W, which they are trying to bring down by optimizing the firmware. Idle power consumption should be even lower than SF-2200's and support for low idle power technologies such as DevSleep are present.

IO consistency and low latency operation are both priorities for the SF3700. The SF-2000 family was one of the more consistent set of performers from the previous generation, it's good to see LSI prioritizing this going forward though.

Improved DuraWrite

DuraWrite is what made SandForce's previous controllers unique. DuraWrite is SF's proprietary technology that minimizes NAND writes by reducing writes on the fly through real-time compression and/or data de-duplication. The SF3700 comes with improved DuraWrite and LSI is claiming noticeably better data reduction capability. In other words, the SF3700 should be able to compress low entropy data even more and feature lower write amplification as a result, which in turn results in higher endurance and also better performance at small capacities with less NAND die. High entropy data won't see huge improvements in performance based on the algorithm alone.

Two-level RAISE

SF's RAISE (Redundant Array of Independent Silicon Elements) technology also gets updated with the SF3700. The original RAISE only protected against a single page or block failure but the SF3700 offers a second level RAISE for more protection. With the second level RAISE enabled, the drive can withstand a failure of multiple pages and blocks or up to a full die. The downside of course is that the new RAISE also needs more capacity for redundancy, which in this case is two die. In case of a die failure, the drive can either allocate another die by reducing the over-provisioning or it can switch back to first level RAISE (i.e. the original RAISE).

The new RAISE also solves the mystery of the ninth NAND channel. OEMs can use the ninth channel to overcome the capacity reduction that RAISE causes. OEMs no longer have to decide between higher capacity and RAISE as they can use the ninth channel for RAISE and still have eight left for actual user data (in reality the RAISE workload is equally distributed across all nine channels). SandForce OEMs can build a drive with for example 288GiB of NAND, which can then be sold as a 256GB drive with default over-provisioning and RAISE enabled (in this case, second level RAISE would take 32GiB and the 7% over-provisioning would come from the Gibibyte to Gigabyte translation). Obviously the redundancy data is not physically located in the ninth NAND package as it's spread across all the die.

The final new feature of RAISE is Fractional RAISE. The problem with the original RAISE was that using a full die for redundancy wasn't efficient. For example in a 64GiB SSD that would have been 1/8 (8GiB) of all the capacity and the usable capacity would have ended up being around 56GB, which isn't very attractive from a marketing perspective. Fractional RAISE is designed for small capacities with low die-count and it uses less than a full die, so OEMs can use RAISE without having to reduce the usable capacity to an odd number. Of course Fractional RAISE will not protect against a full die failure but it's still better than what small SSDs had before (i.e. nothing).

SHIELD

The final new feature of the SF3700 controller is SHIELD, LSI's updated error correction engine. One side effect of moving to lower process geometries with NAND is an increase in the number of errors you encounter when trying to read from or program to a device. The error rate also increases over the life of the NAND. The reality is that the ECC algorithm you'll need at the beginning of your drive's life is going to be different than what you need near the end. Shield works by cycling through a number of different ECC algorithms to find the optimum balance between performance and reliability. Early on when accesses come back error free, Shield defaults to very low latency ECC. If the error rate starts to climb, Shield will switch to other more sophisticated forms of ECC - trading off latency for reliability.

The same tradeoff can apply to the amount of area you use to store ECC data. SF3700 offers the option for drives to vary the percentage of each NAND page reserved for ECC data on the fly. This can theoretically give you more capacity early on in the life of your drive, and more endurance as your NAND ages. Obviously you'll need OS support in order to have a drive with variable capacity, so don't expect this to apply to most consumer platforms today.

SandForce expects the combination of Shield and adaptive code rate will allow drives to go from ~3K program/erase cycles to 18K cycles with 10nm class NAND.

Final Thoughts and Availability

There is a ton of potential in SF3700. If LSI is able to get the performance to the expected level, the SF3700 will likely be the fastest consumer-orientated PCIe solution we've seen. LSI's main goal with the SF3700 was to design a controller that takes the current and upcoming challenges of NAND into account. As we move to smaller lithography NAND, features like DuraWrite and RAISE become even more important because NAND endurance, reliability and performance get lower.

I truly hope that LSI/SandFoce has learned from the mistakes of SF-2200 and they'll validate the product enough before releasing it to the public. The SandForce brand image took a huge hit thanks to issues associated with SF-2200 (not to mention the outright denial of aforementioned issues for months). A repeat of that with the SF3700 is out of the question if this brand is to survive. I do expect the situation to be very different this time around, which is likely part of the reason why we're hearing about drives in the market in the first half of 2014 - 3.5 years after the introduction of the SF-2000 family of controllers. The SF3700 will be built under LSI's supervision and with LSI's resources as well, both of which should hopefully make for a better outcome than previous SF designs.

There is still a lot of work to do since the firmware is still in an early stage and to be honest, I wouldn't be surprised if we don't see drives in retail until closer to the middle of next year. As long as the end result is a stable, well validated product, I'm fine with that.