Memory Controller Block Grouping for Flash Error Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory systems face issues with data errors during writing and reading, particularly in cells that have undergone frequent data reading, writing, and erasure, where error-correcting codes may fail to correct errors exceeding their capability.
Innovation Solution
A memory controller configures physical blocks into groups, allocating some as data blocks and others as redundant blocks, writes data and parity data across these blocks, and uses parity data to recover and correct errors, releasing redundant blocks when data is successfully written to maintain high error correction capability and capacity efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error-correcting codes are used to correct errors in flash memory data, then error correction capability is improved, but errors exceeding the correction capability still occur and data loss happens
Solution Approach 1:
The flash memory blocks are segmented into data blocks and redundant blocks within groups. The redundant blocks store additional information that can be used to recover data when errors exceed standard ECC correction capability. This segmentation allows the system to handle uncorrectable errors by distributing data across multiple blocks and using redundant blocks as backup.
Solution Approach 2:
When a data block becomes an error block (uncorrectable errors), the system recovers the data using redundant blocks from the same group. The redundant blocks are temporarily held to provide recovery capability, and once recovery is successful, the redundant blocks are released back to the pool of available blocks. This approach allows data recovery while maintaining block availability.
2Reliability
If redundant blocks are maintained in groups to provide error recovery capability, then error correction capability is improved, but storage capacity efficiency deteriorates due to unused redundant blocks
Solution Approach 1:
The system dynamically manages redundant blocks based on actual error conditions. Redundant blocks are only actively used when data recovery is needed. When no errors occur, redundant blocks are released back to the available pool and can be allocated for data storage. This dynamic allocation ensures that redundant blocks serve their error recovery function only when necessary, maximizing storage efficiency while maintaining reliability.
Solution Approach 2:
The system changes the state of redundant blocks between two modes: held (when providing recovery capability) and released (when available for data storage). This parameter change allows the same physical blocks to serve different functions at different times, optimizing both error recovery capability and storage capacity efficiency based on actual system needs.
3Quantity of substance
If redundant blocks are released after successful data writing, then storage capacity efficiency is improved, but error recovery capability deteriorates when errors occur
Solution Approach 1:
The system performs preliminary error checking after data writing to determine if redundant blocks need to be held or released. By checking for errors first and then making the hold/release decision, the system ensures that redundant blocks are only held when actually needed for recovery. This preliminary action prevents unnecessary holding of redundant blocks, thereby improving storage efficiency while maintaining error recovery capability when needed.
Solution Approach 2:
The system uses feedback from error detection results to control the state of redundant blocks. When errors are detected in data blocks, the feedback triggers the holding of redundant blocks for recovery. When no errors are detected, the feedback triggers the release of redundant blocks for data storage. This feedback mechanism ensures that error recovery capability is maintained only when necessary, optimizing storage efficiency.
4Reliability
If multiple physical blocks are allocated to data blocks for error recovery, then error correction capability is improved, but device complexity increases due to group management
Solution Approach 1:
Redundant blocks serve multiple functions: they provide error recovery capability for data blocks within their group, and when released, they become available for data storage in subsequent operations. This multi-functionality reduces the need for dedicated recovery blocks throughout the system lifecycle, simplifying overall block management while maintaining error correction capability when needed.
Data Source
AI summary
A memory controller includes a control circuit. The control circuit configures a plurality of physical blocks in a flash memory into a group. The control circuit allocates the plurality of physical blocks constituting the group to a data block and a redundant block. The control circuit writes data required to be saved into the data block. The control circuit writes redundant data based on the data required to be saved into the redundant block belonging to the same group as the data block. When all the data required to be saved are successfully written into the data block, the control circuit releases from the group at least one redundant block belonging to the same group as the data block.


