IP Library Granted Patent US 12,175,125
Granted Patent B2
US 12,175,125 · App. 17/506,212 · Granted Dec 24, 2024

Data storage devices, systems, and related methods for grouping commands of doorbell transactions from host devices

Inventors: Shay Benisty (Beer Sheva, IL); Judah Gamliel Hahn (Ofra, IL); Ariel Navon (Revava, IL)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0679
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,175,125
App. No.
17/506,212
Granted
Dec 24, 2024
Kind
B2
Abstract

Aspects of the present disclosure generally relate to data storage devices, systems, and related methods that group commands of doorbell transactions from host devices into a plurality of groupings. A controller of a data storage device is configured to receive a plurality of submission doorbell transactions comprising a plurality of commands from a host device. The controller is configured to group the plurality of commands of the plurality of submission doorbell transactions into a plurality of groupings having a grouping order. Each grouping of the plurality of groupings corresponds to a single doorbell transaction of the plurality of submission doorbell transactions. The controller is configured to send one or more completion doorbell transactions to the host device. Each completion doorbell transaction of the one or more completion doorbell transactions identifies a completed grouping of the plurality of groupings.

Claims (56)

1. A data storage device, comprising:

one or more memory devices; and

a controller coupled to the one or more memory devices, wherein the controller is configured to:

receive a plurality of submission doorbell transactions comprising a plurality of commands in a first overall order from a host device, each submission doorbell transaction of the plurality of submission doorbell transactions identifying a subset of one or more commands in a first command order, wherein the plurality of submission doorbell transactions are from a first submission queue,

group the plurality of commands of the plurality of submission doorbell transactions into a plurality of groupings having a grouping order, each grouping of the plurality of groupings corresponding to a single doorbell transaction of the plurality of submission doorbell transactions,

receive a second plurality of submission doorbell transactions, wherein the second plurality of submission doorbell transactions are disposed in a second submission queue, wherein the second submission queue is distinct from the first submission queue,

scan the second plurality of submission doorbell transactions for an abort command, wherein the abort command is in the second submission queue, and

send one or more completion doorbell transactions to the host device, each completion doorbell transaction of the one or more completion doorbell transactions identifying a completed grouping of the plurality of groupings, the completed grouping indicating that the subset of one or more commands corresponding to the completed grouping is completed, wherein the subset of one or more commands comprises a plurality of commands, wherein the plurality of groupings are sent in a completion grouping order that is different from the grouping order.

2. The data storage device of claim 1 , wherein each completion doorbell transaction of the one or more completion doorbell transactions identifies the completed grouping in a second command order that is the same as the first command order.

3. The data storage device of claim 2 , wherein the controller is further configured to conduct the plurality of commands in a first operational order that is different from the first overall order.

4. The data storage device of claim 1 , wherein the controller comprises a host interface module (HIM), the HIM comprising:

a submission database configured to store the plurality of commands; and

a completion ordering logic in communication with the submission database.

5. The data storage device of claim 4 , wherein the controller is further configured to store the plurality of groupings in the submission database.

6. The data storage device of claim 5 , wherein the completion ordering logic is configured to:

monitor the plurality of groupings in the submission database; and

schedule the sending of the one or more completion doorbell transactions to the host device upon a determination that at least one of the plurality of groupings is completed, wherein for each completed grouping, the subset of one or more commands corresponding to the completed grouping is sent to the host device in the same interrupt notification.

7. The data storage device of claim 6 , wherein the controller is further configured to conduct the plurality of commands in a second operational order that is the same as the first overall order.

8. The data storage device of claim 7 , wherein the completion ordering logic is configured to:

schedule the sending of the one or more completion doorbell transactions to the host device upon a determination that every one of the plurality of groupings is completed.

9. The data storage device of claim 8 , wherein the completion ordering logic is configured to:

schedule the sending of the one or more completion doorbell transactions in the completion grouping order upon the determination that every one of the plurality of groupings is completed.

10. The data storage device of claim 4 , wherein the HIM is further configured to, for each of the plurality commands, identify the single doorbell transaction under which each command was received.

11. The data storage device of claim 10 , wherein the controller further comprises:

a processor;

a flash interface module (FIM) in communication with the one or more memory devices; and

