NVMe Storage Controller Compare Command Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The execution time of the compare command in NVMe protocol-based storage systems is inefficient due to the need for extensive data comparison, which can be improved by focusing on protection information matching before proceeding with data comparison.

Innovation Solution

A data storage device with a controller configured to receive a compare command, fetch and compare protection information from both the host and memory, and only proceed with data comparison when protection information matches, thereby reducing execution time by avoiding unnecessary data fetching in miss-compare scenarios.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the controller compares data fetched from host and memory directly, then the comparison is thorough and accurate, but the execution time is excessively long

Engineering Contradiction:
Improvecomparison accuracyVSAvoidcommand execution time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The comparison operation is segmented into two distinct stages: first comparing protection information (smaller data structure), and only if that matches, then comparing the actual data. This segmentation allows the system to quickly eliminate mismatches at the protection information level, reducing the overall comparison time while maintaining thoroughness when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller performs preliminary comparison of protection information before proceeding to the main data comparison. This preliminary action serves as a filter that can quickly determine mismatches without requiring the more time-consuming full data comparison, thus reducing execution time in cases where data does not match.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the controller fetches and compares all data between host and memory, then complete verification is achieved, but power consumption increases

Engineering Contradiction:
Improveverification completenessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The verification process is divided into segments: protection information verification first, followed by data verification only if needed. This segmentation enables the system to achieve reliable verification when necessary while conserving power by avoiding unnecessary data fetching and comparison operations when protection information already indicates a mismatch.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller performs partial verification by comparing only protection information when sufficient for determining mismatches, rather than always performing complete data comparison. This partial action approach maintains reliability for detecting errors while reducing power consumption by avoiding excessive data processing when not needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10642758B2Storage drive and method of executing a compare command
Publication Date: 2020.05.05 SANDISK TECHNOLOGIES LLC
  • US10642758B2 patent drawing
  • US10642758B2 patent drawing
  • US10642758B2 patent drawing

AI summary

A data storage device includes a memory and a controller coupled to the memory. The controller is configured to receive a compare command from a host, fetch or generate protection information from the host, fetch protection information from the memory, compare the protection information from the host and from the memory, and post a failure notice to the host when the protection information from the host and from the memory do not match. If the protection information from the host and from the memory does match, the controller is further configured to compare data fetched from the host and data fetched from the memory, and post a success notice to the host when both the protection information from the host and the memory match and the data from the host and the memory match.