NVMe Memory Control Using CRC-Based UNC Segment Marking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current non-volatile memory control techniques, particularly in the NVMe interface, are limited in accurately marking and recognizing uncorrectable data segments, as the UNC flag bit in the mapping information format can only mark data in multiples of 4 KB, failing to correctly respond to UNC marking commands for smaller logical address segments.

Innovation Solution

Integration of a specific cyclic redundancy check (CRC) code within the CRC technique to mark logical address segments as uncorrectable, allowing for flexible marking and recognition of uncorrectable data, even for segments smaller than the management unit, by using a controller with a CRC engine to assign and verify the CRC code in the non-volatile memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the UNC flag bit in the mapping information format is used to mark uncorrectable data, then the data can be marked as uncorrectable, but the marking is limited to multiples of 4 KB and cannot accurately mark smaller logical address segments

Engineering Contradiction:
Improvemarking precisionVSAvoidflexibility in marking size
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent segments the UNC marking capability into two independent components: a UNC flag bit for 4 KB management unit marking and a CRC field for fine-grained logical address segment marking. This segmentation allows each component to operate independently, resolving the contradiction by enabling both precise marking of small segments (via CRC) and efficient marking of larger units (via UNC flag).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces the CRC field as an intermediary mechanism that bridges the gap between the coarse-grained UNC flag bit marking and the fine-grained logical address segment marking requirements. The CRC field acts as a mediator that translates UNC marking commands for arbitrary logical address segments into verifiable CRC codes, enabling precise marking without being constrained by the 4 KB management unit boundary.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If a specific cyclic redundancy check code is used to mark uncorrectable logical address segments, then accurate marking of small segments is enabled, but the complexity of the controller increases due to the need for a CRC engine

Engineering Contradiction:
Improvemarking precisionVSAvoidcontroller complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent makes the CRC engine a multi-functional component that serves both as a marking mechanism (generating specific CRC codes for UNC segments) and as a verification mechanism (checking CRC codes during read operations). This multi-functionality reduces the need for separate dedicated hardware for each function, thereby minimizing the increase in controller complexity while achieving precise marking capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the UNC marking function with the existing CRC verification infrastructure in the controller. By combining the UNC marking capability into the CRC engine's existing operations, the patent avoids duplicating functionality and reduces the overall complexity increase. The CRC engine simultaneously handles both marking (during write) and verification (during read) operations.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of manufacture

If the UNC flag bit is used for marking, then the implementation is simple, but the responsiveness to UNC marking commands for segments smaller than 4 KB is poor

Engineering Contradiction:
Improveimplementation simplicityVSAvoidresponsiveness to UNC marking commands
Core Design Contradiction:
Ease of manufactureVSSpeed

Solution Approach 1:

The patent performs preliminary action by pre-calculating and storing the specific CRC code corresponding to each UNC marking command in the mapping information. When a UNC marking command is received, the controller immediately retrieves the pre-prepared CRC code and writes it to the metadata, enabling fast marking without requiring complex real-time calculations. This preliminary preparation maintains implementation simplicity while improving responsiveness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by retrieving and writing pre-defined CRC codes from the mapping information structure to the metadata area. Instead of performing complex marking operations, the controller simply copies the appropriate CRC code (selected based on the logical address segment) into the metadata, significantly improving the speed of UNC marking operations while keeping the implementation straightforward.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11218164B2Data storage device and non-volatile memory control method
Publication Date: 2022.01.04 SILICON MOTION INC
  • US11218164B2 patent drawing
  • US11218164B2 patent drawing
  • US11218164B2 patent drawing

AI summary

Uncorrectable (UNC) marking on a non-volatile memory is provided. In response to a UNC marking command issued by a host, a cyclic redundancy check (CRC) engine provides a specific CRC code to mark a logical address segment as uncorrectable, wherein the logical address segment is requested to be marked as uncorrectable by the UNC marking command. As long as the specific CRC code is recognized, a CRC procedure is not required and the data requested by the host is directly determined as uncorrectable.