On-the-fly Memory Cell Programming with ECC Feedback
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory devices face challenges in efficiently programming and verifying memory cells, especially in three-dimensional arrays, due to variable electrical characteristics and the need for reduced power consumption and increased reliability, particularly when dealing with stuck cells and high voltage stress.
Innovation Solution
The implementation of an on-the-fly programming and verifying method using counters and ECC feedback, which analyzes the codeword data to determine the number of logic '1's and '0's, applies a ramped cell programming bias, and employs masking to avoid stressing cells with higher voltage, allowing for parallel programming of logic values '0' and '1' and immediate verification to ensure accurate data storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional programming methods are used for memory cells, then programming can be completed, but power consumption increases and reliability decreases due to variable electrical characteristics and high voltage stress
Solution Approach 1:
The patent applies parameter changes by dynamically adjusting the programming voltage based on the counter value. Instead of using a fixed high voltage for all programming operations, the voltage is modified according to the number of programming iterations needed, thereby reducing overall power consumption while maintaining programming reliability.
Solution Approach 2:
The patent implements feedback through the use of a counter that tracks the number of programming iterations and an ECC (Error Correction Code) mechanism that verifies programming status. This feedback loop allows the system to adjust programming parameters in real-time, reducing unnecessary high-voltage applications and improving both reliability and power efficiency.
2Speed
If high voltage is applied to program memory cells, then programming speed increases, but stress on cells increases reducing reliability
Solution Approach 1:
The patent applies dynamics by making the programming voltage variable rather than static. The voltage applied to memory cells changes dynamically based on the counter value, which reflects the programming progress. This allows fast programming when needed while reducing voltage stress when fewer iterations are required, thereby improving reliability without sacrificing overall programming speed.
3Productivity
If programming is performed without verification, then programming process is faster, but errors increase reducing reliability
Solution Approach 1:
The patent applies preliminary action through the ECC (Error Correction Code) mechanism that is prepared and integrated during the programming process. Rather than performing separate verification steps that would slow down programming, the ECC verification capability is built into the programming flow, allowing for error detection and correction without significant impact on programming throughput while ensuring high data storage accuracy.
4Ease of manufacture
If all cells are programmed with the same voltage, then programming is simpler, but stuck cells cannot be properly programmed reducing reliability
Solution Approach 1:
The patent applies local quality by differentiating the programming voltage applied to different memory cells based on their individual characteristics. Through the counter mechanism, the system identifies stuck cells that require additional programming iterations and applies appropriate voltage adjustments to those specific cells, rather than using a uniform voltage for all cells. This ensures proper programming of stuck cells while maintaining overall process simplicity.
Data Source
AI summary
The present invention relates to a method of operating memory cells, comprising reading a previous user data from the memory cells; writing a new user data and merging the new user data with the previous user data into write registers; generating mask register information, and wherein the mask register information indicates bits of the previous user data stored in the memory cells to be switched or not to be switched in their logic values; counting numbers of a first logic value and a second logic value to be written using the mask register information, respectively; storing the numbers of the first logic value and the second logic value into a first counter and a second counter, respectively; and applying a programming pulse to the memory cells according to the mask register information.


