Flash Memory Controller Queue Depth Calculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current flash memory controllers cannot accurately determine the queue depth of the command queue in a host device, which hinders performance optimization.

Innovation Solution

The flash memory controller employs an interrupt coalescing mechanism to set a waiting time and use a timer to calculate the queue depth by subtracting the completion queue head from the submission queue tail when the timer reaches the timeout value.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the flash memory controller uses traditional command queue mechanisms without interrupt coalescing, then the structure is simpler, but the queue depth cannot be accurately determined

Engineering Contradiction:
Improvequeue depth measurement accuracyVSAvoidcontroller mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-setting the timer with a timeout value equal to the interrupt coalescing waiting time before command processing begins. This preliminary configuration enables the controller to accurately measure queue depth without requiring complex real-time calculations during operation, resolving the contradiction between measurement accuracy and device complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The timer acts as an intermediary mechanism between the interrupt coalescing mechanism and the queue depth calculation. By introducing this intermediate timing component, the system can accurately determine queue depth through the relationship between timer timeout and queue pointers, achieving precise measurement while maintaining reasonable system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the flash memory controller implements accurate queue depth calculation using timer and interrupt coalescing, then performance optimization is enabled, but the system complexity increases

Engineering Contradiction:
Improvesystem performanceVSAvoidcontroller mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback by using the timer timeout mechanism to continuously monitor and calculate queue depth based on the relationship between submission queue tail, completion queue head, and interrupt coalescing waiting time. This feedback loop enables performance optimization by providing real-time queue depth information to the controller, improving productivity while managing complexity through a systematic approach.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the flash memory controller uses immediate interrupt signaling without coalescing, then the response time is shorter, but the queue depth cannot be accurately determined

Engineering Contradiction:
Improvequeue depth measurement accuracyVSAvoidinterrupt response time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies periodic action by implementing interrupt coalescing with a waiting time parameter, where interrupts are grouped into periodic cycles rather than responding immediately to each command completion. This periodic approach allows the controller to accumulate queue depth information over multiple operations, achieving accurate measurement while the total time loss is managed through efficient batch processing.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS12326808B2Flash memory controller and associated control method
Publication Date: 2025.06.10 SILICON MOTION INC
  • US12326808B2 patent drawing
  • US12326808B2 patent drawing
  • US12326808B2 patent drawing

AI summary

The present invention provides a control method of a flash memory controller, which includes the steps of: setting a waiting time in an interrupt coalescing mechanism, and setting a timer, wherein a timeout value of the timer is equal to the waiting time; receiving multiple commands from a submission queue in a host device, generating multiple command responses after processing the multiple commands, and writing the multiple command responses to a completion queue in the host device; receiving a submission queue tail and a completion queue head from the host device; and when the timer reaches the timeout value, subtracting the completion queue head from the submission queue tail to obtain a queue depth of a command queue of the host device.