NAND Flash is a non-volatile memory composed of millions of floating-gate transistors that capture electrons within the gate. These floating-gate transistors can be thought of as memory cells. When millions of memory cells are connected, they form an array. Each array consists of blocks and each block contains numbers of pages.
Fig.1 gives a brief illustration of a NAND array f schematic.
Each Word-Line (WL) makes a page, which is the basic unit of Read/Program operations in NAND. However, the number of pages for each WL is different in Single-level Cell (SLC), Multi-level Cell (MLC), and Triple-level Cell (TLC) type NAND.
Fig.2 shows that two pages (lower and upper page) sharing the same WL in MLC NAND and three pages (lower, middle, and upper page) sharing the same WL in TLC NAND. Pages that share the same WL are called paired-pages.
Because of the physical characteristics of NAND flash, here are two golden rules to follow with NAND programming operations:
- Programming operations need to follow the order specified based on NAND flash characteristics.
- If the programming operation on Word-Line (WL) is not completed, the data integrity of this WL cannot be guaranteed.
For MLC or TLC NAND flash, data programming in a single page will not be a one-step operation. MLC/TLC pages need to be programmed two or three times to accomplish data programming requirements. This phenomenon is a physical characteristic of flash memory.
Integrity concerns with user data in paired-pages
In the current consumer Solid State Drive (SSD) market, MLC and TLC flash are the most popular memory types. MLC and TLC flash can offer much larger storage capacity with lower cost, especially TLC. However, the programming operation on MLC and TLC flash is more complicated than SLC. If we take TLC flash as an example, you need to program the paired-pages on the same WL three times to complete the whole operation.
Fig. 3 illustrates the complete program operation of TLC flash. Only when the third programming operation on WL_x finishes will the data stored at WL_x become reliable data.
Unfortunately, this complexity of programming operations adds to the risk of data corruption. Since the integrity of data occurs only after the entire programming sequence completes (i.e. first program + second program + third program), any unexpected events happening prior to the completion of programming operation will cause corruption or loss of data.
Fig. 4 shows what will happen if any unexpected event interrupts data programming operations. In this case, power loss happens before the completion of programming operation for WL_2, meaning only the data stored in WL_0/WL_1 is guaranteed. In other words, other data could become corrupted due to power loss.
Phison proprietary technology, GuaranteedFlush™, is designed for preventing our storage devices from data corruption caused by any unexpected interruption during programming operations.
GuaranteedFlush™ is not run for every single data programming command. Instead, GuaranteedFlush™ is triggered in the background once the storage device receives a FLUSH_CACHE command. Consequently, the integrity of all the data programmed into the device prior to the FLUSH_CACH command is guaranteed by this technology.
Fig.5 is an illustration of the user data range GuaranteedFlush™ is able to cover.
GuaranteedFlush™ is an implementation of multi-layer algorithms. There are two basic methods used to protect a user’s data from sudden power loss.
Concept 1: Dummy data compensation
The first method is by speeding up the programming operations. Programming sequences of different NAND flash types can be different. No matter how the programming sequence varies, the duration of data programing on a single WL determines the risk of data loss due to an unexpected interruption. If this duration becomes longer, the possibility of interruption happening is higher. In order to address this problem, dummy data is inserted into specific WLs to make sure the WL storing the user data is allowed to complete the entire programming operation (i.e. 1st program + 2nd program + 3rd program) as shown in Fig.6.
By inserting dummy data into the following WLs, user-data programming operations can complete. In this way, the integrity of user data is a guarantee even if any unexpected event interrupts upcoming programming sequences.
Concept 2: Real-time data backup
The second method available to protect SSDs from data corruption caused by the paired-pages effect is by directly backing data up to the pages without encountering paired-paged issues in the first place. Pages configured as SLC mode are able to meet this requirement. This might feel like a radical way to keep user data secure. However, the capacity of SLC mode is one-third for TLC memory. The implementation of Real-time Data Backup becomes another issue.
Choose Phison for secure data
GuaranteedFlush™ is yet another Phison proprietary technology designed to ensure data correctness during unexpected power loss. GuaranteedFlush™ strengthens the reliability of Phison SSD products.