Flash Memory Storage Restoration via Conflict Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Storage devices based on flash memories face inconsistencies due to power loss during operations like garbage collection, writing, or erasing, leading to conflicting blocks and requiring additional hardware for backup power or performance-degrading validation processes.
Innovation Solution
A method to restore storage devices by detecting conflicting physical blocks, determining their validity indexes, and selecting the correct blocks based on root counters or completion flags to maintain data integrity without additional hardware, allowing for effective recovery during power loss scenarios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If additional hardware backup structures are provided to maintain power supply during operations, then reliability is improved, but device complexity increases
Solution Approach 1:
The system uses existing completion flags stored in the flash memory to automatically detect and resolve inconsistent conditions after power loss, without requiring external backup power hardware. The completion flags themselves serve as the recovery mechanism, making the system self-sufficient.
Solution Approach 2:
Completion flags are introduced as intermediary markers that mediate between the writing/erasing operations and the consistency verification process. These flags enable the system to detect whether operations completed successfully without additional hardware.
2Reliability
If validation processes are performed to ensure data integrity after power loss, then reliability is improved, but productivity deteriorates
Solution Approach 1:
Completion flags are set during the normal operation of writing and erasing processes, before any potential power loss can occur. This preliminary marking allows rapid verification of operation completion without requiring time-consuming validation processes after power restoration.
Solution Approach 2:
The system implements a feedback mechanism where completion flags provide immediate information about the status of writing and erasing operations. This allows the controller to quickly determine whether operations completed successfully without performing extensive validation checks.
3Productivity
If garbage collection procedures are performed to recover space in full blocks, then productivity is improved, but reliability deteriorates due to increased risk of inconsistent conditions
Solution Approach 1:
Completion flags are set during the garbage collection process before blocks are erased, providing a safety marker that allows the system to detect and recover from interrupted operations. This preliminary marking prevents the reliability deterioration that would otherwise result from power loss during garbage collection.
Solution Approach 2:
The completion flag mechanism converts the potential harm of power loss during garbage collection into a beneficial recovery opportunity. By detecting inconsistent conditions through missing or conflicting completion flags, the system can automatically restore consistency, turning a reliability risk into a self-correcting feature.
4Adaptability or versatility
If multiple physical blocks are used to store data versions in a tree structure, then adaptability is improved, but device complexity increases
Solution Approach 1:
Completion flags are used universally across all physical blocks in the tree structure, regardless of whether they contain root nodes, leaf nodes, or intermediate data. This universal application of completion flags simplifies the management of complex multi-block structures by providing a consistent verification mechanism throughout.
Data Source
AI summary
A restoring operation of a storage device based on a flash memory. In an embodiment, a storage device emulates a logical memory space (including a plurality of logical blocks each one having a plurality of logical sectors), which is mapped on a physical memory space of the flash memory (including a plurality of physical blocks each one having a plurality of physical sectors for storing different versions of the logical sectors). A method may detect a plurality of conflicting physical blocks for a corrupted logical block and determines a plurality of validity indexes. One or more of the conflicting physical blocks are selected according to the validity indexes. The selected conflicting physical blocks are then associated with the corrupted logical block. At the end, each one of the non-selected conflicting physical blocks is discarded.


