One-pass programming in multi-level nonvolatile memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata storage flexibilityVSAvoidwrite amplification
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedata storage flexibilityVSAvoiddevice lifespan
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of stationary object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If dummy data is used to match nominal size, then programming efficiency is improved, but data handling complexity increases

Engineering Contradiction:
Improveprogramming efficiencyVSAvoiddata handling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10191683B2One-pass programming in a multi-level nonvolatile memory device with improved write amplification
Publication Date: 2019.01.29 APPLE INC
  • US10191683B2 patent drawing
  • US10191683B2 patent drawing
  • US10191683B2 patent drawing

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.