# Patent

## Title
Disk drive mapping entries of a defect list into clusters

## Abstract

A disk drive is disclosed comprising a first and second disk surfaces. A defect list is generated comprising a plurality of entries, wherein each entry comprises a track number comprising a defect. A first cluster across the first and second disk surfaces is identified, wherein a maximum data track number X1 in the first cluster on the first disk surface is less than a maximum data track number Y1 in the first cluster on the second disk surface. A second cluster across the first and second disk surfaces is identified, wherein a maximum data track number X2 in the second cluster on the first disk surface is less than a maximum data track number Y2 in the second cluster on the second disk surface. An entry from the defect list is selected in response to X1, and the entry of the defect list is mapped into the second cluster.

## Background
BACKGROUND
Description of the Related Art
Prior art disk drives employ one or more disks with heads actuated over the respective disk surfaces (e.g., top and bottom surfaces). Each disk surface comprises a plurality of radially spaced, concentric data tracks, wherein each data track comprises a number of data sectors for storing user data. During write operations, the disk drive receives user data and a logical block address (LBA) which is mapped to an absolute block address (ABA) identifying one of the data sectors for storing the user data. The LBA to ABA mapping enables defective data sectors to be mapped to spare data sectors.
Because the disk is rotated at a constant velocity, the data rate is typically increased toward the outer diameter tracks (where the surface of the disk is spinning faster) in order to achieve a more constant linear bit density across the radius of the disk. To simplify design considerations, the data tracks are typically banded together into a number of physical zones, wherein the data rate is constant across a zone, and increased from the inner diameter zones to the outer diameter zones. This is illustrated in FIG. 1A, which shows a prior art disk format 2 comprising a number of data tracks 4, wherein the data tracks are banded together in this example to form three physical zones from the inner diameter of the disk (ZONE 1) to the outer diameter of the disk (ZONE 3). The prior art disk format of FIG. 1 also comprises a number of embedded servo sectors 60-6N recorded around the circumference of each data track. Each servo sector 6i comprises a preamble 8 for storing a periodic pattern, which allows proper gain adjustment and timing synchronization of the read signal, and a sync mark 10 for storing a special pattern used to symbol synchronize to a servo data field 12. The servo data field 12 stores coarse head positioning information, such as a track address, used to position the head over a target data track during a seek operation. Each servo sector 6, further comprises groups of servo bursts 14 (e.g., A, B, C and D bursts), which comprise a number of consecutive transitions recorded at precise intervals and offsets with respect to a data track centerline. The groups of servo bursts 14 provide fine head position information used for centerline tracking while accessing a data track during write/read operations.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A shows a prior art disk format comprising a plurality of concentric data tracks defined by embedded servo sectors.
FIGS. 1B and 1C shows a disk drive according to an embodiment of the present invention comprising a first and second disk surfaces, and heads actuated over the respective disk surfaces.
FIG. 1D is a flow diagram executed by control circuitry within the disk drive for mapping an entry of a defect list into a cluster.
FIGS. 2A and 2B show a disk drive according to an embodiment of the present invention comprising a plurality of disk surfaces and heads actuated over respective disk surfaces, wherein a servo tracks per inch (STPI) to data tracks per inch (DTPI) ratio varies across at least part of a disk surface.
FIG. 3 shows an embodiment of the present invention wherein the control circuitry identifies a number of clusters, and the STPI to DTPI ratio changes between the cluster boundary defining a data zone.
FIG. 4 shows an embodiment of the present invention wherein the physical zone boundaries define logical zone boundaries, the STPI to DTPI ratio is different between at least two of the physical zones, and a numbering for absolute block addresses follows a serpentine pattern along the width of a cluster.
FIG. 5 shows a flow diagram according to an embodiment of the present invention for finding a data sector on a disk surface in response to a block address received from the host by finding the corresponding logical zone, the cluster within the logical zone, the head within the cluster, the data track for the head, and the servo track and servo track offset for the head.
FIGS. 6A and 6B illustrate how a servo track and servo track offset are identified for locating the center of a target data track according to an embodiment of the present invention.
FIG. 7 shows an embodiment of the present invention wherein data zones are defined by the STPI to DTPI ratio which changes within a physical zone, and the logical zone boundaries are defined by the data zone boundaries.
FIG. 8A shows an embodiment wherein a data TPI profile is lower than a servo TPI across the radius of a disk surface.
FIG. 8B shows an embodiment wherein a data TPI profile overlaps a servo TPI profile such that the data TPI is higher than the servo TPI for the middle diameter tracks of a disk surface.
FIGS. 9A and 9B show servo TPI and data TPI profiles in dimensions of quantized steps (e.g., DAC counts) between tracks, wherein the quantized steps between servo tracks is constant across the disk surface and varies between at least two data zones.
FIG. 10A shows a defect list according to an embodiment of the present invention comprising an index number, a track number, a head number, and a starting and ending physical sector number (PSN).
FIG. 10B is a table according to an embodiment of the present invention showing the maximum data track number for each head (disk surface) and in each cluster.
FIG. 10C illustrates an embodiment of the present invention wherein a maximum data track number X1 in the first cluster on a first disk surface is less than a maximum data track number Y1 in the first cluster on a second disk surface.
FIG. 11 is a flow diagram according to an embodiment of the present invention wherein an index corresponding to X1 is saved while searching for entries that fall within the first cluster C1, and used to begin searching for entries that fall within the second cluster C2.



DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
FIGS. 1B and 1C show a disk drive according to an embodiment of the present invention comprising a first disk surface 160 and a second disk surface 161, wherein each disk surface comprises a plurality of data tracks 17. A first head 220 is actuated over the first disk surface 160, and a second head 221 is actuated over the second disk surface 161. The disk drive further comprises control circuitry 20 operable to execute the flow diagram of FIG. 1D. A defect list comprising a plurality of entries is generated (step 19), wherein each entry comprises a track number comprising a defect. A first cluster across the first and second disk surfaces is identified, wherein a maximum data track number X1 in the first cluster on the first disk surface 160 is less than a maximum data track number Y1 in the first cluster on the second disk surface 161 (step 21). A second cluster across the first and second disk surfaces is identified, wherein a maximum data track number X2 in the second cluster on the first disk surface is less than a maximum data track number Y2 in the second cluster on the second disk surface (step 23). An entry is selected from the defect list in response to X1 (step 25), and the selected entry of the defect list is mapped into the second cluster (step 27).
FIGS. 2A and 2B show a disk drive according to an embodiment of the present invention having a plurality of disk surfaces (160-163). A first head 220 is actuated over a first disk surface 160, and the first disk surface 160 comprises a plurality of servo tracks and a plurality of data tracks (FIG. 3). The data tracks of the first disk surface 160 are banded together into a plurality of data zones, including a first data zone and a second data zone. A first servo tracks per inch (STPI) to data tracks per inch (DTPI) ratio of the first data zone is substantially different from a second STPI to DTPI ratio of the second data zone.
In the embodiment of FIGS. 2A and 2B, the disk drive comprises a plurality of heads (220-223) actuated over respective disk surfaces (160-163). The heads (220-223) are attached to the distal ends of actuator arms (24A-24C) which are rotated about a pivot by a voice coil motor (VCM) 26 in order to position the heads (220-223) over the disk surfaces (160-163). Each disk surface (160-163) comprises a number of servo sectors (280-28N) that store coarse head position information (e.g., a track address) used to position the head over a target data track during a seek operation, and fine head position information (e.g., servo bursts) used to maintain the head over the target data track during read/write operations. The control circuitry 20 processes the servo sectors (280-28N) to generate a VCM control signal 30 applied to the VCM 26 in a closed loop servo system.
FIG. 3 shows the format of servo tracks (ST) relative to the format of data tracks (DT) according to an embodiment of the present invention. In this example, the servo tracks are banded together into a plurality of clusters, where a first cluster is in a first data zone, and a second cluster is in a second data. In the example embodiment of FIG. 3, a spacing between each servo track comprises N quantized steps, and a spacing between each data track comprises M quantized steps. Each quantized step corresponds to a discrete position the servo system may position the head between two servo tracks in order to align the head over a target data track. For example, each quantized step may correspond to a digital-to-analog converter (DAC) count in the servo system. In an embodiment described in greater detail below, the relationship between each quantized step and the corresponding offset in physical distance may vary across the disk surface. For example, a quantized step may correspond to a first fraction of an inch near the outer diameter, whereas a quantized step may correspond to a second (greater) fraction of an inch near the middle diameter. In one embodiment, the number of quantized steps between servo tracks remains constant, but the corresponding physical TPI changes across the radius of the disk surface.
Referring again to FIG. 3, in the cluster of the first data zone, there are 256 quantized steps between the centerline of each servo track, and 303 quantized steps between the centerline of each data track. Therefore in the first data zone, the servo quantized steps per track (SQSPT) to data quantized steps per track (DQSPT) ratio is 256/303. In the cluster of the second data zone, there are 256 quantized steps between the centerline of each servo track, and 231 quantized steps between the centerline of each data track. Therefore, the SQSPT to DQSPT ratio is 256/231 in the second data zone. Accordingly, in the example of FIG. 3, the STPI to DTPI ratio of the first data zone is different than the STPI to DTPI ratio of the second data zone.
Any suitable STPI to DTPI ratio may be selected for each data zone. In one embodiment, the STPI to DTPI ratio is constant across a data zone. In addition, the STPI to DTPI ratio may be greater than one (higher STPI than DTPI) or less than one (lower STPI than DTPI). In an embodiment described in greater detail below, the STPI to DTPI ratio may be greater than one over a first part of the disk surface, and less than one over a second part of the disk surface.
In FIG. 3 the cluster of the first data zone comprises 4 full servo tracks ST0-ST3 (4×256=1024 steps) and 3 full data tracks DT0-DT2 (with a remainder of 115 steps as shown). The second data zone comprises 4 full servo tracks (4×256=1024 steps) and 4 full data tracks (with a remainder of 100 steps as shown). In this embodiment, each cluster comprises an integer number of servo track spacings and a fractional number of data track spacings. Also in this embodiment, the data tracks are formatted such that the spacing of data tracks always begins relative to the start of a new cluster. In the example of FIG. 3, the spacing between the last data track (data track DT2) of a current cluster and the first data track (data track DT0) of the next cluster includes the remainder (303+115=418 steps). In an alternative embodiment, the remainder is distributed across the data tracks in any suitable manner so that the spacing between data tracks is substantially even.
In the embodiment of FIG. 2A, the data tracks of each disk surface are banded together into a plurality of physical zones each having physical zone boundaries at predetermined radial locations on the disk surface, wherein each physical zone is operable to store data in the data sectors at a predetermined data rate. In one embodiment, the physical zones also define the data zones in that the SQSPT to DQSPT ratio is constant across each physical zone, and varies between physical zones. Accordingly, in one embodiment a data rate of data stored in a data track of a first data zone is different than a data rate of data stored in a data track of a second data zone. In alternative embodiment described in greater detail below, at least one physical zone is further divided into multiple data zones each having a different SQSPT to DQSPT ratio. Thus in this embodiment, a data rate of data stored in a data track of a first data zone may be the same as a data rate of data stored in a data track of a second data zone.
FIG. 4 shows an example format for the disk surfaces (160-163) according to an embodiment of the present invention. In this example, each disk surface corresponding to heads 220-223 comprises three physical zones PZ1-PZ3 having physical zone boundaries at predetermined radial locations. Also in this embodiment, each physical zone corresponds to a data zone having a selected SQSPT to DQSPT ratio. The physical zone PZ1 on disk surface 160 has a physical zone boundary (right boundary) at a first predetermined radial location, wherein the first predetermined radial location is different from any of the radial locations of the physical zone boundaries on disk surface 161. The physical zone PZ1 on the disk surface 161 has a physical zone boundary (right boundary) at a second predetermined radial location, wherein the second predetermined radial location is different from any of the radial locations of the physical zone boundaries on disk surface 160. Logical zone boundaries of logical zones LZ1-LZ6 are defined relative to the physical zone boundaries in that a new logical zone boundary occurs whenever there is a change in any one of the physical zones on any disk surface. Accordingly, in this embodiment the number of logical zones is greater than the number of physical zones for at least one of the disk surfaces (six logical zones and three physical zones in the example of FIG. 4). Preferably, these logical zones are defined for at least two of the disk surfaces, and in one embodiment, one set of logical zones defines the logical zone boundaries for the entire drive.
In one embodiment, the block address received from the host with an access command is a logical block address (LBA) that the control circuitry 20 maps to an absolute block address (ABA) corresponding to a target data sector. This LBA to ABA mapping facilitates the “mapping out” of defective data sectors. Any suitable LBA to ABA mapping algorithm may be employed in the embodiments of the present invention.
In one embodiment, the ABA numbering follows a suitable serpentine pattern across the disk surfaces. This is illustrated in the embodiment of FIG. 4, wherein the serpentine pattern follows the width of a cluster along a current disk surface in one direction (e.g., OD to ID), and then follows along a cluster width of a next disk surface in the opposite direction (e.g., ID to OD). When the end of the cluster on the last disk surface is reached, the serpentine pattern continues starting with the next cluster on the first disk surface as illustrated in FIG. 4.
Note that because the data zones do not change within a logical zone in this embodiment, the sectors per cluster cylinder (SPCC) are the same within each logical zone, wherein the SPCC is the number of sectors on all of the disk surfaces within the cluster cylinder. This is true even though the data track density and the linear bit density may be different across the disk surfaces. This constraint enables the convenient mapping of an ABA to a target data sector, which is understood with reference to an embodiment shown in the flow diagram of FIG. 5:

    
    
        Step 42: Receive access command from host—An access command is received from a host, including a logical block address.
        Step 44: Map LBA to ABA—The LBA received from the host is mapped to an ABA using any suitable algorithm.
        Step 46: Find the logical zone corresponding to the ABA—Each logical zone has an associated starting ABA (S_ABA), which is computed as the SPCC times the number of clusters within each preceding zone. The logical zone corresponding to any given ABA is found by comparing the starting ABA of each logical zone to the target ABA.
        Step 48: Find the cluster within the logical zone corresponding to the ABA—The cluster within the target logical zone is then found by comparing the target ABA to the SPCC for each cluster. For example, the control circuitry may be operable to subtract the starting ABA of the target logical zone from the target ABA to find the remainder, and then subtract the SPCC from the remainder repetitively until the result is less than the SPCC. The fractional SPCC is then used to find the target head/surface in the next step.
        Step 50: Find the head within the cluster corresponding to the ABA—Once the cluster within the logical zone is found, the head/surface storing the target data sector is found by comparing the fractional SPCC to the sectors per cluster (SPC) for each disk surface starting with the first disk surface 160. For example, the control circuitry may be operable to subtract the SPC for each disk surface from the fractional SPCC found in the previous step until the result is less than the SPC. The remainder of this step is then used to find the target data track in the next step.
        Step 52: Find the data track corresponding to the head and ABA—The target data track is then found by comparing the remainder of the previous step to the sectors per track (SPT) within the cluster on the target disk surface. For example, subtract the sectors per track from the remainder of the previous step until the result is less than the SPT.
        Step 54: Find the servo track and a radial offset—Once the target data track is known, the corresponding servo track can be determined using the SQSPT to DQSPT ratio for the corresponding data zone of the disk surface. The centerline of the target data track is typically located at a radial offset (in steps) from the target servo track. In one embodiment, the target servo track and radial offset are always determined relative to the left side of the cluster regardless as to the serpentine direction.
    
    


