Flash Memory Index Management via Hierarchical Frame Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory management faces challenges in ensuring transaction atomicity and efficient data access due to its page-based erasing and word-based writing granularity, which can lead to data instability and lengthy access times, especially in applications requiring rapid data integrity and security.
Innovation Solution
A method is introduced that organizes data into logic blocks within frames and pages, using metadata to store index values and error-control codes, allowing for efficient tracing and verification of data blocks, and implementing a memory management circuit to control write and read operations, ensuring atomicity and reducing search times by utilizing a hierarchical index structure.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If scanning the entire memory is performed to locate data, then data can be found, but the access time becomes highly time-consuming
Solution Approach 1:
The patent divides the flash memory into pages and frames, with each frame containing data blocks and metadata. This segmentation allows the system to locate data by checking frame metadata rather than scanning the entire memory, significantly reducing access time while maintaining accurate data location capability
Solution Approach 2:
The patent introduces an index tree structure stored in metadata that acts as an intermediary between the logical data blocks and their physical locations in flash memory. This index tree enables direct navigation to data blocks without exhaustive scanning, resolving the contradiction between precise data location and access speed
2Adaptability or versatility
If write operations are performed word-by-word in flash memory, then data can be stored with fine granularity, but the erasing operation becomes complex due to page-based constraints
Solution Approach 1:
The patent segments flash memory into hierarchical structures: pages divided into frames, with each frame containing multiple data blocks and metadata. This segmentation allows word-by-word writing within frames while maintaining page-based erasing constraints, as the metadata tracks which frames are valid and contain complete data
Solution Approach 2:
The metadata in each frame serves as an intermediary that tracks the validity and content of data blocks. This metadata layer abstracts the complexity of page-based erasing from the application, allowing flexible word-by-word writes while the memory management circuit handles the coordination of page erasures based on metadata state
3Reliability
If interrupting power supply or introducing disturbances occurs during write operations, then data may be stored in an intermediate state, but ensuring atomicity requires additional verification mechanisms
Solution Approach 1:
The patent performs preliminary actions by writing metadata first to indicate the start of a write operation, then writing data blocks sequentially. The metadata contains state information that allows verification of atomicity by checking whether the write operation completed successfully or was interrupted, enabling recovery without complex verification mechanisms
Solution Approach 2:
The metadata in each frame provides feedback about the state of data blocks, including validity flags and content information. This feedback mechanism allows the system to verify whether write operations completed atomically by checking metadata state, and to recover from interruptions by identifying which frames contain valid data, thereby ensuring reliability with relatively simple verification
Data Source
AI summary
A flash memory management method, wherein: the data to be stored are organized in logic blocks; the memory is divided into pages; and each page is divided into frames, each frame being capable of containing at least one data block and at least one first frame metadata block containing all or part of the index values of the data block in an index tree, an index value corresponding to the address of a frame.


