IP Library Granted Patent US 11,061,842
Granted Patent B2
US 11,061,842 · App. 16/827,591 · Granted Jul 13, 2021

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 11,061,842
App. No.
16/827,591
Granted
Jul 13, 2021
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 (101)

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

allocating a high priority command to a high priority queue;

allocating a low priority command to a low priority queue; wherein the low priority queue is configured to contain two or more different command types;

executing 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 device;

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

executing additional commands from the high priority queue and the low priority queue based on an updated scheduling ratio,

wherein the updated scheduling ratio increases as the number of read commands increases,

wherein the updated scheduling ratio decreases as the number of write commands or the write amplification factor increases, and

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 period of time,

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

C is the 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.

2. The method of claim 1 ,

wherein the updated scheduling ratio decreases as the number of write commands increases, and

wherein the updated scheduling ratio decreases as the write amplification factor increases.

3. The method of claim 2 ,

wherein the scheduling ratio factor depends on the scheduling ratio, the number of read commands, the number of write commands, and the write amplification factor, and

wherein the updated scheduling ratio increases as the scheduling ratio factor increases.

4. The method of claim 1 , wherein the two or more different command types include a write command and a command that is not the write command.

5. The method of claim 1 , further comprising:

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

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

7. The method of claim 1 , wherein the write amplification factor of the storage device is determined based on an amount of over provisioning of the storage device.

8. A storage device, comprising:

non-volatile memory; and

one or more controllers configured to cause:

allocating a high priority command to a high priority queue;

allocating a low priority command to a low priority queue; wherein the low priority queue is configured to contain two or more different command types;

executing 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 device;

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

executing additional commands from the high priority queue and the low priority queue based on an updated scheduling ratio,

wherein the updated scheduling ratio increases as the number of read commands increases,

wherein the updated scheduling ratio decreases as the number of write commands or the write amplification factor increases, and

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 period of time,

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

C is the 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.

9. The storage device of claim 8 ,

wherein the updated scheduling ratio decreases as the number of write commands increases, and

wherein the updated scheduling ratio decreases as the write amplification factor increases.

10. The storage device of claim 9 ,

wherein the scheduling ratio factor depends on the scheduling ratio, the number of read commands, the number of write commands, and the write amplification factor, and

wherein the updated scheduling ratio increases as the scheduling ratio factor increases.

11. The storage device of claim 8 , wherein the two or more different command types include a write command and a command that is not the write command.

12. The storage device of claim 8 , further comprising:

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

13. The storage device of claim 8 , wherein the write amplification factor of the storage device is determined based on a number of program/erase cycle performed on the storage device.

14. The storage device of claim 8 , wherein the write amplification factor of the storage device is determined based on an amount of over provisioning of the storage device.

15. An apparatus, comprising:

means for allocating a high priority command to a high priority queue;

means for allocating a low priority command to a low priority queue; wherein the low priority queue is configured to contain two or more different command types;

means for executing 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 apparatus;

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

means for executing additional commands from the high priority queue and the low priority queue based on an updated scheduling ratio; and

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

A

B

·

C

·

D

=

E

wherein:

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

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

C is the 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,

wherein the updated scheduling ratio increases as the number of read commands increases, and wherein the updated scheduling ratio decreases as the number of write commands or the write amplification factor increases.

16. The apparatus of claim 15 ,

wherein the updated scheduling ratio decreases as the number of write commands increases, and

wherein the updated scheduling ratio decreases as the write amplification factor increases.

17. The apparatus of claim 16 ,

wherein the scheduling ratio factor depends on the scheduling ratio, the number of read commands, the number of write commands, and the write amplification factor, and

wherein the updated scheduling ratio increases as the scheduling ratio factor increases.

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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 053482 FRAME 0453 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0279 →
SECURITY INTEREST Recorded May 14, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053482/0453 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2020
From: JINN, SCOTT; LAI, YUN-TZUO; LIU, HAINING; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 052324/0231 →