NVMe Storage Controller Compare Command Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If the controller fetches and compares all data between host and memory, then complete verification is achieved, but power consumption increases
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.
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.
Data Source
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.


