IP Library Granted Patent US 10,379,765
Granted Patent B2
US 10,379,765 · App. 15/677,941 · Granted Aug 13, 2019

Geometry-aware command scheduling

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,379,765
App. No.
15/677,941
Granted
Aug 13, 2019
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 (73)

1. A processor-implemented method comprising:

receiving an erase command to erase data stored in a first block set of a plurality of block sets of non-volatile memory;

determining a command state of a first die set of a plurality of die sets of the non-volatile memory, the first die set containing the first block set;

when the first die set is determined to be in a pending command state, queuing the erase command in a wait queue; and

scheduling the erase command in the wait queue to erase the data stored in the first block set, when a timer, started upon queuing the erase command in the wait queue, has expired, and the first die set remains in the pending command state.

2. The processor-implemented method of claim 1 , further comprising:

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

determining the command state of the first die set has changed from the pending command state to an idle command state; and

scheduling the erase command queued in the wait queue to erase the data stored in the first block set in response to determining the command state of the first die set has changed to the idle command state.

3. The processor-implemented method of claim 2 , further comprising:

receiving a write command assigned to a second block set in the first die set while the scheduled erase command is pending for the first block set;

re-assigning the write command to a third block set in a second die set different from the first die set; and

scheduling the write command.

4. The processor-implemented method of claim 1 , further comprising:

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

5. The processor-implemented method of claim 1 , wherein determining the command state of the first die set comprises determining whether a bit corresponding to the first die set is set in a status data set.

6. The processor-implemented method of claim 1 , wherein each die set of the plurality of die sets comprises a respective die in each of a plurality of memory channels of the non-volatile memory, and

wherein each block set of the plurality of block sets comprises a respective memory block in each die of a respective die set of the plurality of die sets.

7. A processor-readable storage medium storing instructions that, when executed by a processor, perform a method comprising:

receiving an erase command to erase data stored in a first block set of a plurality of block sets of non-volatile memory;

determining a command state of a first die set of a plurality of die sets of the non-volatile memory, the first die set containing the first block set;

when the first die set is determined to be in a pending command state, queuing the erase command in a wait queue; and

scheduling the erase command in the wait queue to erase the data stored in the first block set, when a timer, started upon queuing the erase command in the wait queue, has expired, and the first die set remains in the pending command state.

8. The processor-readable storage medium of claim 7 , wherein the method further comprises:

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

determining the command state of the first die set has changed from the pending command state to an idle command state; and

scheduling the erase command queued in the wait queue to erase the data stored in the first block set in response to determining the command state of the first die set has changed to the idle command state.

9. The processor-readable storage medium of claim 8 , wherein the method further comprises:

receiving a write command assigned to a second block set in the first die set while the scheduled erase command is pending for the first block set;

re-assigning the write command to a third block set in a second die set different from the first die set; and

scheduling the write command.

10. The processor-readable storage medium of claim 7 , wherein the method further comprises:

scheduling the erase command to erase the data stored in the first block set;

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

11. The processor-readable storage medium of claim 7 , wherein determining the command state of the first die set comprises determining whether a bit corresponding to the first die set is set in a status data set.

12. The processor-readable storage medium of claim 7 , wherein each die set of the plurality of die sets comprises a respective die in each of a plurality of memory channels of the non-volatile memory, and

wherein each block set of the plurality of block sets comprises a respective memory block in each die of a respective die set of the plurality of die sets.

13. A data storage system comprising:

a plurality of non-volatile memory die organized into a plurality of die sets arranged across a plurality of memory channels, wherein the plurality of non-volatile memory die contains a plurality of block sets; and

a controller configured to:

receive an erase command to erase data stored in a first block set of the plurality of block sets;

determine a command state of a first die set of the plurality of die sets containing the first block set;

when the first die set is determined to be in a pending command state, queue the erase command in a wait queue; and

schedule the erase command in the wait queue to erase the data stored in the first block set, when a timer, started upon queuing the erase command in the wait queue, has expired, and the first die set remains in the pending command state.

14. The data storage system of claim 13 , wherein the controller is further configured to:

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

determine the command state of the first die set has changed from the pending command state to an idle command state; and

schedule the erase command queued in the wait queue to erase the data stored in the first block set in response to determining the command state of the first die set has changed to the idle command state.

15. The data storage system of claim 14 , wherein the controller is further configured to:

receive a write command assigned to a second block set in the first die set while the scheduled erase command is pending for the first block set;

re-assign the write command to a third block set in a second die set different from the first die set; and

schedule the write command.

16. The data storage system of claim 13 , wherein the controller is further configured to:

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

17. The data storage system of claim 13 , wherein determining the command state of the first die set comprises determining whether a bit corresponding to the first die set is set in a status data set.

18. The data storage system of claim 13 , wherein each die set of the plurality of die sets comprises a respective die in each of the plurality of memory channels of the non-volatile memory, and

wherein each block set of the plurality of block sets comprises a respective memory block in each die of a respective die set of the plurality of die sets.

19. A data storage system comprising:

a plurality of non-volatile memory die organized into a plurality of die sets arranged across a plurality of memory channels, wherein the, plurality of non-volatile memory die contains a plurality of block sets;

means for receiving an erase command to erase data stored in a first block set of the plurality of block sets;

means for determining a command state of a first die set of the plurality of die sets containing the first block set;

means for queuing the erase command in a wait queue when the first die set is determined to be in a pending command state; and

means for scheduling the erase command in the wait queue to erase the data stored in the first block set, when a timer, started upon queuing the erase command in the wait queue, has expired, and the first die set remains in the pending command state.

20. The data storage system of claim 19 , further comprising:

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

means for determining the command state of the first die set has changed from the pending command state to an idle command state; and

means for scheduling the erase command queued in the wait queue to erase the data stored in the first block set in response to determining the command state of the first die set has changed to the idle command state.

21. The data storage system of claim 20 , further comprising:

means for receiving a write command assigned to a second block set in the first die set while the scheduled erase command is pending for the first block set;

means for re-assigning the write command to a third block set in a second die set different from the first die set; and

means for scheduling the write command.

22. The data storage system claim 19 , further comprising:

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

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 Aug 16, 2017
From: JI, YUNGLI; LAI, YUN-TZUO; LIU, HAINING; PAVLENKO, YURIY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043308/0712 →