Non-integer Bit Storage in Memory Cells via Two-Phase Programming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage methods in memory cells are limited by the use of integer numbers of bits per cell, which restricts storage density and reliability, as they are constrained to integer powers of two programming levels, limiting flexibility in programming levels.

Innovation Solution

Implementing a two-phase programming scheme where memory cells are initially programmed using an integer power of two levels, and in a second phase, additional bits are stored only in selected cells, allowing for non-integer bit storage by splitting levels and using inner and outer codes for error detection and correction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory cells are programmed using integer powers of two levels, then the system maintains simplicity in decoding and error correction, but storage density and flexibility are limited

Engineering Contradiction:
Improvestorage densityVSAvoidprogramming level complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the programming process into two distinct phases: a first phase that programs all cells to an integer power of two levels, and a second phase that programs only selected cells to additional levels. This segmentation allows the system to achieve non-integer bits per cell (improving storage density) while maintaining the simplicity of integer-based decoding and error correction for the majority of cells.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by allowing different cells to have different programming levels based on their intended use. Some cells are programmed to integer levels (maintaining simplicity), while others are programmed to additional non-integer levels (increasing density). The system selectively applies the second programming phase only to cells where higher density is required, rather than uniformly increasing complexity across all cells.

Inventive Principle:
Principle #3Local quality

2Productivity

If additional bits are stored in selected cells during a second programming phase, then storage efficiency improves, but the number of read and decode operations increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoidread and decode operation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies partial action by implementing a second programming phase that programs only selected cells to additional levels, rather than re-programming all cells. This selective approach improves storage efficiency for the subset of cells that benefit from additional bits, while minimizing the overhead of read and decode operations since not all cells require the enhanced processing.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If non-integer bits per cell are implemented, then flexibility in programming levels increases, but error detection and correction becomes more complex

Engineering Contradiction:
Improveprogramming level flexibilityVSAvoiderror correction complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the error correction approach into two parts: integer-based error correction applied to all cells (maintaining simplicity), and selective handling of the additional non-integer bits in the second programming phase. This segmentation allows the system to achieve programming level flexibility while keeping the error correction mechanism relatively simple by leveraging the structure of the first programming phase.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9799397B2Management of data storage in memory cells using a non-integer number of bits per cell
Publication Date: 2017.10.24 APPLE INC
  • US9799397B2 patent drawing
  • US9799397B2 patent drawing
  • US9799397B2 patent drawing

AI summary

A method for data storage includes storing data in a group of memory cells, by encoding the data using at least an outer code and an inner code, and optionally inverting the encoded data prior to storing the encoded data in the memory cells. The encoded data is read from the memory cells, and inner code decoding is applied to the read encoded data to produce a decoding result. At least part of the read data is conditionally inverted, depending on the decoding result of the inner code.