IP Library Granted Patent US 11,645,217
Granted Patent B2
US 11,645,217 · App. 17/330,286 · Granted May 9, 2023

Dynamic command scheduling for 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/26G06F9/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 11,645,217
App. No.
17/330,286
Granted
May 9, 2023
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 (146)

1. A storage system, comprising:

memories; and

one or more controllers configured to cause:

receiving a command from a host system;

based on a type of the received command, determining the received command as a high priority command or a low priority command, wherein determining the received command comprises:

when the received command is a host read command or an error correction command, determining the received command as the high priority command and assigning the received command to a high priority queue; and

when the received command is an internal write command, an internal erase command or an internal read command generated by the one or more controllers, determining the received command as the low priority command and assigning the received command to a low priority queue;

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

determining a write amplification factor of the storage system;

determining a number of read commands and a number of write commands received during a respective duration;

generating an updated scheduling ratio based on the number of read commands and the number of write commands received during the respective duration; and

processing additional commands based on the updated scheduling ratio,

wherein the updated scheduling ratio is:

proportional to a scheduling ratio factor that is based on a prior scheduling ratio, and

inversely proportional to the write amplification factor.

2. The storage system of claim 1 , wherein the scheduling ratio is the ratio between:

a number of one or more commands from the high priority queue to be processed, and

every predetermined number of the number of one or more commands from the low priority queue to be processed.

3. The storage system of claim 1 , wherein:

the scheduling ratio is adjustable;

the scheduling ratio is initially an initial scheduling ratio; and

the initial scheduling ratio is based on an average read latency of host read commands.

4. The storage system of claim 1 , wherein:

the scheduling ratio is initially an initial scheduling ratio; and

the initial scheduling ratio is based on:

an average read latency of host read commands, and

different levels of overprovisioning in the storage system.

5. The storage system of claim 1 , wherein:

the scheduling ratio is adjustable;

the scheduling ratio is initially an initial scheduling ratio;

the initial scheduling ratio is determined by:

processing given operation commands based on a given scheduling ratio;

monitoring an average read latency of host read commands during the processing of the given operation commands; and

determining when the processing of the given operation commands produces a target read latency of host read commands;

the given scheduling ratio is adjusted until the target average read latency of host read commands is produced; and

when the target average read latency of host read commands is produced, the initial scheduling ratio is set using the adjusted given scheduling ratio.

6. The storage system of claim 5 , wherein: the initial scheduling ratio is set using the adjusted given scheduling ratio and based on different levels of overprovisioning in the storage system.

7. The storage system of claim 1 ,

wherein the updated scheduling ratio is further based on a representation that is:

proportional to the number of read commands received during the respective duration, and

inversely proportional to the number of write commands received during the respective duration, and

wherein the write amplification factor corresponds to a number of write operations performed for every host write command received from the host system.

8. The storage system of claim 1 ,

wherein the updated scheduling ratio is generated based on the following equation:

A

B

·

C

·

D

=

E

wherein:

A is the number of read commands received during the respective duration,

B is the number of write commands received during the respective duration,

C is the write amplification factor,

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

E is the updated scheduling ratio.

9. The storage system of claim 8 , wherein the write amplification factor corresponds to a number of write operations performed for every host write command received from the host system.

10. A method for a storage system, comprising:

receiving a command from a host system;

based on a type of the received command, determining the received command as a high priority command or a low priority command, wherein determining the received command comprises:

when the received command is a host read command or an error correction command, determining the received command as the high priority command and assigning the received command to a high priority queue; and

when the received command is an internal write command, an internal erase command or an internal read command, determining the received command as the low priority command and assigning the received command to a low priority queue;

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

determining a write amplification factor of the storage system;

determining a number of read commands and a number of write commands received during a respective duration;

generating an updated scheduling ratio based on the number of read commands and the number of write commands received during the respective duration; and

processing additional commands based on the updated scheduling ratio,

wherein the updated scheduling ratio is:

proportional to a scheduling ratio factor that is based on a prior scheduling ratio, and

inversely proportional to the write amplification factor.

11. The method of claim 10 , wherein the scheduling ratio is the ratio between:

a number of one or more commands from the high priority queue to be processed, and

every predetermined number of the number of one or more commands from the low priority queue to be processed.

12. The method of claim 10 , wherein:

the scheduling ratio is adjustable;

the scheduling ratio is initially an initial scheduling ratio; and

the initial scheduling ratio is based on an average read latency of host read commands.

13. The method of claim 10 , wherein:

the scheduling ratio is initially an initial scheduling ratio; and

the initial scheduling ratio is based on:

an average read latency of host read commands, and

different levels of overprovisioning in the storage system.

14. The method of claim 10 , wherein:

the scheduling ratio is initially an initial scheduling ratio;

the initial scheduling ratio is determined based on:

processing given operation commands based on a given scheduling ratio; and

monitoring an average read latency of host read commands during the processing of the given operation commands;

the given scheduling ratio is adjusted until a target average read latency of host read commands is produced; and

when the target average read latency of host read commands is produced, the initial scheduling ratio is set using the adjusted given scheduling ratio.

15. The method claim 14 , wherein: the initial scheduling ratio is set using the adjusted given scheduling ratio and based on different levels of overprovisioning in the storage system.

16. The method of claim 10 ,

wherein the updated scheduling ratio is further based on a representation that is:

proportional to the number of read commands received during the respective duration, and

inversely proportional to the number of write commands received during the respective duration, and

wherein the write amplification factor corresponds to a number of write operations performed for every host write command received from the host system.

17. The method of claim 10 ,

wherein the updated scheduling ratio is generated based on the following equation:

A

B

·

C

·

D

=

E

wherein:

A is the number of read commands received during the respective duration,

B is the number of write commands received during the respective duration,

C is the write amplification factor,

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

E is the updated scheduling ratio.

18. A storage apparatus, comprising:

means for receiving a command from a host system;

means for, based on a type of the received command, determining the received command as a high priority command or a low priority command, wherein the means for determining the received command comprises:

when the received command is a host read command or an error correction command, means for determining the received command as the high priority command and assigning the received command to a high priority queue; and

when the received command is an internal write command, an internal erase command or an internal read command, means for determining the received command as the low priority command and assigning the received command to a low priority queue;

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

means for determining a write amplification factor of the storage apparatus;

means for determining a number of read commands and a number of write commands received during a respective duration;

means for generating an updated scheduling ratio based on the number of read commands and the number of write commands received during the respective duration; and

means for processing additional commands based on the updated scheduling ratio,

wherein the updated scheduling ratio is:

proportional to a scheduling ratio factor that is based on a prior scheduling ratio, and

inversely proportional to the write amplification factor.

19. The storage apparatus of claim 18 ,

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

A

B

·

C

·

D

=

E

wherein:

A is the number of read commands received during the respective duration,

B is the number of write commands received during the respective duration,

C is the write amplification factor,

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

E is the updated scheduling ratio.

20. The storage apparatus of claim 18 , wherein the means for generating the updated scheduling ratio is based on a representation that is:

proportional to the number of read commands received during the respective duration, and

inversely proportional to the number of write commands received during the respective duration, and

wherein the write amplification factor corresponds to a number of write operations performed for every host write command received from the host system.

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 057651 FRAME 0296 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058981/0958 →
SECURITY INTEREST Recorded Sep 17, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 057651/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2021
From: JINN, SCOTT; LAI, YUN-TZUO; LIU, HAINING; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 056434/0538 →