NVMe Controller Dynamic Interrupt Coalescing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing interrupt control mechanisms in nonvolatile memory systems, such as those using NVM Express (NVMe) standards, can degrade host I/O access performance by maintaining a static frequency of completion responses per interrupt, leading to inefficiencies in processing and increased latency.

Innovation Solution

The proposed solution involves a controller that adaptively controls interrupt coalescing based on the status of ongoing data write or read operations in the NAND flash memory, waiting for completion of subsequent operations before transmitting interrupts, thereby optimizing the timing of completion responses and reducing host processing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If interrupt coalescing is implemented with a static control method, then the host processing load is reduced, but the I/O access performance is degraded

Engineering Contradiction:
Improvehost processing loadVSAvoidI/O access performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic interrupt coalescing control where the controller adjusts the interrupt transmission strategy based on real-time monitoring of I/O command processing status. When multiple I/O commands are being processed simultaneously, the controller coalesces completion responses into a single interrupt transmission. When only one I/O command is processed, the controller transmits completion responses immediately without coalescing. This dynamic adjustment optimizes both host processing load and I/O access performance depending on the current system state.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The controller changes the interrupt coalescing parameter (number of completion responses per interrupt) based on the processing status of I/O commands. The system transitions between different operational modes (coalescing mode vs. immediate transmission mode) by adjusting this parameter dynamically, allowing the system to adapt to varying workloads and maintain optimal performance characteristics.

Inventive Principle:
Principle #35Parameter changes

2Loss of energy

If the number of completion responses per interrupt is increased, then the interrupt transmission frequency is reduced, but the latency of completion response processing is increased

Engineering Contradiction:
Improveinterrupt transmission frequencyVSAvoidcompletion response processing latency
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The system dynamically adjusts the degree of interrupt coalescing based on the number of concurrently processed I/O commands. When multiple commands are processed, the system increases coalescing (transmitting multiple completion responses per interrupt) to reduce interrupt frequency. When only one command is processed, the system decreases coalescing (immediate transmission) to minimize latency. This dynamic behavior optimizes the trade-off between interrupt frequency and processing latency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The controller monitors the processing status of I/O commands as feedback and uses this information to adjust interrupt transmission behavior. By continuously tracking whether one or multiple I/O commands are being processed, the system adapts its interrupt coalescing strategy in real-time, ensuring optimal balance between reducing interrupt frequency and maintaining low processing latency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12019901B2Memory system connectable to a host and including a nonvolatile memory and a controller electrically connected to the nonvolatile memory
Publication Date: 2024.06.25 KIOXIA CORP
  • US12019901B2 patent drawing
  • US12019901B2 patent drawing
  • US12019901B2 patent drawing

AI summary

According to one embodiment, when completion of a program operation or a sense operation corresponding to a second I/O command is detected in a first period after a first completion response indicating completion of a first I/O command is transmitted to a host and before transmission of an interrupt to the host is started, a controller waits for completion of a data write operation or a data read operation corresponding to the second I/O command, without transmitting the interrupt. In response to detecting the completion of the data write operation or data read operation, the controller transmits a completion response indicating completion of the second I/O command to the host, and transmits the interrupt to the host.