NVMe Memory Control Using CRC-Based UNC Segment Marking
Find Innovative SolutionsGenerate 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
Engineering 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
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).
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.
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
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.
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.
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
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.
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.
Data Source
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.


