Flash Memory ECC Programming for Overwrite Space Efficiency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


