External Data Buffering: How SSDs Extend Their Lifespan

Since NAND Flash memory is being weakened by write and erase cycles, it makes sense for SSD designers to look for ways to try to reduce these cycles and thus extend the life of the SSD , right? Today we are going to talk about the External Data Buffering function, through which SSD controllers manage to maximize the useful life of the device.

There is no doubt that the life of an SSD is one of the biggest concerns of both manufacturers and users, with the permission of performance, of course. And it is of little use to have the fastest SSD on the market if – to give an example – in a month the writing cycles are exhausted and it is no longer useful. Fortunately, the designers of this type of product are constantly working on improving technology, and since the useful life is one of the biggest concerns, as we have already said, little by little they are improving the methods to expand this parameter.

External Data Buffering

External Data Buffering, how the controller maximizes the life of the SSD

There are many ways to use RAM, both the internal memory of the SSD controller and the PC itself, to organize the data in a way that reduces the write and erase cycles of an SSD. When using system RAM, the method is known as External Data Buffering, or external data buffering.

One is to perform a function called “Write Coalescing” (something like “write fusion”). This method involves gathering several short writes into adjacent sectors of the SSD to convert them to a single long write to the SSD buffer, before writing to NAND Flash memory. A large write is less demanding on the chip than several smaller writes, and is actually much faster.

Funciones de una controladora SSD

An example: On an SSD with no write buffer , not all short writes to the same general drive area may occur at the same time. It is likely that an early write is already committed to the flash memory before the next SSD receives, and when writing the later write it may even be necessary to reassign the flash block containing both sectors to another block to perform the operation , which entails an additional erase and write cycle.

This “write merge” is not the only way to use a RAM buffer to reduce write traffic to the flash memory of an SSD . Another approach would be to store multiple successive writes to the same sector without actually writing to flash memory until multiple writes of the same type have been performed. Although the system may believe that the same NAND sector is constantly being overwritten, the sector is actually in RAM until that information is needed for another task, at which time it does write to flash memory. With this, several hundred writes to a single sector can be converted to a single write to the NAND, so we are extending the life of the SSD by several integers, only at the cost of having the controller RAM busy.

RAM is also used to ensure that writes take place on full pages, as this is the distance that the NAND performs most efficiently when writing to it. By matching the length of a NAND write to the length of the chip mapping, the buffer helps reduce write traffic. Different NAND chips have different page lengths (generally between 1 and 4 KB), yes, so the controller must have this information to be able to act accordingly.

Phison-E16-controladora

Of course, these methods have the disadvantage that a power outage could cause loss and / or corruption of the data, since that data would be temporarily in RAM (which is volatile) and not in NAND flash memory. The solution to this is to provide a small power source to the SSD to keep it active long enough to download that data from RAM to the NAND. This is usually done using a small battery, a super capacitor, or even a bank of tantalum capacitors.

In any case, it is clear that adding an external RAM buffer to an SSD to use as temporary storage is an excellent method that not only serves to improve the performance of the drive, but also to considerably extend its useful life.