Magnetic disk device

The magnetic disk device enhances reliability by segregating sectors into correctable and uncorrectable groups and adjusting DOL settings, addressing issues of side erasure and random overwriting to maintain effective error correction.

JP2025123434AActive Publication Date: 2025-08-22KK TOSHIBA +1
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2025102785
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-06-18
Publication Date
2025-08-22
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

Magnetic disk drives face challenges in maintaining reliability due to issues like side erasure and the inability to perform track-based error correction when data is randomly overwritten, which affects the DOL (Drift of Level) and Write off Track Slice settings, leading to unrecoverable errors.

Method used

The magnetic disk device is configured with first and second sector groups, where the first sector group supports track-based error correction using a parity sector, and the second sector group does not. The device sets different DOLs based on sector correctness, managing correctable and uncorrectable areas to enhance reliability.

Benefits of technology

This configuration improves the reliability of magnetic disk drives by reducing unrecoverable errors and maintaining effective error correction capabilities, even when data is randomly written, by optimizing DOL settings for correctable and uncorrectable sectors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025123434000001_ABST
    Figure 2025123434000001_ABST
Patent Text Reader

Abstract

To provide a magnetic disk device capable of improving reliability.SOLUTION: A magnetic disk device according to the embodiment includes: a disk; a head that writes data to the disk and reads the data from the disk; a first sector group including at least one first sector that executes error correction processing for each track based on a first parity sector, and the first parity sector; and a second sector group including at least one second sector that cannot execute the error correction processing for each track.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] An embodiment of the present invention relates to a magnetic disk drive. [Background technology]

[0002] A magnetic disk drive may have an error correction function that corrects an error in a sector based on a parity sector corresponding to the track containing the sector if the sector cannot be corrected (recovered or restored) using the correction code corresponding to the sector. The magnetic disk drive performs an exclusive OR (XOR) operation on each sector of a specific track and writes the result as a parity sector to the track. If the magnetic disk drive detects an error in a specific sector of the track, it performs an error correction process (hereinafter sometimes referred to as track ECC process) that corrects the error using an error correction code based on the parity sector corresponding to the track. If the magnetic disk drive randomly overwrites data in a part of the track containing the parity sector using conventional magnetic recording (CMR) format, the magnetic disk drive may not be able to perform track ECC process on the track.

[0003] The magnetic disk device sets a target position (hereinafter sometimes referred to as the target position) of a target track (hereinafter sometimes referred to as the target track), for example, a DOL (Drift of level) or WOS (Write off track Slice), which is the upper limit of the deviation from the track center in the radial direction of the disk, on the target track.

[0004] Furthermore, in magnetic disk drives, when data is written, side erasure, in which data is erased, can occur due to the influence of magnetic flux leakage from the head (Adjacent Track Interference: ATI). The ATI varies depending on, for example, the head characteristics, the TPI (Track Per Inch) setting value, and the write current setting value. To prevent side erasure, magnetic disk drives have a function (refresh function) that rewrites data on a specified track when the number of times data has been written to tracks surrounding the specified track reaches a specified number. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] U.S. Patent No. 10,748,567 [Patent Document 2] U.S. Patent No. 1,091,0013 [Patent Document 3] U.S. Patent No. 7,245,447 Summary of the Invention [Problem to be solved by the invention]

[0006] An object of the embodiments of the present invention is to provide a magnetic disk device and a method for setting a DOL that can improve reliability. [Means for solving the problem]

[0007] The magnetic disk device of this embodiment comprises a disk, a head that writes data to the disk and reads data from the disk, a first sector group including at least one first sector that can perform track-based error correction processing based on the first parity sector and the first parity sector, and a second sector group that includes at least one second sector that cannot perform track-based error correction processing. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a block diagram showing the configuration of a magnetic disk device according to an embodiment. [Figure 2] FIG. 2 is a schematic diagram showing an example of the arrangement of the head relative to the disk according to the embodiment. [Figure 3] FIG. 3 is a schematic diagram showing an example of track ECC processing. [Figure 4] FIG. 4 is a schematic diagram showing an example of track ECC processing. [Figure 5] FIG. 5 is a schematic diagram showing an example of track ECC processing. [Figure 6] FIG. 6 is a schematic diagram showing an example of a low DOL, a high DOL, and a low unrecoverable threshold UTH1 according to the embodiment. [Figure 7] FIG. 7 is a schematic diagram showing an example of a DOL according to this embodiment. [Figure 8] FIG. 8 is a schematic diagram showing an example of a DOL according to this embodiment. [Figure 9] FIG. 9 is a schematic diagram showing an example of a DOL according to this embodiment. [Figure 10] FIG. 10 is a flowchart showing an example of a method for setting the DOL according to this embodiment. [Figure 11] FIG. 11 is a flowchart showing an example of a write process according to this embodiment. [Figure 12] FIG. 12 is a block diagram showing the configuration of a magnetic disk device according to the first modification. [Figure 13] FIG. 13 is a schematic diagram illustrating an example of a refresh threshold value according to the first modification. [Figure 14] FIG. 14 is a flowchart showing an example of a method for setting the refresh threshold according to this embodiment. [Figure 15] FIG. 15 is a flowchart showing an example of a write process for a correctable area according to this embodiment. [Figure 16] FIG. 16 is a block diagram showing the configuration of a magnetic disk device according to the second modification. [Figure 17]FIG. 17 is a schematic diagram showing an example of the saving process according to the second modification. [Figure 18] FIG. 18 is a flowchart showing an example of the saving process according to the second modification. [Figure 19] FIG. 19 is a flowchart showing an example of the saving process according to the second modification. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, embodiments will be described with reference to the drawings. Note that the drawings are merely examples and do not limit the scope of the invention. (Embodiment) FIG. 1 is a block diagram showing the configuration of a magnetic disk device 1 according to an embodiment. The magnetic disk device 1 includes a head disk assembly (HDA) (to be described later), a driver IC 20, a head amplifier integrated circuit (hereinafter also referred to as a head amplifier IC or a preamplifier) ​​30, a volatile memory 70, a nonvolatile memory 80, a buffer memory (buffer) 90, and a system controller 130 which is a one-chip integrated circuit. The magnetic disk device 1 is also connected to a host system (hereinafter simply referred to as a host) 100.

[0010] The HDA has a magnetic disk (hereinafter sometimes referred to as a disk) 10, a spindle motor (hereinafter sometimes referred to as an SPM) 12, an arm 13 on which a head 15 is mounted, and a voice coil motor (hereinafter sometimes referred to as a VCM) 14. The disk 10 is attached to the SPM 12 and rotates when driven by the SPM 12. The arm 13 and VCM 14 form an actuator. Driven by the VCM 14, the actuator controls and moves the head 15 mounted on the arm 13 to a predetermined position on the disk 10. Two or more disks 10 and heads 15 may be provided. Also, two or more actuators may be provided.

[0011] The disk 10 has a user data area 10a available to the user and a system area 10b for recording information required for system management, which are allocated as areas where data can be written. The disk 10 may also have a media cache (sometimes referred to as a media cache area) allocated to it, separate from the user data area 10a and the system area 10b, for temporarily storing data (or commands) transferred from the host 100 or the like before writing them to a predetermined area in the user data area 10a. Hereinafter, the direction from the inner periphery to the outer periphery of the disk 10, or the direction from the outer periphery to the inner periphery of the disk 10, will be referred to as the radial direction. In the radial direction, the direction from the inner periphery to the outer periphery will be referred to as the outward direction (or outer side), and the direction from the outer periphery to the inner periphery, i.e., the direction opposite to the outward direction, will be referred to as the inward direction (or inner side). The direction perpendicular to the radial direction of the disk 10 will be referred to as the circumferential direction. In other words, the circumferential direction corresponds to the direction along the circumference of the disk 10. Furthermore, a predetermined position in the radial direction of the disk 10 may be referred to as a radial position, and a predetermined position in the circumferential direction of the disk 10 may be referred to as a circumferential position. The radial position and circumferential position may be collectively referred to simply as a position. The disk 10 is divided into a plurality of regions (hereinafter also referred to as zones or zone regions) at predetermined ranges in the radial direction. A zone includes a plurality of tracks. A track includes a plurality of sectors. The term "track" is used to mean one of a plurality of regions obtained by dividing disk 10 into predetermined ranges in the radial direction, data written to one of a plurality of regions obtained by dividing disk 10 into predetermined ranges in the radial direction, a region extending circumferentially at a predetermined radial position on disk 10, data written to a region extending circumferentially at a predetermined radial position on disk 10, a region covering one circumference at a predetermined radial position on disk 10, one circumference's worth of data written to a region covering one circumference at a predetermined radial position on disk 10, the path of head 15 positioned at a predetermined radial position on disk 10 for writing, data written by head 15 positioned at a predetermined radial position on disk 10, data written to a predetermined track on disk 10, and various other meanings.The term "sector" is used to mean one of multiple regions obtained by dividing a predetermined track on disk 10 in the circumferential direction, data written to one of multiple regions obtained by dividing a predetermined track on disk 10 in the circumferential direction, a region at a predetermined circumferential position on disk 10, data written to a region at a predetermined circumferential position on disk 10 in the circumferential direction, data written to a predetermined sector on disk 10, and various other meanings. The "radial width of a track" is sometimes called the "track width." The center position of the track width is sometimes called the track center. The track center is sometimes simply called the track. The "radial width of a sector" is sometimes called the "sector width." The center position of the sector width is sometimes called the sector center. The sector center is sometimes simply called the sector. A track center has multiple sector centers.

[0012] The head 15 has a slider as its main body and includes a write head 15W and a read head 15R mounted on the slider. The write head 15W writes data to the disk 10. For example, the write head 15W writes a predetermined track to the disk 10. The read head 15R reads data recorded on the disk 10. For example, the read head 15R reads a predetermined track on the disk 10. Note that the "write head 15W" may be simply referred to as the "head 15," and the "read head 15R" may be simply referred to as the "head 15." Also, the "write head 15W and read head 15R" may be collectively referred to as the "head 15." The "center of the head 15" may be referred to as the "head 15," the "center of the write head 15W" may be referred to as the "write head 15W," and the "center of the read head 15R" may be referred to as the "read head 15R." The "center of the write head 15W" may be simply referred to as the "head 15," and the "center of the read head 15R" may be simply referred to as the "head 15." "Positioning the center of the head 15 at a predetermined position" may be expressed as "positioning the head 15 at a predetermined position," "disposing the head 15 at a predetermined position," or "positioning the head 15 at a predetermined position." "Positioning the center of the head 15 at a target position for a predetermined area (hereinafter sometimes referred to as the area target position), for example, at the radial center of a predetermined area" may be expressed as "positioning the head 15 at a predetermined area," "disposing the head 15 at a predetermined area," "positioning the head 15 at a predetermined area," "positioning the head 15 at a predetermined area," "disposing at a predetermined area," or "positioning at a predetermined area." "The position where the center of head 15 is targeted for a specified track (hereinafter sometimes referred to as the track target position), for example, positioning at the track center" can also be expressed as "positioning head 15 at a specified track," "placing head 15 at a specified track," "positioning head 15 at a specified track," "positioning at the track," "placing on the track," or "positioning on the track," etc.

[0013] 2 is a schematic diagram showing an example of the arrangement of the head 15 relative to the disk 10 according to this embodiment. As shown in FIG. 2, the direction in which the disk 10 rotates in the circumferential direction is referred to as the rotation direction. In the example shown in FIG. 2, the rotation direction is shown as counterclockwise, but it may also be the opposite (clockwise) direction.

[0014] The head 15 rotates around the rotation axis driven by the VCM 14 relative to the disk 10 and moves from the inner side to the outer side to a predetermined position, or moves from the outer side to the inner side.

[0015] In the example shown in FIG. 2, the system area 10b is located outward from the user data area 10a on the disc 10. In other words, the user data area 10a is located inward from the system area 10b on the disc 10. In the example shown in FIG. 2, the system area 10b is located on the outermost periphery of the disc 10. The user data area 10a may be divided and located in the radial direction of the disc 10. The system area 10b may also be located in a position different from that shown in FIG. 2. For example, the system area 10b may be located between multiple user data areas 10a on the disc 10, or may be located on the innermost periphery of the disc 10.

[0016] The driver IC 20 controls the driving of the SPM 12 and VCM 14 under the control of a system controller 130 (more specifically, an MPU 60, which will be described later). The head amplifier IC (preamplifier) ​​30 includes a read amplifier and a write driver. The read amplifier amplifies a read signal read from the disk 10 and outputs it to the system controller 130 (more specifically, to a read / write (R / W) channel 40, which will be described later). The write driver outputs a write current to the head 15 according to the signal output from the R / W channel 40.

