Flash Memory Metadata Encoding for End-to-End Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Metadata errors occur when flash memory controllers temporarily store data from host devices in SRAM or DRAM during writing, leading to incorrect content and reading issues.

Innovation Solution

A method involving cyclic redundancy check (CRC) operations and encoding metadata with CRC codes to generate adjusted parity codes, combined with error correction codes, ensures accurate data and metadata storage in flash memory modules, eliminating the need for additional metadata storage and reducing errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If metadata is temporarily stored in SRAM or DRAM during writing, then the flash memory controller can process data efficiently, but metadata errors occur leading to incorrect content being written

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmetadata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by performing CRC calculation on metadata before it is stored in SRAM/DRAM buffers. The CRC code is calculated in advance and stored alongside the metadata, so that when data is written, the integrity of metadata can be verified without re-calculating during the writing process. This resolves the contradiction by maintaining reliability through pre-verification while preserving processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by using the calculated CRC code to verify metadata integrity during and after the writing process. The system continuously monitors whether the metadata remains unchanged from its initial state, and can trigger error handling if discrepancies are detected. This feedback mechanism ensures metadata reliability while allowing efficient buffer-based processing to continue.

Inventive Principle:
Principle #23Feedback

2Reliability

If additional CRC operations are performed on metadata to protect against errors, then data integrity improves, but storage space and processing overhead increase

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the CRC protection mechanism with the existing metadata structure by integrating the CRC code directly into the metadata field in the flash memory page. Instead of treating metadata and CRC as separate entities requiring separate storage and processing, the system combines them into a unified structure. This reduces storage overhead and simplifies the processing workflow while maintaining comprehensive data integrity protection.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies self-service by enabling the metadata to carry its own integrity verification information (CRC code) within its structured data format. The metadata structure includes fields that automatically contain the necessary verification data, allowing the system to verify metadata integrity without requiring external verification structures or additional processing steps. This self-contained approach reduces overall system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10884851B2Method for accessing flash memory module and associated flash memory controller and electronic device
Publication Date: 2021.01.05 SILICON MOTION INC
  • US10884851B2 patent drawing
  • US10884851B2 patent drawing
  • US10884851B2 patent drawing

AI summary

The present invention provides a method for accessing a flash memory module, wherein the method comprises: receiving data and a corresponding metadata from a host device; performing a CRC operation upon the data to generate a CRC code; encoding the metadata and the CRC code to generate an adjusted parity code; encoding the data and the adjusted parity code to generate encoded data, wherein the encoded data comprises the data, the adjusted parity code and an error correction code corresponding to the data and the adjusted parity code; and writing the encoded data and the metadata to a page of a block of a flash memory module.