Variable ECC Code Rate for NVMe KV Pair Data Entropy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing key value (KV) data storage devices face challenges in optimizing error correction code (ECC) for variable lengths of KV pair data, leading to high resource and bandwidth requirements for decoding large amounts of data.

Innovation Solution

A data storage device with a controller that determines the entropy value of KV pair data, selects an appropriate ECC code rate, and encodes the data using this rate, allowing for aggregation and efficient programming to a codeword, thereby optimizing ECC for variable lengths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a fixed ECC code rate is used for all KV pair data, then the encoding process is simple, but the decoding requires large amounts of resources and bandwidth due to variable data lengths

Engineering Contradiction:
Improveencoding complexityVSAvoiddecoding efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic ECC code rate selection based on the entropy of KV pair data. The controller determines the entropy value of the KV pair data and selects an appropriate ECC code rate from multiple available rates, allowing the system to adapt the encoding strength to the actual data characteristics rather than using a fixed code rate for all data

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the ECC code rate parameter based on the entropy measurement of the input data. By measuring entropy and selecting different code rates accordingly, the system optimizes the balance between encoding simplicity and decoding efficiency for variable-length KV pair data

Inventive Principle:
Principle #35Parameter changes

2Reliability

If a high ECC code rate is used to ensure error correction capability, then data reliability is improved, but the amount of parity data increases reducing storage space

Engineering Contradiction:
Improveerror correction capabilityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the ECC code rate parameter based on the entropy of the KV pair data. For data with lower entropy (more predictable patterns), a lower code rate is selected, reducing the amount of parity data required. For data with higher entropy (more random patterns), a higher code rate is selected to maintain error correction capability. This adaptive approach optimizes the balance between reliability and storage space utilization

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If variable length KV pair data is stored, then data flexibility and performance are improved, but the amount of data increases requiring more resources for decoding

Engineering Contradiction:
Improvedata flexibilityVSAvoiddecoding resources
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements dynamic adaptation to variable-length KV pair data by measuring the entropy of each data set and selecting an appropriate ECC code rate. This dynamic approach allows the system to handle variable data lengths efficiently by adjusting the encoding parameters to match the actual data characteristics, reducing the computational resources required for decoding compared to using a fixed high code rate for all data

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11853160B2Variable length ECC code according to data entropy in NVMe key value pair devices
Publication Date: 2023.12.26 SANDISK TECHNOLOGIES LLC
  • US11853160B2 patent drawing
  • US11853160B2 patent drawing
  • US11853160B2 patent drawing

AI summary

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to receive key value (KV) pair data, determine an entropy value of the received KV pair data, select an error correction code (ECC) code rate based on the determined entropy value, and program the KV pair data to a codeword (CW). The KV pair data includes a key and a value. The programming includes encoding the KV pair data using the selected ECC code rate. The controller is further configured to aggregate a portion of another KV pair data and the KV pair data and program the aggregated KV pair data to the CW using a selected ECC code rate.