Flash Memory ECC Programming for Overwrite Space Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current non-volatile memory devices, such as flash memory, waste memory space because the error correcting code (ECC) area can only be programmed once during initial programming, limiting the ability to overwrite data and leading to inefficient use of memory space.

Innovation Solution

Implementing a system where a code generation command is used to generate and store an error correcting code associated with both initial and additional data, allowing multiple programming cycles until the code generation command is processed, thereby enabling efficient use of memory space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the ECC area is programmed during initial programming, then data reliability is improved through error correction, but memory space efficiency deteriorates because additional programming is not permitted

Engineering Contradiction:
Improvedata reliabilityVSAvoidmemory space efficiency
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent makes the ECC programming dynamic by allowing it to be performed at two different stages: initially with the data area, and subsequently after additional data is programmed. The detector circuit dynamically determines whether to perform ECC programming based on whether the data area has been previously programmed, enabling flexible adaptation to different usage scenarios and resolving the contradiction between initial reliability establishment and subsequent space utilization.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs preliminary ECC programming during initial data area programming, establishing error correction capability before the data area is fully utilized. This preliminary action allows the system to later detect and program additional ECC for expanded data areas without requiring re-programming of the initial ECC, thereby enabling efficient use of additional memory space while maintaining data reliability.

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If the ECC area is programmed only once during initial programming, then programming simplicity is maintained, but adaptability deteriorates because overwriting and additional programming are limited

Engineering Contradiction:
Improveprogramming simplicityVSAvoidprogramming flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The system performs self-service by automatically detecting whether the data area has been previously programmed and whether additional data requires ECC programming. The detector circuit autonomously determines the programming state and triggers appropriate ECC programming actions without requiring complex external control logic, thereby maintaining programming simplicity while enabling flexible adaptation to different data storage scenarios.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements feedback through the detector circuit that continuously monitors the programming state of the data area and ECC area. This feedback mechanism provides real-time information about whether additional ECC programming is needed, allowing the system to adaptively adjust its programming behavior and maintain both simplicity and flexibility in different operational contexts.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If additional data is programmed in the data area after initial programming, then memory utilization is improved, but data integrity risk increases because the original ECC does not cover the additional data

Engineering Contradiction:
Improvememory utilizationVSAvoiddata integrity
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent applies discarding and recovering by detecting the presence of additional data in the data area and triggering generation of new ECC that covers both initial and additional data. The system effectively discards the insufficient original ECC coverage and recovers data integrity by establishing comprehensive ECC protection that encompasses the expanded data area, thereby maintaining both high utilization and integrity.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The system performs preliminary detection of additional data and triggers preliminary ECC regeneration before data reading operations. This preliminary action ensures that ECC coverage is updated to include additional data, preventing integrity issues before they occur and enabling safe utilization of expanded memory capacity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8225172B2Error correction scheme for non-volatile memory
Publication Date: 2012.07.17 MONTEREY RESEARCH LLC
  • US8225172B2 patent drawing
  • US8225172B2 patent drawing
  • US8225172B2 patent drawing

AI summary

Error correcting systems, methods, and devices for non-volatile memory are disclosed. In one embodiment, a non-volatile memory device comprises a data area for storing data, an error correcting code generation section for generating an error correcting code in response to receipt of a code generation command, and an error correcting code area for storing the error correcting code. The non-volatile memory device further comprises a detector circuit for detecting the generating of the error correcting code, and a read section for correcting the data stored in the data area based on the error correcting code upon the detecting of the generation of the error correcting code by the detector circuit, where the code generation command is forwarded by a memory controller when the data are is filled with the data beyond a threshold level.