NVMe Memory Controller Set-Aside Buffer Atomic Command Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The processing of split fused commands in NVMe devices leads to inefficiencies due to the need for sequential retrieval and atomic processing, causing bottlenecks as the device waits for the second command of a pair before continuing with other commands, which slows down operation.
Innovation Solution
A memory device with a controller that includes an arbiter, command fetcher, set-aside buffer, and command processor, which identifies and stores the first fused command from a split pair, allowing it to be processed atomically with the second command upon matching identifiers, enabling the device to continue processing other commands without interruption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the NVMe device waits for the second command of a fused pair before continuing with other commands, then atomic processing of fused commands is ensured, but drive operation speed deteriorates
Solution Approach 1:
The patent stores the first command of a potentially split fused pair in a set-aside buffer as soon as it is retrieved, performing the buffering action in advance. This preliminary action allows the command to be ready for atomic processing with the second command when it arrives, without requiring the device to pause and wait, thus maintaining both atomicity and throughput
Solution Approach 2:
The set-aside buffer acts as an intermediary storage structure between the command retrieval stage and the processing stage. It temporarily holds the first command of fused pairs, enabling the system to decouple the arrival of commands from the requirement of atomic processing, thereby allowing continuous operation while preserving atomicity guarantees
2Reliability
If the device ceases retrieval and processing of other commands to wait for split fused commands, then correct atomic processing is maintained, but productivity deteriorates
Solution Approach 1:
The patent segments the command processing workflow into distinct stages: retrieval, buffering (for first commands of fused pairs), and processing. By separating the buffering function from the processing function using the set-aside buffer, the system can continue retrieving and processing other commands while the first command waits in the buffer, thus maintaining productivity without sacrificing atomicity
Solution Approach 2:
The set-aside buffer serves as an intermediary that decouples the command retrieval stream from the processing stream. This allows the retrieval and processing of non-fused commands to proceed independently and continuously, while fused commands are properly paired and processed atomically, thereby maintaining high productivity while ensuring correctness
Data Source
AI summary
A method and a memory device are provided. A controller of the memory device retrieves a first command from a host memory. The controller stores a first identifier of the first command in a set-aside buffer of the memory device. The controller retrieves a second command from the host memory. The controller initiates processing of the first command and the second command based on a second identifier of the second command corresponding to the first identifier.


