Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues

US9927983B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9927983-B2
Application numberUS-201514868373-A
CountryUS
Kind codeB2
Filing dateSep 28, 2015
Priority dateSep 28, 2015
Publication dateMar 27, 2018
Grant dateMar 27, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, systems, and computer readable media for intelligent fetching of storage device commands from submission queues are disclosed. On method is implemented in a data storage device including a controller and a memory. The method includes collecting submission queue command statistics; monitoring resource state of the data storage device. The method further includes using the submission queue command statistics and the resource state to select a submission queue from which a next data storage device command should be fetched. The method further includes fetching the command from the selected submission queue. The method further includes providing the command to command processing logic.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: collecting command statistics pertaining to storage device commands previously fetched from respective submission queues of a plurality of submission queues associated with a data storage device; fetching storage device commands from the submission queues, wherein fetching a storage device command comprises: selecting a submission queue from which to fetch the storage device command based on the command statistics pertaining to the storage device commands previously fetched from the respective submission queues and a state of one or more resources of the data storage device; fetching the command from the selected submission queue; and providing the command to command processing logic, wherein collecting the command statistics comprises collecting information regarding whether particular submission queues historically contain a majority of random input/output (I/O) commands or a majority of sequential I/O commands. 2. The method of claim 1 , wherein collecting the command statistics further comprises collecting statistics regarding a number of pending storage device commands in the respective submission queues. 3. The method of claim 1 , wherein collecting the command statistics further comprises collecting an indication of a number of storage device commands previously fetched from the respective submission queues. 4. The method of claim 1 , wherein collecting the command statistics further comprises collecting command type information for the storage device commands previously fetched from the respective submission queues. 5. The method of claim 1 , wherein: collecting the command statistics comprises determining whether the respective submission queues are likely to comprise one of: read commands and write commands based on the storage device commands previously fetched from the respective submission queues, and selecting the submission queue from which to fetch the storage device command from a submission queue determined to comprise one of: read commands and write commands. 6. The method of claim 1 , further comprising determining the state of the one or more resources of the data storage device. 7. The method of claim 6 , wherein determining the state of the one or more resources of the data storage device comprises monitoring one or more of: a read pipeline of the data storage device, a write pipeline of the data storage device, and a memory page being filled by the data storage device. 8. The method of claim 1 , wherein selecting the submission queue further comprises: determining one or more characteristics of storage commands likely queued within the respective submission queues based on the command statistics pertaining to the storage device commands previously fetched from the respective submission queues, and comparing the determined characteristics to the state of the one or more resources of the data storage device. 9. The method of claim 1 , wherein selecting the submission queue further comprises: using the command statistics pertaining to the storage device commands previously fetched from the respective submission queues to identify submission queues likely to comprise one of: read commands and write commands; selecting a submission queue identified as being likely to comprise read commands in response to determining that the data storage device is currently unable to process write commands based on the state of the one or more resources of the data storage device; and selecting a submission queue identified as being likely to comprise write commands in response to determining that the data storage device is currently unable to process read commands based on the state of the one or more resources of the data storage device. 10. The method of claim 1 , wherein collecting the command statistics comprises continually collecting the command statistics pertaining to storage device commands being fetched from the respective submission queues. 11. The method of claim 1 , further comprising: initially operating in a static mode for selecting the submission queues from which to fetch storage device commands; and switching to using the command statistics for selecting the submission queues from which to fetch storage device commands in response to a predetermined trigger. 12. The method of claim 1 , wherein the data storage device comprises a nonvolatile memory device. 13. The method of claim 12 , wherein the data storage device comprises a nonvolatile memory controller. 14. The method of claim 1 , wherein the memory comprises one or more of: two dimensional NAND flash memory, and three dimensional NAND flash memory. 15. A data storage device, comprising: a memory; a resource monitor for monitoring a resource state of the data storage device; a command monitor for collecting statistics pertaining to device storage commands previously fetched from respective submission queues of a plurality of submission queues, wherein collecting the command statistics comprises collecting information regarding whether particular submission queues historically contain a majority of random input/output (I/O) commands or a majority of sequential I/O commands; and a command fetcher for fetching storage device commands from the submission queues and providing the fetched storage device commands to command processing logic, wherein fetching a storage device command comprises: selecting one of the plurality of submission queues from which to fetch the storage device command based on the resource state of the data storage device and the collected statistics pertaining to the device storage commands previously fetched from the respective submission queues, and fetching the storage device command from the selected submission queue. 16. The data storage device of claim 15 , wherein the command monitor is configured to collect statistics regarding one or more of a type of the storage device commands previously fetched from the respective submission queues and a size of the storage device commands previously fetched from the respective submission queues. 17. The data storage device of claim 15 , wherein the command monitor is further configured to collect an indication of a number of storage device commands previously fetched from the respective submission queues. 18. The data storage device of claim 15 , wherein the command monitor is configured to collect statistics regarding a ratio of read commands to write commands of the storage device commands previously fetched from the respective submission queues. 19. The data storage device of claim 15 , wherein the collected statistics identify submission queues that have historically contained a majority of one of: read commands and write commands. 20. The data storage device of claim 15 , wherein the resource monitor is configured to monitor one or more of: a read pipeline state of the data storage device, a write pipeline state of the data storage device, and a page being filled by the data storage device. 21. The data storage device of claim 15 , wherein the collected statistics identify submission queues likely to contain read commands and submission queues likely to contain write commands based on the storage device commands previously fetched from the respective submission queues. 22. The data storage device of claim 21 wherein in response to the resource state of the data storage device indicating that a read pipeline of the data storage device is currently unavailable t

Assignees

Inventors

Classifications

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Monitoring storage devices or systems · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9927983B2 cover?
Methods, systems, and computer readable media for intelligent fetching of storage device commands from submission queues are disclosed. On method is implemented in a data storage device including a controller and a memory. The method includes collecting submission queue command statistics; monitoring resource state of the data storage device. The method further includes using the submission que…
Who is the assignee on this patent?
Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 27 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).