SLC-MLC Memory Controller Data Recovery After Power Failure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face challenges in ensuring data integrity and recovery during sudden power-offs, particularly when programming data between Single Level Cell (SLC) and Multi-Level Cell (MLC) areas, as they struggle to maintain data completeness and efficiency in programming operations.
Innovation Solution
A memory system and method that utilizes an SLC area as a backup for MLC data, where data is programmed faster, and includes a controller to manage logical and physical addresses, position information, and recovery operations based on valid data from the SLC area after a power failure, ensuring data integrity and minimizing dummy data storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is programmed to MLC area for long-term storage, then storage capacity is improved, but programming speed deteriorates compared to SLC area
Solution Approach 1:
The memory system is segmented into SLC area for fast temporary storage and MLC area for long-term storage. The controller divides the data storage function between these two areas, using SLC as a buffer during programming operations to MLC, thereby overcoming the slow programming speed of MLC while maintaining its high storage capacity advantage.
Solution Approach 2:
The SLC area acts as an intermediary between the host and MLC area. Data is first programmed to the SLC area which has fast programming speed, and then transferred to MLC area for long-term storage. This intermediary approach allows the system to benefit from both the fast programming speed of SLC and the high storage capacity of MLC.
2Reliability
If data is programmed to both SLC and MLC areas simultaneously for data atomicity, then data reliability is improved, but system complexity increases
Solution Approach 1:
The controller performs preliminary actions by first programming data to the SLC area before programming to the MLC area. It tracks the programming status and manages the invalidation of SLC data after MLC programming completion. This preliminary action approach ensures data atomicity while the controller manages the complexity of coordinating both programming operations.
3Reliability
If SLC area is used as backup for MLC data, then data recovery capability is improved, but storage efficiency deteriorates due to dummy data
Solution Approach 1:
The SLC area is used as a temporary backup during programming operations, storing data that will eventually be programmed to MLC. After successful MLC programming, the corresponding SLC data is invalidated and discarded. This approach enables data recovery capability during power failures while the discarded dummy data in SLC is acceptable given its smaller capacity and temporary role.
Data Source
AI summary
A memory system may include: a nonvolatile memory device comprising a plurality of memory blocks, each block having a plurality of pages, each page having a plurality of memory cells, wherein the plurality of memory block includes an SLC (Single Level Cell) block and an MLC (Multi-Level Cell) block; and a controller suitable for programming input data transmitted from a host to both the SLC block and the MLC block in response to a first program command, and invalidating the input data programmed in the SLC block at a time point when the program operation for the MLC block is completed, when the memory system is powered on after an SPO (Sudden Power-Off) occurred while the program operation was performed on both the SLC block and the MLC block, the controller may perform a recovery operation to the MLC block based on valid data programmed in the SLC block.


