Prioritized erasure of data blocks in a flash storage device
First Claim
1. A method for managing memory operations in a flash storage device having a plurality of data blocks, each block comprising a plurality of data segments, the method comprising the steps of:
- providing one or more linked lists comprising a plurality of nodes, each of the plurality of nodes indicating the number of valid data segments in a corresponding one of the plurality of data blocks;
ordering the plurality of nodes in the one or more linked lists based upon the number of valid data segments indicated therein;
selecting one of the plurality of data blocks for erasure based on the ordering of the one or more linked lists such that the selected data block corresponds to one of the plurality of nodes indicating a lowest number of valid data segments; and
erasing the selected data block when an available number of pre-erased data blocks falls below a predetermined amount.
7 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for the prioritized erasure of data blocks in a flash storage device are provided. A data block in the flash storage device is selected for erasure based upon the number of valid data segments therein, thereby minimizing the number of data segments that are carried over to another data block before erasing the selected data block. The overhead of write operations in the flash storage device is therefore greatly reduced, and the overall performance thereof greatly increased. A method for managing memory operations in a flash storage device having a plurality of data blocks comprises the steps of selecting one of the plurality of data blocks for erasure based upon a number of valid data segments therein, and erasing the selected one of the plurality of data blocks.
28 Citations
26 Claims
-
1. A method for managing memory operations in a flash storage device having a plurality of data blocks, each block comprising a plurality of data segments, the method comprising the steps of:
-
providing one or more linked lists comprising a plurality of nodes, each of the plurality of nodes indicating the number of valid data segments in a corresponding one of the plurality of data blocks; ordering the plurality of nodes in the one or more linked lists based upon the number of valid data segments indicated therein; selecting one of the plurality of data blocks for erasure based on the ordering of the one or more linked lists such that the selected data block corresponds to one of the plurality of nodes indicating a lowest number of valid data segments; and erasing the selected data block when an available number of pre-erased data blocks falls below a predetermined amount. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A flash storage device, comprising:
-
a plurality of data blocks, each block comprising a plurality of data segments; and a controller configured to; provide one or more linked lists comprising a plurality of nodes, each of the plurality of nodes indicating the number of valid data segments in a corresponding one of the plurality of data blocks; order the plurality of nodes in the one or more linked lists based upon the number of valid data segments indicated therein; select one of the plurality of data blocks for erasure based on the ordering of the one or more linked lists such that the selected data block corresponds to one of the plurality of nodes indicating a lowest number of valid data segments; and erase the selected data block when an available number of pre-erased data blocks falls below a predetermined amount. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A non-transitory machine readable medium storing one or more sequences of instructions for managing memory operations in a flash storage device having a plurality of data blocks, each block comprising a plurality of data segments, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
providing one or more linked lists comprising a plurality of nodes, each of the plurality of nodes indicating the number of valid data segments in a corresponding one of the plurality of data blocks; ordering the plurality of nodes in the one or more linked lists based upon the number of valid data segments indicated therein; selecting one of the plurality of data blocks for erasure based on the ordering of the one or more linked lists such that the selected data block corresponds to one of the plurality of nodes indicating a lowest number of valid data segments; and erasing the selected one of the plurality of data blocks when an available number of pre-erased data blocks falls below a predetermined amount.
-
Specification