[0017] The volatile memory 70 is a semiconductor memory in which stored data is lost when the power supply is cut off. The volatile memory 70 stores data necessary for processing in each part of the magnetic disk device 1. The volatile memory 70 is, for example, a DRAM (Dynamic Random Access Memory) or an SDRAM (Synchronous Dynamic Random Access Memory).

[0018] The nonvolatile memory 80 is a semiconductor memory that records stored data even when the power supply is cut off. The nonvolatile memory 80 is, for example, a NOR or NAND type flash ROM (Flash Read Only Memory: FROM).

[0019] The buffer memory 90 is a semiconductor memory that temporarily records data and the like transmitted and received between the magnetic disk device 1 and the host 100. The buffer memory 90 may be configured integrally with the volatile memory 70. The buffer memory 90 is, for example, a DRAM, an SRAM (Static Random Access Memory), an SDRAM, an FeRAM (Ferroelectric Random Access Memory), or an MRAM (Magnetoresistive Random Access Memory).

[0020] The system controller (controller) 130 is realized, for example, using a large-scale integrated circuit (LSI) called a system-on-a-chip (SoC), in which multiple elements are integrated on a single chip. The system controller 130 includes a read / write (R / W) channel 40, a hard disk controller (HDC) 50, and a microprocessor or microprocessing unit (MPU) 60. The system controller 130 is electrically connected to, for example, a driver IC 20, a head amplifier IC 30, a volatile memory 70, a nonvolatile memory 80, a buffer memory 90, and a host system 100.

[0021] The R / W channel 40 performs signal processing of data transferred from the disk 10 to the host 100 (hereinafter also referred to as read data) and data transferred from the host 100 (hereinafter also referred to as write data) in response to instructions from the MPU 60, which will be described later. The R / W channel 40 has a circuit or function for modulating write data. The R / W channel 40 has a circuit or function for measuring and demodulating the signal quality of read data. The R / W channel 40 is electrically connected to, for example, the head amplifier IC 30, the HDC 50, the MPU 60, etc.

[0022] The HDC 50 controls data transfer. For example, the HDC 50 controls data transfer between the host 100 and the disk 10 in response to instructions from the MPU 60, which will be described later. The HDC 50 is electrically connected to, for example, the R / W channel 40, the MPU 60, the volatile memory 70, the nonvolatile memory 80, and the buffer memory 90.

[0023] The MPU 60 is a main controller that controls each component of the magnetic disk device 1. The MPU 60 controls the VCM 14 via the driver IC 20 and executes servo control to position the head 15. The MPU 60 controls the SPM 12 via the driver IC 20 and rotates the disk 10. The MPU 60 controls the write operation of data to the disk 10 and selects a destination for data transferred from the host 100, such as write data. The MPU 60 controls the read operation of data from the disk 10 and controls the processing of data transferred from the disk 10 to the host 100, such as read data. The MPU 60 also manages the areas where data is recorded. The MPU 60 is connected to each component of the magnetic disk device 1. The MPU 60 is electrically connected to, for example, the driver IC 20, the R / W channel 40, and the HDC 50.

[0024] The MPU 60 has a read / write control unit 610, an error detection unit 620, an error correction unit 630, a parity sector management unit 640, an off-track management unit 650, etc. The MPU 60 executes the processing of each unit, such as the read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, and the off-track management unit 650, on firmware. The MPU 60 may have each unit, such as the read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, and the off-track management unit 650, as a circuit. The read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, and the off-track management unit 650, etc. may be included in the R / W channel 40 or the HDC 50.

[0025] The read / write control unit 610 controls a read process for reading data from the disk 10 and a write process for writing data to the disk 10 in accordance with commands from the host 100, etc. The read / write control unit 610 controls the VCM 14 via the driver IC 20, positions the head 15 at a predetermined position on the disk 10, and executes a read process or a write process. Hereinafter, the term "access" may also be used to mean recording or writing data to a predetermined area (write process), reading or reading data from a predetermined area (read process), or moving the head 15, etc. to a predetermined area.

[0026] The read / write control unit 610 performs write processing in a conventional magnetic recording (CMR) format, for example, in which data is written to another track (hereinafter sometimes referred to as an adjacent track (or adjacent cylinder)) or another sector (hereinafter sometimes referred to as an adjacent sector) adjacent to a predetermined track (or cylinder) or a predetermined sector at a predetermined radial interval (gap) from the predetermined track (or cylinder) or the predetermined sector. An "adjacent track (or adjacent cylinder)" includes a "track (or cylinder) adjacent to the outer side of the predetermined track (or cylinder)," an "adjacent track (or adjacent cylinder) adjacent to the inner side of the predetermined track (or cylinder)," and "multiple tracks (or multiple cylinders) adjacent to the outer side and the inner side of the predetermined track (or cylinder)." An "adjacent sector" includes a "sector adjacent to the outer side of the predetermined sector," a "sector adjacent to the inner side of the predetermined sector," and "multiple sectors adjacent to the outer side and the inner side of the predetermined sector." Hereinafter, "writing data in the normal recording format" may be referred to as "normal recording," "executing normal recording processing," or simply as "writing." The read / write control unit 610 performs random writing, which writes data randomly, and sequential writing, which writes data sequentially.

[0027] The read / write control unit 610 may perform the write process using shingled write magnetic recording (SMR or SWR), which overwrites the track (or cylinder) to be written next on a radial portion of the track (or cylinder) written previously when sequentially writing multiple tracks (or multiple cylinders). Hereinafter, "writing data using shingled recording" may be referred to as "shingled recording," "performing shingled recording processing," or simply "writing."

[0028] The error detection unit 620 detects data, sectors, areas, etc. in which an error has occurred. For example, the error detection unit 620 detects unreadable data (hereinafter sometimes referred to as read error data or error data) or unreadable sectors (hereinafter sometimes referred to as read error sectors or error sectors). Error data and error sectors can occur due to, for example, defects, misalignment of the head 15, misalignment of adjacent tracks (or adjacent cylinders), etc.

[0029] The error correction unit 630 recovers (corrects, rescues, or corrects errors in) the error data or the error sector. The error correction unit 630 executes read retries to read the error data or the error sector multiple times. The error correction unit 630 also executes a process (hereinafter sometimes referred to as ECC process or error correction process) to correct errors (mistakes) in the error data or the error sector based on an error correction code. The error correction unit 630 executes ECC process (hereinafter sometimes referred to as sector ECC process) on the error data or the error sector based on an ECC (hereinafter sometimes referred to as sector ECC) corresponding to the error data or the error sector of a specified track (or a specified cylinder). The sector ECC process corresponds to error correction or error correction process on a sector-by-sector basis.

[0030] The error correction unit 630 performs ECC processing (hereinafter also referred to as track ECC processing) on ​​a specified track (or a specified cylinder) or a portion of the specified track (or a specified cylinder), for example, on error data or error sectors in a specified track (or a specified cylinder) or a portion of the specified track (or a specified cylinder), for example, on a specified track (or a specified cylinder) or a portion of the specified track (or a specified cylinder), for example, on a specified track (or a specified cylinder) or on a specified cylinder, ... The error correction unit 630, for example, records error data or information related to the error sector (hereinafter sometimes referred to as error data information or error sector information) in a predetermined recording area, for example, the disk 10, the volatile memory 70, or the non-volatile memory 80.

[0031] The parity sector management unit 640 calculates the parity sector (or parity data) by performing an exclusive OR (XOR) operation, writes the parity sector (or parity data), and manages this parity sector (or parity data).

[0032] When writing to a specified track (or a specified cylinder), the parity sector management unit 640 calculates the parity sector (or parity data) by performing an XOR operation on all sectors (or data) other than the parity sector of this track (or this cylinder), writes (or changes) the calculated parity sector (or parity data), and manages this parity sector (or parity data). Furthermore, when writing some sectors (or data) to a specified track (or specified cylinder), the parity sector management unit 640 reads the track (or specified cylinder) to which the partial sectors (or data) are to be written, calculates the parity sector by performing an XOR operation on all sectors (or data) other than the parity sectors of the track (or cylinder) on which the sectors (or data) corresponding to the partial sectors (or data) have been replaced with the partial sectors (or data) in a specified recording area, such as the volatile memory 70, and writes (or changes) all sectors other than the parity sectors of the track (or cylinder) on which the partial sectors (or data) have been replaced and the calculated parity sector (or parity data) to the same track (or cylinder), and manages this parity sector (or parity data). Hereinafter, "when writing specified data (hereinafter sometimes referred to as update data), at least one sector or track (cylinder) to which the update data is to be written is read, data corresponding to the update data in this at least one sector or this track (cylinder) is replaced with this update data, and all sectors (hereinafter sometimes referred to as update sector group) other than the parity sector of this at least one sector or this track (cylinder) (hereinafter sometimes referred to as update sector or update track (update cylinder)) are XORed to calculate a parity sector (hereinafter sometimes referred to as update parity sector), and the update sector group and the update parity sector are written to the same sector or track" may also be referred to as "read modify write." For ease of explanation, "performing an XOR operation on sectors other than parity sectors" may also be referred to as "performing an XOR operation on sectors."

[0033] The parity sector management unit 640 calculates a parity sector by performing an XOR operation on data in a specified area, and writes the calculated parity sector to a specified area on the disk 10. The parity sector management unit 640 calculates a parity sector by performing an XOR operation on all sectors of a specified track (or a specified cylinder), and writes the calculated parity sector to this track (or this cylinder). Note that the parity sector management unit 640 may also calculate a parity sector by performing an XOR operation on some sectors of a specified track (or a specified cylinder), and write the calculated parity sector to this track (or this cylinder). For example, the parity sector management unit 640 may calculate a parity sector by performing an XOR operation on all sectors (hereinafter sometimes referred to as valid sectors) other than sectors that are set or registered as invalid sectors due to the occurrence of a defect or the like in a specified track (or a specified cylinder) (hereinafter sometimes referred to as defect registration sectors), and write the calculated parity sector to this track (or this cylinder). A defect registration sector corresponds to a sector that is not used for recording data, for example, an error sector. A valid sector corresponds to a sector that is used for recording data, etc. Hereinafter, for convenience of explanation, "performing an XOR operation on valid sectors other than defect registration sectors" may also be referred to as "performing an XOR operation on sectors."

[0034] The parity sector management unit 640 manages whether each parity sector corresponding to each track or part of each track is a valid parity sector (hereinafter sometimes referred to as a valid parity sector) that can be used for error correction, for example, in track ECC processing, or an invalid parity sector (hereinafter sometimes referred to as an invalid parity sector) that cannot be used for error correction, for example, in track ECC processing.

[0035] The parity sector management unit 640 manages the parity sector obtained by XORing all valid sectors of a specified track as a valid parity sector. The parity sector management unit 640 records the parity sector of this track as a valid parity sector in a specified recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a table (hereinafter also referred to as a management table) TB1. The parity sector management unit 640 records tracks or cylinders (hereinafter also referred to as correctable tracks or correctable cylinders) on which track ECC processing can be performed (or corrected) based on the valid parity sector as a management table TB1 in a specified recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90.

[0036] The parity sector management unit 640 writes (or overwrites) at least one sector, for example, a valid sector (hereinafter sometimes referred to as a rear sector), that is consecutively arranged in the circumferential direction from the parity sector on a specified track, and manages all rear sectors, for example, parity sectors obtained by XORing the valid sectors, as valid parity sectors. The parity sector management unit 640 records the parity sectors of this track as valid parity sectors in a specified recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1. The parity sector management unit 640 records rear sectors that can perform track ECC processing (or can be corrected) based on the valid parity sectors on the specified track as a management table TB1 in a specified recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90. Furthermore, when a specified track includes a rear sector on which track ECC processing can be performed (or corrected) based on a valid parity sector, the parity sector management unit 640 records sectors other than the rear sector (hereinafter sometimes referred to as front sectors) on which track ECC processing cannot be performed (or corrected) in a specified recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, as a management table TB1.

[0037] If the parity sector of a track on which a leading sector, for example, a valid sector (hereinafter sometimes referred to as a leading sector) has been written (overwritten) is a parity sector (hereinafter sometimes referred to as a leading parity sector) corresponding to the result of XORing all sectors of the track before the leading sector was written, the parity sector management unit 640 manages this parity sector as an invalid parity sector. The parity sector management unit 640 records the parity sector of this track as an invalid parity sector in a predetermined recording area, for example, (the system area 10b of) the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1. The parity sector management unit 640 records tracks or cylinders (hereinafter sometimes referred to as uncorrectable tracks or uncorrectable cylinders) on which track ECC processing cannot be performed (or cannot be corrected) as a management table TB1 in a predetermined recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90.

