Enmotus Blog

An SSD Renaissance

Posted by Andy Mills on Jan 22, 2021 9:16:17 AM
Find me on:

Revitalizing old ideas seems to be the new marketing trend of the day. Our family are the proud owners of a BMW Mini, a reminder of our first Mini we acquired second hand in Wales in 1979. Of course, when we get in the new Mini, it’s nothing like the original. No more squeezing past the exceptionally large steering wheel into the driver’s seat, feeling like you are sitting on the floor and no more rocking back and forth helping the car get up those steep Welsh hills. And what a difference a 1.6 liter with turbo makes versus our original 850 cc engine! It may look similar on the outside, but on the inside and how it handles, it's a very different story.

So what's this got to do with SSDs and Renaissance you ask? Thanks to new innovative flash chips (NAND devices), solid state disks (SSDs) are going through their own renaissance. In August of this year, Enmotus will be launching the industry’s first consumer class of SSD using a combination of single-level-cell (SLC) - yes good old fashioned high endurance SLC - and newer quad-level-cell (QLC) flash technology in a single smart NVMe M.2 SSD. We are bringing back SLC SSDs for consumers – but with a twist. Read on.

Single Level Cell SSDs

There are many great articles out there explaining the differences between SLC, MLC, TLC and QLC SSDs, so we are not going to cover that here (I've added one such link at the end of this article just in case you want to dig a little deeper). What we are concerned with here are the overall characteristics of SSDs and how they have evolved over time - some good and some not so good.

No alt text provided for this image

On the good side, SSDs are now larger and cheaper than ever before. We are now seeing 1-2TB capacities come within range of the average consumer's budgets and successfully replacing hard disk drives (HDDs) in modern notebook PCs. This bodes well for the SSD industry's pledge to obsolete HDDs from most consumer PCs over the next few years. If we'd stuck with SLC, we'd still be limited to small capacities and prices approaching $1000 for anything large enough to handle modern consumer PC operating systems and applications. So no surprises that the industry moved to 3D multi-level cell and SLC didn't survive the cost challenges of consumer devices, even though endurance and wear leveling was excellent.

On the not-so-good side, multi-cell SSDs and 3D NAND are seeing quite a drop in performance at the raw NAND chip level, taking up to 3-5 times longer to write to the individual cells versus their original SLC cousins. In fact, if you were able to write directly to QLC, the performance is likely to be much worse than a rotating mechanical based HDD. Worse still, the individual cells are wearing out much faster. Compared to the original SLC, up to 100x worse. By wear out, we literally mean you can't write to the SSD anymore as all the writable bits got used up. With MLC and TLC, we've been able to successfully argue that most of the other components in an average consumer PC will be dead by the time an SSD stops working. But that changed with the introduction of the latest QLC and proposed five-level or penta-level cell (PLC) NAND devices, where individual cells can tolerate as low as a few hundred writes at best. A far cry from the original 80,000-100,000 cycles of the original SLC devices less than 10 years ago.

So it's like saying my new Mini looks great, performs great, but I only get to drive it for 1000-1500 miles before it dies and I have to buy a new one. That sucks right!

Enter Pseudo SLC

The answer lies in what is referred to as pseudo SLC (pSLC).

SSD controllers can program a section of the QLC (or TLC) NAND devices to operate in pSLC mode. For example, a QLC SSD uses 16 different voltage levels to represent 4-bit binary data word stored in the NAND. That is, a single QLC cell can store a number between 0 and 15. The SSD controller can choose to program this same multi-level cell as a simpler two-level voltage cell instead i.e. it can only store the number 0 or 1 (simple binary) which consumes 4x more the number of cells for the same amount of data stored. This makes the cell much faster to program hence speeding up writes by removing the multi-cell tax of 3-5x, but clearly trades off capacity for performance. pSLC is thus used very sparingly.

No alt text provided for this image

Modern QLC device use pSLC as a staging area in front of the raw QLC cells so that they can absorb writes at SLC performance levels while data is being written to the SSD i.e. they cache the writes in pSLC rather than write them directly to the QLC NAND. During a background housekeeping or garbage collection cycle, they then move this data off (or flush) to a more permanent resting place among the QLC cells. In fact, while an SSD is relatively empty (typically less than 20% full), it's possible to keep the data in pSLC without the need to flush the data to QLC, allowing an SSD to behave like an SLC device for the first 20% of its capacity fill cycle. This is why you see many reviewers fill their SSDs to half full to see what happens when the device starts to fill up as they want to see how it will operate once the device switches to normal operating state.

If you are anything like me, you end up running your storage until it's pretty much 90% full. What this means for QLC is that the user experience most certainly will degrade at this point and frustration levels rise as in some cases, you could end up with worse then HDD performance as the devices struggle to maintain a decent performance level.

For those that want to learn more, AnandTech did an excellent article on the characteristics of the Intel 660P QLC SSD when it first came out that describes the SLC caching operation using their 64-layer 3D NAND flash as it fills up with user data for those interested learning more at: The Intel SSD 660P Review. In this article, they reveal that the Intel 660P QLC SSD starts out with 140GB of pSLC "cache" which scales back to around 12GB by the time they are full.

So using our Mini analogy, SLC provides the turbo charge I needed to go that little faster, but I still only get to drive it for 1000-1500 miles. Hm....

Static versus Dynamic SLC

So the rub with using lots of QLC cells as pSLC in the manner used today is that you don't really get any endurance benefit if you use it dynamically. So is dynamic pSLC the only option?

It turns out that a more permanent single level cell mode exists commonly referred to as static SLC. In this mode, the SLC is factory programmed and fixed in size. Industrial grade SSDs have learned to use this technique for example. In this mode, you can no longer switch back and forth between single and multi-cell modes and your committed. However, the benefit is that endurance is back in the several 10s of thousands of program-erase cycles i.e. much closer to the original SLC class of endurance.

The primary motivation for pSLC being dynamic is because SSD vendors need the maximum advertised capacity possible i.e. capacity is the primary motivator. It allows them to offer better performance at the start of an SSD's usage cycle when most people are paying attention to it, and defer the multi-level cell performance tax until much later as it fills up with user and operating system data. Essentially, these devices are fundamentally designed to degrade in performance as you fill them up.

So dynamic SLC is the turbo on my new Mini. It helps me drive quicker off the mark, but still only lasts 3000 miles before I have to replace it. So I'm down to driving very carefully even though I have a turbo. Hm. What I really wanted was a Mini that has great performance and I can drive for at least 100,000 miles (engineers always keep their cars for a long time!).

The Smart Difference

We believe we've solved the problem at Enmotus using a mix of static pSLC, regular QLC and smart software, all using off the shelf QLC only hardware. The goal we set out to accomplish was simple: restore performance and endurance to as near SLC class as possible, maintaining performance more consistently as it fills up and make use of newer, lower cost QLC NAND to meet the cost challenges of consumer markets.

The upcoming FuzeDrive Smart NVMe M.2 SSDs use high endurance, 30,000-60,000 program-erase cycle pSLC - up to 128GB - as a fixed, predictable area of storage on the SSD for all the active data used by your apps and the operating system. This SLC area does not suffer from the endurance issues of dynamic SLC, and performs better than MLC, TLC or QLC. We combine the SLC area with a larger capacity QLC region using the balance of the NAND cells to provide up to 1.5-1.6TB of total capacity, and soon doubling to 3TB. Our smart software uses ultra high performance NVMe software virtualization to stitch the two back into one large usable piece of storage that self-balances user data between the pSLC and QLC regions.

The magic lies in the second generation Enmotus smart NVMe SSD Windows driver, derived from our first generation FuzeDrive software deployed with millions of PC motherboards. This smart layer of software ensures that all the heavy read and write activity, that can quickly wear out an SSD, go to the pSLC region. Because this region is permanent, this means the data can stay there as long as it needs based on an intelligent machine learning algorithm, in effect attenuating write traffic to the QLC. This requires fast, unobtrusive, advanced storage virtualization and sub-file data migration that works on demand to ensure intelligent data placement. This intelligent data movement is the opposite of the caching model adopted today in many storage systems, including dynamic SLC based SSDs which still treats QLC as the ultimate destination for all data. It's ironic that these devices using traditional data caching techniques still insist on treating the QLC as the "reliable" storage tier when it's not!

The nice thing is that users now have a guaranteed 128GB pSLC SSD plus 1.5TB QLC all in a single 1.6TB device for example. We are betting that many users want a better balance of performance, endurance and capacity and not just cheap capacity. The result from our standpoint is a new "gold" class of performance-endurance for QLC SSDs normally associated with the likes of MLC based Samsung PRO devices. This contrasts with the lower "bronze" class of endurance that we are seeing with today’s QLC SSDs .

At last, my fictitious Mini now has great performance and I can drive it for 100,000 miles!

Topics: NVMe, SSD, artificial intelligence, steam gaming