Storage Controller Power Loss Data Recovery via SLC Reconstruct
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data loss occurs during power loss events in storage systems programming non-volatile memory, as volatile data latches are lost, and existing solutions either require significant volatile memory or increase wear and performance issues by writing data twice to SLC blocks.
Innovation Solution
A storage system with a controller that aborts ongoing programming operations in MLC memory upon detecting power loss, reconstructs data from successfully programmed MLC cells, and programs it to SLC memory before shutdown, allowing for data protection without the need for extensive volatile memory or increased SLC wear.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is maintained in volatile memory during power loss protection, then data reliability is improved, but volatile memory requirements increase
Solution Approach 1:
The system performs preliminary actions by maintaining data in data latches during normal operation and prepares power loss protection by having the ability to quickly reconstruct and save critical data to SLC blocks when power loss is detected, rather than continuously maintaining all data in volatile memory
Solution Approach 2:
The invention extracts only the critical data that needs protection during power loss events and saves it to SLC blocks, rather than maintaining all data in volatile memory. This selective extraction reduces volatile memory requirements while maintaining data reliability for critical information
2Reliability
If data is written to SLC blocks for power loss protection, then data reliability is improved, but SLC wear increases
Solution Approach 1:
The system applies different quality characteristics to different parts of the storage system by using SLC blocks specifically for power loss protection data (high durability needed) while using MLC blocks for regular data storage (higher capacity, lower wear). This local differentiation reduces overall SLC wear by limiting its use to only when necessary
Solution Approach 2:
The system recovers data from data latches and reconstructs it in SLC blocks only when power loss is detected, rather than continuously writing to SLC. This on-demand recovery approach minimizes SLC write operations and associated wear while maintaining data reliability when needed
3Reliability
If data is reconstructed from partially programmed MLC cells, then data protection is improved, but programming time increases
Solution Approach 1:
The system performs preliminary reconstruction of data from data latches and successfully programmed MLC cells during the power loss event window, preparing the reconstructed data for saving to SLC blocks. This preliminary action reduces the overall time impact by doing reconstruction work while the system is still partially powered
4Reliability
If ongoing programming operations are aborted upon power loss detection, then data corruption is prevented, but programming completion rate decreases
Solution Approach 1:
The system extracts and saves the portion of data that was successfully programmed to MLC blocks before aborting the operation. By taking out the valid data portion and preserving it through reconstruction from data latches, the system prevents data corruption while minimizing the impact on overall programming productivity
Data Source
AI summary
Upon detecting power loss during the process of programming multi-level cell (MLC) memory in a storage system, the storage system takes steps to prevent data loss. In one example, the controller sends a graceful shutdown command to the memory, in response to which the memory aborts the ongoing programming operation and stores data from data latches associated with unprogrammed memory cells in single-level cell (SLC) memory. The memory can also store data from programmed memory cells in the SLC memory. The data to be programmed in the MLC memory can be reconstructed prior to powering down the storage system or after the storage system is powered back up. The reconstructed data can then be programmed in the MLC memory.