A better understanding of how an ABA may be mapped to a target data sector in one embodiment is understood by considering two examples in FIG. 4, assuming the following format parameters:
SPCC1=412=>S_ABA LZ2=1236
SPCC2=466=>S_ABA LZ3=2168
SPC within cluster C2 of LZ2 on disk surface 160=124
SPC within cluster C2 of LZ2 on disk surface 161=105
SPC within cluster C2 of LZ2 on disk surface 162=90
SPC within cluster C2 of LZ2 on disk surface 163=147
SPT within cluster C2 of LZ2 on disk surface 161=35
SPT within cluster C2 of LZ2 on disk surface 162=30
In a first example illustrated in FIG. 6A, a target data sector (reference number 56 in FIG. 4) is found for ABA number 1897. The target logical zone (LZ2) is found by comparing the S_ABA of the logical zones to the target ABA of 1897. A remainder is found by subtracting the S_ABA of the target logical zone (S_ABA LZ2=1236) from the ABA number 1897 leaving a remainder of 661. The target cluster within LZ2 is then found by subtracting the SPCC2 from the remainder of 661 (which happens once in this case before the result is less than SPCC2). The remainder (661−466=195) is then used to find the target head/surface by subtracting the SPC for each disk surface (which happens once in this case before the result is less than the SPC). The remainder (195−124=71) represents the sector number within cluster C2 of LZ2 on disk surface 161. The corresponding target data track and target data sector are then found by subtracting the sectors per track (SPT) within cluster C2 of LZ2 on disk surface 161 (71−35−35=1). Therefore, the target data sector is the second data sector of the third data track (data track DT2 counting from right to left in FIG. 6A) within cluster C2 of LZ2 on disk surface 161. The corresponding servo track and radial offset is then found using the SQSPT to DQSPT ratio (256/303):