[0038] Hereinafter, "at least one sector on which track ECC processing can be performed" may be referred to as a "correctable sector or logical track." Also, "at least one sector on which track ECC cannot be performed (or cannot be corrected)" may be referred to as an "uncorrectable sector." "Areas on which track ECC can be performed (or corrected), such as correctable tracks, correctable cylinders, and correctable sectors," may be collectively referred to as "correctable areas," and "areas on which track ECC processing cannot be performed, such as uncorrectable tracks, uncorrectable cylinders, and uncorrectable sectors," may be collectively referred to as "uncorrectable areas."

[0039] The parity sector management unit 640 manages the correctable and uncorrectable areas of the disk 10 using a management table TB1. For example, if the correctable and uncorrectable areas of tracks 0, 1, 2, 3, 4, 5, 6, and 7 are represented in management table TB1 as 3Eh in hexadecimal (binary: 00111110), the parity sector management unit 640 determines that tracks 2 to 6 are correctable areas. In this case, each track is represented by one bit of information in management table TB1, with "1" indicating a correctable area and "0" indicating an uncorrectable area. The parity sector management unit 640 refers to the management table TB1 when a write process is performed via the read / write control unit 610 and when a read process is performed via the read / write control unit 610.

[0040] The parity sector management unit 640 manages the correctable area and the uncorrectable area, for example, each time it receives a command from the host 100 or the like to perform a write that makes track-based error correction uncorrectable, such as a sequential write or random write up to the middle of a track. The parity sector management unit 640 updates or changes the correctable area and the uncorrectable area each time it performs a random write. When the parity sector management unit 640 performs random write on part of a correctable area, it changes this correctable area to an uncorrectable area. For example, when the parity sector management unit 640 performs random write on part of a correctable track, it changes this correctable track to an uncorrectable track. In other words, when the parity sector management unit 640 randomly writes less than one track's worth of data on a correctable track, it changes this correctable track to an uncorrectable track.

[0041] The parity sector management unit 640 manages areas (hereinafter also referred to as random write prohibition areas) in which a read error occurs when a correctable area is changed to an uncorrectable area, using a table (hereinafter also referred to as random write prohibition table) TB2. In other words, the parity sector management unit 640 has a random write prohibition table TB2 for managing the random write prohibition areas.

[0042] For example, the parity sector management unit 640 manages tracks (hereinafter sometimes referred to as random write inhibit tracks) that will cause a read error when changed from a correctable track to an uncorrectable track using a random write inhibit table TB2. In other words, the parity sector management unit 640 has a random write inhibit table TB2 for managing random write inhibit tracks.

[0043] For example, the parity sector management unit 640 manages at least one sector (hereinafter sometimes referred to as a random write inhibit sector) that will cause a read error when changed from a correctable sector to an uncorrectable sector in a random write inhibit table TB2. In other words, the parity sector management unit 640 has a random write inhibit table TB2 for managing random write inhibit sectors.

[0044] The off-track management unit 650 manages the area target position of a target area of ​​the disk 10 (hereinafter also referred to as the target area), for example, the DOL (Drift of level) (or WOS (Write off track Slice)) which is the upper limit of the deviation amount from the center of a predetermined area in the radial direction. The off-track management unit 650 manages the track target position of a target track of the disk 10 (hereinafter also referred to as the target track), for example, the DOL (or WOS) which is the upper limit of the deviation amount from the track center in the radial direction (hereinafter also referred to as the off-track amount). The off-track management unit 650 has a plurality of DOLs.

[0045] The off-track management unit 650 sets a plurality of DOLs for a plurality of areas, respectively. In other words, the off-track management unit 650 sets a plurality of DOLs for directions toward a plurality of areas, respectively. The off-track management unit 650 sets a plurality of DOLs for a plurality of tracks, respectively. In other words, the off-track management unit 650 sets a plurality of DOLs for directions toward a plurality of tracks, respectively. The off-track management unit 650 sets a plurality of DOLs for a plurality of sectors, respectively. In other words, the off-track management unit 650 sets a plurality of DOLs for directions toward a plurality of sectors, respectively.

[0046] The off-track management unit 650 sets multiple DOLs for a predetermined area (directions toward the predetermined area). The off-track management unit 650 sets multiple DOLs for each of multiple areas obtained by dividing the predetermined area (directions toward each of multiple areas obtained by dividing the predetermined area). For example, the off-track management unit 650 sets multiple DOLs for a predetermined track (directions toward the predetermined track). The off-track management unit 650 sets multiple DOLs for each of multiple areas obtained by dividing the predetermined track (directions toward each of multiple areas obtained by dividing the predetermined track).

[0047] The off-track management unit 650 sets different DOLs for a radial area (a direction toward this radial area) of a target area (hereinafter sometimes referred to as a target area) depending on whether the area (hereinafter sometimes referred to as a radial area) located in the radial direction of the target area is a correctable area (hereinafter sometimes referred to as a correctable radial area) or an uncorrectable area (hereinafter sometimes referred to as an uncorrectable radial area). In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable radial area and the DOL for the uncorrectable radial area in the target area.

[0048] A correctable radial area can reduce the occurrence rate of unrecoverable errors, which are errors that cannot be read when data is written to the target area, compared to an uncorrectable radial area. Therefore, the target position of the target area in the radial direction for the correctable radial area, for example, the distance or approach from the center of the target area in the radial direction (hereinafter referred to as squeeze), can be made larger than the squeeze for the uncorrectable radial area. In other words, the squeeze margin for the correctable radial area can be made larger than the squeeze margin for the uncorrectable radial area.

[0049] If the off-track management unit 650 determines that the radial area of ​​the target area is a correctable radial area, it sets the DOL for this radial area of ​​the target area (in the direction toward this radial area) to a predetermined DOL (hereinafter, sometimes referred to as a high DOL). If the off-track management unit 650 determines that the radial area of ​​the target area is an uncorrectable radial area, it sets the DOL for this radial area of ​​the target area (in the direction toward this radial area) to a DOL (hereinafter, sometimes referred to as a low DOL) that is smaller (in absolute value) than the high DOL (absolute value of the high DOL). The high DOL is larger than the low DOL.

[0050] The off-track management unit 650 sets different DOLs for an area adjacent to the target area in the radial direction (hereinafter also referred to as an adjacent area) depending on whether this area is a correctable area (hereinafter also referred to as a correctable adjacent area) or an uncorrectable area (hereinafter also referred to as an uncorrectable adjacent area). In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable adjacent area and the DOL for the uncorrectable adjacent area in the target area.

[0051] The correctable adjacent area can reduce the occurrence rate of unrecoverable errors when data is written to the target area compared to the uncorrectable adjacent area. Therefore, the squeeze for the correctable adjacent area can be larger than the squeeze for the uncorrectable adjacent area. In other words, the squeeze margin for the correctable adjacent area can be larger than the squeeze margin for the uncorrectable adjacent area.

[0052] If the off-track management unit 650 determines that the area adjacent to the target area is a correctable adjacent area, it sets the DOL for this adjacent area (in the direction toward this adjacent area) to a high DOL.If the off-track management unit 650 determines that the area adjacent to the target area is an uncorrectable adjacent area, it sets the DOL for this adjacent area (in the direction toward this adjacent area) to a low DOL.

[0053] The off-track management unit 650 sets different DOLs for the radial track of the target track (hereinafter sometimes referred to as the target track) depending on whether the track (hereinafter sometimes referred to as the radial track) located in the radial direction of the target track is a correctable track (hereinafter sometimes referred to as the correctable radial track) or an uncorrectable track (hereinafter sometimes referred to as the uncorrectable radial track). In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable radial track and the DOL for the uncorrectable radial track in the target area.

[0054] A correctable radius track can reduce the occurrence rate of unrecoverable errors when data is written to the target area compared to an uncorrectable radius track. Therefore, the squeeze for a correctable radius track can be larger than the squeeze for an uncorrectable radius track. In other words, the squeeze margin for a correctable radius track can be larger than the squeeze margin for an uncorrectable radius track.

[0055] If the off-track management unit 650 determines that the radial track of the target track is a correctable radial track, it sets the DOL for this radial track of the target track (in the direction toward this radial track) to a high DOL.If the off-track management unit 650 determines that the radial track of the target track is an uncorrectable radial track, it sets the DOL for this radial track of the target track (in the direction toward this radial track) to a low DOL.

[0056] The off-track management unit 650 sets the DOL for the track adjacent to the target track in the radial direction (hereinafter also referred to as the adjacent track) depending on whether the track is a correctable track (hereinafter also referred to as the correctable adjacent track) or an uncorrectable track (hereinafter also referred to as the uncorrectable adjacent track). In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable adjacent track and the DOL for the uncorrectable adjacent track in the target area.

[0057] A correctable adjacent track can have a lower rate of occurrence of unrecoverable errors than an uncorrectable adjacent track when data is written to the target area. Therefore, the squeeze for the correctable adjacent track can be larger than the squeeze for the uncorrectable adjacent track. In other words, the squeeze margin for the correctable adjacent track can be larger than the squeeze margin for the uncorrectable adjacent track.

[0058] If the off-track management unit 650 determines that the adjacent track of the target track is a correctable adjacent track, it sets the DOL of the adjacent track of the target track (in the direction toward this adjacent track) to high DOL.If the off-track management unit 650 determines that the adjacent track of the target track is an uncorrectable adjacent track, it sets the DOL of the adjacent track of the target track (in the direction toward this adjacent track) to low DOL.

[0059] The off-track management unit 650 sets different DOLs for at least one radial sector of the target sector (hereinafter sometimes referred to as the target sector) that is located in the radial direction of the target sector and aligned in the circumferential direction (hereinafter sometimes referred to as the radial sector) depending on whether the at least one radial sector of the target sector (hereinafter sometimes referred to as the correctable radial sector) is a correctable sector (hereinafter sometimes referred to as the correctable radial sector) or an uncorrectable sector (hereinafter sometimes referred to as the correctable radial sector).In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable radial sector and the DOL for the uncorrectable radial sector in the target area.

[0060] A correctable radius sector can reduce the occurrence rate of unrecoverable errors when data is written to the target area compared to an uncorrectable radius sector. Therefore, the squeeze for a correctable radius sector can be larger than the squeeze for an uncorrectable radius sector. In other words, the squeeze margin for a correctable radius sector can be larger than the squeeze margin for an uncorrectable radius sector.

[0061] If the off-track management unit 650 determines that the radial sector of the target sector is a correctable radial sector, it sets the DOL for this radial sector of the target sector (in the direction toward this radial sector) to a high DOL.If the off-track management unit 650 determines that the radial sector of the target track is an uncorrectable radial sector, it sets the DOL for this radial sector of the target sector (in the direction toward this radial sector) to a low DOL.

[0062] The off-track management unit 650 sets a DOL for at least one sector (hereinafter sometimes referred to as an adjacent sector) adjacent to the target sector in the radial direction and aligned in the circumferential direction, depending on whether this adjacent sector is a correctable sector (hereinafter sometimes referred to as a correctable adjacent sector) or an uncorrectable sector (hereinafter sometimes referred to as an uncorrectable adjacent sector). In other words, the off-track management unit 650 sets different values ​​for the DOL for the correctable adjacent sector and the DOL for the uncorrectable adjacent sector in the target area.

[0063] Correctable adjacent sectors can reduce the rate of unrecoverable errors when writing data to the target area compared to uncorrectable adjacent sectors. Therefore, the squeeze for correctable adjacent sectors can be larger than the squeeze for uncorrectable adjacent sectors. In other words, the squeeze margin for correctable adjacent sectors can be larger than the squeeze margin for uncorrectable adjacent sectors.

[0064] If the off-track management unit 650 determines that the adjacent sector of the target sector is a correctable adjacent sector, it sets the DOL for this adjacent sector of the target sector (in the direction toward this adjacent sector) to a high DOL.If the off-track management unit 650 determines that the adjacent sector of the target sector is an uncorrectable adjacent sector, it sets the DOL for this adjacent sector of the target sector (in the direction toward this adjacent sector) to a low DOL.

[0065] The off-track management unit 650 manages a threshold value (hereinafter sometimes referred to as an unrecoverable threshold value) of the amount of off-track for a radial track (direction toward the radial track) where an error that cannot be read without executing track ECC on the adjacent track occurs, for example, for the adjacent track (direction toward the adjacent track). The unrecoverable threshold value is larger than the DOL. The off-track management unit 650 has multiple unrecoverable threshold values.

[0066] The offtrack management unit 650 sets a plurality of unrecoverable thresholds corresponding to a plurality of DOLs (directions toward a plurality of DOLs), respectively. The offtrack management unit 650 sets different unrecoverable thresholds for different DOLs.

[0067] The off-track management unit 650 sets an unrecoverable threshold (hereinafter also referred to as a low unrecoverable threshold) that is smaller than the high DOL for a radial track (direction toward the radial track) for which a high DOL is set in the target track, for example, for an adjacent track (direction toward the adjacent track), and larger than the low DOL. The low unrecoverable threshold corresponds to the unrecoverable threshold of a radial track or radial sector for which a low DOL is set, for example, an adjacent track or adjacent sector for which a low DOL is set. Note that the unrecoverable threshold of a radial track or radial sector for which a high DOL is set, for example, an adjacent track or adjacent sector for which a high DOL is set, may also be referred to as a high unrecoverable threshold. The high unrecoverable threshold is larger than the high DOL.

