IP Library Granted Patent US 10,656,873
Granted Patent B2
US 10,656,873 · App. 15/387,097 · Granted May 19, 2020

Technologies for prioritizing execution of storage commands

Inventors: John W. Carroll (Gilbert, AZ); David Cohen (Hull, MA); James R. Harris (Chandler, AZ); Eric Dahlen (Portland, OR)
Assignee: Intel Corporation
G06F3/0659G06F3/0611G06F3/0656G06F3/0673
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,656,873
App. No.
15/387,097
Granted
May 19, 2020
Kind
B2
Abstract

Technologies for prioritized execution of storage commands by a data storage device include determining a priority of storage commands issued by a host and adding the storage commands to a queue of the data storage device based on the determined priority of the storage command. For example, the storage command issued by the host may be divided into sub-commands and added to a storage sub-command queue of the data storage device based on the determined priority of the storage command. The priority of the storage commands may be determined based on any suitable criteria including, for example, the host storage command queue storing the storage command, metadata associated with the storage command, the type or size of the storage command, and/or other aspects of the storage command, the host, and/or the data storage device.

Claims (40)

1. A data storage device for prioritized execution of storage commands, the data storage device comprising:

a memory to store a storage sub-command queue; and

a host storage command fetcher to retrieve a storage command from a storage command queue of a host;

a storage command priority analyzer to determine a non-sequential priority of the retrieved storage command, wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on at least one of: (i) metadata associated with the retrieved storage command, or (ii) a processor core of the host that issued the storage command;

a storage command manager to generate, based on the retrieved storage command, one or more storage sub-commands that subdivide the retrieved storage command into a plurality of storage sub-commands to execute the retrieved storage command and add the sub-commands to the storage sub-command queue based on the determined priority of the retrieved storage command.

2. The data storage device of claim 1 , wherein to retrieve the storage command from the storage command queue of the host comprises to retrieve the storage command from the storage command queue of the host in response to the ringing of a doorbell of the data storage device by the host.

3. The data storage device of claim 1 , wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on a priority associated with the storage command queue of the host from which the storage command was retrieved.

4. The data storage device of claim 1 , wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on a type of the retrieved storage command.

5. The data storage device of claim 4 , wherein to determine the priority of the retrieved storage command based on the type of the retrieved storage command comprises to determine that the storage command is of a high priority in response to a determination that the retrieved storage command is a read command.

6. The data storage device of claim 4 , wherein to determine the priority of the retrieved storage command based on the type of the retrieved storage command comprises to determine that the storage command is of a high priority in response to a determination that the retrieved storage command is a write command with a storage access size less than a reference threshold.

7. The data storage device of claim 1 , wherein to generate the one or more storage sub-commands comprises to:

determine a size of a storage access of the retrieved storage command; and

generate one or more storage sub-commands based on the retrieved storage command in response to a determination that the size of the storage access is greater than a reference threshold.

8. The data storage device of claim 1 , wherein to add the sub-commands to the storage sub-command queue comprises to add the storage sub-commands to the storage sub-command queue based on a priority of other storage sub-commands presently stored in the storage sub-command queue.

9. A method for prioritizing the execution of storage commands, the method comprising:

retrieving, by a controller of a data storage device, a storage command from a storage command queue of a host;

determining, by the controller, a non-sequential priority of the retrieved storage command, wherein determining the priority of the retrieved storage command comprises determining a priority of the retrieved storage command based on at least one of: (i) metadata associated with the retrieved storage command, or (ii) a processor core of the host that issued the storage command;

generating, by the controller and based on the retrieved storage command, one or more storage sub-commands that subdivide the retrieved storage command into a plurality of storage sub-commands to execute the retrieved storage command; and

adding, by the controller, the sub-commands to a storage sub-command queue of the controller based on the determined priority of the retrieved storage command.

10. The method of claim 9 , wherein retrieving the storage command from the storage command queue of the host comprises retrieving the storage command from the storage command queue of the host in response to the ringing of a doorbell of the data storage device by the host.

11. The method of claim 9 , wherein determining the priority of the retrieved storage command comprises determining a priority of the retrieved storage command based on a priority associated with the storage command queue of the host from which the storage command was retrieved.

12. The method of claim 9 , wherein determining the priority of the retrieved storage command comprises determining a priority of the retrieved storage command based on a type of the retrieved storage command.

13. The method of claim 12 , wherein determining the priority of the retrieved storage command based on the type of the retrieved storage command comprises determining that the storage command is of a high priority in response to a determination that the retrieved storage command is a read command.

14. The method of claim 12 , wherein determining the priority of the retrieved storage command based on the type of the retrieved storage command comprises determining that the storage command is of a high priority in response to a determination that the retrieved storage command is a write command with a storage access size less than a reference threshold.

15. The method of claim 9 , wherein generating the one or more storage sub-commands comprises:

determining, by the controller, a size of a storage access of the retrieved storage command; and

generating, by the controller, one or more storage sub-commands based on the retrieved storage command in response to a determination that the size of the storage access is greater than a reference threshold.

16. One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed, causes controller of a data storage device to:

retrieve a storage command from a storage command queue of a host;

determine a non-sequential priority of the retrieved storage command, wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on at least one of: (i) metadata associated with the retrieved storage command, or (ii) a processor core of the host that issued the storage command;

generate, based on the retrieved storage command, one or more storage sub-commands that subdivide the retrieved storage command into a plurality of storage sub-commands to execute the retrieved storage command; and

add the sub-commands to a storage sub-command queue of the controller based on the determined priority of the retrieved storage command.

17. The one or more machine-readable storage media of claim 16 , wherein to retrieve the storage command from the storage command queue of the host comprises to retrieve the storage command from the storage command queue of the host in response to the ringing of a doorbell of the data storage device by the host.

18. The one or more machine-readable storage media of claim 16 , wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on a priority associated with the storage command queue of the host from which the storage command was retrieved.

19. The one or more machine-readable storage media of claim 18 , wherein to determine the priority of the retrieved storage command comprises to determine a priority of the retrieved storage command based on a type of the retrieved storage command.

20. The one or more machine-readable storage media of claim 18 , wherein to determine the priority of the retrieved storage command based on the type of the retrieved storage command comprises to determine that the storage command is of a high priority in response to a determination that the retrieved storage command is a read command.

21. The one or more machine-readable storage media of claim 18 , wherein to determine the priority of the retrieved storage command based on the type of the retrieved storage command comprises to determine that the storage command is of a high priority in response to a determination that the retrieved storage command is a write command with a storage access size less than a reference threshold.

22. The one or more machine-readable storage media of claim 16 , wherein to generate the one or more storage sub-commands comprises to:

determine a size of a storage access of the retrieved storage command; and

generate one or more storage sub-commands based on the retrieved storage command in response to a determination that the size of the storage access is greater than a reference threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062702/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2020
From: CARROLL, JOHN W.; COHEN, DAVID; HARRIS, JAMES R.; DAHLEN, ERIC
To: INTEL CORPORATION
Reel/Frame 052083/0057 →
Continuity (1)
Related Publication 20180173461A1 · Jun 21, 2018