Virtual container storage interface controller
US-12175078-B2 · Dec 24, 2024 · US
US9927983B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9927983-B2 |
| Application number | US-201514868373-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 28, 2015 |
| Priority date | Sep 28, 2015 |
| Publication date | Mar 27, 2018 |
| Grant date | Mar 27, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
Improving I/O performance · CPC title
Monitoring storage devices or systems · CPC title
Non-volatile semiconductor memory arrays · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.