Multi-pass Programming for Non-volatile Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As the number of bits of data per memory cell increases in non-volatile semiconductor memory devices, such as EEPROM and flash memory, the programming time also increases due to the need for more verify operations between programming pulses, leading to slower data storage speeds in devices like digital cameras and mobile devices.
Innovation Solution
A method is introduced that limits the number of verify operations between program pulses by performing a first programming process and a subsequent programming process, where the second process includes verify operations based on the results of the first process, to improve programming speed in non-volatile storage systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the number of bits of data per memory cell is increased, then the data capacity of the memory device is improved, but the programming time increases
Solution Approach 1:
The programming process is divided into multiple passes, with each pass targeting specific memory cells that have not yet reached their target threshold voltage. This segmentation allows the system to efficiently manage the programming of multiple bits per cell without requiring exhaustive verify operations after every pulse, thereby reducing total programming time while maintaining high data capacity.
Solution Approach 2:
The patent performs preliminary programming passes that partially program memory cells before final verification. By pre-positioning charge in the floating gate through initial passes and then completing the programming in subsequent passes with targeted verify operations, the system reduces the total number of verify operations needed while achieving the desired multi-bit storage capacity.
2Manufacturing precision
If the number of verify operations between program pulses is increased, then the programming precision is improved, but the programming speed deteriorates
Solution Approach 1:
The patent applies partial verify operations rather than exhaustive verification after every programming pulse. By performing verify operations only on selected memory cells that are likely to need programming based on previous pass results, the system maintains adequate programming precision while significantly reducing the total number of verify operations performed, thus improving programming speed.
Solution Approach 2:
The patent implements a continuous multi-pass programming approach where programming and verification activities are interleaved across multiple passes. Instead of completing all programming pulses followed by comprehensive verification, the system continuously alternates between programming selected cells and verifying their status, maintaining productive momentum while ensuring precision through targeted verification at appropriate intervals.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach enhances programming speed by reducing the number of verify operations, thereby increasing the data storage capacity and reducing the time required to program multiple bits of data per memory cell, addressing the issue of slower data storage speeds in electronic devices.
Implementation Method 1
Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged and the threshold voltage of the memory cell is raised
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
After erasing a plurality of non-volatile storage elements, a soft programming process is performed by a system to tighten the erase threshold distribution for the non-volatile storage elements, During the soft programming process, the system identifies a programming pulse needed to achieve a particular result. The identified pulse is used to determine the magnitude of the first program pulse used during subsequent programming.