Dynamic Adaptive Interrupt Coalescing in NVMe Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The NVMe standard's static interrupt coalescing methodology, using TIME and THR parameters, can lead to increased latency while reducing load, but it does not adapt dynamically to varying conditions such as completion queue status, command types, and host latency, potentially impacting performance.

Innovation Solution

Implementing a dynamic and adaptive interrupt coalescing methodology that considers aspects like completion queue ID, command classification, queue depth, latency, and firmware settings to determine optimal interrupt scheduling, allowing for immediate or delayed interrupts based on specific conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static interrupt coalescing with TIME and THR parameters is used, then CPU load is reduced, but latency increases

Engineering Contradiction:
ImproveCPU load reductionVSAvoidinterrupt latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic interrupt coalescing where the coalescing parameters are adjusted in real-time based on system conditions. The controller monitors completion queue status, command types, and host latency metrics, then dynamically modifies the TIME and THR parameters to optimize the balance between CPU load reduction and interrupt latency, rather than using fixed static values

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the coalescing parameters (TIME and THR values) based on varying system conditions. When latency is critical, the parameters are adjusted to reduce coalescing aggressiveness; when CPU load is high, parameters are adjusted to increase coalescing, thereby adapting the system behavior to current operational requirements

Inventive Principle:
Principle #35Parameter changes

2Productivity

If static interrupt coalescing is implemented, then interrupt load is reduced, but adaptability to varying conditions is lost

Engineering Contradiction:
Improveinterrupt load reductionVSAvoidadaptation to system conditions
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent incorporates feedback mechanisms where the controller continuously monitors system state including completion queue depth, command classification, and host response latency. This feedback is used to dynamically adjust interrupt coalescing behavior, allowing the system to adapt to varying conditions such as different command types (read/write/delete), queue status, and host processing capabilities

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system transitions from static to dynamic interrupt coalescing by implementing real-time adjustment of coalescing parameters based on monitored system conditions, enabling the system to adapt its behavior to different operational scenarios and maintain optimal performance across varying workloads

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10466903B2System and method for dynamic and adaptive interrupt coalescing
Publication Date: 2019.11.05 SANDISK TECHNOLOGIES LLC
  • US10466903B2 patent drawing
  • US10466903B2 patent drawing
  • US10466903B2 patent drawing

AI summary

Systems and methods for dynamic and adaptive interrupt coalescing are disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue. The memory device notifies the host device, via an interrupt, of entries on the completion queue. However, excessive interrupts become a burden to the host device. In that regard, the memory device includes a dynamic and adaptive interrupt coalescing methodology according to one or more parameters including: the completion queue; the commands; the queue depth; latency; and memory device firmware settings. In this way, the memory device may reduce the number of interrupts while still notifying the host device in a timely manner.