Understanding LSI SandForce SF3700 Series Controller
3rd Generation SandForce, 1st Generation LSI SandForce
When we look at the SSD industry today, there are few companies more well known than LSI SandForce. LSI SandForce drives power over 35% of the SSDs currently sold on the market today so when these guys introduce a new SSD controller more than two years after the introduction of their last generation product, it’s definitely time to take notice.
Ever since January of this year at CES, we’ve been hearing rumors of the mythical new LSI SandForce SSD controller (aka “Project Griffin”), but it wasn’t until June at Computex when we first confirmed of its existence via one of LSI SandForce’s partners. As you may have gathered from the LSI SandForce press release a couple days ago, LSI SandForce recently introduced the SF3700 series SSD controllers, which is the successor to the long lived SF-2000 series controllers.
The LSI SandForce SF3700 Series Controller
Whereas the SandForce SF-2000 series controller was more of an evolution of the SandForce SF-1000 series, the LSI SandForce SF3700 series is built completely new from the ground up. While a simple evolution of the SandForce SF-1000 series lineup allowed SandForce to come to market faster with the SandForce SF-2000 series, the SandForce SF-2000 series was not much more than a faster SandForce SF-1000 series product. Both controllers shared the same performance profiles and unfortunately the same shortcomings – something SandForce simply wasn’t too happy with.
The LSI SandForce SF3700 series on the other hand is based off a completely new controller design which gives it a completely new performance profile. LSI SandForce will still leverage existing SandForce IP (Durawrite, RAISE, etc.) that have made SandForce controllers the uniquely competitive product that it is; however, LSI SandForce claims that the SF3700 will fix all of the shortcomings inherent in previous generation SandForce SF-1000 and SF-2000 controllers. Of course these existing SandForce features have received some major improvements to deal with the problem of lower endurance, lower cost NAND that’s become more and more commonplace on the market, but we’ll discussing these technologies (as well as a new technology) later in the article.
A major aspect of the completely new design is the implementation of a modular design into the LSI SandForce SF3700 controller. Below we have a very high level diagram of the controller layout. Looking back at the SandForce SF-1000 and SF-2000 series controllers, SandForce seems to like having a fairly long lifecycle with their controllers and modularity within the LSI SandForce SF3700 would certainly help extend the controller’s shelf life. Having modularity gives SandForce the ability to quickly adapt to new interface standards as well as advancements in NAND technology – something that would’ve been beneficial during the move from the SandForce SF-1000 to SF-2000 controllers due to the increased bandwidth available via SATA 6Gb/s a couple years back.
Let’s discuss the LSI SandForce SF3700’s modular design in more detail…
Starting at the front end of the LSI SandForce SF3700 controller, we can see that SandForce already includes support for both SATA 3 6Gb/s AHCI as well as PCIe Gen 2 x4 NVMe & AHCI. This covers all current and upcoming interface standards (remember, even the upcoming M.2 aka NGFF relies on the PCIe or SATA interface), and the modular aspect of the front end will allow for changes to be made for upcoming interface standards should a newer, far superior interface materialize.
At the core of the LSI SandForce SF3700, we get all the essential functions of the controller such as the encryption engines, the garbage collection engines, the DuraWrite engine, etc. Unlike other SSD controllers on the market, SandForce continues to store NAND mapping tables right in the controller itself. According to SandForce, this results in less power consumption and more importantly frees up space on the PCB, which can allow partners to either integrate more ICs on their PCBs or reduce PCB sizes to reduce manufacturing cost. Additionally, LSI SandForce has confirmed that SF3700 will support all the latest real time encryption techniques though its flash translation layer including AES-256, TCG Opal and Microsoft’s eDrive.
At the back end of the LSI SandForce SF3700, we have the NAND interface. Unlike the SandForce SF-2000 series controller, the backend includes 9 channels rather than 8. The 9th channel was actually implemented due to an enhancement of RAISE and is an option for SSD partners to implement, but we’ll be covering RAISE in more detail later in the article. Speaking of RAISE, the back-end also houses SHIELD, which we’ll be getting into later on as well. As for NAND support, according to LSI SandForce, the SF3700 series controller will support pretty much anything available on the market today including both ONFI and Toggle SLC, MLC, eMLC, TLC NAND down to the 1x/1y nm fabrication process. At AIS, LSI SandForce displayed SF3700 based working reference samples using both Toshiba/SanDisk and IMFT NAND.
Similar to what we saw in the last generation, the LSI SandForce SF3700 will generally go to SSD partners in a complete package with firmware and controller hardware ready to go. When asked if custom firmware implementations were possible in this generation, SandForce told us that the arrangements would be similar to what we saw in the last generation controllers, so it’s possible that SSD partners *cough Intel* could get more customized, jointly developed firmwares. SandForce hasn’t gone too into detail with us here, but it’s possible that the challenge with custom firmware at the SSD partner level is that the SF3700 series controller runs off of a 11 core custom built processor (not x86, not ARM, etc.) that powers the entire operation.
The SandForce SF3700 Performance
Over the past couple generations of SandForce controllers, SandForce has always taken flak for marketing their drives using best case scenario performance, or performance when reading or writing 100% compressible (0% entropy) data. For SandForce drives, working with highly compressible data allows SandForce’s DuraWrite technology to compress/decompress data on the fly, reducing the amount of data that needs to be read or written to/from flash thereby increasing performance. Unfortunately in previous generation SandForce SF-1000 and SF-2000 controllers, when reading or writing incompressible or 100% entropy data, performance drops significantly.
With the new LSI SandForce SF3700 series, SandForce is moving away from marketing at the best case scenario and instead are marketing at the worst case (aka 100% entropy). Very impressively then, we can see that the LSI SandForce SF3700 256GB is expected to be capable of up to 1,800MB/s reads and hopes to achieve 1,800MB/s writes as well even at worst case scenario. This means that LSI SandForce SF3700 powered SSDs can potentially be even faster when working with 100% compressible data. During my briefing, I was originally told that the LSI SandForce SF3700 series was currently not yet capable of 1,800MB/s reads using current pre-production firmware, but at LSI’s AIS event, working LSI SandForce SF3700 powered reference SSDs have already been demonstrated to be capable of pulling 1,800MB/s reads.
While LSI SandForce has improved on raw sequential performance in this generation, consistent performance and consistent low latency performance has also been a key focus with the SF3700 series controller. Over the past couple months, SSD performance consistency has become more and more important in our testing as having a fast average performance doesn’t necessarily mean that the SSD is capable of getting that average performance level all the time. Sometimes it could be faster, sometimes it could be slower. When the variation between the slow and the fast is large, then that could lead to a lower quality of service especially for those who constantly demand a certain level of performance. SandForce has assured us that the LSI SandForce SF3700’s aggressive garbage collection techniques will allow LSI SandForce SF3700 powered SSDs to be both low latency and high consistency even as the SSD transitions itself into steady state.
The LSI SandForce SF3700 Technologies
Improved Durawrite Data Reduction
As a carryover from SandForce SF-2000 series controllers, DuraWrite compresses or decompresses data on the fly in order to give the SSD a whole host of improvements that ultimately lead to higher performance, longer flash endurance, lower costs, and longer battery life/lower energy usage. With the launch of the LSI SandForce SF3700, SandForce claims to have improved their DuraWrite algorithms in order to further compress data and improve garbage collection.
Improved RAISE (Redundant Array of Independent Silicon Elements)
In addition to improvements in DuraWrite, LSI SandForce has also an improved RAISE (Redundant Array of Independent Silicon Elements). The first generation RAISE, or RAISE level one, operates a bit like RAID 5 in traditional RAID setups. However, it’s only capable of using up to one die to protect pages and blocks by using a type of parity to preserve data. While this is a decent form of protection for most failures, what happens when an entire die fails?
That’s where RAISE level 2 comes in. Instead of using only one die, you can use two dies for parity so that even if an entire block fails, you can still recover the data from parity. In the event of a die failure and a die re-allocation, you can then either have the remaining RAISE die function as RAISE level 1 or you can pull a die from over-provisioned space and keep RAISE level 2 at the expense of performance. As I mentioned earlier, the LSI SandForce SF3700 is a 9 channel controller. The 9th channel is designed to allow for an extra die to be dropped into the SSD to allow the use of two dies for RAISE level 2 without additionally reducing SSD capacity. That said, because there is an extra die onboard and user addressable space along with over-provisioning/ECC space are shared across all dies, some level of performance benefit may result as well.
Additionally, RAISE now also includes the flexibility of using partial dies for redundancy. Obviously, it’s not going to guard against full die failures, but gives a small amount of protection for smaller SSDs that simply can’t afford to spend a die’s worth of space for RAISE (think 32GB/64GB SSD).
SHIELD Error Correction Technology
In order to deal with lower endurance NAND flash as a result of finer fabrication processes, the eventual move to 3 bit per cell MLC NAND and beyond, LSI SandForce has also introduced SHIELD advanced error correction with the SF3700 series controllers.
The way flash works is that at the BOL (beginning of its life), flash is generally fast, which means you probably won’t need a whole lot of ECC (Error Correcting Code). At this point, the ECC algorithms don’t do much so it’s unnecessary to provision ECC with a ton of spare area. Instead, more spare area is put into over-provisioning to increase performance.
As the SSD gets used, the NAND flash begins to return increasing amounts of errors, so SHIELD will adapt to the errors, make ECC more aggressive and pull some spare area provisioned to over-provisioning into ECC spare area. This reduces performance, but prevents the SSD from suffering a catastrophic failure.
As the SSD continues on towards EOL (End of Life), the NAND flash begins to return more and more errors above the spare area ECC was provisioned for. ECC then is capable of re-provisioning spare area associated with over-provisioning, further reducing performance in the name of preventing the entire SSD from suffering a catastrophic failure.
The LSI SandForce SF3700 series controllers will come in four different models according to the expected usage scenario of the SSD it’ll be powering.
At the entry level we get the LSI SandForce SF3719. It’s the slowest in the pack and supports the fewest features, but it’s power optimized and the least expensive controller. The controller will include support for both SATA and PCIe 2x interfaces.
Slightly above the LSI SandForce SF3719 at the mainstream level, we get the LSI SandForce SF3729, which is still fairly power optimized, supports some more features, and is a bit pricier, but has a higher level of performance. Similar to the LSI SandForce SF3719, the LSI SandForce SF3729 will support both SATA along with PCIe 2x interfaces.
Above that we get the enthusiast/entry enterprise level LSI SandForce SF3739, which should be the controllers used in the highest performing consumer oriented SSDs. These are high performance SSDs that cost a bit more, but are fast and have all the features enthusiasts and business users are looking for. Given that it’s faster, it needs a higher bandwidth interface so it supports the PCIe 4x. For business users, it also has full power fail protection.
Finally, we also get the LSI SandForce SF3759, which is going to be the top tier, fastest, most feature filled SSD controller for the LSI SandForce SF3700 series controllers. The LSI SandForce SF3759 will generally be used for enterprise applications and will include the entire array of enterprise features. It also has scalable PCIe, which should allow SSD partners who put multiple LSI SandForce SF3759 controllers into RAID arrays to get even higher performance than capable on a single LSI SandForce SF3759 controller.
From what I’ve seen so far, unless somebody does something before these things go into mass production (Samsung?, Marvell?, LAMD?), the LSI SandForce SF3700 series controllers will be the most advanced SSD controller available and will be as disruptive to the market as the SandForce SF-2000 series controllers were when it was first announced a bit more than two years ago. At 1,800MB/s reads/writes even in the worst case scenario on a single controller, it should easily dominate the entire high performance SSD market and I definitely see LSI SandForce gaining massive marketshare on the PCIe SSD space whether it’s M.2, full size PCIe card or the upcoming enterprise oriented SFF-8639 interface. There’s simply no competition announced thus far.
That said, it does seem like LSI SandForce has some bugs to work out on the new controller. Demo units at AIS 2013 still seem to be in the firmware development phase and seem to have an overheating issue. I’m told the algorithms for thermal throttling, power save states, etc. haven’t yet been implemented yet, but they are in the pipeline with no less than 100 firmware engineers making it happen. There’s still quite a bit of time between now and the end of 1H 2013, so hopefully LSI SandForce gets things worked out between now and then. Seems like the controller hardware itself is already complete, it can already hit its performance targets, reference designs are ready, and partners have already received reference designs to work with, so the future looks pretty bright.