Flash Memory Programming Voltage Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing methods for programming and erasing non-volatile memory cells in flash memory devices result in a distribution of threshold voltage that is difficult to adjust, leading to inefficiencies in programming time and increased leakage current, which are influenced by the number of refresh cycles, operating temperature, and manufacturing processes.
Innovation Solution
A dynamic method is introduced where the programming voltage is adjusted based on the ratio of unprogrammed to programmed memory cells, allowing for iterative application of pulses to ensure all cells reach the threshold voltage efficiently, reducing dependence on manufacturing variations and temperature.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If fixed programming voltage is applied to all memory cells, then the programming process is simple, but the threshold voltage distribution becomes wide leading to increased leakage current and reduced read margin
Solution Approach 1:
The patent applies dynamic programming by adjusting the programming voltage based on the number of unprogrammed memory cells. The voltage increments are dynamically determined using a lookup table that maps the count of unprogrammed cells to specific voltage adjustment values, transforming the static fixed-voltage approach into a dynamic adaptive process that optimizes threshold voltage distribution.
Solution Approach 2:
The patent implements feedback mechanisms by verifying the programmed state of memory cells after each programming pulse and using this information to determine subsequent programming actions. The system counts unprogrammed cells and uses this feedback to adjust voltage increments, creating a closed-loop control system that refines threshold voltage distribution iteratively.
2Object-generated harmful factors
If programming voltage is adjusted to tighten threshold voltage distribution, then leakage current is reduced, but programming time increases significantly
Solution Approach 1:
The patent changes the programming voltage parameter dynamically based on the state of memory cells. By using a lookup table that provides voltage increment values corresponding to different counts of unprogrammed cells, the system optimizes the voltage application strategy to achieve tight threshold voltage distribution while minimizing programming time through adaptive parameter adjustment.
Solution Approach 2:
The patent applies partial programming pulses to subsets of memory cells rather than uniformly programming all cells with excessive voltage. By identifying and programming only the unprogrammed cells with appropriate voltage increments from the lookup table, the system achieves effective programming with reduced overall programming time and energy consumption.
3Productivity
If conventional programming methods are used, then the programming process is fast, but the process is highly dependent on manufacturing variations and temperature
Solution Approach 1:
The patent makes the programming process adaptive by dynamically adjusting voltage increments based on the actual state of memory cells. The lookup table provides pre-calculated voltage adjustment values that compensate for manufacturing variations and temperature effects, allowing the system to maintain consistent programming performance across different operating conditions without sacrificing speed.
Solution Approach 2:
The programming system performs self-adjustment by automatically determining the number of unprogrammed cells and selecting appropriate voltage increments from the lookup table without external intervention. This self-service mechanism enables the system to adapt to manufacturing variations and temperature changes autonomously, maintaining programming effectiveness across diverse conditions.
Data Source
AI summary
A method is for operating a memory having a group of non-volatile memory cells. A first programming pulse is applied to a subset of the group of non-volatile memory cells. The subset needs additional programming. A portion of the subset still needing additional programming is identified. A ratio of the number of memory cells in the subset and the number of memory cells in the portion is determined. A size of a second programming pulse based on the ratio is selected. The second programming pulse is applied to the portion.


