Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
First Claim
Patent Images
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 Assignments
0 Petitions
Accused Products
Abstract
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.
25 Citations
31 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A non-transitory computer readable medium having stored thereon instructions to configure a processor of a computing device to perform operations, comprising:
-
collecting submission queue command statistics pertaining to commands previously fetched from respective submission queues of a plurality of submission queues, the command statistics indicating whether particular submission queues historically contain a majority of random input/output (I/O) commands or a majority of sequential I/O commands; monitoring a resource state of a data storage device including a memory and a controller; and fetching commands from the submission queues, wherein fetching a command comprises; using the submission queue command statistics pertaining to the commands previously fetched from the respective submission queues and the resource state to select a submission queue from which to fetch the command, fetching the command from the selected submission queue, and providing the command to command processing logic.
-
Specification