IP Library Granted Patent US 10,522,185
Granted Patent B1
US 10,522,185 · App. 16/271,793 · Granted Dec 31, 2019

Data storage device sorting execution order of commands based on a predicted future command

Inventor: David R. Hall (Rochester, MN)
Assignee: Western Digital Technologies, Inc.
G11B21/025G11B5/012G11B5/54G11B5/55G11B21/02G11B21/022
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,522,185
App. No.
16/271,793
Granted
Dec 31, 2019
Kind
B1
Abstract

A data storage device is disclosed comprising a head actuated over a disk. A plurality of access commands are stored in a command queue, wherein the access commands are for accessing the disk using the head. A future access command is predicted, and an execution order for the access commands in the command queue is determined based on an associated execution cost of at least some of the access commands in the command queue and an associated execution cost of the future access command. At least one of the access commands in the command queue is executed based on the execution order.

Claims (60)

1. A data storage device comprising:

a disk;

a head actuated over the disk; and

control circuitry configured to:

store a plurality of access commands in a command queue, wherein the access commands are for accessing the disk using the head;

predict a plurality of future access commands to be inserted into the command queue;

determine an execution order for the access commands in the command queue based on an associated execution cost of at least some of the access commands in the command queue and an associated execution cost of the future access commands; and

execute at least one of the access commands in the command queue based on the execution order.

2. The data storage device as recited in claim 1 , wherein the control circuitry is further configured to predict the plurality of future access commands based on a history of previously executed access commands.

3. The data storage device as recited in claim 2 , wherein the control circuitry is further configured to predict the plurality of future access commands based on the previously executed access commands within a window of the history.

4. The data storage device as recited in claim 3 , wherein the window of the history does not include a number of recently executed access commands.

5. The data storage device as recited in claim 1 , wherein the control circuitry is further configured to predict the plurality of future access commands based on an access command assigned to a background task.

6. The data storage device as recited in claim 5 , wherein the background task comprises a refresh task configured to refresh data stored on the disk by reading and rewriting the data.

7. The data storage device as recited in claim 1 , wherein the control circuitry is further configured to:

determine a first execution order for the access commands in the command queue based on an associated execution cost of at least some of the access commands in the command queue and an associated execution cost of a first one of the future access commands;

determine a second execution order for the access commands in the command queue based on an associated execution cost of at least some of the access commands in the command queue and an associated execution cost of a second one of the future access commands;

select between the first execution order and the second execution order; and

execute at least one of the commands in the command queue based on the selected execution order.

8. The data storage device as recited in claim 1 , wherein the control circuitry is further configured to:

cache the execution cost associated with executing a first and second of the access commands; and

determine the execution cost of executing the first and second access commands together with a third access command based on the cached execution cost.

9. The data storage device as recited in claim 1 , wherein the control circuitry is further configured to:

determine an associated execution cost of a plurality of paths of a tree sort algorithm, wherein each path corresponds to an execution order for a plurality of the access commands; and

prune a node of the tree when the associated execution cost of the path exceeds a threshold.

10. A method of operating a data storage device, the method comprising:

storing a plurality of access commands in a command queue, wherein the access commands are for accessing a disk using a head;

caching an execution cost associated with executing a first and second of the access commands;

determining an execution cost of executing the first and second access commands together with a third access command based on the cached execution cost;

determining an execution order for the access commands in the command queue based on the execution cost; and

executing at least one of the access commands in the command queue based on the execution order.

11. The method as recited in claim 10 , further comprising:

predicting a future access command and

determining the execution order based on an execution cost of executing the future access command.

12. The method as recited in claim 11 , further comprising

predicting the future access command based on the previously executed access commands within a window of a history of previously executed access commands.

13. The method as recited in claim 12 , wherein the window of the history does not include a number of recently executed access commands.

14. The method as recited in claim 11 , further comprising predicting the future access command based on an access command assigned to a background task.

15. The method as recited in claim 14 , wherein the background task comprises a refresh task configured to refresh data stored on the disk by reading and rewriting the data.

16. The method as recited in claim 10 , further comprising:

predicting a plurality of future access commands to be inserted into the command queue; and

determining the execution order for the access commands in the command queue based on at least some of the access commands in the command queue and the future access commands.

17. The method as recited in claim 16 , further comprising:

determining a first execution order for the access commands in the command queue based on at least some of the access commands in the command queue and a first one of the future access commands;

determining a second execution order for the access commands in the command queue based on at least some of the access commands in the command queue and a second one of the future access commands;

selecting between the first execution order and the second execution order; and

executing at least one of the commands in the command queue based on the selected execution order.

18. The method as recited in claim 10 , further comprising:

determining an associated execution cost of a plurality of paths of a tree sort algorithm, wherein each path corresponds to an execution order for a plurality of the access commands;

prune a node of the tree when the associated execution cost of the path exceeds a threshold; and

determining the execution order for the access commands in the command queue based on the execution cost of the plurality of paths of the tree sort algorithm.

19. A data storage device comprising:

a disk;

a head actuated over the disk; and

control circuitry configured to:

store a plurality of access commands in a command queue, wherein the access commands are for accessing the disk using the head;

predict a future access command;

determine an associated execution cost of a plurality of paths of a tree sort algorithm, wherein each path corresponds to an execution order for a plurality of the access commands including the future access command;

determine an execution order for the access commands in the command queue based on the execution cost of the plurality of paths of the tree sort algorithm; and

execute at least one of the access commands in the command queue based on the execution order.

20. The data storage device as recited in claim 19 , wherein the control circuitry is further configured to prune a node of the tree when the associated execution cost of the path exceeds a threshold.

Assignments (5)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2019
From: HALL, DAVID R.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048286/0196 →
Cited By (2)
US 12,230,302 US 12,347,466