Memory Controller Block Grouping for Flash Error Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #34Discarding and recovering

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

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidstorage capacity efficiency
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvestorage capacity efficiencyVSAvoiderror recovery capability
Core Design Contradiction:
Quantity of substanceVSReliability

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improveerror correction capabilityVSAvoidgroup management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11410741B2Memory controller and flash memory system
Publication Date: 2022.08.09 TDK CORP
  • US11410741B2 patent drawing
  • US11410741B2 patent drawing
  • US11410741B2 patent drawing

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.