Geometry-aware command scheduling
AssigneeWestern Digital Technologies, Inc.
InventorsYungLi Ji, Yun-Tzuo Lai, Haining Liu, Yuriy Pavlenko
Life of this patent
Estimating the term…
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.
Claims22
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.
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.
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.
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.
Dependencies are inferred from the claim text.