NVMe Compare Command Chunk Processing Buffer Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The NVMe protocol's compare command execution faces high bandwidth requirements, particularly in the enterprise SSD market, necessitating efficient buffer management to minimize the need for additional buffers and ensure synchronization between host and memory device data transfers.

Innovation Solution

The solution involves scheduling reads from the memory device, comparing available chunks of data with corresponding data from the host device, canceling remaining reads if mismatched, and using a RAID engine for parallel decoding and comparison, which reduces the need for internal buffers and allows for early detection of compare command failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional compare command execution is used, then data comparison can be performed, but high bandwidth requirements and large buffer requirements result

Engineering Contradiction:
Improvecompare command execution efficiencyVSAvoidbuffer memory requirement
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the compare command execution into multiple independent chunks, where each chunk can be processed separately. The controller retrieves and compares data in smaller units rather than loading entire datasets into buffers, significantly reducing buffer memory requirements while maintaining comparison functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller performs preliminary actions by scheduling and initiating data retrieval from the memory device before the host device transfers data. This allows the controller to have data ready in smaller chunks and begin comparison operations earlier, reducing the need for large buffers to hold pending data.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If data is retrieved in chunks for comparison, then buffer requirements are reduced, but synchronization between host and device data transfers becomes more complex

Engineering Contradiction:
Improvebuffer memory requirementVSAvoiddata transfer synchronization complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The controller implements feedback mechanisms by monitoring the availability of data chunks from both the memory device and host device, dynamically adjusting retrieval and comparison operations based on real-time data availability. This feedback loop simplifies synchronization by reacting to actual data readiness rather than pre-coordinating complex transfer schedules.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent employs dynamic chunk-based processing where the size and timing of data retrieval operations are adjusted based on real-time conditions. The controller can adaptively retrieve smaller or larger chunks depending on data availability and comparison progress, making the synchronization process more flexible and manageable.

Inventive Principle:
Principle #15Dynamics

3Reliability

If all data is retrieved before comparison, then complete accuracy is ensured, but bandwidth consumption increases and performance decreases

Engineering Contradiction:
Improvecompare command accuracyVSAvoidcompare command execution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller performs partial comparison actions by processing data in chunks rather than requiring complete data retrieval before starting comparisons. This allows comparison operations to begin with available data, improving execution speed while maintaining accuracy through systematic chunk-by-chunk verification.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent enables continuous comparison operations by retrieving and comparing data chunks in an ongoing manner rather than waiting for complete data transfer. This continuous action maintains comparison accuracy while improving throughput by keeping the comparison engine continuously active rather than idle during data transfer.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11726715B2Efficient data path in compare command execution
Publication Date: 2023.08.15 SANDISK TECHNOLOGIES LLC
  • US11726715B2 patent drawing
  • US11726715B2 patent drawing
  • US11726715B2 patent drawing

AI summary

The present disclosure generally relates to efficient execution of compare commands. Reads from the memory device for the compare commands are scheduled. Available chunks of data is received from the memory device, and the corresponding data is received from the host device. The data is compared. If the data does not match, the remaining reads are cancelled, and a compare completion is placed in the completion queue indicating a failed compare command. If all of the data matches, then a compare completion is placed in the completion queue indicating a successful compare command. Read transfers from the host device are scheduled based on availability of read data from the memory device side. By doing so, less buffers are needed to hold the data internally until both chunks of data are available. In so doing, synchronization between read data availability and retrieving data from the host device is synchronized.