NVMe Pre-fetch and Non-completion Commands for RAID Parity Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Information handling systems face challenges in optimizing RAID parity calculations, particularly in reducing latency during read-modify-write processes, which affects the quality of service (QoS) performance.
Innovation Solution
The implementation of Non-Volatile Memory Express (NVMe) commands with advisory and non-completion features, including pre-fetch and non-completion commands, to monitor read operations and optimize RAID parity calculations by minimizing latency through advanced notification and controlled interrupt issuance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional RAID parity calculations are performed during read-modify-write processes, then data integrity is maintained, but latency increases and QoS performance deteriorates
Solution Approach 1:
The patent applies preliminary action by using pre-fetch commands to load parity data into cache memory before it is actually needed during the read-modify-write operation. The controller receives a pre-fetch command from the host, retrieves the parity data from the RAID array, and stores it in cache memory. This preliminary data retrieval eliminates the need for subsequent parity read operations during the actual data modification, significantly reducing latency while maintaining data integrity through proper parity calculation when needed.
2Speed
If interrupt issuance is used to notify read operation completion, then response timeliness is improved, but system complexity increases due to additional interrupt handling requirements
Solution Approach 1:
The patent extracts the interrupt issuance functionality from the standard NVMe command completion mechanism by introducing a separate non-completion command. This command allows the host to specifically request that no interrupt be generated for a given read operation, even when data is successfully retrieved. This extraction enables fine-grained control over interrupt behavior, allowing the system to maintain response timeliness through selective interrupt suppression without the complexity of managing interrupt generation for every possible operation outcome.
3Loss of time
If pre-fetch commands are used to monitor read operations, then QoS performance is improved by reducing latency, but command processing complexity increases
Solution Approach 1:
The patent applies universality by designing the pre-fetch command to serve multiple functions: it monitors read operations, triggers data retrieval from the RAID array, stores data in cache memory, and controls interrupt generation through the non-completion command. This multi-functional approach consolidates several operations into a single command mechanism, improving QoS performance by reducing latency while managing command processing complexity through a unified control structure rather than separate operations for each function.
Data Source
AI summary
An information handling system includes a host configured to write a non-volatile memory express (NVMe) command on a memory submission queue slot. The NVMe command includes a pre-fetch command and a non-completion command. A controller uses the pre-fetch command to monitor read operations, and to place on hold an execution of the monitored read operations and an issuance of an interrupt in response to the non-completion command.