[0068] The off-track management unit 650 sets a low unrecoverable threshold for a radial sector (direction toward the radial sector) for which a high DOL is set in the target sector, for example, for an adjacent sector (direction toward the adjacent sector).

[0069] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a predetermined radial track (direction toward the predetermined radial track), for example, a predetermined adjacent track (direction toward the predetermined adjacent track), is greater than a low unrecoverable threshold corresponding to this radial track (direction toward the radial track), for example, this adjacent track (direction toward the adjacent track), the off-track management unit 650 does not permit a write process to this radial track. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a correctable adjacent track (direction toward the correctable adjacent track) is greater than a low unrecoverable threshold corresponding to this correctable adjacent track (direction toward the correctable adjacent track), the off-track management unit 650 does not permit a write to a part of the correctable adjacent track that would make track-by-track error correction uncorrectable, for example, a sequential write or a random write up to the middle of one track. In other words, if the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track relative to a correctable adjacent track (in the direction toward the correctable adjacent track) is greater than the low unrecoverable threshold corresponding to this correctable adjacent track (in the direction toward this correctable adjacent track), it does not allow random writing of data less than one track's worth to this correctable adjacent track.

[0070] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a predetermined radial track (direction toward the predetermined radial track), for example, a predetermined adjacent track (direction toward the predetermined adjacent track), is greater than a low unrecoverable threshold corresponding to this radial track (direction toward the radial track), for example, this adjacent track (direction toward the adjacent track), the off-track management unit 650 may manage this radial track in the random write inhibit table TB2. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a correctable adjacent track (direction toward the correctable adjacent track) is greater than a low unrecoverable threshold corresponding to this correctable adjacent track (direction toward the correctable adjacent track), the off-track management unit 650 may manage this correctable adjacent track in the random write inhibit table TB2.

[0071] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a predetermined radial track (direction toward the predetermined radial track), for example, a predetermined adjacent track (direction toward the predetermined adjacent track) is greater than a low unrecoverable threshold corresponding to this adjacent track (direction toward this adjacent track), it may execute a read-modify-write on this radial track, for example, this adjacent track. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target track with respect to a correctable adjacent track (direction toward the correctable adjacent track) is greater than a low unrecoverable threshold corresponding to this correctable adjacent track (direction toward the correctable adjacent track), it may execute a read-modify-write on this correctable radial track, for example, this correctable adjacent track.

[0072] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector with respect to a predetermined radial sector (direction toward the predetermined radial sector), for example, a predetermined adjacent sector (direction toward the predetermined adjacent sector), is greater than the low unrecoverable threshold corresponding to this radial sector (direction toward this radial sector), for example, this adjacent sector (direction toward this adjacent sector), the off-track management unit 650 does not permit a write process to this radial sector. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector with respect to a correctable adjacent sector (direction toward the correctable adjacent sector) is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (direction toward this correctable adjacent sector), the off-track management unit 650 does not permit a write to a part of this correctable adjacent sector that would make track-by-track error correction uncorrectable, for example, a sequential write or a random write up to the middle of one track. In other words, if the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector relative to a correctable adjacent sector (in the direction toward the correctable adjacent sector) is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (in the direction toward this correctable adjacent sector), it does not allow random writing of data to this correctable adjacent sector that is less than the amount of data that can be written to the entire area of ​​this correctable adjacent sector.

[0073] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector relative to a predetermined radial sector (direction toward the predetermined radial sector), for example, a predetermined adjacent sector (direction toward the predetermined adjacent sector), is greater than a low unrecoverable threshold corresponding to this radial sector (direction toward this radial sector), for example, this adjacent sector (direction toward this adjacent sector), the off-track management unit 650 may manage this radial sector in the random write inhibit table TB2. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector relative to a correctable adjacent sector (direction toward the correctable adjacent sector) is greater than a low unrecoverable threshold corresponding to this correctable adjacent sector (direction toward the correctable adjacent sector), the off-track management unit 650 may manage this correctable adjacent sector in the random write inhibit table TB2.

[0074] When the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector with respect to a predetermined radial sector (direction toward the predetermined radial sector), e.g., a predetermined adjacent sector (direction toward the predetermined adjacent sector) is greater than a low unrecoverable threshold corresponding to this radial sector (direction toward this radial sector), e.g., this adjacent sector (direction toward this adjacent sector), the off-track management unit 650 may execute a read-modify-write on this radial sector, e.g., this adjacent sector. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) of the target sector with respect to a correctable adjacent sector (direction toward the correctable adjacent sector) is greater than a low unrecoverable threshold corresponding to this correctable adjacent sector (direction toward the correctable adjacent sector), the off-track management unit 650 may execute a read-modify-write on this correctable radial sector, e.g., this correctable adjacent sector.

[0075] FIG. 3 is a schematic diagram showing an example of track ECC processing. FIG. 3 shows the direction in which the head 15 moves relative to the disk 10 in the circumferential direction (circumferential position), that is, the read / write direction (hereinafter, also referred to as the moving direction). In FIG. 3, the moving direction is the rearward direction (or may simply be referred to as the rearward direction). Note that the moving direction may also be the forward direction (or may simply be referred to as the forward direction). FIG. 3 shows tracks TRn-1, TRn, and TRn+1. In FIG. 3, tracks TRn-1 to TRn+1 are arranged in the order shown from the outer side to the inner side. Track TRn is adjacent to track TRn-1 on the outer side, and track TRn+1 is adjacent to track TRn on the outer side. Track TRn-1 has sectors Sc(n-1)0, Sc(n-1)1, Sc(n-1)2, Sc(n-1)3, Sc(n-1)4, Sc(n-1)5, Sc(n-1)6, Sc(n-1)7, Sc(n-1)8, Sc(n-1)9, Sc(n-1)10, Sc(n-1)11, and parity sector Pn-1. Sectors Sc(n-1)0, Sc(n-1)1, Sc(n-1)2, Sc(n-1)3, Sc(n-1)4, Sc(n-1)5, Sc(n-1)6, Sc(n-1)7, Sc(n-1)8, Sc(n-1)9, Sc(n-1)10, Sc(n-1)11, and parity sector Pn-1 are written consecutively in the order listed in the forward direction. Parity sector Pn-1 corresponds to the result of XORing sectors Sc(n-1)0 to Sc(n-1)11. In other words, parity sector Pn-1 is a valid parity sector. Track TRn-1 corresponds to a correctable track. Track TRn has sectors Scn0, Scn1, Scn2, Scn3, Scn4, Scn5, Scn6, Scn7, Scn8, Scn9, Scn10, Scn11, and parity sector Pn. Sectors Scn0, Scn1, Scn2, Scn3, Scn4, Scn5, Scn6, Scn7, Scn8, Scn9, Scn10, Scn11, and parity sector Pn are written consecutively in the order listed in the forward direction. Parity sector Pn corresponds to the result of XORing sectors Scn0 to Scn11. In other words, parity sector Pn is a valid parity sector.Track TRn corresponds to a correctable track. Track TRn+1 has sectors Sc(n+1)0, Sc(n+1)1, Sc(n+1)2, Sc(n+1)3, Sc(n+1)4, Sc(n+1)5, Sc(n+1)6, Sc(n+1)7, Sc(n+1)8, Sc(n+1)9, Sc(n+1)10, Sc(n+1)11, and parity sector Pn+1. Sectors Sc(n+1)0, Sc(n+1)1, Sc(n+1)2, Sc(n+1)3, Sc(n+1)4, Sc(n+1)5, Sc(n+1)6, Sc(n+1)7, Sc(n+1)8, Sc(n+1)9, Sc(n+1)10, Sc(n+1)11, and parity sector Pn+1 are written consecutively in the listed order in the direction of progression. Parity sector Pn+1 corresponds to the result of an XOR operation on sectors Sc(n+1)0 to Sc(n+1)11. In other words, parity sector Pn+1 is a valid parity sector. Track TRn+1 corresponds to a correctable track.

[0076] In the example shown in Figure 3, when the MPU 60 detects an error sector in sectors Scn0 to Scn11 of track TRn, if the error sector cannot be corrected by read retry and sector ECC processing, it performs track ECC processing on the error sector based on parity sector Pn and corrects the error sector.

[0077] 4 is a schematic diagram showing an example of track ECC processing, which corresponds to FIG. 4, the MPU 60 randomly overwrites sectors Scn5, Scn6, and Scn7 of track TRn. The MPU 60 records track TRn as an uncorrectable track in a predetermined recording area, for example, the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1. If the MPU 60 detects an error sector in sectors Scn0 to Scn11 of track TRn and is unable to correct the error sector through read retry and sector ECC processing, the MPU 60 is unable to perform track ECC processing on the error sector of track TRn.

[0078] 4, the MPU 60 sets the DOL (inward DOL) for track TRn (direction toward track TRn) in track TRn-1 to low DOL. In other words, the MPU 60 changes the DOL (inward DOL) for track TRn (direction toward track TRn) in track TRn-1 from high DOL to low DOL.

[0079] 4, the MPU 60 sets the DOL (outward DOL) for track TRn (direction toward track TRn) at track TRn+1 to a low DOL. In other words, the MPU 60 changes the DOL (outward DOL) for track TRn (direction toward track TRn) at track TRn+1 from a high DOL to a low DOL.

[0080] 5 is a schematic diagram showing an example of track ECC processing, which corresponds to FIG. In the example shown in Figure 5, the MPU 60 overwrites the rear sectors Scn8, Scn9, Scn10, and Scn11 of the track TRn. The MPU 60 performs an XOR operation on the rear sectors Scn8 to Scn11 and overwrites the parity sector Pn. The MPU 60 records the rear sectors Scn8 to Scn11 as correctable sectors in a predetermined recording area, for example, the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1. The MPU 60 records the front sectors Scn0 to Scn7 as uncorrectable sectors in a predetermined recording area, for example, the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1. When the MPU 60 detects an error sector in the rear sectors Scn8 to Scn11 of the track TRn, and if the error sector cannot be corrected by read retry and sector ECC processing, the MPU 60 performs track ECC processing on the error sector based on the parity sector Pn to correct the error sector.When the MPU 60 detects an error sector in the front sectors Scn0 to Scn7 of the track TRn, and if the error sector cannot be corrected by read retry and sector ECC processing, the MPU 60 cannot perform track ECC processing on the error sector of the track TRn.

[0081] 5, the MPU 60 sets the DOL (inward DOL) for the front sectors Scn0 to Scn7 of track TRn (directions toward the front sectors Scn0 to Scn7) to a low DOL in the front sectors Sc(n-1)0 to Sc(n-1)7 of track TRn-1. In other words, the MPU 60 changes the DOL (inward DOL) for the front sectors Scn0 to Scn7 of track TRn (directions toward the front sectors Scn0 to Scn7) from a high DOL to a low DOL in the front sectors Sc(n-1)0 to Sc(n-1)7 of track TRn-1.

[0082] 5, the MPU 60 sets the DOL (outward DOL) for the front sectors Scn0 to Scn7 of track TRn (in the direction toward the front sectors Scn0 to Scn7) to a low DOL in the front sectors Sc(n+1)0 to Sc(n+1)7 of track TRn+1. In other words, the MPU 60 changes the DOL (outward DOL) for the front sectors Scn0 to Scn7 of track TRn (in the direction toward the front sectors Scn0 to Scn7) in the front sectors Sc(n+1)0 to Sc(n+1)7 of track TRn-1 from a high DOL to a low DOL.

[0083] FIG. 6 is a schematic diagram showing an example of a low DOL D1, a high DOL D2, and a low unrecoverable threshold UTH1 according to this embodiment. In FIG. 6, the horizontal axis represents squeeze (or off-track amount), and the vertical axis represents the unrecoverable error rate. On the vertical axis of FIG. 6, the unrecoverable error rate increases toward the tip of the arrow and decreases toward the opposite side of the arrow. On the horizontal axis of FIG. 6, squeeze increases toward the tip of the arrow and decreases toward the opposite side of the arrow. The horizontal axis of FIG. 6 represents the low DOL D1, the high DOL D2, and the unrecoverable threshold UTH1. On the horizontal axis of FIG. 6, the high DOL D2 is greater than the low DOL D1. The low unrecoverable threshold UTH1 corresponds to the low DOL D1. The low unrecoverable threshold UTH1 is greater than the low DOL D1 and less than the high DOL D2. 6 shows a change in the unrecoverable error rate ERL1 with respect to a squeeze corresponding to an uncorrectable adjacent area (such as an uncorrectable adjacent track and an uncorrectable adjacent sector) (hereinafter, this may be referred to as a change in the unrecoverable error rate corresponding to an uncorrectable adjacent area), and a change in the unrecoverable error rate ERL2 with respect to a squeeze corresponding to a correctable adjacent area (such as a correctable adjacent track and a correctable adjacent sector) (hereinafter, this may be referred to as a change in the unrecoverable error rate corresponding to a correctable adjacent area). As shown in FIG. 6, the change in the unrecoverable error rate ERL1 corresponding to the uncorrectable adjacent area and the change in the unrecoverable error rate ERL2 corresponding to the correctable adjacent area, the unrecoverable error rate becomes larger in the correctable area with a smaller squeeze than in the uncorrectable area.

