IP Library Granted Patent US 10,846,000
Granted Patent B2
US 10,846,000 · App. 16/455,577 · Granted Nov 24, 2020

Geometry-aware command scheduling

Inventors: YungLi Ji (Irvine, CA); Yun-Tzuo Lai (Irvine, CA); Haining Liu (Irvine, CA); Yuriy Pavlenko (Lake Forest, CA)
Assignee: Western Digital Technologies, Inc.
G06F3/0623G06F3/0611G06F3/0652G06F3/0653G06F3/0659G06F3/0679G06F9/4881G06F12/00G06F12/0246G06F2212/7202
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,846,000
App. No.
16/455,577
Granted
Nov 24, 2020
Kind
B2
Abstract

Command scheduling for die sets of non-volatile memory may be performed based on command states of the die sets. Upon receiving an erase command to erase data stored in a first block set of non-volatile memory, a command state of the first die set of the non-volatile memory is determined, where the first die set contains the first block set. If the first die set is determined to be in a pending command state, the erase command is queued in a wait queue. If the first die set is determined to be in an idle command state, the erase command is scheduled to erase the data stored in the first block set.

Claims (53)

1. A storage system, comprising:

a memory organized into a plurality of memory sets, wherein a first memory set of the plurality of memory sets comprises a first memory portion; and

a controller configured to:

determine a command state of the first memory set;

queue an erase command to erase data stored in the first memory portion, when the first memory set is in a pending command state; and

schedule the erase command for execution to erase the data stored in the first memory portion, when a timer for the erase command has expired, and the first memory set remains in the pending command state.

2. The storage system of claim 1 , wherein the controller is configured to:

assign a write command, to a second memory portion of a plurality of memory portions of the memory, for writing data associated with the write command, wherein the first memory set comprises the first memory portion and the second memory portion;

when the scheduled erase command is pending for the first memory portion, re-assign the write command to write the data associated with the write command, to a memory portion in a second memory set of the plurality of memory sets, wherein the second memory set is different from the first memory set; and

schedule the write command to write the data associated with the write command.

3. The storage system of claim 2 , wherein the controller is configured to:

when the scheduled erase command is not pending for the first memory portion, schedule the write command using the second memory portion in the first memory set, to write the data associated with the write command; and

when the scheduled erase command is pending for the first memory portion, schedule the write command using the memory portion in the second memory set, to write the data associated with the write command.

4. The storage system of claim 1 , wherein the controller is configured to:

monitor the command state of the first memory set when the first memory set is determined to be in the pending command state; and

schedule the erase command queued in a wait queue to erase the data stored in the first memory portion, when the command state of the first memory set is changed from the pending command state to an idle command state.

5. The storage system of claim 1 , wherein the controller is configured to:

when the first memory set is determined to be in an idle command state, schedule the erase command to erase the data stored in the first memory portion.

6. The storage system of claim 1 , wherein the controller configured to determine the command state of the first memory set comprises the controller configured to determine whether a bit corresponding to the first memory set is set in a status data set.

7. The storage system of claim 1 , wherein a plurality of memory portions comprises the first memory portion, wherein the first memory set comprises the plurality of memory portions, wherein each memory set of the plurality of memory sets comprises a respective die in a respective one of a plurality of memory channels of the memory, and wherein each memory portion of the plurality of memory portions comprises a respective memory block in a respective die.

8. A machine-implemented method, comprising:

determining a command state of a first memory set of a plurality of memory sets of a memory, wherein the first memory set comprises a first memory portion;

queuing an erase command to erase data stored in the first memory portion of a plurality of memory portions of the memory, when the first memory set is in a pending command state; and

scheduling the erase command to erase the data stored in the first memory portion, when a timer for the erase command has expired, and the first memory set remains in the pending command state.

9. The machine-implemented method of claim 8 , comprising:

assigning a write command to a second memory portion of the plurality of memory portions for writing data associated with the write command, wherein the first memory set comprises the first memory portion and the second memory portion;

when the scheduled erase command is pending for the first memory portion, re-assigning the write command to write the data associated with the write command, to a memory portion in a second memory set of the plurality of memory sets, wherein the second memory set is different from the first memory set; and

scheduling the write command for execution to write the data associated with the write command.

10. The machine-implemented method of claim 9 , comprising:

when the scheduled erase command is not pending for the first memory portion, scheduling the write command using the second memory portion in the first memory set, to write the data associated with the write command; and

when the scheduled erase command is pending for the first memory portion, scheduling the write command using the memory portion in the second memory set, to write the data associated with the write command.

11. The machine-implemented method of claim 8 , comprising:

monitoring the command state of the first memory set when the first memory set is determined to be in the pending command state; and

scheduling the erase command queued in a wait queue to erase the data stored in the first memory portion, when the command state of the first memory set is changed from the pending command state to an idle command state.

12. The machine-implemented method of claim 8 , comprising:

when the first memory set is determined to be in an idle command state, scheduling the erase command to erase the data stored in the first memory portion.

13. The machine-implemented method of claim 8 , wherein determining the command state of the first memory set comprises determining whether a bit corresponding to the first memory set is set in a status data set.

14. The machine-implemented method of claim 8 , wherein each memory set of the plurality of memory sets comprises a respective die in a respective one of a plurality of memory channels of the memory, wherein each memory portion of a plurality of memory portions comprises a respective memory block in a respective die.

15. An apparatus, comprising:

means for determining a command state of a first memory set of a plurality of memory sets of a memory, wherein the first memory set comprises a first memory portion;

means for queuing an erase command to erase data stored in the first memory portion of a plurality of memory portions of the memory, when the first memory set is in a pending command state; and

means for scheduling the erase command to erase the data stored in the first memory portion, when a timer for the erase command has expired, and the first memory set remains in the pending command state.

16. The apparatus of claim 15 , comprising:

means for assigning a write command to a second memory portion of the plurality of memory portions for writing data associated with the write command, wherein the first memory set comprises the first memory portion and the second memory portion;

when the scheduled erase command is pending for the first memory portion, means for re-assigning the write command to a memory portion in a second memory set of the plurality of memory sets, wherein the second memory set is different from the first memory set; and

means for scheduling the write command for execution to write the data associated with the write command.

17. The apparatus of claim 15 , comprising:

means for monitoring the command state of the first memory set when the first memory set is determined to be in the pending command state; and

means for scheduling the erase command queued in a wait queue to erase the data stored in the first memory portion, when the command state of the first memory set is changed from the pending command state to an idle command state.

18. The apparatus of claim 15 , comprising:

when the first memory set is determined to be in an idle command state, means for scheduling the erase command to erase the data stored in the first memory portion.

19. The apparatus of claim 18 , wherein means for determining the command state of the first memory set comprises means for determining whether a bit corresponding to the first memory set is set in a status data set.

20. The apparatus of claim 15 , wherein each memory set of the plurality of memory sets comprises a respective die in a respective one of a plurality of memory channels of the memory, and wherein each memory portion of the plurality of memory portions comprises a respective memory block in a respective die.

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 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 Jul 1, 2019
From: JI, YUNGLI; LAI, YUN-TZUO; LIU, HAINING; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049647/0383 →