Data storage based on NAND Flash technology has led to a paradigm shift in various areas of computing, from memory cards for portable devices to mobile devices. NVMe SSD nightclubs on PC. It is precisely in the latter case that one of the historic bottlenecks in history has been removed by not having the access latency and bandwidth limitations of traditional hard drives, however, it does not. There is no perfect technology that works 100% and there are always elements that weigh it down, forcing engineers to find and implement solutions.
NAND flash and memory cells
NAND flash memory is a type of NVRAM or non-volatile RAM, it means that its operation is the same as conventional RAM, but with the difference that its data is not lost when the system stops receiving power. food. The trade-off to have this capability is to have a limited number of writes in memory in its lifecycle. While the performance benefits when it comes to accessing storage are well worth it, not in vain, every computer system is only as fast as its slowest part, which is usually storage. , leave it.
Every bit of memory in a RAM memory is stored in so called memory cells and in the first NAND flash memories used for SSD storage, one bit per cell was used which made the storage very expensive. The solution? That each cell can contain 2-bit data (MLC
TLC and QLC cells don’t just degrade in duration
By the time you get to this point, many of you will have the idea that MLC, TLC, and QLC type NAND Flash memories have more storage capacity, albeit less duration, but the bandwidth of all of them is. the same and therefore the cell type does not vary the performance. Well, let us tell you the bad news doesn’t end there, but the access speed is degrading as well.
When the CPU makes a request to access a memory address in the NVMe SSD, it is received by the flash controller which will search for data in memory for transmission through the PCI Express or SATA interface, depending on which one you are using. unit, but the flash controller directly accesses the unit’s NVMe chips to manipulate its data and does not do so through the interfaces we mentioned.
The way to store data in NAND Flash memory is to change voltage, SLC memory only needs voltage, MLC requires 3, but a TLC goes 7 and if we go to a QLC the thing goes to 15. Well, the higher the number, the longer it takes to perform a read and write operation. And when does that start to be a problem? Well, from TLC memory and if you look at the number of NVMe SSDs in the stores, you will see that they are using all of these cells at least today.
The solution: the SLC cache
The first thing to keep in mind is that the SLC cache is not the same as the DRAM cache which is also found in some NVMe SSDs, since we are not talking about the volatile memory which is between the flash controller and the PCI interface. the same, since the SLC cache is also in DRAM-Less units. In general, although there are exceptions which we will see later, within every NVMe chip there are two types of NAND Flash memory:
- TLC or QLC memory for data storage
- A much smaller SLC memory that acts as a cache.
The first thing we need to understand is that a cache is nothing more than memory much closer to a processor and therefore with lower latency which temporarily stores data. If we revisit what we told you, we have the following premises:
- SLC cells have a much longer lifespan than TLCs and even longer than QLCs, so they take much longer to degrade.
- The access speed of SLC cells is much higher.
So the solution is for the data to be temporarily offloaded into the SLC memory, which functions as a buffer cache so that a data copy mechanism then changes the memory addresses in the TLC.
SLC cache performance
We come to the most important part, the SLC cache has a fixed size and that means, if we use it to send or receive small data, its performance will be maintained, but if for example we want to make a sequential copy of the data as a very large chunk of data, as soon as the SLC is full, performance drops.
This is why, although we may have two NVMe SSDs in our hands with the same storage, same access interface, and same cell types i.e. practically the same, they can have different completely different performance. The reason? Obviously the SLC cache which can differ in size.
SLC cache is not only used to store data with sequential access, but also random access, and it must be taken into account that programs when accessing information do so with high recursion and in a block of delimited information.
SLC cache types
There are two ways to manage the SLC cache, which will depend on the algorithm for this that the manufacturer has implemented in the flash controller. Rather, it refers to the amount of space it can be allocated for temporary storage.
- In static cache, storage space is fixed and cannot vary in size.
- In dynamic cache, the allocated size is variable.
How is dynamic caching possible if the number of SLC cells is fixed? The problem is to use the NVMe TLC cells as if they were SLC, that is to say to have them store one bit in each instead of 3. So there are NVMe chips that reassign a part of cached storage.
The advantage of dynamic cache is that the size of the SLC cache is not exhausted, but there is a risk that more and more TLC cells will no longer be used for storage, affecting the overall capacity of the latter to store. Datas. For this reason, most dynamic SLC cache systems use systems that limit the maximum size through firmware.
Table of Contents