[0084] In the example shown in Figure 6, the MPU 60 sets the DOL for the uncorrectable adjacent track or uncorrectable adjacent sector (in the direction toward the uncorrectable adjacent track or uncorrectable adjacent sector) in the target track or target sector to a low DOL D1, and sets the DOL for the correctable adjacent track or correctable adjacent sector (in the direction toward the correctable adjacent track or correctable adjacent sector) to a high DOL D2. The MPU 60 sets a low unrecoverable threshold UTH1 for the correctable adjacent track or correctable adjacent sector (in the direction toward the correctable adjacent track or correctable adjacent sector) in the target track. If the MPU 60 determines that the off-track amount (or squeeze) for the correctable adjacent track or correctable adjacent sector (in the direction toward the correctable adjacent track or correctable adjacent sector) in the target track is greater than the low unrecoverable threshold, it may execute a read-modify-write on the correctable adjacent track or correctable adjacent sector.

[0085] FIG. 7 is a schematic diagram showing an example of a DOL according to this embodiment. FIG. 7 shows tracks TRk-1, TRk, and TRk+1. In FIG. 7, tracks TRk-1 to TRk+1 are arranged in the order shown from the outside to the inside. Track TRk is adjacent to track TRk-1 on the inside, and track TRk+1 is adjacent to track TRk on the outside. In FIG. 7, track TRk-1 corresponds to an uncorrectable adjacent track, and track TRk+1 corresponds to a correctable adjacent track. FIG. 7 shows a track center TRCk of track TRk. FIG. 7 shows circumferential positions CPS, CP0, and CPR. Circumferential position CP0 is located rearward of circumferential position CPS, and circumferential position CPR is located rearward of circumferential position CP0. FIG. 7 shows a path HR71 of the head 15 from the circumferential position CPS to the circumferential position CP0 on the track TRk, and a path HR72 of the head 15 from the circumferential position CP0 to the circumferential position CPR on the track TRk.

[0086] In the example shown in FIG. 7, the MPU 60 sets the DOL (outward DOL) for track TRk-1 (toward track TRk-1) to a low DOL D1, and sets the DOL (inward DOL) for track TRk+1 (toward track TRk+1) to a high DOL D2.

[0087] 7, the MPU 60 moves the head 15 from the circumferential position CPS to the circumferential position CP0 on the track TRk according to the path HR71. If the MPU 60 determines that the off-track amount (squeeze) toward the track TRk-1 (outward) is greater than DOL D1 at the circumferential position CP0, the MPU 60 stops the write process (or write operation) and repositions the head 15 to the track center TRCk. After stopping the write process (or write operation) on the track TRk and positioning the head 15 at the track center TRCk, the MPU 60 moves the head 15 from the circumferential position CP0 to the circumferential position CPR according to the path HR72.

[0088] FIG. 8 is a schematic diagram showing an example of a DOL according to this embodiment. FIG. 8 shows track TRk-1 and track TRk. In FIG. 8, track TRk-1 has a leading sector FSck-1 and a trailing sector RSck-1 adjacent to the leading sector FSck-1 in the rearward direction. The leading sector FSck-1 corresponds to an uncorrectable adjacent sector, and the trailing sector RSck-1 corresponds to a correctable adjacent sector. In FIG. 8, track TRk has a leading sector FSck and a trailing sector RSck adjacent to the leading sector FSck in the rearward direction. FIG. 8 shows circumferential positions CPS, CP1, and CPR. Circumferential position CP1 is located rearward of circumferential position CPS, and circumferential position CPR is located rearward of circumferential position CP1. The leading sector FSck-1 corresponds to the area from circumferential position CPS to circumferential position CP1 on track TRk-1. The rear sector RSck-1 corresponds to the area from the circumferential position CP1 to the circumferential position CPR on the track TRk-1. The front sector FSck corresponds to the area from the circumferential position CPS to the circumferential position CP1 on the track TRk. The rear sector RSck corresponds to the area from the circumferential position CP1 to the circumferential position CPR on the track TRk. Figure 8 shows the path HR81 of the head 15 from the circumferential position CPS to the circumferential position CPR on the track TRk.

[0089] In the example shown in FIG. 8, the MPU 60 sets the DOL for the front sector FSck-1 (the outward DOL in the front sector FSck) in the track TRk to a low DOL D1, and sets the DOL for the rear sector RSck-1 (the outward DOL in the rear sector RSck) to a high DOL D2.

[0090] 8, the MPU 60 moves the head 15 from the circumferential position CPS to the circumferential position CPR on the track TRk according to the path HR81. If the MPU 60 determines that the amount of off-track (squeeze) in the direction toward the front sector FSck-1 (outward) is equal to or less than DOL D1 in the region from the circumferential position CPS to the circumferential position CP1 on the track TRk, the MPU 60 continues the write process (or write operation) without stopping. If the MPU 60 determines that the amount of off-track (squeeze) in the direction toward the rear sector FSck-1 (outward) is equal to or less than DOL D2 in the region from the circumferential position CP1 to the circumferential position CPR on the track TRk, the MPU 60 continues the write process (or write operation) without stopping. Furthermore, if the MPU 60 determines that the off-track amount (squeeze) in the direction toward the rear sector FSck-1 (outward) in the area from the circumferential position CP1 to the circumferential position CPR of the track TRk is greater than DOL D1 and is equal to or less than DOL D2, the write process (or write operation) continues without stopping.

[0091] FIG. 9 is a schematic diagram showing an example of a DOL according to this embodiment. FIG. 9 shows tracks TRk-1, TRk, and TRk+1. FIG. 9 also shows circumferential positions CPS, CP2, and CPR. Circumferential position CP2 is located rearward of circumferential position CPS, and circumferential position CPR is located rearward of circumferential position CP2. FIG. 9 also shows a path HR91 of head 15 from circumferential position CPS to circumferential position CP2 on track TRk, and a path HR92 of head 15 from circumferential position CP2 to circumferential position CPR on track TRk.

[0092] 9, the MPU 60 sets the DOL (outward DOL) for track TRk-1 (direction toward track TRk-1) to a low DOL D1 in track TRk, and sets the DOL (inward DOL) for track TRk+1 (direction toward track TRk+1) to a high DOL D2. Also, in the example shown in FIG. 9, the MPU 60 sets a low unrecoverable threshold UTH1 for track TRk+1 (inward direction) in track TRk.

[0093] In the example shown in FIG. 9, the MPU 60 moves the head 15 from circumferential position CPS to circumferential position CP2 on track TRk according to path HR91. If the MPU 60 determines that the off-track amount (squeeze) in the direction toward track TRk+1 (inward) is greater than the low unrecoverable threshold UTH1, it executes a read-modify-write on track TRk+1. If the MPU 60 determines that the off-track amount (squeeze) in the direction toward track TRk+1 (inward) is equal to or greater than DOL D2 at circumferential position CP2, it stops the write process (or write operation) and repositions the head 15 to the track center TRCk. After stopping the write process (or write operation) on track TRk and positioning the head 15 at the track center TRCk, the MPU 60 moves the head 15 from circumferential position CP2 to circumferential position CPR according to path HR92.

[0094] FIG. 10 is a flowchart showing an example of a method for setting the DOL according to this embodiment. The MPU 60 determines whether the area adjacent to the target area is a correctable area or not (B1001). For example, the MPU 60 determines whether the track or sector adjacent to the target track or sector is a correctable adjacent track or sector, or an uncorrectable adjacent track or sector. If the area adjacent to the target area is determined to be a correctable area (YES in B1001), the MPU 60 sets the DOL for the area adjacent to the target area to a high DOL (B1002). The MPU 60 sets a low unrecoverable threshold for the area adjacent to the target area (B1003) and ends the process. If the area adjacent to the target area is determined to be an uncorrectable area (NO in B1001), the MPU 60 sets the DOL for the area adjacent to the target area to a low DOL (B1004) and ends the process.

[0095] FIG. 11 is a flowchart showing an example of a write process according to this embodiment. The MPU 60 receives a write command to write data to a target area (B1101). For example, the MPU 60 receives a write command to write data to a target track or a target sector. The MPU 60 determines whether the target area is a correctable area or not (B1102). For example, the MPU 60 determines whether the target track or target sector is a correctable track or correctable sector, or an uncorrectable track or uncorrectable sector.

[0096] If it is determined that the target area is not a correctable area (NO in B1102), the MPU 60 writes data to the target area (B1103) and ends the process. For example, if it is determined that the target track or the target sector is not a correctable track or a correctable sector, the MPU 60 writes data to the target track or the target sector and ends the process.

[0097] If it is determined that the target area is a correctable area (YES in B1102), the MPU 60 determines whether the squeeze in the direction toward the target area in the adjacent area of ​​the target area is greater than or equal to the low unrecoverable threshold (B1104). For example, if it is determined that the target sector or target track is a correctable sector or a correctable track, the MPU 60 determines whether the squeeze in the direction toward the target sector or target track in the adjacent sector or adjacent track of the target sector or target track is greater than or equal to the low unrecoverable threshold.

[0098] If the MPU 60 determines that the squeeze in the direction toward the target sector or target track in the adjacent sector or adjacent track is equal to or less than the low unrecoverable threshold (NO in B1104), the MPU 60 proceeds to processing in B1103. If the MPU 60 determines that the squeeze in the direction toward the target sector or target track in the adjacent sector or adjacent track is greater than the low unrecoverable threshold (YES in B1104), the MPU 60 performs a read-modify-write without permitting writes to the target sector or target track that would make track-based error correction uncorrectable, such as sequential writes up to the middle of a track or random writes (B1105), and ends the processing. For example, if the MPU 60 determines that the squeeze in the direction toward the target sector or target track in the adjacent sector or adjacent track is greater than the low unrecoverable threshold, the MPU 60 performs a read-modify-write without permitting random writes to the target sector or target track, and ends the processing. For example, if it is determined that the squeeze in the direction toward the target sector or target track in this adjacent sector or this adjacent track is greater than the low unrecoverable threshold, the MPU 60 reads the target sector or target track, writes an update sector or update track in which the corresponding data in the target sector or target track has been replaced with update data, calculates an update parity sector by performing an XOR operation on all update sector groups in the update sector or update track, writes the update sector group and the update parity sector to the same target sector or target track, and terminates the processing.

[0099] According to this embodiment, the magnetic disk device 1 manages correctable areas (correctable tracks or correctable sectors) and correctable areas (uncorrectable tracks or uncorrectable sectors) in a management table TB1. The magnetic disk device 1 manages random write inhibit tracks or random write inhibit sectors in a random write inhibit table TB2. If the magnetic disk device 1 determines that an area adjacent to a target area is a correctable adjacent area, it sets the DOL of the target area in the direction toward this adjacent area to a high DOL. If the magnetic disk device 1 determines that an area adjacent to a target area is an uncorrectable adjacent area, it sets the DOL of the target area in the direction toward this adjacent area to a low DOL. The magnetic disk device 1 sets a low unrecoverable threshold for the adjacent area to which a high DOL is set in the target area. When the magnetic disk device 1 determines that an area adjacent to a target area is a correctable area and determines that the squeeze in the target area toward the adjacent area is greater than the low unrecoverable threshold, the magnetic disk device 1 performs a read-modify-write on the adjacent area without permitting writes to the adjacent area that would make track-based error correction uncorrectable, such as sequential writes or random writes up to the middle of a track. This allows the magnetic disk device 1 to improve recording density. Furthermore, the magnetic disk device 1 can efficiently execute write processes. This allows the magnetic disk device 1 to improve reliability.

[0100] Next, a magnetic disk drive according to a modification of the embodiment described above will be described. In the modification, the same parts as those in the embodiment described above will be assigned the same reference numerals, and detailed description thereof will be omitted. (Variation 1) The magnetic disk device 1 according to the first modification differs from the magnetic disk device 1 according to the above-described embodiment in that it executes a refresh process.

[0101] FIG. 12 is a block diagram showing the configuration of the magnetic disk device 1 according to the first modification. The MPU 60 further includes a write count unit 660 and a refresh control unit 670. The MPU 60 executes the processes of each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, and refresh control unit 670, on firmware. The MPU 60 may include each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, and refresh control unit 670, as a circuit. The read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, and refresh control unit 670 may be included in the R / W channel 40 or the HDC 50. The MPU 60 does not necessarily have to include the off-track management unit 650.

