IP Library Granted Patent US 10,635,617
Granted Patent B2
US 10,635,617 · App. 15/600,672 · Granted Apr 28, 2020

Context-aware dynamic command scheduling for a data storage system

Inventors: Scott Jinn (Diamond Bar, CA); Yun-Tzuo Lai (Irvine, CA); Haining Liu (Irvine, CA); Yuriy Pavlenko (Lake Forest, CA)
Assignee: Western Digital Technologies, Inc.
G06F13/374G06F13/26H04W28/08G06F9/4843G06F9/4881G06F9/5038G06F2209/484H04W74/002H04W74/0875
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,635,617
App. No.
15/600,672
Granted
Apr 28, 2020
Kind
B2
Abstract

The subject technology provides for managing a data storage system. Commands are identified into as a first command type or a second command type. The commands identified as the first command type are assigned to a first queue, and the commands identified as the second command type are assigned to a second queue. After the commands from the first queue and the commands from the second queue are processed based on a scheduling ratio over a predetermined period of time, a write amplification factor, number of host read commands, and number of host write commands during the predetermined period of time are determined. The scheduling ratio is updated based on the write amplification, the number of host read commands, the number of host write commands, and a predetermined scheduling ratio factor. Subsequent commands are processed from the first queue and the second queue based on the updated scheduling ratio.

Claims (90)

1. A method for managing a data storage device, the method comprising:

identifying a command as a high priority command or a low priority command;

when the command is the high priority command, assigning the command to a first queue, which is a high priority queue;

when the command is the low priority command, assigning the command to a second queue, which is a low priority queue, wherein the second queue is configured to contain at least two different command types comprising a first command type and a second command type, and wherein the first command type is a write command, and the second command type is different from the first command type;

processing one or more commands from the first queue and one or more commands from the second queue based on a scheduling ratio, wherein the scheduling ratio indicates a ratio between a number of one or more commands from the first queue to be processed and a number of one or more commands from the second queue to be processed;

periodically determining a write amplification factor of the data storage device, and a total number of host read commands and a total number of host write commands received by the data storage device during a respective predetermined period of time;

periodically generating an updated scheduling ratio based on the following equation:

A

B

·

C

·

D

=

E

wherein:

A is the total number of host read commands received during the respective redetermined period of time,

B is the total number of host write commands received during the respective predetermined period of time,

C is the determined write amplification factor,

D is a scheduling ratio factor determined based on the scheduling ratio, A, B, and C, and

E is the updated scheduling ratio; and

processing subsequent commands from the first queue and the second queue based on the updated scheduling ratio.

2. The method according to claim 1 , wherein the first command type includes the write command received from a host device, wherein the second command type includes a command received from the host device that is not the write command, and wherein the host device is coupled to the data storage device.

3. The method according to claim 2 , further comprising:

maintaining, in memory, a log of the total number of host read commands and the total number of host write commands received from the host device during the respective predetermined period of time.

4. The method according to claim 1 , wherein the write amplification factor of the data storage device is determined based on a number of program/erase cycle performed on the data storage device.

5. The method according to claim 4 , wherein the write amplification factor of the data storage device is determined based on an amount of over provisioning of the data storage device.

6. The method according to claim 1 , wherein the subsequent commands are assigned to the first queue or the second queue based on priority.

7. A data storage device, comprising:

means for identifying a command as a high priority command or a low priority command;

when the command is the high priority command, means for assigning the command to a first queue, which is a high priority queue;

when the command is the low priority command, means for assigning the command to a second queue, which is a low priority queue, wherein the second queue is configured to contain at least two different command types comprising a first command type and a second command type;

means for processing one or more commands from the first queue and one or more commands from the second queue based on a scheduling ratio, wherein the scheduling ratio indicates a ratio between a number of one or more commands from the first queue to be processed and a number of one or more commands from the second queue to be processed;

means for periodically determining a write amplification factor of the data storage device, and a total number of host read commands and a total number of host write commands received by the data storage device during a respective predetermined period of time;

