Nonvolatile Memory Graph-Code Encoding With Reduced Matrix Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing memory systems face challenges in efficiently encoding data using graph codes due to the large size of the generator matrix, which results in significant memory requirements for encoding and storage.

Innovation Solution

A memory system that employs a graph code encoding method, where the encoder generates code words by multiplying information words with specific submatrices and using for-encoding data to minimize the size of the redundant part, thereby reducing the memory requirements for encoding and facilitating efficient data storage in nonvolatile memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If graph code encoding is used to improve error correction capability, then the correcting capability is improved, but the memory size required for encoding increases due to the large generator matrix

Engineering Contradiction:
Improveerror correction capabilityVSAvoidmemory size for encoding
Core Design Contradiction:
ReliabilityVSVolume of stationary object

Solution Approach 1:

The patent segments the generator matrix into multiple submatrices (G0, G1, G2, G3) that can be processed separately. This segmentation allows the encoding operation to be performed in stages, reducing the memory size required at any single point in time while maintaining the overall error correction capability of the graph code.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary preparation of encoding data by pre-calculating and storing only the necessary submatrices and their products in memory. This preliminary action reduces the amount of data that needs to be held in memory during the actual encoding process, thereby reducing the memory size requirement while preserving the error correction capability.

Inventive Principle:
Principle #10Preliminary action

2Volume of stationary object

If the generator matrix size is reduced to decrease memory requirements, then the memory size for encoding is reduced, but the encoding complexity increases

Engineering Contradiction:
Improvememory size for encodingVSAvoidencoding complexity
Core Design Contradiction:
Volume of stationary objectVSDevice complexity

Solution Approach 1:

The encoding process is segmented into distinct computational stages, each handling a specific submatrix multiplication. This segmentation organizes the complexity into manageable steps with clear data flow, making the overall encoding process easier to implement and control while using reduced memory size.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary calculations to determine the structure and contents of the submatrices before the actual encoding operation. This preliminary action simplifies the main encoding process by pre-organizing the data in an optimal format, reducing the complexity of the real-time encoding operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10560122B2Memory system and method of controlling nonvolatile memory
Publication Date: 2020.02.11 KIOXIA CORP
  • US10560122B2 patent drawing
  • US10560122B2 patent drawing
  • US10560122B2 patent drawing

AI summary

According to one embodiment, a memory system comprises an encoder that encodes by a graph code and a data holding unit that holds data to be used in encoding. A check matrix of the graph code includes first to sixth submatrices, and the encoder produces a first vector obtained by multiplying an information word and the first submatrix, produces a second vector obtained by multiplying the information word and the third submatrix, produces a third vector obtained by multiplying the first vector and the fifth submatrix inverted in sign, produces a fourth vector obtained by adding the third vector and the second vector, produces a first parity obtained by multiplying the fourth vector and the data, produces a fifth vector obtained by multiplying the first parity and the second submatrix inverted in sign, and produces a second parity obtained by adding the fifth vector and the first vector.