[0102] The write count unit 660 counts the number of times data has been written (hereinafter, this may be referred to as the number of writes or write count). The number of writes (or write count) corresponds to, for example, the number of times that writing data has caused the data to be affected by adjacent track interference (ATI), such as leakage magnetic flux from the head 15. The write count unit 660 may store the number of writes as a table in a predetermined recording area, such as the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1.

[0103] The write count unit 660 counts the number of times data is written to an area (hereinafter, sometimes referred to as an adjacent area) located within a predetermined range in the radial direction from the target area. For example, the write count unit 660 counts the number of times data is written to an adjacent area located within a range receiving ATI from the target area.

[0104] When data is written to an area adjacent to a target area, the write count unit 660 increases (increments) the number of writes corresponding to this target area by a predetermined value. For example, when data is written to an area adjacent to the outer side or the inner side of the target area, the write count unit 660 increases (increments) the number of writes corresponding to this target area by a predetermined value. For example, when data is written to an area adjacent to the outer side or the inner side of the target area, the write count unit 660 increases (increments) the number of writes corresponding to this target area by 1.

[0105] The write count unit 660 counts the number of times data is written to an area radially adjacent to the target area (hereinafter, also referred to as an adjacent area). For example, the write count unit 660 counts the number of times data is written to an adjacent area located within a range receiving an ATI from the target area.

[0106] When data is written to an area adjacent to the target area, the write count unit 660 increases (increments) the number of writes corresponding to the target area by a predetermined value. For example, when data is written to an area adjacent to the outer side and the inner side of the target area, the write count unit 660 increases (increments) the number of writes corresponding to the target area by a predetermined value. For example, when data is written to an area adjacent to the outer side and the inner side of the target area, the write count unit 660 increases (increments) the number of writes corresponding to the target area by 1. Note that when data is written to an area adjacent to the outer side and the inner side of the target area, the write count unit 660 may increase the number of writes corresponding to the target area by a value corresponding to the squeeze amount. For example, when data is written to an area adjacent to the outer side and the inner side of the target area, the write count unit 660 may increase the number of writes corresponding to the target area by a value greater than 1 corresponding to the squeeze amount.

[0107] The write count unit 660 counts the number of times data is written to an adjacent track or adjacent sector in the radial direction of the target track or target sector.

[0108] When data is written to an adjacent track or adjacent sector of a target track or target sector, the write count unit 660 increases (increments) the number of writes corresponding to the target track or target sector by a predetermined value. For example, when data is written to an adjacent track outward or inward from the target track or target sector, the write count unit 660 increases (increments) the number of writes corresponding to the target track or target sector by a predetermined value. For example, when data is written to an adjacent track or adjacent sector outward or inward from the target track or target sector, the write count unit 660 increases (increments) the number of writes corresponding to the target track or target sector by 1.

[0109] The refresh control unit 670 executes a process (hereinafter sometimes referred to as a refresh process) of rewriting the same data as data written to a predetermined area, for example, a predetermined track, to this area, for example, the predetermined track. If the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds a threshold (hereinafter sometimes referred to as a refresh threshold) corresponding to the number of writes required to execute the refresh process, it executes the refresh process on this area. If the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds the refresh threshold, it executes the refresh process on part of this area. In other words, if the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds the refresh threshold, it executes the refresh process on data equal to or less than the capacity previously set as a format for this area. After executing the refresh process on the predetermined area, the refresh control unit 670 resets the number of writes corresponding to this area, for example, to 0.

[0110] If the refresh control unit 670 determines that the number of writes corresponding to the target track or the target sector has exceeded the refresh threshold corresponding to the target track or the target sector, it executes a refresh process on the target track or the target sector. If the refresh control unit 670 determines that the number of writes corresponding to the target track or the target sector has exceeded the refresh threshold corresponding to the target track or the target sector, it executes a refresh process on a portion of the target track or the target sector. In other words, if the refresh control unit 670 determines that the number of writes corresponding to the target track or the target sector has exceeded the threshold corresponding to the target track or the target sector, it executes a refresh process on data equal to or less than the capacity previously set as a format for the target track or the target sector.

[0111] The refresh control unit 670 changes (or sets) the refresh threshold value. The refresh control unit 670 has a plurality of refresh threshold values. The refresh control unit 670 changes (or sets) the refresh threshold of the correctable area to a refresh threshold higher than the currently set refresh threshold (hereinafter sometimes referred to as the current refresh threshold) among the plurality of refresh thresholds. The refresh control unit 670 changes (or sets) the refresh threshold of the uncorrectable area to a refresh threshold lower than the current refresh threshold among the plurality of refresh thresholds.

[0112] In addition, the refresh control unit 670 sets the refresh threshold of the correctable area to a refresh threshold among the plurality of refresh thresholds that is higher than the refresh threshold of the uncorrectable area, and sets the refresh threshold of the uncorrectable area to a refresh threshold among the plurality of refresh thresholds that is lower than the refresh threshold of the correctable area.

[0113] The refresh control unit 670 has two refresh thresholds, for example, a high refresh threshold and a low refresh threshold. The refresh control unit 670 may have three or more refresh thresholds. The high refresh threshold is greater than the low refresh threshold, and the low refresh threshold is less than the high refresh threshold. The refresh control unit 670 sets the refresh threshold for the correctable area to the high refresh threshold and the refresh threshold for the uncorrectable area to the low refresh threshold. The refresh control unit 670 performs refresh processing on the uncorrectable area to which a low refresh threshold is set less frequently than on the correctable area to which a high refresh threshold is set. In other words, the refresh control unit 670 performs refresh processing on the correctable area to which a high refresh threshold is set more frequently than on the uncorrectable area to which a low refresh threshold is set. Here, the frequency corresponds to, for example, the number of times processing is performed within a specific period of time.

[0114] For example, the refresh control unit 670 sets the refresh threshold of a correctable track or a correctable cylinder to a high refresh threshold, and sets the refresh threshold of an uncorrectable track or a correctable cylinder to a low refresh threshold.

[0115] For example, the refresh control unit 670 sets the refresh threshold of correctable sectors (or logical tracks) to a high refresh threshold, and sets the refresh threshold of uncorrectable sectors to a low refresh threshold.

[0116] The refresh control unit 670 may set different refresh thresholds for the tracks corresponding to the plurality of heads 15 corresponding to a predetermined cylinder (track). Note that the refresh control unit 670 may set the same refresh threshold for the tracks corresponding to the plurality of heads 15 corresponding to a predetermined cylinder (track).

[0117] For example, when the refresh control unit 670 maintains constant performance by multiple heads 15 for a specific cylinder (track), it sets the refresh threshold of the cylinder (track) corresponding to at least one of the multiple heads 15 to a high refresh threshold, and sets the refresh threshold of the cylinder (track) corresponding to the other heads 15 other than the at least one head 15 set to the high refresh threshold to a low refresh threshold.

[0118] For example, if the refresh control unit 670 maintains constant performance for a specific cylinder (track) by the four heads 15 and the refresh thresholds for the four cylinders (tracks) corresponding to the four heads 15 are 300, 300, 300, and 300, respectively, the refresh control unit 670 increases, by 100, the two refresh thresholds corresponding to the two correctable cylinders (correctable tracks) corresponding to two of the four heads 15. In this case, the refresh control unit 670 decreases, by 100, the two refresh thresholds corresponding to the two cylinders (tracks) corresponding to the remaining two heads 15 other than the two heads 15 corresponding to the correctable cylinders (correctable tracks). In this case, the TPI of the two heads 15 that do not correspond to the correctable cylinders (correctable tracks) can be improved while maintaining the performance of the four heads 15. In addition, if the two heads 15 other than the two heads 15 corresponding to the correctable cylinders (correctable tracks) among the four heads 15 correspond to write operations that make track-based error correction impossible, for example, sequential write operations up to the middle of a track, or two uncorrectable cylinders (uncorrectable tracks) that have been randomly written, the refresh control unit 670 maintains the two refresh thresholds corresponding to the two cylinders (tracks) to which these two heads 15 respectively correspond at 300 and 300. Here, "randomly writing to a specific track, for example, a correctable track (correctable cylinder)" corresponds to "writing at a unit equal to or smaller than the unit at which track-based error correction is performed." Therefore, randomly writing to a specific track, for example, a correctable track (correctable cylinder), may make track-based error correction impossible on that track.If the number of writes to a correctable cylinder (correctable track) is equal to or greater than the refresh threshold of an uncorrectable cylinder (uncorrectable track), the correctable cylinder (correctable track) will become an uncorrectable track when random write is performed to the correctable cylinder (correctable track), so the refresh control unit 670 does not allow random writes to the correctable cylinder (correctable track) and performs a read-modify-write to the correctable cylinder (correctable track) to maintain the correctable track.

[0119] FIG. 13 is a schematic diagram showing an example of refresh thresholds LTH and HTH according to Modification 1. In FIG. 13, the horizontal axis represents the number of writes (times), and the vertical axis represents the unrecoverable error rate. On the vertical axis of FIG. 13, the unrecoverable error rate increases toward the tip of the arrow and decreases toward the opposite side of the arrow. On the horizontal axis of FIG. 13, the number of writes increases toward the tip of the arrow and decreases toward the opposite side of the arrow. The horizontal axis of FIG. 13 represents the low refresh threshold LTH and the high refresh threshold HTH. FIG. 13 shows a change in the unrecoverable error rate ERL3 corresponding to an uncorrectable area (hereinafter also referred to as a change in the unrecoverable error rate) and a change in the unrecoverable error rate ERL4 corresponding to a correctable area (hereinafter also referred to as a change in the unrecoverable error rate). As shown by the change in unrecoverable error rate ERL3 and the change in unrecoverable error rate ERL4 in FIG. 13, the unrecoverable error rate relative to the number of writes is lower in the correctable area than in the uncorrectable area.

[0120] In the example shown in FIG. 13, the MPU 60 sets the refresh threshold of the correctable area to a high refresh threshold and sets the refresh threshold of the uncorrectable area to a low refresh threshold. The MPU 60 sets the TPI of the head 15 corresponding to the uncorrectable area to a high TPI. If the MPU 60 determines that the number of writes corresponding to the correctable area exceeds the high refresh threshold HTH, it performs a refresh process on the correctable area. If the MPU 60 determines that the number of writes corresponding to the uncorrectable area exceeds the low refresh threshold LTH, it performs a refresh process on the uncorrectable area. The MPU 60 performs a refresh process on the uncorrectable area more frequently than on the correctable area.

[0121] FIG. 14 is a flowchart showing an example of a method for setting the refresh threshold according to this embodiment. The MPU 60 determines whether a predetermined area is a correctable area or not (B1401). In other words, the MPU 60 determines whether the predetermined area is a correctable area or an uncorrectable area. For example, the MPU 60 determines whether a predetermined track is a correctable track or an uncorrectable track. For example, the MPU 60 determines whether a predetermined sector is a correctable sector or an uncorrectable sector. If it is determined that the predetermined area is a correctable area (YES in B1401), the MPU 60 sets the refresh threshold of this correctable area to the high refresh threshold (B1402) and ends the processing. In other words, the MPU 60 sets the refresh threshold of this correctable track (or this correctable cylinder) to the high refresh threshold. The MPU 60 sets the refresh threshold of this correctable sector to the high refresh threshold.

[0122] If it is determined that the predetermined area is an uncorrectable area (NO in B1401), the MPU 60 sets the refresh threshold of this uncorrectable area to the low refresh threshold (B1403) and ends the process. In other words, the MPU 60 sets the refresh threshold of this uncorrectable track (or this uncorrectable cylinder) to the low refresh threshold. The MPU 60 sets the refresh threshold of this uncorrectable sector to the low refresh threshold.

[0123] FIG. 15 is a flowchart showing an example of a write process for a correctable area according to this embodiment. The MPU 60 receives a write command to write data to a correctable area (B1501). For example, the MPU 60 receives a write command to write data to a correctable track (or a correctable cylinder). The MPU 60 determines whether the number of writes to the correctable area is greater than or equal to the low refresh threshold (B1502). For example, the MPU 60 determines whether the number of writes to the correctable track (or the correctable cylinder) is greater than or equal to the low refresh threshold. If it is determined that the number of writes to the correctable area is less than or equal to the low refresh threshold (NO in B1502), the MPU 60 writes the data to the correctable area (B1503) and ends the process. For example, if it is determined that the number of writes is less than or equal to the low refresh threshold of the correctable track, the MPU 60 writes the data to the correctable track and ends the process.

