Multilevel Cell Memory Parallel Programming Speed
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-level cell (MLC) nonvolatile memory systems face challenges in programming efficiency due to increased precision requirements and potential charge shifts between adjacent cells, leading to slower data storage compared to single-level cell (SLC) systems, while also needing to maintain compatibility with various memory standards.
Innovation Solution
A method and system that involve storing data in parallel across blocks with different memory states per cell, where a first block with two memory states is used for initial programming and a second block with more than two states is partially programmed, with subsequent further programming based on data from the first block to achieve full programming of the second block, allowing for efficient data transfer and storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If multi-level cell (MLC) memory is used to increase storage density, then storage capacity per cell is improved, but programming speed deteriorates due to increased precision requirements and charge shifts between adjacent cells
Solution Approach 1:
The programming process is segmented into two distinct phases: a first programming phase that programs certain cells to a first state, and a second programming phase that programs the same cells to a second state. This segmentation allows the system to achieve MLC storage density while managing programming speed by breaking down the complex programming operation into manageable stages with different precision requirements.
Solution Approach 2:
The first programming phase acts as a preliminary action that prepares cells by programming them to an intermediate state before the final programming to the target state. This preliminary programming establishes a baseline that facilitates the subsequent precise programming operation, reducing the overall time penalty associated with MLC programming.
2Quantity of substance
If multi-level cell (MLC) memory is used to increase storage density, then storage capacity is improved, but programming time increases due to slower data storage compared to single-level cell (SLC) systems
Solution Approach 1:
The memory system dynamically switches between two programming modes: a first programming mode for initial programming that operates faster with relaxed precision requirements, and a second programming mode for final programming that achieves the required precision for MLC operation. This dynamic approach allows the system to adapt programming speed and precision to the specific needs of each programming phase, reducing overall programming time while maintaining storage capacity.
Solution Approach 2:
The system changes programming parameters between two phases: in the first programming phase, cells are programmed with parameters optimized for speed; in the second programming phase, parameters are adjusted to optimize precision. This parameter transformation allows the system to achieve MLC storage density without permanently sacrificing programming speed, as each phase uses parameters best suited to its specific objectives.
3Productivity
If parallel programming is used to improve programming speed, then productivity is improved, but manufacturing complexity increases due to coordinating multiple programming operations
Solution Approach 1:
The parallel programming operation is segmented into two independent programming phases that can be executed concurrently with different precision requirements. This segmentation simplifies the coordination complexity by allowing each phase to be managed independently with its own timing and verification protocols, while still achieving the benefits of parallel processing and improved productivity.
Data Source
AI summary
A memory system includes a first block in which data is stored with a low density and a second block in which data is stored with a high density. When data is received it is written to the first block, and in parallel some of the data is written to the second block, so that the second block is partially programmed. The second block is later fully programmed by copying additional data from the first block.


