Defective sector management for magnetic data storage disks
A Data Storage Device (DSD) includes at least one disk and at least one memory storing an active Primary defect List (P-List) indicating defective sectors identified during formatting, a Grown defect List (G-List) indicating defective sectors identified after formatting, and an inactive P-List including entries for accepting entries from the G-List. Entries of the G-List are merged into the P-List by successively reassigning descending sets of logical addresses from respective sets of sectors to a temporary storage area and reserving at least a portion of the sectors for a set of shifting P-List entries. Entries of the shifting P-List entries are retained in the inactive P-List for grown defect sectors, and the set of shifting P-List entries is reduced by the number of retained entries before shifting toward a next set of sectors. The descending sets of logical addresses are reassigned from the temporary storage area back to non-defect sectors.
1 . A Data Storage Device (DSD), comprising:
at least one disk including a plurality of sectors configured to store data;
at least one memory configured to store an active Primary defect List (P-List) including entries indicating defective sectors identified during formatting of the at least one disk, a Grown defect List (G-List) including entries indicating defective sectors identified after formatting the at least one disk, and an inactive P-List including entries for accepting entries from the G-List; and
circuitry configured to merge entries of the G-List into the active P-List, the merging including at least in part performing iterations of:
reassigning a descending set of logical addresses from a set of sectors of the plurality of sectors to a temporary storage area of the DSD;
reserving at least a portion of the respective set of sectors corresponding to the reassigned descending set of logical addresses for a set of shifting P-List entries of the inactive P-List;
in response to one or more grown defect sectors indicated by the G-List being included in the reserved sectors, retaining one or more entries of the shifting P-List in the inactive P-List for the one or more grown defect sectors and reducing the set of shifting P-List entries by the number of retained entries before shifting toward a next respective set of sectors; and
reassigning the descending set of logical addresses from the temporary storage area back to non-defect sectors of the plurality of sectors.
2 . The DSD of claim 1 , wherein the circuitry is further configured to perform one or more host commands to read or write data on the at least one disk during performance of the merging.
3 . The DSD of claim 1 , wherein the circuitry is further configured to use the active P-List to determine a physical location on the at least one disk for assigning a logical address while merging entries of the G-List into the inactive P-List.
4 . The DSD of claim 1 , wherein the circuitry is further configured to:
reassign a first set of logical addresses having the highest logical addresses from a first set of sectors of the at least one disk to an unused portion of the at least one disk; and
reserve the first set of sectors for the set of shifting P-List entries.
5 . The DSD of claim 1 , wherein the number of reassigned logical addresses in each set of the descending sets of logical addresses equals a predetermined number of initially unassigned entries in the inactive P-List, and wherein the predetermined number is less than or equal to an initial number of entries in the G-List.
6 . The DSD of claim 1 , wherein the circuitry is further configured to update a logical to physical translation table used to map logical addresses to locations on the at least one disk after reassigning each descending set of logical addresses back to non-defect sectors of the plurality of sectors.
7 . The DSD of claim 1 , wherein after each iteration of reserving the at least a portion of the respective set of sectors for the set of shifting P-List entries, the circuitry is further configured to:
designate the inactive P-List as a new active P-List; and
designate the active P-List as a new inactive P-List for reserving at least a portion of a next respective set of sectors for the set of shifting P-List entries.
8 . The DSD of claim 7 , wherein the circuitry is further configured to store a copy of the inactive P-List on the at least one disk or in a non-volatile memory of the DSD before designating the inactive P-List as the new active P-List.
9 . The DSD of claim 1 , wherein the circuitry is further configured to increment a sequence number for the inactive P-List after reassigning a descending set of logical addresses from a set of sectors of the plurality of sectors to the temporary storage area.
10 . The DSD of claim 1 , wherein the circuitry is further configured to:
resume merging entries of the G-List into the active P-List after an interruption by at least in part:
identifying at least one of one or more logical addresses stored in the temporary storage area and a sequence number associated with the inactive P-List; and
using the identified at least one of the one or more logical addresses and the sequence number to determine a location on the at least one disk to reassign a descending set of logical addresses to or from the temporary storage area.
11 . A method for managing defect sectors of at least one disk of a Data Storage Device (DSD), the method comprising:
merging entries of a Grown defect List (G-List) into a Primary defect List (P-List), the G-List including entries indicating defective sectors identified on the at least one disk after formatting the at least one disk, and the P-List including entries for defective sectors identified during formatting of the at least one disk, the merging including at least in part:
successively reassigning descending sets of logical addresses from respective sets of sectors of a plurality of sectors of the at least one disk to a temporary storage area of the DSD;
successively reserving at least a portion of the respective sets of sectors corresponding to the reassigned descending sets of logical addresses for a set of shifting P-List entries of an inactive version of the P-List,
wherein in response to one or more grown defect sectors indicated by the G-List being included in the reserved sectors, one or more entries of the shifting P-List entries are retained in the inactive version of the P-List for the one or more grown defect sectors and the set of shifting P-List entries is reduced by the number of retained entries before shifting toward a next respective set of sectors; and
successively reassigning the descending sets of logical addresses from the temporary storage area back to non-defect sectors of the plurality of sectors.
12 . The method of claim 11 , further comprising performing one or more host commands to read or write data on the at least one disk during the merging.
13 . The method of claim 11 , further comprising using an active version of the P-List to determine a physical location on the at least one disk for assigning a logical address while merging entries of the G-List into the P-List.
14 . The method of claim 11 , further comprising:
reassigning a first set of logical addresses having the highest logical addresses from a first set of sectors of the at least one disk to an unused portion of the at least one disk; and
reserving the first set of sectors for the set of shifting P-List entries.
15 . The method of claim 11 , wherein the number of reassigned logical addresses in each set of the descending sets of logical addresses equals a predetermined number of initially unassigned entries in the inactive version of the P-List, and wherein the predetermined number is less than or equal to an initial number of entries in the G-List.
16 . The method of claim 11 , further comprising updating a logical to physical translation table used to map logical addresses to physical block addresses on the at least one disk after reassigning each descending set of logical addresses from the temporary storage area back to non-defect sectors of the plurality of sectors.
17 . The method of claim 11 , wherein after each iteration of reserving the at least a portion of the respective set of sectors for the set of shifting P-List entries, the method further comprises:
designating the inactive version of the P-List as a new active version of the P-List; and
designating the active version of the P-List as a new inactive version of the P-List for reserving a next respective set of sectors for the set of shifting P-List entries.
18 . The method of claim 11 , further comprising incrementing a sequence number for the inactive version of the P-List after reassigning a descending set of logical addresses from a set of sectors of the plurality of sectors to the temporary storage area.
19 . The method of claim 11 , further comprising:
resuming merging entries of the G-List into the P-List after an interruption by at least in part:
identifying at least one of one or more logical addresses stored in the temporary storage area and a sequence number associated with the inactive version of the P-List; and
using the identified at least one of the one or more logical addresses and the sequence number to determine a location on the at least one disk to reassign a descending set of logical addresses to or from the temporary storage area.
20 . A Data Storage Device (DSD), comprising:
at least one disk including a plurality of sectors configured to store data;
at least one memory configured to store an active Primary defect List (P-List) indicating defective sectors identified during formatting of the at least one disk, a Grown defect List (G-List) indicating defective sectors identified after formatting the at least one disk, and an inactive P-List including entries for accepting entries from the G-List; and
means for merging the entries of the G-List into the P-List, the merging including at least in part performing iterations of:
reassigning descending sets of logical addresses from respective sets of sectors of the plurality of sectors of the at least one disk;
reserving at least a portion of the respective sets of sectors corresponding to the reassigned descending sets of logical addresses for a set of shifting P-List entries of the inactive P-List;
in response to one or more grown defect sectors indicated by the G-List being included in the reserved sectors, retaining one or more entries of the shifting P-List entries in the inactive P-List for the one or more grown defect sectors and reducing the set of shifting P-List entries by the number of retained entries before shifting toward a next respective set of sectors; and
reassigning the descending sets of logical addresses back to non-defect sectors of the plurality of sectors.