[0124] If it is determined that the number of writes to the correctable area is greater than the low refresh threshold (YES in B1502), the MPU 60 performs a read-modify-write without permitting writes to the correctable area that would make track-by-track error correction uncorrectable, such as sequential writes up to the middle of a track or random writes (B1504), and ends the process. For example, if it is determined that the number of writes to the correctable track (or correctable cylinder) is greater than the low refresh threshold, the MPU 60 performs a read-modify-write without permitting random writes to the correctable track (or correctable cylinder). For example, if it is determined that the number of writes to a correctable track (or correctable cylinder) is greater than the low refresh threshold, the MPU 60 reads the correctable track, writes an update track (or update cylinder) in which the data instructed to be written by the write command is replaced with the corresponding data in the correctable track (or correctable cylinder), performs an XOR operation on all update sector groups in the update track (or update cylinder) to calculate an update parity sector, writes the update sector group and the update parity sector to the same track or cylinder, and terminates the process.

[0125] According to the first modification, the magnetic disk device 1 changes the refresh threshold for each cylinder on the surfaces of the multiple disks 10 corresponding to each of the multiple heads 15. The magnetic disk device 1 has a high refresh threshold and a low refresh threshold. The magnetic disk device 1 sets the refresh threshold for the correctable area to the high refresh threshold and the refresh threshold for the uncorrectable area to the low refresh threshold. The magnetic disk device 1 performs refresh processing on the uncorrectable area set to the low refresh threshold less frequently than on the correctable area set to the high refresh threshold. When writing data to the correctable area, if the number of writes to the correctable area is greater than the low refresh threshold, the magnetic disk device 1 performs a read-modify-write on the correctable area. This allows the magnetic disk device 1 to improve the TPI. This allows the magnetic disk device 1 to improve the recording density.

[0126] (Variation 2) The magnetic disk device 1 according to the second modification differs from the magnetic disk device 1 according to the above-described embodiment and the first modification in that data of tracks on which track ECC cannot be executed is saved.

[0127] FIG. 16 is a block diagram showing the configuration of the magnetic disk device 1 according to the second modification. The MPU 60 further includes a data saving unit 680. The MPU 60 executes the processing of each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, refresh control unit 670, and data saving unit 680, on firmware. Note that the MPU 60 may include each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, refresh control unit 670, and data saving unit 680, as a circuit. The read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, off-track management unit 650, write count unit 660, refresh control unit 670, and data saving unit 680 may be included in the R / W channel 40 or the HDC 50. Note that the MPU 60 does not have to include at least one of the off-track management unit 650, write count unit 660, and refresh control unit 670.

[0128] The data saving unit 680 records data specified by a command received from the host 100 or the like in a recording area different from the recording area specified by the command (hereinafter, sometimes referred to as another recording area), for example, the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The data saving unit 680 temporarily records data specified by a command received from the host 100 or the like in another recording area, for example, the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. Hereinafter, "temporarily recording data in another recording area" may also be referred to as "saving" or "executing the saving process."

[0129] When the data backup unit 680 receives a write command (hereinafter sometimes referred to as a prohibited area write command) to a random write prohibited area, such as a random write prohibited track or random write prohibited sector, from the host 100, etc., it determines whether there is free space in other recording areas or not.

[0130] If the data saving unit 680 determines that there is free space in another recording area, it saves this prohibited area write command and data corresponding to this prohibited area write command (hereinafter sometimes referred to as prohibited area command data) to another recording area, and does not execute, stops, or temporarily suspends this prohibited area write command. In other words, if the data saving unit 680 determines that there is free space in another recording area and receives this prohibited area write command from the host 100 or the like, it saves this prohibited area write command and the prohibited area command data corresponding to this prohibited area write command, and does not execute, stops, or temporarily suspends the write process for this random write prohibited track.

[0131] If the data saving unit 680 determines that there is free space in another recording area, it saves this prohibition area write command, the prohibition area command data corresponding to this prohibition area write command, and the data of this random write prohibition track (hereinafter sometimes referred to as random write prohibition data) to another recording area, and does not execute, stops, or temporarily suspends this prohibition area write command. In other words, if the data saving unit 680 determines that there is free space in another recording area and receives this prohibition area write command from the host 100 or the like, it saves this prohibition area write command, the prohibition area command data corresponding to this prohibition area write command, and the random write prohibition data corresponding to this random write prohibition track, and does not execute, stops, or temporarily suspends the write processing of this random write prohibition track.

[0132] If the data saving unit 680 determines that there is an empty area in another recording area, it writes a random write inhibit track corresponding to this inhibit area write command based on the inhibit area command data corresponding to this inhibit area write command so that track ECC can be executed on this random write inhibit track. In other words, if the data saving unit 680 determines that there is an empty area in another recording area, it writes a random write inhibit track corresponding to this inhibit area write command based on the inhibit area command data corresponding to this inhibit area write command so that this random write inhibit track becomes a correctable track.

[0133] When the data saving unit 680 receives a prohibition area write command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the prohibition area command data corresponding to this prohibition area write command to the area specified by this prohibition area write command, for example, a random write prohibit track, as usual, and sets the area specified by this prohibition area write command, for example, a random write prohibit track, as an uncorrectable track in the user data area 10a of the disk 10. In other words, when the data saving unit 680 receives a prohibition area write command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the area corresponding to this prohibition area write command, for example, the prohibition area command data, to a random write prohibit track, and manages the area corresponding to this prohibition area write command, for example, a random write prohibit track, in the management table TB1 as an uncorrectable track in the user data area 10a of the disk 10.

[0134] For example, when the data backup unit 680 receives a prohibited area write command from the host 100, etc., it determines whether there is free space in a cache that temporarily records data, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90.

[0135] If the data saving unit 680 determines that there is free space in the cache, it saves the prohibited area command data corresponding to this prohibited area write command in the cache, and does not execute, stops, or temporarily suspends the write process for this random write prohibited track.

[0136] If the data saving unit 680 determines that there is free space in the cache, it saves the prohibited area command data corresponding to this prohibited area write command and the random write prohibition data of the random write prohibition track corresponding to this prohibited area write command into the cache, and does not execute, stops, or temporarily suspends the write process of this random write prohibition track.

[0137] When the data saving unit 680 saves the prohibited area command data (update data) corresponding to this prohibited area write command to the cache during idle time, etc., it executes a read-modify-write on this random write prohibited track based on this prohibited area command data (update data) and this random write prohibited data.

[0138] When the data saving unit 680 saves the prohibited area command data (update data) corresponding to this prohibited area write command and the random write prohibition data of the random write prohibition track corresponding to this prohibited area write command to a cache during idle time, etc., it executes a read modify write on this random write prohibition track based on this prohibited area command data (update data) and this random write prohibition data.

[0139] When the data saving unit 680 further receives from the host 100 or the like a command (hereinafter sometimes referred to as a write prohibition residual command) to write data (hereinafter sometimes referred to as write prohibition residual data) to the remaining area (hereinafter sometimes referred to as a write prohibition residual area) excluding the area where the prohibition area command data is written from this random write prohibition track, the data saving unit 680 writes the write prohibition residual data and the prohibition area command data to this random write prohibition track in the user data area 10a of the disk 10. In other words, when the data saving unit 680 determines that it has received from the host 100 or the like at least one command (hereinafter sometimes referred to as a one-track command) to write one track's worth of data to the random write prohibition track, it writes data corresponding to this one-track command to this random write prohibition track in the user data area 10a of the disk 10.

[0140] When the data saving unit 680 receives a prohibited area write command from the host 100 or the like and determines that there is no free area in the cache, it writes the prohibited area command data corresponding to this prohibited area write command to the area specified by this prohibited area write command, for example, a random write prohibited track, and sets the area specified by this prohibited area write command, for example, a random write prohibited track, to an uncorrectable track.

[0141] When the data backup unit 680 receives a write command (hereinafter sometimes referred to as a "non-correctable command") from the host 100 or the like that makes it impossible to execute track ECC on a specified correctable track (hereinafter sometimes referred to as a "scheduled non-correctable track"), it determines whether there is free space in other recording areas or not.

[0142] If the data saving unit 680 determines that there is free space in the other recording area, it saves this uncorrectable command and data corresponding to this uncorrectable command (hereinafter sometimes referred to as uncorrectable command data) to the other recording area, and does not execute, stops, or temporarily suspends this uncorrectable command. In other words, if the data saving unit 680 determines that there is free space in the other recording area, it saves this uncorrectable command, the uncorrectable command data corresponding to this uncorrectable command, and the scheduled uncorrectable data of the scheduled uncorrectable track, and does not execute, stops, or temporarily suspends the write processing of the scheduled uncorrectable track.

[0143] If the data saving unit 680 determines that there is free space in the other recording area, it saves the uncorrectable command, the uncorrectable command data corresponding to the uncorrectable command, and the data of the planned uncorrectable track (hereinafter also referred to as planned uncorrectable data) to the other recording area, and does not execute, stops, or temporarily suspends the uncorrectable command. In other words, if the data saving unit 680 determines that there is free space in the other recording area, it saves the uncorrectable command, the uncorrectable command data corresponding to the uncorrectable command, and the planned uncorrectable data of the planned uncorrectable track, and does not execute, stops, or temporarily suspends the write processing of the planned uncorrectable track.

[0144] If the data saving unit 680 determines that there is an empty area in the other recording area, it writes the planned uncorrectable track corresponding to the uncorrectable command based on the uncorrectable command data corresponding to the uncorrectable command so that track ECC can be executed on the planned uncorrectable track. In other words, if the data saving unit 680 determines that there is an empty area in the other recording area, it writes the planned uncorrectable track corresponding to the uncorrectable command based on the uncorrectable command data corresponding to the uncorrectable command so that the planned uncorrectable track becomes a correctable track.

[0145] When the data saving unit 680 receives a disabling command from the host 100 or the like and determines that there is no free space in other recording areas, it writes the disabling command data corresponding to this disabling command to a planned uncorrectable track and sets the planned uncorrectable track as an uncorrectable track in the user data area 10a of the disk 10. In other words, when the data saving unit 680 receives a disabling command from the host 100 or the like and determines that there is no free space in other recording areas, it writes the disabling command data corresponding to this disabling command to a planned uncorrectable track and manages the planned uncorrectable track in the management table TB1 as an uncorrectable track in the user data area 10a of the disk 10.

[0146] For example, when the data backup unit 680 receives a command to make correction impossible from the host 100, etc., it determines whether there is free space in the cache, for example, the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90.

[0147] If the data saving unit 680 determines that there is free space in the cache, it saves the uncorrectable command data corresponding to this uncorrectable command in a cache that temporarily records data, and does not execute, stops, or temporarily suspends the write process for this track that is scheduled to be uncorrectable.

[0148] If the data saving unit 680 determines that there is free space in the cache, it saves the uncorrectable command data corresponding to this uncorrectable command and the uncorrectable data of the uncorrectable track corresponding to this uncorrectable command in a cache that temporarily records data, and does not execute, stops, or temporarily suspends the write process of this uncorrectable track.

[0149] When the data saving unit 680 saves the uncorrectable command data (update data) corresponding to this uncorrectable command to the cache during idle time, etc., it executes a read-modify-write on this track that is to be uncorrectable based on this uncorrectable command data (update data).

[0150] When the data saving unit 680 saves the uncorrectable command data (update data) corresponding to this uncorrectable command and the planned uncorrectable data of the planned uncorrectable track corresponding to this uncorrectable command to a cache during idle time, etc., it executes a read-modify-write on this planned uncorrectable track based on this uncorrectable command data (update data) and this planned uncorrectable data.

[0151] When the data saving unit 680 further receives from the host 100 or the like a command (hereinafter sometimes referred to as an uncorrectable remaining command) to write data (hereinafter sometimes referred to as uncorrectable remaining data) to the remaining area (hereinafter sometimes referred to as an uncorrectable remaining area) excluding the area where the uncorrectable command data is written from this planned uncorrectable track, the data saving unit 680 writes the uncorrectable remaining data and the uncorrectable command data to this planned uncorrectable track in the user data area 10a of the disk 10. In other words, when the data saving unit 680 determines that it has received a command for one track of planned uncorrectable tracks from the host 100 or the like, it writes data corresponding to this one track command to this planned uncorrectable track in the user data area 10a of the disk 10.

[0152] When the data saving unit 680 receives a correction-disabling command from the host 100 or the like and determines that there is no free space in the cache, it writes the correction-disabling command data corresponding to the correction-disabling command to a track that is scheduled to be uncorrectable, and sets the track that is scheduled to be uncorrectable to an uncorrectable track.

