NVMe Controller Command Fetching Based on Completion Queue Free Slots

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In nonvolatile memory systems, such as solid state drives (SSDs) using the NVMe standard, the completion queue can become full due to delays in command completion processing by the host, leading to command completions being unable to be placed, causing the controller to stop processing commands and resulting in system stalls.

Innovation Solution

The controller determines the number of free slots in the completion queue and fetches a corresponding number of commands from the submission queue, limiting the maximum number of commands based on available slots to prevent queue overflow and ensure smooth command processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the controller continuously fetches commands from the submission queue without checking completion queue status, then command processing speed is improved, but the completion queue may become full causing system stalls

Engineering Contradiction:
Improvecommand processing speedVSAvoidsystem stall prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The controller performs preliminary action by checking the number of free slots in the completion queue before fetching commands from the submission queue. This advance check prevents the completion queue from becoming full, thereby avoiding system stalls while maintaining efficient command processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller uses feedback from the completion queue status (number of free slots) to adjust the number of commands fetched from the submission queue. This feedback mechanism ensures that command fetching is adaptive to the completion queue's capacity, preventing overflow and system stalls.

Inventive Principle:
Principle #23Feedback

2Reliability

If the controller limits the number of commands fetched based on completion queue free slots, then system reliability is improved, but command processing throughput may be reduced

Engineering Contradiction:
Improvecompletion queue overflow preventionVSAvoidcommand processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller dynamically adjusts the number of commands fetched from the submission queue based on the real-time status of the completion queue (number of free slots). This dynamic adaptation allows the system to maintain high throughput when the completion queue has ample space while preventing overflow when slots are limited, thus balancing reliability and productivity.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11704065B2Memory system limiting fetching from host submission queue based on free space of corresponding completion queue and control method thereof
Publication Date: 2023.07.18 KIOXIA CORP
  • US11704065B2 patent drawing
  • US11704065B2 patent drawing
  • US11704065B2 patent drawing

AI summary

According to one embodiment, a controller of a memory system executes communication with a host in conformity with a standard of NVM express. When fetching a command from a first submission queue, the controlled of the memory system determine the number of commands to be fetched with the number of free slots among a plurality of slots included in a first completion queue as an upper limit. The controller fetches the determined number of commands from the first submission queue.