IP Library Granted Patent US 10,235,102
Granted Patent B2
US 10,235,102 · App. 14/929,387 · Granted Mar 19, 2019

Methods, systems and computer readable media for submission queue pointer management

Inventors: Elkana Richter (Tene-Omarim, IL); Shay Benisty (Beer Sheva, IL); Tal Sharifie (Lehavim, IL)
Assignee: SanDisk Technologies LLC
G06F3/0679G06F3/061G06F3/0659G06F13/42
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,235,102
App. No.
14/929,387
Granted
Mar 19, 2019
Kind
B2
Abstract

Methods, systems, and computer readable media for submission queue pointer management are disclosed. One method is implemented in a data storage device including a controller and a memory. The method includes fetching a plurality of commands from a submission queue. The method further includes parsing at least one of the commands. The method further includes, in response to successful parsing of at least one of the commands and prior to executing all of the commands, notifying a host to advance a head entry pointer for the submission queue by a number of entries corresponding to a number of the commands successfully parsed.

Claims (34)

1. A method comprising:

fetching, by a controller of a data storage device including the controller and a memory, a plurality of N commands from a submission queue of a host;

parsing by the controller of the N fetched commands; and

in response to successfully parsing the N fetched commands and executing one or more but less than all of the N parsed commands, notifying of the host by the controller that the N commands were successfully executed.

2. The method of claim 1 comprising maintaining by the controller of a first submission queue head entry pointer corresponding to a number of the commands fetched from the submission queue by the controller.

3. The method of claim 2 comprising maintaining by the controller of a second submission queue head entry pointer corresponding to the number of the commands successfully parsed by the controller.

4. The method of claim 3 , further comprising: notifying the host to advance the second submission queue head entry pointer by a number of entries corresponding to the number of the commands successfully parsed, including communicating a value of the second submission queue head entry pointer to the host.

5. The method of claim 4 wherein communicating the value of the second submission queue head entry pointer to the host includes inserting the second submission queue head entry pointer in a message to be transmitted by the controller to the host in response to completion of execution of one of the commands by the controller.

6. The method of claim 5 comprising, in response to unsuccessful parsing of one of the commands, re-fetching maintaining by the controller of the one command from the host.

7. The method of claim 6 wherein re-fetching the one command from the host comprises requesting the one command from the host before notifying the host to advance the second submission queue head entry pointer beyond an entry for the one command.

8. The method of claim 1 wherein the data storage device comprises a nonvolatile memory device and the controller comprises a nonvolatile memory controller.

9. The method of claim 1 wherein the memory comprises two dimensional or three dimensional NAND flash memory.

10. A data storage device comprising:

a memory; and

a memory controller configured to:

fetch a plurality of N commands from a submission queue of a host;

parse the N fetched commands;

process the parsed commands; and

in response to successfully parsing the N fetched commands and executing one or more but less than all of the N parsed commands, notify the host that the N commands were successfully executed.

11. The data storage device of claim 10 , wherein the memory controller is further configured to maintain a first submission queue head entry pointer corresponding to a number of the commands fetched from the submission queue of the host.

12. The data storage device of claim 11 , wherein the memory controller is further configured to maintain a second submission queue head entry pointer corresponding to a number of the commands successfully parsed.

13. The data storage device of claim 12 , wherein the memory controller is further configured to notify the host to advance the second submission queue head entry pointer by a number of entries corresponding to the number of the commands successfully parsed by communicating a value of the second submission queue head entry pointer to the host.

14. The data storage device of claim 13 , wherein the memory controller is further configured to communicate the value of the second submission queue head entry pointer to the host by inserting the second submission queue head entry pointer in a message transmitted by the memory controller to the host in response to completion of execution of one of the commands.

15. The data storage device of claim 14 , wherein the memory controller is further configured to, in response to unsuccessful parsing of one of the commands, re-fetch the one command from the host.

16. The data storage device of claim 15 , wherein the memory controller is further configured to request the one command from the host before notifying the host to advance the second submission queue head entry pointer beyond an entry for the one command.

17. The data storage device of claim 10 wherein the data storage device comprises a nonvolatile memory device and a nonvolatile memory controller.

18. The data storage device of claim 10 wherein the memory comprises two dimensional or three dimensional NAND flash memory.

19. A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps comprising:

fetching, by a controller of a data storage device, a plurality of N commands from a submission queue of a host;

parsing by the controller of the N fetched commands; and

in response to successfully parsing the N fetched commands and executing one or more but less than all of the N parsed commands, notifying of the host by the controller that the N commands were successfully executed.

20. An apparatus, comprising:

a nonvolatile memory; and

a nonvolatile memory controller configured to fetch and parse a plurality of commands from a host, and, in response to successfully parsing the plurality of fetched commands and executing one or more but less than all of the parsed commands, notify the host that the plurality of commands were successfully executed.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038812/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2016
From: RICHTER, ELKANA; BENISTY, SHAY; SHARIFIE, TAL
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 037455/0658 →
Continuity (1)
Related Publication 20170123667A1 · May 4, 2017
Cited By (1)
US 12,386,560