Target servo track=((4×256)−(2×303))/256=1 remainder 162.

In the above equation, the number of quantized steps in two data track spacings (2×303) is subtracted from the total number of steps in the cluster (4×256) since the direction of the serpentine pattern is right to left for disk surface 161. Therefore, the target servo track is the second servo track (servo track ST1 counting from left to right in FIG. 6A) within cluster C2 of LZ2 on disk surface 161, and the radial offset from the second servo track is 162 steps as shown in FIG. 6A.

In a second example illustrated in FIG. 6B, the target data sector (reference number 58 in FIG. 4) is found for ABA number 1967. The target logical zone (LZ2) is found by comparing the S_ABA of the logical zones to the target ABA of 1967. A remainder is found by subtracting the S_ABA of the target logical zone (S_ABA LZ2=1236) from the ABA number 1967 leaving a remainder of 731. The target cluster within LZ2 is then found by subtracting the SPCC2 from the remainder of 731 (which happens once in this case before the result is less than SPCC2). The remainder (731−466=265) is then used to find the target head/surface by subtracting the SPC for each disk surface (which happens twice in this case before the result is less than the SPC). The remainder (265−124−105=36) represents the sector number within cluster C2 of LZ2 on disk surface 162. The corresponding target data track and target data sector are then found by subtracting the sectors per track (SPT) within cluster C2 of LZ2 on disk surface 162 (36−30=6). Therefore, the target data sector is the 7th data sector of the second data track (data track DT1 counting from left to right in FIG. 6B) within cluster C2 of LZ2 on disk surface 162. The corresponding servo track and radial offset is then found using the SQSPT to DQSPT ratio (256/303):

