One-pass programming in multi-level nonvolatile memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage methods in multi-level memory devices face inefficiencies when handling data chunks that do not fit the storage unit size, leading to increased write amplification and reduced device lifespan due to the need for multiple programming operations across different memory cell groups.
Innovation Solution
A method is introduced where data is stored in a memory device using a one-pass program-and-verify scheme, combining data with dummy data to match the nominal size, allowing for programming in a partial subset of levels, and enabling 'in-place' re-programming without initial erasure, thus minimizing write amplification. This involves separating data into most significant bit (MSB) and least significant bit (LSB) pages and using different mappings for programming and reading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is stored in multiple programming operations across different memory cell groups, then data storage flexibility is improved, but write amplification increases and device lifespan decreases
Solution Approach 1:
The patent segments data into MSB (most significant bit) and LSB (least significant bit) pages, allowing independent programming of different bit significance levels. This segmentation enables the system to program only the necessary portions of data in each operation, reducing redundant programming and write amplification while maintaining storage flexibility.
Solution Approach 2:
The patent performs preliminary programming of the MSB page first, then subsequently programs the LSB page. This preliminary action allows the system to prepare part of the data structure in advance, enabling more efficient subsequent programming operations and reducing the total number of programming cycles required.
2Adaptability or versatility
If data is stored in multiple programming operations, then data storage flexibility is improved, but the number of program-and-erase cycles increases
Solution Approach 1:
By segmenting data into MSB and LSB pages that can be programmed independently, the system reduces the total number of complete program-and-erase cycles needed. Each segmentation allows partial programming without requiring full erasure and re-programming of entire data blocks.
Solution Approach 2:
The patent enables discarding of dummy data that was temporarily programmed during the MSB programming phase. This dummy data is later overwritten or recovered when the LSB page is programmed, eliminating the need for persistent storage of unnecessary data and reducing redundant erase cycles.
3Productivity
If dummy data is used to match nominal size, then programming efficiency is improved, but data handling complexity increases
Solution Approach 1:
The patent extracts and separates the dummy data from the actual user data during the programming process. By taking out the dummy data component, the system can program only the necessary data portions while maintaining the required nominal size for memory cell programming, thereby improving efficiency without permanently increasing complexity.
Solution Approach 2:
The patent changes the parameter of data representation by using different mappings for MSB and LSB pages. This parameter change allows the system to handle data in a more efficient format during programming, where dummy data can be easily identified and managed without increasing overall system complexity.
Data Source
AI summary
A method for data storage includes preparing first data having a first size for storage in a memory device that stores data having a nominal size larger than the first size, by programming a group of memory cells to multiple predefined levels using a one-pass program-and-verify scheme. The first data is combined with dummy data to produce first combined data having the nominal size, and is sent to the memory device for storage in the group. The dummy data is chosen to limit the levels to which the memory cells in the group are programmed to a partial subset of the predefined levels. In response to identifying second data to be stored in the group, the second data is combined with the first data to obtain second combined data having the nominal size, and is sent to the memory device for storage, in place, in the group.