means for generating an updated scheduling ratio based on the following equation:

A

B

·

C

·

D

=

E

wherein:

A is the total number of host read commands received during the respective predetermined period of time,

B is the total number of host write commands received during the respective predetermined period of time,

C is the determined write amplification factor,

D is a scheduling ratio factor determined based on the scheduling ratio, A, B, and C, and

E is the updated scheduling ratio; and

means for processing subsequent commands from the first queue and the second queue based on the updated scheduling ratio.

8. The data storage device according to claim 7 , further comprising:

means for maintaining, in memory, a log of the total number of host read commands and the total number of host write commands received from a host device during the respective predetermined period of time.

9. The data storage device according to claim 7 , comprising:

means for assigning the subsequent commands to the first queue or the second queue based on priority.

10. A data storage device, comprising:

a plurality of storage devices, each storage device comprising a plurality of non-volatile memory die; and

a controller coupled to the plurality of storage devices, wherein the controller is configured to:

identify a command as a high priority command or a low priority command;

when the command is the high priority command, assign the command to a first queue, which is a high priority queue;

when the command is the low priority command, assign the command to a second queue, which is a low priority queue, wherein the second queue is configured to contain at least two different command types comprising a first command type and a second command type;

process one or more commands from the first queue and one or more commands from the second queue based on a scheduling ratio, wherein the scheduling ratio indicates a ratio between a number of one or more commands from the first queue to be processed and a number of one or more commands from the second queue to be processed;

periodically determine a write amplification factor of the data storage device, and a total number of host read commands and a total number of host write commands received by the data storage device during a respective predetermined period of time;

generating an updated scheduling ratio based on the following equation:

A

B

·

C

·

D

=

E

wherein:

A is the total number of host read commands received during the respective predetermined period of time,

B is the total number of host write commands received during the respective predetermined period of time,

C is the determined write amplification factor,

D is a scheduling ratio factor determined based on the scheduling ratio, A, B, and C, and

E is the updated scheduling ratio; and

process subsequent commands from the first queue and the second queue based on the updated scheduling ratio.

11. The data storage device according to claim 10 , wherein the controller is configured to:

maintain, in memory, a log of the total number of host read commands and the total number of host write commands received from a host device during the respective predetermined period of time.

12. The data storage device according to claim 10 , wherein the first command type includes a host write command received from a host device, wherein the second command type includes a command received from the host device that is not the host write command, and wherein the host device is coupled to the data storage device.

13. The data storage device according to claim 10 , wherein the controller is configured to determine the write amplification factor of the data storage device based on a number of program/erase cycle performed on the data storage device.

14. The data storage device according to claim 13 , wherein the controller is configured to determine the write amplification factor of the data storage device based on an amount of over provisioning of the data storage device.

15. The data storage device according to claim 10 , wherein the controller is configured to assign each of the subsequent commands to the first queue or the second queue based on priority.

16. The data storage device according to claim 10 , wherein the first queue is configured to contain at least two different command types that are distinct from the two different command types associated with the second queue.

17. The data storage device according to claim 10 ,

wherein the first queue is configured to contain at least a host read command and an error correction command, and

wherein the second queue is configured to contain at least a write command and one or more of the following: an internal read command, an internal program command, and an internal erase command.

18. The data storage device according to claim 10 , wherein when the scheduling ratio allows processing only a total of X number of one or more commands from the first queue and a total of Y number of one or more commands from the second queue during the respective predetermined period of time, the controller is configured to consecutively process all of the X number of one or more commands from the first queue, prior to processing the Y number of one or more commands from the second queue, wherein each of X and Y is an integer.

19. The data storage device according to claim 10 , wherein the controller is configured to process one or more commands from the first queue and one or more commands from the second queue, within the respective predetermined period of time, and wherein the respective predetermined period of time is in the order of minutes or less.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
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 Sep 30, 2017
From: JINN, SCOTT; LAI, YUN-TZUO; LIU, HAINING; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043747/0705 →