Target servo track=(1×303)/256=1 remainder 47.

Therefore, the target servo track is the second servo track (servo track ST1 counting from left to right in FIG. 6B) within cluster C2 of LZ2 on disk surface 162, and the radial offset from the second servo track is 47 steps as shown in FIG. 6B.

In one embodiment, the parameters needed to map a given ABA to a target data sector are stored in a table. For example, the starting ABA for each logical zone, the SPCC for each logical zone, the SPC within each logical zone on each disk surface, the SPT for each cluster on each disk surface, and the SQSPT to DQSPT ratio within each data zone on each disk surface are stored in a table, wherein the appropriate table values are retrieved at each step in the above mapping process.
FIG. 7 shows an embodiment of the present invention wherein each physical zone on each disk surface is further divided into two or more data zones, wherein at least two of the data zones within a physical zone comprise different SQSPT to DQSPT ratios. In this embodiment, a new logical zone begins at a boundary of a data zone on any disk surface. Similar to the embodiment described above with reference to FIG. 4, in FIG. 7 the sectors per cluster cylinder (SPCC) are the same within each logical zone which facilitates finding the disk surface and radial location of a target data track.
In the embodiments of FIG. 4 and FIG. 7, the SQSPT is constant across each disk surface. Therefore, changing the SQSPT to DQSPT ratio between two data zones means changing the DQSPT for each data zone. This is illustrated in FIG. 4 and FIG. 7 as changing the TPI for each data zone (e.g., TPI-A, TPI-B, etc.). However, the actual physical TPI may depend on the physical fractional inch corresponding to each quantized step.
Any suitable technique may be employed to select the data TPI profile for each disk surface in the embodiments of the present invention. For example, in one embodiment the data TPI profile may be selected relative to an estimated geometry of each head. In another embodiment, the TPI profile may be selected relative to an optimal track width determined from an average amplitude of the read signal or the bit error rate measured at various radial locations for a varying physical spacing between the center of adjacent data tracks.
FIG. 8A shows an example servo TPI profile which increases near the outer and inner diameter of the disk in order to achieve a substantially constant servo track pitch relative to the skew angle of the head. Maintaining a substantially constant servo track pitch may help simplify the servo algorithms, particularly the seek profiles employed in the seek algorithms. However, as illustrated in FIG. 8A the optimal data TPI profile may decrease near the outer and inner diameter of the disk in order to maximize the signal-to-noise ratio. The embodiments of the present invention enable different servo and data TPI profiles such as shown in FIG. 8A by allowing for a change in the STPI to DTPI ratio across the disk surface.
In the embodiment of FIG. 8A, the DTPI is lower than the STPI across the entire radius of the disk surface. In an alternative embodiment shown in FIG. 8B, the DTPI is lower than the STPI over a first part of the disk surface (e.g., near the outer and inner diameter tracks), and the DTPI is higher than the STPI over a second part of the disk surface (e.g., near the middle diameter tracks).
In the embodiments of FIGS. 8A and 8B, the STPI profile and the DTPI profile are shown in a dimension of physical tracks per inch. However, as described above, in one embodiment the spacing between all of the servo tracks is represented by N quantized steps (e.g., 256 quantized steps in FIG. 3). In order to achieve a varying physical servo TPI, the quantized steps may represent different fractions of an inch. For example, in FIG. 8A the quantized steps toward the outer and inner diameter servo tracks represent a smaller fraction of an inch in order to increase the physical TPI while maintaining a constant N number of quantized steps between servo tracks.
FIGS. 9A and 9B show the STPI and DTPI profiles in a dimension of quantized steps per track (QSPT). Once the physical DTPI profile has been selected for a disk surface, a suitable algorithm is used to convert the physical DTPI profile to a corresponding DQSPT profile such as shown in the figures (the SQSPT profile is a constant in the figures since all servo tracks have a spacing of N quantized steps).
In one embodiment, a defect scan is performed to detect defective data sectors that should be mapped out. The defect scan may be carried out in any suitable manner, such as by writing/reading a test pattern from the disk and detecting an aberration in the read signal, or by detecting excessive bit errors in a data sector. The defect scan is typically executed over each disk surface starting from an outer diameter track toward an inner diameter track. When a defective data sector is detected (or sequence of defective data sectors), the corresponding track number, head number, and starting and ending physical sector number (PSN) are stored in a defect list. Each entry of the defect list is then converted into a starting LBA by reverse mapping the defect list entry, wherein in one embodiment, reverse mapping the defect list entry involves identifying which cluster that the defect list entry maps into.
FIG. 10A shows an example defect list comprising a number of entries, wherein an index is associated with each entry. Each entry comprises a track number, a head number, and a starting and ending physical sector number (PSN). The PSN identifies the data sector number within a track that is defective. For example, if a track comprises 2,000 data sectors, the PSN would range from 0 to 1,999. In the embodiment of FIG. 10A, if the starting and ending PSN are 65,535, it means that all of the data sectors in the track are defective.
FIG. 10B is a table according to an embodiment of the present invention showing the maximum data track number for each head (each disk surface) and in each cluster. The maximum data track number varies depending on the disk surface because the data TPI varies across the disk surfaces as described above. For example, the maximum data track number for cluster C1 is 92 for the first disk surface, 98 for the second disk surface, and 87 for the third disk surface. In one embodiment, the smallest of the maximums is identified (Xj) and the largest of the maximums is identified (Yj). In the example of FIG. 10B, for cluster C1 the smallest of the maximums is X1=87 and the largest of the maximums is Y1=98, for cluster C2 the smallest of the maximums is X2=183 and the largest of the maximums is Y2=196, and so on.
FIG. 10B FIG. 10C shows an example wherein cluster C1 comprises a smallest maximum data track number X1=40 on a first disk surface, and comprises a largest maximum data track number Y1=70 on a second disk surface. Therefore, in one embodiment when evaluating each entry of the defect list (e.g., FIG. 10A) to determine whether the entry maps to cluster C1, the track number in each entry is evaluated up to the Y1 threshold. That is, if the track number is less than Y1, the corresponding entry may map into cluster C1 depending on the head number in the defect list entry.
Since one of the disk surfaces comprises X1 data tracks in cluster C1, it means that cluster C2 begins at data track X1+1 on that disk surface. Therefore, the cluster C2 spans from X1+1 data tracks to Y2 data tracks as illustrated in FIG. 10B FIG. 10C (where Y2 may be on a different disk surface). When determining whether a defect list entry maps into cluster C2, the track number is evaluated between X1 and Y2, and again it also depends on the head number since X1 and Y2 correspond to particular disk surfaces.
In one embodiment, when processing entries of the defect list to determine whether each entry maps into cluster C1, the index corresponding to the X1 threshold is saved so that it can be used to begin mapping entries into cluster C2. This embodiment is understood with reference to the flow diagram of FIG. 11 in view of the example shown in FIGS. 10A and 10B. Indices i and j are initialized (step 60) and the Xj and Yj thresholds are determined by evaluating the maximum data track number on each disk surface that are within cluster Cj (step 62). If there are more entries in the defect list to process (step 64), entry i is selected from the defect list (step 66). The track number Ti of entry i is then evaluated to determine whether the entry maps into cluster Cj (step 68). For example, the entry i may map into cluster Cj if Ti is greater than Xj−1 and less than or equal to Yj (also depending on the disk surfaces since Xj−1 and Yj may be on different disk surfaces). Consider an example where Ti is 50 as shown in entry number 4 of FIG. 10A (X1=40 and Y1=70) where the head number of the entry is 00. If the corresponding disk surface (for head 00) has a maximum data track number greater than or equal to 50 in C1, then the entry maps into C1. However, if the corresponding disk surface (for head 00) has a maximum data track number less than 50, then the entry does not map into C1 (it maps into C2). Alternatively, the track number Ti of the defect list entry may be converted into a corresponding servo cylinder number for each head (each disk surface), and then the servo cylinder number evaluated to determine whether Ti maps into Cj relative to the first and last servo cylinder numbers that define Cj.
If Ti does not map into cluster Cj (due to the track number and head number), then Ti is compared to Yj (step 70). If Ti is not greater than Yj, then the index i is incremented (step 72) in order to process the next entry in the defect list for cluster Cj. If Ti is greater than Yj, then the index i to begin evaluating entries from the defect list for the next cluster is initialized to a saved variable Zj+1 (step 74) determined relative to Xj each time Ti maps into the current cluster Cj (step 68). The index j is incremented (step 76) in order to start searching for entries that map into the next cluster.
When Ti maps into the current cluster Cj (step 68), the Ti is saved for cluster Cj (step 78) for subsequent processing (e.g., for reverse mapping the defect list entry into a starting LBA). If Ti is less than or equal to Xj (step 80), then the variable Zj+1 is assigned to i+1 (step 82) the index corresponding to the next entry in the defect list. If Ti is not less than or equal to Xj (step 80), then the flow diagram continues at step 72. When Ti is greater than Yj (step 70), the starting index i is initialized to Zj+1 to begin evaluating entries of the defect list at the last point where Ti was less than or equal to Xj at step 80.
The flow diagram of FIG. 11 is further explained relative to the following example relative to FIGS. 10A and 10B. When evaluating the defect list entries for C1, the index starts at 1. Since track number 0 is less than X1=40, the variable Zj+1 is assigned to index 2 at step 82. When processing the next entry (i=2), the track number 10 is less than X1=40, so the variable Zj+1 is assigned to the index 3 at step 82. When processing the next entry (i=3), the track number 38 is less than X1=40, so the variable Zj+1 is assigned to the index 4 at step 82. When processing the next entry (i=4), the track number 50 is greater than X1=40, so the variable Zj+1 remains unchanged at Zj+1=4. When the index i reaches 6, the track number 94 is greater than T1=70 and therefore j is incremented to 2 (step 74) to begin processing the next cluster C2. The index i is initialized to Zj+1=4 so that the searching begins at index 4 when evaluating the entries of the defect list for cluster C2.
Any suitable control circuitry may be employed to implement the flow diagrams in the embodiments of the present invention, such as any suitable integrated circuit or circuits. For example, the control circuitry may be implemented within a read channel integrated circuit, or in a component separate from the read channel, such as a disk controller, or certain steps described above may be performed by a read channel and others by a disk controller. In one embodiment, the read channel and disk controller are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or system on a chip (SOC). In addition, the control circuitry may include a suitable preamp circuit implemented as a separate integrated circuit, integrated into the read channel or disk controller circuit, or integrated into an SOC.
In one embodiment, the control circuitry comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the steps of the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in a SOC. In another embodiment, the instructions are stored on the disk and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.

