IP Library Granted Patent US 12,625,828
Granted Patent B2
US 12,625,828 · App. 18/522,514 · Granted May 12, 2026

NVMe completion and interrupt

Inventors: Amir Segev (Meiter, IL); Shay Benisty (Beer Sheva, IL)
Assignee: Sandisk Technologies, Inc.
G06F13/1673
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 12,625,828
App. No.
18/522,514
Granted
May 12, 2026
Kind
B2
Abstract

Instead of having uncertainty when waiting on completions, utilize unordered input output memory write (UIOMWr) to ensure the completions of the write. Using UIOMWr, the data storage device will write the competitions to a host dynamic random access memory (DRAM). When the device receives an approval of the completion, the device knows that the write to the host DRAM was successful. The approval will trigger the device to have the message signaled interrupts extended (MSIx) send an interrupt request (IRQ) to the host. The IRQ will pass through the PCIe and will be received by the host CPU. The host CPU will then process any pending completions in the host DRAM. An MSIx tag can be added to the completion (at the UIOMWr TLP level) that is assigned to multiple submission queues (SQ). When the MSIx tag is received by the host and device, the host and device will know what information needs to be pulled to avoid the need for translation later on.

Claims (33)

1 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

send a nonvolatile memory express (NVMe) completion to a host device, wherein the NVMe completion has a tag, the tag being assigned to two or more completion queues of the host device;

send multiple NVMe completions to a same completion queue of the two or more completion queues utilizing multiple transaction layer packets (TLPs), wherein other TLPs of the multiple TLPs excluding a last TLP of the multiple TLPs do not use unordered input output memory write (UIOMWr);

receive a peripheral component interconnect express (PCle) completion from the host device, wherein the PCle completion has the tag; and

send an interrupt to the host device.

2 . The data storage device of claim 1 , wherein the tag is an indication of which message signaled interrupts extended (MSIx) or message signaled interrupt (MSI) or interrupt extended (INTx) to utilize.

3 . The data storage device of claim 1 , wherein the NVMe completion is for a first completion queue of the two or more completion queues and the PCle completion is for the first completion queue.

4 . The data storage device of claim 1 , wherein the controller uses UIOMWr to write the NVMe completion.

5 . The data storage device of claim 4 , wherein the controller is configured to send multiple UIOMWr completions with the same tag as the NVMe completion tag.

6 . The data storage device of claim 1 , wherein the controller is configured to increase a counter when sending the NVMe completion.

7 . The data storage device of claim 6 , wherein the controller is configured to decrease the counter when receiving the PCle completion.

8 . The data storage device of claim 7 , wherein the sending an interrupt is performed when the counter reaches 0 after being decreased to 0.

9 . The data storage device of claim 1 , wherein the interrupt is sent after multiple PCle completions have been received for a same completion queue.

10 . The data storage device of claim 1 , wherein the last TLP of the multiple TLPs uses UIOMWr.

11 . A data storage device, comprising:

a memory device; and

a controller coupled to the memory device, wherein the controller is configured to:

send a first device completion notification to a completion queue of a host device;

send a second device completion notification to the completion queue of the host device, wherein the second device completion notification is sent prior to receiving a first host completion notification from the host device for the first device completion notification;

maintain a counter for completion notifications, wherein the counter is increased when sending each device completion notification, and wherein the counter is decreased when receiving each host completion notification; and

send an interrupt to the host device, wherein the interrupt is sent after receiving a second host completion notification from the host device for the second device completion notification, wherein the interrupt is sent when the counter is 0 after being decreased to 0.

12 . The data storage device of claim 11 , wherein the interrupt is an message signaled interrupts extended (MSIx) interrupt, a message signaled interrupt (MSI) interrupt, or an interrupt extended (INTx) interrupt.

13 . A data storage device, comprising:

means to store data; and

a controller coupled to the means to store data, wherein the controller is configured to:

send multiple transaction layer packets (TLPs) to a completion queue of a host device, the completion queue being assigned to a tag, wherein a last TLP of the multiple TLPs includes a uses unordered input output memory write (UIOMWr), and wherein other TLPs of the multiple TLPs excluding the last TLP do not include UIOMWr; and

send an interrupt to the host device after receiving an acknowledgement of the last TLP based on the last TLP having the UIOMWr.

14 . The data storage device of claim 13 , wherein interrupts are not sent to the host device after the other TLPs.

15 . The data storage device of claim 13 , wherein the controller is configured to send multiple UIOMWr completions with different tags.

16 . The data storage device of claim 13 , wherein the controller is configured to increase a counter when completions are sent, and decrease the counter when the controller determines that a host completion response has been received, and wherein a counter and a tag are different based on an message signaled interrupts extended (MSIx) vectors.

17 . The data storage device of claim 13 , wherein the controller is further configured to create a plurality of completion queues (CQs).

Assignments (8)
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 (AR) Recorded Feb 22, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 066648/0284 →
PATENT COLLATERAL AGREEMENT (DDTL) Recorded Feb 22, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 066648/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2023
From: SEGEV, AMIR; BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 065702/0512 →
Continuity (1)
Related Publication 20250173283A1 · May 29, 2025
References Cited (25)
US 8554968B1 · Onufryk · 2013 [cited by examiner]
US 9128920B2 · Ning et al. · 2015 [cited by applicant]
US 9684613B2 · Patwa et al. · 2017 [cited by applicant]
US 9898427B2 · Bergsten · 2018 [cited by examiner]
US 9965412B2 · Liu et al. · 2018 [cited by applicant]
US 10466903B2 · Benisty et al. · 2019 [cited by applicant]
US 11068422B1 · Tai et al. · 2021 [cited by applicant]
US 20110093637A1 · Gupta · 2011 [cited by examiner]
US 20140207980A1 · Tsurumi · 2014 [cited by examiner]
US 20150281126A1 · Regula · 2015 [cited by examiner]
US 20160026388A1 · Jeong · 2016 [cited by examiner]
US 20160132237A1 · Jeong · 2016 [cited by examiner]
US 20170017516A1 · Sato · 2017 [cited by examiner]
US 20180113615A1 · Park · 2018 [cited by applicant]
US 20180275872A1 · Benisty et al. · 2018 [cited by applicant]
US 20190146684A1 · Benisty · 2019 [cited by examiner]
US 20190317696A1 · Jagadish · 2019 [cited by examiner]
US 20200012451A1 · Benisty · 2020 [cited by applicant]
US 20200065264A1 · Gissin · 2020 [cited by examiner]
US 20210042039A1 · Benisty · 2021 [cited by examiner]
US 20210049120A1 · Cha · 2021 [cited by examiner]
US 20220027292A1 · Gissin · 2022 [cited by examiner]
CN 116225992A · 2023 [cited by applicant]
CN 117093517A · 2023 [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2024/039932 dated Nov. 13, 2024. [cited by applicant]