[0153] FIG. 17 is a schematic diagram showing an example of the save processing according to Modification 2. FIG. 17 shows tracks TRm-2, TRm+1, TRm, TRm+1, and TRm+2. In FIG. 17, tracks TRm-2 to TRk+2 are arranged in the order shown from the outside to the inside. Track TRm-1 is adjacent to track TRm on the outside. Track TRm-2 is adjacent to track TRm-1 on the outside. Track TRm+1 is adjacent to track TRm on the inside. Track TRm+2 is adjacent to track TRm+1 on the inside. In FIG. 17, tracks TRm-2 to TRm+2 correspond to correctable tracks. FIG. 17 shows circumferential positions CPS, CP3, CP4, and CPR. Circumferential position CP3 is located rearward of circumferential position CPS, circumferential position CP4 is located rearward of circumferential position CP3, and circumferential position CPR is located rearward of circumferential position CP4. Figure 17 shows an area WCd1 to be written to with a specified write command, an area WCd2 to be written to with a specified write command, and an area WCd3 to be written to with a specified write command. Hereinafter, the "command instructing writing of a specified area or data" and the "area or data to be written to with a specified write command" may also be referred to as a "write command." In other words, the "command instructing writing of area or data WCd1" and the "area or data WCd1 to be written with a specified write command" are referred to as the "write command WCd1", the "command instructing writing of area or data WCd2" and the "area WCd2 to be written with a specified write command" are referred to as the "write command WCd2", and the "command instructing writing of area or data WCd3" and the "area WCd3 to be written with a specified write command" are referred to as the "write command WCd3".Write command WCd1 corresponds to the area or data from circumferential position CP4 to circumferential position CPR on track TRm-2, the area or data from circumferential position CPS to circumferential position CPR on track TRm-1, the area or data from circumferential position CPS to circumferential position CPR on track TRm, the area or data from circumferential position CPS to circumferential position CPR on track TRm+1, and the area or data from circumferential position CPS to circumferential position CP3 on track TRm+2. Write command WCd1 corresponds to a command to write data to the area from circumferential position CP4 to circumferential position CPR on track TRm-2, a command to write data to the area from circumferential position CPS to circumferential position CPR on track TRm-1, a command to write data to the area from circumferential position CPS to circumferential position CPR on track TRm, a command to write data to the area from circumferential position CPS to circumferential position CPR on track TRm+1, and a command to write data to the area from circumferential position CPS to circumferential position CP3 on track TRm+2. Write command WCd2 corresponds to the area or data from circumferential position CPS to circumferential position CP4 on track TRm-2. Write command WCd3 corresponds to the area or data from circumferential position CP3 to circumferential position CPR on track TRm+2. Moreover, write command WCd3 corresponds to a command for writing data to an area from circumferential position CP3 to circumferential position CPR on track TRm+2.

[0154] 17, when the MPU 60 receives a write command WCd1 from the host 100 or the like, the write process for track TRm-2 is one track or less, so track TRm-2 may change from a correctable track to an uncorrectable track. Therefore, the MPU 60 saves the uncorrectable command data corresponding to track TRm-2 of the write command WCd1 and track TRm-2 to a cache, for example, the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, and does not execute the write process for track TRm-2. In other words, the MPU 60 saves the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and track TRm-2 to a cache, for example, the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, and does not execute the write process for track TRm-2.

[0155] When the MPU 60 saves the track TRm-2 and the correction disable command data (update data) corresponding to the track TRm-2 of the write command WCd1 in the cache, the MPU 60 executes a read-modify-write on the track TRm-2 during idle time based on the track TRm-2 and the correction disable command data (update data) corresponding to the track TRm-2 of the write command WCd1. In other words, when the MPU 60 saves the track TRm-2 and the correction disable command data (update data) from the circumferential position CP4 to the circumferential position CPR on the track TRm-2 in the cache, the MPU 60 executes a read-modify-write on the track TRm-2 during idle time based on the correction disable command data (update data) from the circumferential position CP4 to the circumferential position CPR on the track TRm-2 and the track TRm-2.

[0156] Furthermore, the MPU 60 saves the correction disabling command data corresponding to track TRm-2 of write command WCd1 and track TRm-2 in the cache, and when a write command WCd2 is received from the host 100 or the like, writes the correction disabling command data corresponding to track TRm-2 of write command WCd1 and the write command WCd2 to track TRm-1. In other words, the MPU 60 saves the correction disabling command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and track TRm-2 in the cache, and when a write command WCd2 is received from the host 100 or the like, writes the correction disabling command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and the write command WCd2 to track TRm-1.

[0157] 17, when the MPU 60 receives a write command WCd1 from the host 100 or the like, the write process for track TRm+2 is one track or less, so track TRm+2 may change from a correctable track to an uncorrectable track. Therefore, the MPU 60 saves the uncorrectable command data corresponding to track TRm+2 of write command WCd1 and track TRm+2 in a cache, for example, the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, and does not execute the write process for track TRm+2. In other words, the MPU 60 saves the uncorrectable command data from circumferential position CPS to circumferential position CP3 of track TRm+2 and track TRm+2 in a cache, for example, the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, and does not execute the write process for track TRm+2.

[0158] When the MPU 60 saves the correction disable command data (update data) corresponding to track TRm+2 of write command WCd1 and track TRm+2 in its cache, it executes a read-modify-write on track TRm-2 during idle time based on the correction disable command data (update data) corresponding to track TRm+2 of write command WCd1 and track TRm+2. In other words, when the MPU 60 saves the correction disable command data (update data) from circumferential position CPS to circumferential position CP3 on track TRm+2 and track TRm+2 in its cache, it executes a read-modify-write on track TRm-2 during idle time based on the correction disable command data (update data) from circumferential position CPS to circumferential position CP3 on track TRm+2 and track TRm+2.

[0159] Furthermore, the MPU 60 saves in the cache the correction disabling command data corresponding to track TRm+2 of write command WCd1 and track TRm+2, and when a write command WCd3 is received from the host 100 or the like, writes the correction disabling command data corresponding to track TRm+2 of write command WCd1 and the write command WCd3 to track TRm+2. In other words, the MPU 60 saves in the cache the correction disabling command data from circumferential position CPS to circumferential position CP3 of track TRm+2 and track TRm+2, and when a write command WCd3 is received from the host 100 or the like, writes the correction disabling command data from circumferential position CPS to circumferential position CP3 of track TRm+2 and the write command WCd3 to track TRm+2.

[0160] FIG. 18 is a flowchart showing an example of the saving process according to the second modification. The MPU 60 receives a write command to write data to a predetermined correctable area, for example, a correctable track, in the user data area 10a (B1801). The MPU 60 determines whether the correctable area, for example, a correctable track, corresponding to this write command will become an uncorrectable area, for example, an uncorrectable track, when writing in accordance with this write command (B1802). In other words, the MPU 60 determines whether the command received from the host 100 is an uncorrectable command or not. If it is determined that the data will not become an uncorrectable area, for example, an uncorrectable track (NO in B1802), the MPU 60 writes the data corresponding to this write command to a predetermined correctable area, for example, a correctable track, in the user data area 10a (B1803), and ends the process.

[0161] If it is determined that the area is uncorrectable, for example, that it is an uncorrectable track (YES in B1802), the MPU 60 determines whether there is free space in the cache (B1804). If it is determined that there is no free space in the cache (NO in B1804), the MPU 60 proceeds to the processing of B1803.

[0162] If it is determined that there is free space in the cache (YES in B1804), the MPU 60 saves the data (uncorrectable command data) corresponding to this write command (uncorrectable command) (and the data (uncorrectable data) of the correctable track (uncorrectable track) in the user data area 10a corresponding to this uncorrectable command) in the cache (B1805), and ends the processing.

[0163] FIG. 19 is a flowchart showing an example of the saving process according to the second modification. The MPU 60 receives a write command to write data to a specified track in the user data area 10a (B1801). The MPU 60 determines whether the track corresponding to this write command is permitted to be written in a manner that would make track-by-track error correction impossible when written in accordance with the write command, such as sequential writing up to the middle of a track or random writing, or whether random writing is permitted (B1901). If it determines that random writing is permitted for this track (NO in B1901), the MPU 60 writes the data corresponding to this write command to this track in the user data area 10a (B1803), and ends processing.

[0164] If it is determined that random write is not permitted for this track (YES in B1901), the MPU 60 determines whether there is free space in the cache (B1804). If it is determined that there is no free space in the cache (NO in B1804), the MPU 60 proceeds to the processing of B1803.

[0165] If it is determined that there is free space in the cache (YES in B1804), the MPU 60 saves the data corresponding to this write command and the data of the track in the user data area 10a corresponding to this command in the cache (B1805), and ends the process.

[0166] According to the second modification, when the magnetic disk device 1 receives a prohibited area write command from the host 100 or the like, it determines whether there is free space in the other recording areas. If it determines that there is free space in the other recording areas, the magnetic disk device 1 saves the prohibited area command data and random write prohibited data corresponding to this prohibited area write command to the other recording areas and does not execute this prohibited area write command. If it determines that there is no free space in the other recording areas, the magnetic disk device 1 writes the prohibited area command data corresponding to the prohibited area write command to a random write prohibited track.

[0167] Furthermore, when the magnetic disk device 1 receives a disabling command from the host 100 or the like, it determines whether there is free space in other recording areas. If it determines that there is free space in other recording areas, it saves the disabling command data corresponding to this disabling command and the data scheduled to be uncorrectable to other recording areas, and does not execute this disabling command. If it determines that there is no free space in other recording areas, it writes the disabling command data corresponding to the disabling command to the track scheduled to be uncorrectable.

[0168] Since the DOL for tracks on which track ECC cannot be executed is set to a strict value, write faults are likely to occur, which may result in a decrease in write performance. Furthermore, since the number of writes to tracks on which track ECC cannot be executed may be set low, refresh processing must be performed frequently, which may result in a decrease in write performance. In Modification 2, when a write command is received, data corresponding to the write command is temporarily saved to a cache, and processing is performed to change tracks on which track ECC cannot be executed to tracks on which track ECC can be executed. This allows the magnetic disk device 1 to execute write processing efficiently. In other words, the magnetic disk device 1 can improve write performance. Therefore, the magnetic disk device 1 can improve reliability.

[0169] Although several embodiments have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]

[0170] 1...magnetic disk device, 10...magnetic disk, 10a...user data area, 10b...system area, 12...spindle motor (SPM), 13...arm, 14...voice coil motor (VCM), 16...actuator, 15...head, 15W...write head, 15R...read head, 20...driver IC, 30...head amplifier IC, 40...read / write (R / W) channel, 50...hard disk controller (HDC), 60...microprocessor (MPU), 70...volatile memory, 80...non-volatile memory, 90...buffer memory, 100...host system (host), 130...system controller.

Claims

1. The disk and a head for writing data to the disk and reading data from the disk; a first sector group including at least one first sector capable of performing track-based error correction processing based on the first parity sector and the first parity sector; a second sector group including at least one second sector on which track-based error correction processing cannot be performed; Magnetic disk device.

2. 2. The magnetic disk drive according to claim 1, wherein said first sector group and said second sector group are both writable to only a portion of any one of the sector groups.

3. 2. The magnetic disk drive according to claim 1, wherein the first sector is continuous from the first parity sector in the circumferential direction of the disk.

4. 2. The magnetic disk drive according to claim 1, wherein the second group of sectors includes a second parity sector.

5. 2. The magnetic disk drive according to claim 1, wherein different read processes are applied to the first sector group and the second sector group.

6. 6. The magnetic disk drive according to claim 5, wherein when an error sector is detected in the first group of sectors, if the error sector cannot be corrected by sector ECC processing, track ECC processing is performed on the error sector based on the first parity sector, and the error sector is corrected.

7. 6. The magnetic disk drive according to claim 5, wherein, when an error sector is detected in the first group of sectors and the error sector cannot be corrected by a read retry, a track ECC process is performed on the error sector based on the first parity sector, and the error sector is corrected.

8. 6. The magnetic disk drive according to claim 5, wherein when an error sector is detected in the second group of sectors and the error sector cannot be corrected by sector ECC processing, track ECC processing is not performed on the error sector based on the second parity sector.

9. 6. The magnetic disk drive according to claim 5, wherein when an error sector is detected in the second group of sectors and the error sector cannot be corrected by a read retry, track ECC processing is not performed on the error sector based on the first parity sector.

10. 2. The magnetic disk drive according to claim 1, wherein when a group of sectors belonging to a first write command includes the first parity sector, the group of sectors is managed as a group of sectors for which track ECC processing is to be performed.

11. 2. The magnetic disk drive according to claim 1, wherein if a group of sectors belonging to the second write command does not include the first parity sector, the group of sectors is managed as a group of sectors for which track ECC processing is not performed.

Citation Information

Patent Citations

  • Magnetic disk device and write processing method

    JP2019215943A

  • Magnetic disk drive and data read method of the same

    JP2020042868A

  • Magnetic disk device and write processing method

    JP2021047946A

  • Enhanced low overhead data protection in data storage drives

    US9530442B1

  • Data storage device aborting write operation based on accumulated track squeeze metric for adjacent data track

    US10748567B1