NVMe Memory Controller Set-Aside Buffer Atomic Command Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveatomic processing guaranteeVSAvoiddrive operation speed
Core Design Contradiction:
ReliabilityVSSpeed

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvefused command atomicityVSAvoidcommand processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12112072B2Method and memory device for atomic processing of fused commands
Publication Date: 2024.10.08 SAMSUNG ELECTRONICS CO LTD
  • US12112072B2 patent drawing
  • US12112072B2 patent drawing
  • US12112072B2 patent drawing

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.