a command scheduler in communication with the FIM to conduct the plurality of commands through the FIM, the plurality of commands including one or more of reading operations or writing operations.

12. A data storage device, comprising:

one or more memory devices; and

a controller coupled to the one or more memory devices, wherein the controller is configured to:

receive a plurality of submission doorbell transactions comprising a plurality of commands in a first overall order from a host device, each submission doorbell transaction of the plurality of submission doorbell transactions identifying a subset of one or more commands in a first command order, wherein the plurality of submission doorbell transactions are from a first submission queue,

group the plurality of commands of the plurality of submission doorbell transactions into a plurality of groupings having a grouping order, each grouping of the plurality of groupings corresponding to a single doorbell transaction of the plurality of submission doorbell transactions,

receive a second plurality of submission doorbell transactions, wherein the second plurality of submission doorbell transactions are disposed in a second submission queue, wherein the second submission queue is distinct from the first submission queue,

scan the second plurality of submission doorbell transactions for an abort command,

after scanning the second plurality of submission doorbell transactions, conduct the plurality of commands, wherein the abort command is in the second submission queue, and

send one or more completion doorbell transactions to the host device, each completion doorbell transaction of the one or more completion doorbell transactions identifying a completed grouping of the plurality of groupings, the completed grouping indicating that the subset of one or more commands corresponding to the completed grouping is completed, wherein the subset of one or more commands comprises a plurality of commands, wherein the plurality of groupings are sent in a first completion grouping order that is different from the grouping order.

13. The data storage device of claim 12 , wherein the abort command corresponds to a command of the plurality of commands of the plurality of submission doorbell transactions, and the abort command includes instructions to abort the command.

14. The data storage device of claim 13 , wherein the abort command comprises a unique identifier that identifies the command.

15. The data storage device of claim 13 , wherein the controller is further configured to, if detecting the abort command, remove the command from the one or more completion doorbell transactions.

16. The data storage device of claim 15 , wherein the plurality of commands are conducted in a first operational order that is different from the first overall order.

17. The data storage device of claim 13 , wherein the second plurality of submission doorbell transactions comprises a second plurality of commands, and the controller comprises a host interface module (HIM), the HIM comprising:

a submission database configured to store the plurality of commands and the second plurality of commands; and

a completion ordering logic in communication with the submission database.

18. The data storage device of claim 17 , wherein:

the controller further comprises a command scheduler in communication with the HIM;

the command scheduler does not schedule the command if the abort command is stored in the submission database; and

the completion ordering logic is configured to monitor the plurality of groupings in the submission database and remove the command from the one or more completion doorbell transactions if the abort command is stored in the submission database.

19. A data storage device, comprising:

one or more memory means; and

a controller coupled to the one or more memory means, wherein the controller is configured to:

receive a plurality of submission doorbell transactions comprising a plurality of commands from a host device, each submission doorbell transaction of the plurality of submission doorbell transactions identifying a subset of one or more commands in a first command order, wherein the plurality of submission doorbell transactions are from a first submission queue,

group the plurality of commands of the plurality of submission doorbell transactions into a plurality of groupings having a grouping order, each grouping of the plurality of groupings corresponding to a single doorbell transaction of the plurality of submission doorbell transactions,

receive a second plurality of submission doorbell transactions, wherein the second plurality of submission doorbell transactions are from a second submission queue, wherein the second submission queue is distinct from the first submission queue,

scan the second plurality of submission doorbell transactions for an abort command, wherein the abort command is in the second submission queue, and

send one or more completion doorbell transactions to the host device, each completion doorbell transaction of the one or more completion doorbell transactions identifying a completed grouping of the plurality of groupings, the completed grouping indicating that the subset of one or more commands corresponding to the completed grouping is completed, wherein the subset of one or more commands comprises a plurality of commands, wherein the plurality of groupings are sent in a first completion grouping order that is different from the grouping order.

20. The data storage device of claim 19 , wherein the first submission queue and the second submission queue are disposed in a same core.

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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 058426 FRAME 0815 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0679 →
SECURITY INTEREST Recorded Dec 9, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 058426/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2021
From: BENISTY, SHAY; HAHN, JUDAH GAMLIEL; NAVON, ARIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 057864/0848 →
Continuity (1)
Related Publication 20230120600A1 · Apr 20, 2023