Priority-based garbage collection for data storage systems
AssigneeWestern Digital Technologies, Inc.
InventorRobert L. Horn
Life of this patent
Estimating the term…
Abstract
Priority-based garbage collection utilizes attributes of data stored in the non-volatile memory array in order to improve efficiency of garbage collection and of the overall data storage system. A set of low priority data can be selectively evicted from a non-volatile memory array. This can, for example, reduce write amplification associated with garbage collection. Another set of low priority data can be regrouped or consolidated in a different region of the non-volatile memory array. In addition, flushing of data can be performed in order to enhance or optimize garbage collection. Performance and endurance can thereby be improved.
Claims23
A data storage system, comprising:
- a non-volatile memory array having a plurality of memory regions configured to store a plurality of data units, the plurality of memory regions comprising a first memory region, a second memory region, and a third memory region, each of the first, second, and third memory regions being defined as a memory unit configured to be garbage collected;
- and
- a controller configured to perform a garbage collection operation on the first memory region by at least:
- identifying valid data units in the first memory region that contain valid data rather than invalid data;
- in response to determining that a first set of the valid data units has a first priority, designating the first set as data units to be copied to the second memory region, the first priority indicating that the valid data units of the first set are candidates for being erased from the non-volatile memory array during a subsequent garbage collection operation;
- in response to determining that a second set of the valid data units has a second priority different from the first priority, designating the second set as data units to be copied to the third memory region;
- and
- copying the first set of the valid data units from the first memory region to the second memory region and the second set of the valid data units from the first memory region to the third memory region different from the second memory region,
- wherein the controller is further configured to perform the garbage collection operation on the first memory region by:
- in response to determining that a third set of the valid data units has a third priority different from the first priority and the second priority, designating the third set as data units not to be copied to any memory region in the non-volatile memory array so that the third set of data units are erased when the first memory region is erased.
In a data storage system comprising a non-volatile memory array having a plurality of memory regions configured to store a plurality of data units, the plurality of memory regions comprising a first memory region, a second memory region, and a third memory region, each of the first, second and third memory regions being defined as a memory unit configured to be garbage collected, a method comprising:
- performing a garbage collection operation on the first memory region by at least:
- identifying valid data units in the first memory region that contain valid rather than invalid data;
- in response to determining that a first set of the valid data units has a first priority, designating the first set as data units to be copied to the second memory region, the first priority indicating that the valid data units of the first set are candidates for being erased from the non-volatile memory array during a subsequent garbage collection operation;
- in response to determining that a second set of the valid data units has a second priority different from the first priority, designating the second set as data units to be copied to the third memory region;
- and
- copying the first set of the valid data units from the first memory region to the second memory region and the second set of the valid data units from the first memory region to the third memory region different from the second memory region;
- and
- performing the garbage collection operation on the first memory region by, in response to determining that a third set of the valid data units has a third priority different from the first priority and the second priority, designating the third set as data units not to be copied to any memory region in the non-volatile memory array so that the third set of data units are erased when the first memory region is erased.
Dependencies are inferred from the claim text.