Memory Controller Feedback for Invalid NVMe IO Queue Size

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing NVMe protocols do not specify how to handle incorrectly configured input/output (IO) queue sizes in SSDs, leading to undefined behavior and potential failure of subsequent IO traffic.

Innovation Solution

A method is provided to send indication information when the IO queue size exceeds a preset value range, allowing the host to reconfigure the transmission value and ensuring valid queue creation, thereby improving the processing capability and performance of the memory controller.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the IO queue size is allowed to exceed preset value range, then the memory controller can accept larger data transmissions, but the system reliability deteriorates due to undefined behavior and potential IO traffic failure

Engineering Contradiction:
ImproveIO queue sizeVSAvoidsystem reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The memory controller implements a feedback mechanism by sending indication information to the host when the IO queue size exceeds the preset value range. This feedback loop allows the host to detect the overflow condition and take corrective actions, such as adjusting the queue size or retransmitting data, thereby preventing undefined behavior and maintaining system reliability while still allowing flexible queue size configuration

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary validation by checking whether the IO queue size falls within the preset value range before processing the queue creation command. When the size exceeds the range, the memory controller proactively sends indication information to the host before any undefined behavior can occur, allowing preventive measures to be taken and avoiding potential IO traffic failure

Inventive Principle:
Principle #10Preliminary action

2Reliability

If the memory controller sends indication information for invalid transmission values, then the processing capability for error information improves, but the device complexity increases

Engineering Contradiction:
Improveprocessing capability for error informationVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The error handling functionality is extracted as a separate, dedicated mechanism within the memory controller. Instead of distributing error checking logic throughout the entire system, the controller has a specific module that detects invalid transmission values and generates indication information. This extraction simplifies the overall system architecture by centralizing error handling while improving the processing capability for error information

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The indication information acts as an intermediary between the memory controller and the host system. Rather than requiring complex direct communication protocols or multiple validation layers, the controller uses this intermediate signal to convey error status to the host, which then handles the appropriate corrective actions. This intermediary mechanism improves error processing capability while adding minimal complexity to the device

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20260064314A1Storage controller operating methods, storage systems and electronic equipments
Publication Date: 2026.03.05 YANGTZE MEMORY TECH CO LTD
  • US20260064314A1 patent drawing
  • US20260064314A1 patent drawing
  • US20260064314A1 patent drawing

AI summary

A method of operating a memory controller comprises: receiving a command to create an input/output (IO) queue; and when a first transmission value of the IO queue exceeds a preset value range, sending target indication information, wherein the target indication information is to indicate that the first transmission value is invalid, and the first transmission value indicates a size of information received by the IO queue.