Flash Memory Encoder Using Inverse Matrix Parity Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing encoders for flash memory controllers face high hardware costs due to the complexity of circular convolution calculations required to generate parity, especially when finding a parity generator matrix is challenging, leading to increased complexity and costs.

Innovation Solution

The encoder design includes a barrel shifter module, a first inverse matrix calculating circuit, and a calculating circuit that process data blocks into partial parity blocks, performing inverse matrix calculations to generate parity blocks, reducing the need for circular convolution calculating circuits and thus lowering hardware costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple matrix multiplying operations and compensation/adjustment operations are performed to generate parity, then the parity generation accuracy is improved, but the device complexity and hardware costs greatly increase

Engineering Contradiction:
Improveparity generation accuracyVSAvoidencoder complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the parity generation process into distinct modules: a barrel shifter module for circular convolution operations, an inverse matrix calculating circuit for matrix inversion, and a calculating circuit for final parity computation. This segmentation allows each module to be optimized independently, reducing overall complexity while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary inverse matrix calculating circuit that bridges the barrel shifter module and the final calculating circuit. This intermediary component pre-calculates and stores inverse matrix values, eliminating the need for repeated complex matrix multiplying operations during parity generation, thus reducing hardware complexity while preserving accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If circular convolution calculations are performed to generate parity, then the encoding correctness is ensured, but the hardware costs greatly increase

Engineering Contradiction:
Improveencoding correctnessVSAvoidhardware cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent performs preliminary action by pre-calculating inverse matrix values using the inverse matrix calculating circuit and storing them for later use. This preliminary computation eliminates the need for repeated circular convolution calculations during actual parity generation, ensuring encoding correctness while significantly reducing hardware requirements and manufacturing costs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent substitutes the mechanical circular convolution calculation system with an electronic inverse matrix calculation system. Instead of performing repeated circular convolution operations hardware-intensive operations), the system uses pre-computed inverse matrix values in electronic calculations, maintaining encoding correctness while reducing hardware complexity and cost.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10810120B2Encoder, associated encoding method and flash memory controller
Publication Date: 2020.10.20 SILICON MOTION INC
  • US10810120B2 patent drawing
  • US10810120B2 patent drawing
  • US10810120B2 patent drawing

AI summary

An encoder of a flash memory controller is provided, which includes a barrel shifter module, an inverse matrix calculating circuit and a calculating circuit. The barrel shifter module processes multiple data blocks to generate multiple partial parity blocks including a first portion, a second portion and a third portion. The inverse matrix calculating circuit performs inverse matrix calculating operations on the first portion to generate a first portion of parity blocks. The calculating circuit performs inverse matrix calculating operations on the second portion and the third portion according to the first portion of the parity blocks, to generate a second portion of the parity blocks and a third portion of the parity blocks. The first portion of the parity blocks, the second portion of the parity blocks, and the third portion of the parity blocks serve as multiple parity blocks generated in response to encoding the data blocks.