## Claims

1. A disk drive comprising:
a first disk surface and a second disk surface, wherein each disk surface comprises a plurality of data tracks;
a first head actuated over the first disk surface, and a second head actuated over the second disk surface; and
control circuitry operable to:
generate a defect list comprising a plurality of entries, wherein each entry comprises a track number comprising a defect;
identify a first cluster across the first and second disk surfaces, wherein a maximum data track number X1 in the first cluster on the first disk surface is less than a maximum data track number Y1 in the first cluster on the second disk surface;
identify a second cluster across the first and second disk surfaces, wherein a maximum data track number X2 in the second cluster on the first disk surface is less than a maximum data track number Y2 in the second cluster on the second disk surface;
select an entry from the defect list in response to X1; and
map the selected entry of the defect list into the second cluster.

2. The disk drive as recited in claim 1, wherein the control circuitry is further operable to evaluate the track number of the selected entry up to Y1 to determine whether the track number falls within the first cluster.

3. The disk drive as recited in claim 2, wherein:
each entry in the defect list further comprises a head identifier for identifying a corresponding disk surface; and
the control circuitry is further operable to evaluate the head identifier of the selected entry to determine whether the track number falls within the first cluster.

4. The disk drive as recited in claim 2, wherein the control circuitry is further operable to evaluate the track number of the selected entry between X1 and Y2 to determine whether the track number falls within the second cluster.

