IP Library Granted Patent US 10,466,903
Granted Patent B2
US 10,466,903 · App. 15/468,620 · Granted Nov 5, 2019

System and method for dynamic and adaptive interrupt coalescing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,466,903
App. No.
15/468,620
Granted
Nov 5, 2019
Kind
B2
Abstract

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.

Claims (48)

1. A method comprising:

performing the following in a storage system in communication with a host device:

analyzing fullness of a completion queue by comparing a level of fullness of the completion queue to at least two levels;

in response to determining that the level of fullness is at or below a first level, generating an interrupt to the host device, the interrupt indicative to the host device that processing of one or more commands on the completion queue is completed;

in response to determining that the level of fullness is at or above a second level, waiting to generate the interrupt to the host device; and

in response to determining that the level of fullness is between the first level and the second level, partially coalescing the interrupt to the host device.

2. The method of claim 1 , further comprising:

determining whether to coalesce notification of completion of a first command with notification of completion of a second command; and

in response to determining not to coalesce immediately sending the interrupt to the host device.

3. The method of claim 1 , further comprising:

analyzing an identification associated with the completion queue, wherein the identification associated with the completion queue is indicative of a priority of the completion queue; and

determining, based on the priority of the completion queue, whether when to generate the interrupt to the host device.

4. The method of claim 3 , wherein:

the identification associated with the completion queue comprises an associated identification with a submission queue; and

wherein the priority of the completion queue comprises a priority of the submission queue.

5. The method of claim 1 , wherein the two levels are predetermined.

6. The method of claim 1 , wherein the two levels are dynamically determined.

7. The method of claim 1 , further comprising:

determining a type of command; and

determining, based on the type of command, whether to coalesce the interrupt with another interrupt or to send the interrupt immediately.

8. The method of claim 1 , further comprising:

determining outstanding commands subject to execution in the storage system; and

determining, based on the outstanding commands subject to execution, whether to coalesce the interrupt with another interrupt or to send the interrupt immediately.

9. A memory system device comprising:

a memory;

and

a controller in communication with the memory, the controller configured to:

analyze fullness of a completion queue by comparing a level of fullness of the completion queue to at least two levels;

in response to determining that the level of fullness is at or below a first level, generate a notification to the host device;

in response to determining that the level of fullness is at or above a second level, wait to generate the notification to the host device; and

in response to determining that the level of fullness is between the first level and the second level, partially coalesce the notification to the host device.

10. The memory system of claim 9 , wherein the controller is further configured to:

estimate a host latency, the host latency indicative of a time period for the host device to respond to the notification; and

time sending the notification based on both the estimated completion and the host latency.

11. The memory system of claim 10 , wherein the controller is further configured to estimate the host latency based on responses of the host device to previous notifications.

12. The memory system of claim 9 , wherein the controller is further configured to

determine not to coalesce the notification to the host device; and

in response to determining not to coalesce the notification to the host device, send the notification immediately to the host device.

13. A memory system comprising:

a memory;

means for analyzing fullness of a completion queue by comparing a level of fullness of the completion queue to at least two levels;

means for generating an interrupt to the host device, in response to determining that the level of fullness is at or below a first level, the interrupt indicative to the host device that processing of one or more commands on the completion queue is completed;

means for waiting to generate the interrupt to the host device, in response to determining that the level of fullness is at or above a second level; and

means for partially coalescing the interrupt to the host device, in response to determining that the level of fullness is between the first level and the second level.

14. The memory system of claim 13 , further comprising means for dynamically determining one or both of the first level and the second level.

15. The memory system of claim 14 , wherein the means for dynamically f determining one or both of the first level and the second level is based on host latency, the host latency indicative of a time period for the host device to respond to the interrupt.

16. The memory system of claim 14 , wherein the means for dynamically determining one or both of the first level and the second level is based on priority of command entries in the completion queue.

17. The memory system of claim 13 , further comprising means for determining to partially coalesce based on an estimated time of completion of processing of one or more commands.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2017
From: BENISTY, SHAY; EREZ, ERAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041726/0956 →