Adaptive ECC Length Mapping for NVMe Key-Value Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is a need to optimize error correction code (ECC) lengths for key value (KV) pair data in data storage devices to improve storage efficiency and performance, as existing methods do not effectively adapt ECC lengths to the varying value lengths and decoding capabilities of KV pair data.
Innovation Solution
A data storage device with a controller that determines ECC code lengths and rates based on the value length and decoding capability of KV pair data, generating ECC parity accordingly to program the data, thereby optimizing storage space and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If a fixed ECC code length is used for all KV pair data, then the implementation is simple, but storage efficiency decreases because ECC parity occupies excessive space for small values
Solution Approach 1:
The patent implements dynamic ECC code length selection based on the value length of KV pair data. The controller adjusts the ECC code length according to the size of the value being stored, transitioning from a static fixed-length approach to a dynamic adaptive approach. This resolves the contradiction by making the ECC length flexible rather than fixed, optimizing storage efficiency while maintaining implementation feasibility through standardized length options.
Solution Approach 2:
The patent changes the parameter of ECC code length from a constant value to a variable that depends on the value length of the KV pair data. By establishing a relationship between value length and ECC code length (e.g., different ECC lengths for different value size ranges), the system optimizes storage efficiency without significantly complicating the implementation, as the mapping between value length and ECC length follows standardized patterns.
2Reliability
If longer ECC code lengths are used to ensure correction capability, then reliability improves, but storage space for non-ECC data decreases
Solution Approach 1:
The patent applies parameter changes by adjusting the ECC code length parameter based on the actual needs of the data being stored. Instead of using a uniformly long ECC code for all data, the system selects appropriate ECC lengths matching the value length of KV pairs, ensuring sufficient error correction capability while minimizing the storage overhead of ECC parity.
Solution Approach 2:
The system dynamically adjusts ECC code length according to the value length of KV pair data and memory device health status. This dynamic adaptation ensures that the error correction capability is sufficient for each specific data instance while optimizing storage capacity by avoiding excessive ECC overhead for smaller values.
3Quantity of substance
If variable ECC code lengths are implemented based on value length, then storage efficiency improves, but device complexity increases
Solution Approach 1:
The patent implements variable ECC code lengths by changing the ECC length parameter based on value length categories. The controller determines the value length, categorizes it into ranges, and selects the corresponding ECC code length from a set of standardized options. This approach improves storage efficiency while limiting complexity growth by using discrete, standardized length values rather than continuous variation.
Solution Approach 2:
The system introduces dynamic selection of ECC code lengths based on value length and memory health, but manages complexity by establishing clear mapping rules between value length ranges and ECC lengths. The controller uses predefined thresholds and standardized ECC length options to make the dynamic adaptation process systematic and manageable.
4Productivity
If ECC code length is adapted to value length, then read throughput improves, but decoding complexity increases
Solution Approach 1:
The patent implements dynamic ECC code length adaptation that improves read throughput by using shorter ECC codes for smaller values, reducing decoding time. The decoding complexity increases but is managed through standardized length options and clear mapping rules between value length and ECC length, making the complexity systematic rather than arbitrary.
Solution Approach 2:
The system changes the ECC code length parameter based on value length to optimize read throughput. By using shorter ECC codes for smaller values, the decoding operation becomes faster. The increase in decoding complexity is mitigated by using a limited set of standardized ECC lengths and establishing clear selection criteria based on value length categories.
Data Source
AI summary
A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to determine an error correction code (ECC) code length for KV pair data and/or an ECC code rate for the KV pair data, where the ECC code length and the ECC code rate are selected according to a value length and decoding capability of the KV pair data, generate ECC parity based on the selecting, and program the KV pair data and the generated ECC parity to the memory device.