5. The disk drive as recited in claim 4, wherein:
each entry in the defect list further comprises a head identifier for identifying a corresponding disk surface; and
the control circuitry is further operable to evaluate the head identifier of the selected entry to determine whether the track number falls within the second cluster.

6. The disk drive as recited in claim 1, wherein the control circuitry is further operable to:
save an index into the defect list in response to X1; and
use the saved index to select the entry from the defect list.

7. A method of operating a disk drive, the disk drive comprising a first disk surface and a second disk surface, wherein each disk surface comprises a plurality of data tracks, and a first head actuated over the first disk surface, and a second head actuated over the second disk surface, the method comprising:
generating a defect list comprising a plurality of entries, wherein each entry comprises a track number comprising a defect;
identifying a first cluster across the first and second disk surfaces, wherein a maximum data track number X1 in the first cluster on the first disk surface is less than a maximum data track number Y1 in the first cluster on the second disk surface;
identifying a second cluster across the first and second disk surfaces, wherein a maximum data track number X2 in the second cluster on the first disk surface is less than a maximum data track number Y2 in the second cluster on the second disk surface;
selecting an entry from the defect list in response to X1; and
mapping the selected entry of the defect list into the second cluster.

8. The method as recited in claim 7, further comprising evaluating the track number of the selected entry up to Y1 to determine whether the track number falls within the first cluster.

9. The method as recited in claim 8, wherein each entry in the defect list further comprises a head identifier for identifying a corresponding disk surface, further comprising evaluating the head identifier of the selected entry to determine whether the track number falls within the first cluster.

10. The method as recited in claim 8, further comprising evaluating the track number of the selected entry between X1 and Y2 to determine whether the track number falls within the second cluster.

11. The method as recited in claim 10, wherein each entry in the defect list further comprises a head identifier for identifying a corresponding disk surface, further comprising evaluating the head identifier of the selected entry to determine whether the track number falls within the second cluster.

12. The method as recited in claim 7, further comprising:
saving an index into the defect list in response to X1; and
using the saved index to select the entry from the defect list.