Magnetic Disk Device and DOL Setting Method

By setting distinct DOL values for sectors and implementing a read-modify-write process, the magnetic disk device addresses error correction challenges, enhancing reliability and recording density.

JP7701260B2Active Publication Date: 2025-07-01KK TOSHIBA +1
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2021207845
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-12-22
Publication Date
2025-07-01
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

Magnetic disk devices face challenges in executing error correction processes when data is randomly overwritten on tracks containing parity sectors, leading to reduced reliability and increased error rates due to adjacent track interference and leakage magnetic flux.

Method used

The magnetic disk device sets different DOL (Drift of Level) values for sectors based on their error correction capability, distinguishing between correctable and uncorrectable sectors, and employs a read-modify-write process for uncorrectable sectors to maintain reliability.

Benefits of technology

This approach enhances the reliability and recording density of the magnetic disk device by managing correctable and uncorrectable areas effectively, reducing error rates and improving data integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007701260000001
    Figure 0007701260000001
  • Figure 0007701260000002
    Figure 0007701260000002
  • Figure 0007701260000003
    Figure 0007701260000003
Patent Text Reader

Abstract

To provide a magnetic disk device capable of improving reliability and a method of setting a DOL.SOLUTION: A magnetic disk device according to the present embodiment includes: a disk; a head for writing data to the disk and reading data from the disk; and a controller for setting, to different values, a first DOL for a first sector group which can execute error correction processing per track unit based on a first parity sector and includes at least one first sector consecutive from the first parity sector in a circumferential direction of the disk and the first parity sector and a second DOL for a second sector group which cannot execute the error correction processing per track unit and includes at least one second sector consecutive in the circumferential direction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to a magnetic disk device and a method for setting DOL.

Background Art

[0002] A magnetic disk device may have an error correction function that corrects a sector based on a parity sector corresponding to a track including the sector when the sector cannot be corrected (salvaged or recovered) by a correction code corresponding to the sector. The magnetic disk device writes, as a parity sector for the track, the result of performing an exclusive OR (XOR) operation on each sector of a predetermined track. When the magnetic disk device detects an error in a predetermined sector of the track, the magnetic disk device executes an error correction process (hereinafter, may also be referred to as a track ECC process) that corrects the error by an error correction code based on the parity sector corresponding to the track. When the magnetic disk device randomly overwrites data in a part of a track including a parity sector in a conventional magnetic recording (CMR) format, the magnetic disk device may not be able to execute a track ECC process on this track.

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

[0004] Also, in a magnetic disk drive, when data is written, side erasures where the data is erased may occur due to the influence of leakage magnetic flux from the head or the like (Adjacent Track Interference: ATI). ATI varies depending on, for example, the characteristics of the head, the Track Per Inch (TPI) setting value, and the write current setting value. To prevent side erasures, the magnetic disk drive has a function (refresh function) to rewrite the data on a predetermined track when the number of times data has been written to the peripheral tracks of the predetermined track reaches a specified number of times.

Prior Art Documents

Patent Documents

[0005]

Patent Document 1

Patent Document 2

Patent Document 3

Summary of the Invention

Problems to be Solved by the Invention

[0006] An embodiment of the present invention is to provide a magnetic disk drive and a method for setting DOL that can improve reliability.

Means for Solving the Problems

[0007] The magnetic disk drive according to this embodiment includes a disk, a head that writes data to and reads data from the disk, and a controller that sets different values for a first DOL for a first sector group including at least one first sector and the first parity sector that are continuous in the circumferential direction of the disk from the first parity sector capable of performing error correction processing per track based on the first parity sector, and a second DOL for a second sector group including at least one second sector that is continuous in the circumferential direction and incapable of performing error correction processing per track.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

[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 the magnetic disk device 1 according to the embodiment. The magnetic disk device 1 includes a head disk assembly (HDA) described later, a driver IC 20, a head amplifier integrated circuit (hereinafter sometimes 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. Further, the magnetic disk device 1 is 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 mounted with a head 15, and a voice coil motor (hereinafter sometimes referred to as a VCM) 14. The disk 10 is attached to the SPM 12 and rotates by the drive of the SPM 12. The arm 13 and the VCM 14 constitute an actuator. The actuator controls the movement of the head 15 mounted on the arm 13 to a predetermined position on the disk 10 by driving the VCM 14. The disk 10 and the head 15 may be provided in two or more numbers. Also, two or more actuators may be provided.

[0011] The disk 10 has a user data area 10a that is writable by the user and a system area 10b that records information necessary for system management, assigned to writable areas. Note that in the disk 10, as an area separate from the user data area 10a and the system area 10b, a media cache (which may also be referred to as a media cache area) that temporarily holds data (or commands) transferred from the host 100 or the like before writing it to a predetermined area of the user data area 10a may be assigned. Hereinafter, the direction from the inner circumference to the outer circumference of the disk 10 or the direction from the outer circumference to the inner circumference of the disk 10 is referred to as the radial direction. In the radial direction, the direction from the inner circumference to the outer circumference is referred to as the outer direction (or the outside), and the direction from the outer circumference to the inner circumference, that is, the direction opposite to the outer direction is referred to as the inner direction (or the inside). The direction orthogonal to the radial direction of the disk 10 is referred to as the circumferential direction. That is, the circumferential direction corresponds to the direction along the circumference of the disk 10. Also, 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 the circumferential position may also be collectively simply referred to as a position. The disk 10 is divided into a plurality of areas (hereinafter, may also be referred to as zones or zone areas) for each predetermined range in the radial direction. A zone includes a plurality of tracks. A track includes a plurality of sectors. Note that "track" is used in various meanings, such as one of the plurality of areas obtained by dividing the disk 10 for each predetermined range in the radial direction, the data written in one of the plurality of areas obtained by dividing the disk 10 for each predetermined range in the radial direction, the area extending in the circumferential direction at a predetermined radial position of the disk 10, the data written in the area extending in the circumferential direction at a predetermined radial position of the disk 10, the area for one round at a predetermined radial position of the disk 10, the data for one round written in the area for one round at a predetermined radial position of the disk 10, the path of the head 15 positioned and written at a predetermined radial position of the disk 10, the data written by the head 15 positioned at a predetermined radial position of the disk 10, the data written in a predetermined track of the disk 10, and other various meanings."Sector" is used in various other meanings, such as one of a plurality of regions obtained by circumferentially dividing a predetermined track of the disk 10, data written to one of a plurality of regions obtained by circumferentially dividing a predetermined track of the disk 10, a region at a predetermined circumferential position at a predetermined radial position of the disk 10, data written to a region at a predetermined circumferential position at a predetermined radial position of the disk 10, data written to a predetermined sector of the disk 10. The "radial width of a track" may also be referred to as the "track width". The center position of the track width may also be referred to as the track center. The track center may also be simply referred to as the track. Further, the "radial width of a sector" may also be referred to as the "sector width". The center position of the sector width may also be referred to as the sector center. The sector center may also be simply referred to as the sector. The track center has a plurality of sector centers.

[0012] The head 15 has a slider as its main body, and is equipped with a write head 15W and a read head 15R implemented 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 the data recorded on the disk 10. For example, the read head 15R reads a predetermined track of the disk 10. Note that, in some cases, the "write head 15W" may be simply referred to as the "head 15", and in some cases, the "read head 15R" may be simply referred to as the "head 15". Also, in some cases, the "write head 15W and the read head 15R" may be collectively referred to as the "head 15". In some cases, the "center of the head 15" is referred to as the "head 15", the "center of the write head 15W" is referred to as the "write head 15W", and the "center of the read head 15R" is referred to as the "read head 15R". In some cases, the "center of the write head 15W" may be simply referred to as the "head 15", and in some cases, the "center of the read head 15R" may be simply referred to as the "head 15". In some cases, "positioning the center of the head 15 at a predetermined position" may be expressed as "positioning the head 15 at a predetermined position", "placing the head 15 at a predetermined position", or "positioning the head 15 at a predetermined location", etc. In some cases, "positioning the center of the head 15 at the target position (hereinafter, may also be referred to as the area target position) of a predetermined area, for example, at the center in the radial direction of a predetermined area" may be expressed as "positioning the head 15 in a predetermined area", "placing the head 15 in a predetermined area", "positioning the head 15 in a predetermined area", "positioning in a predetermined area", "placing in a predetermined area", or "positioning in a predetermined area", etc. In some cases, "positioning the center of the head 15 at the target position (hereinafter, may also be referred to as the track target position) of a predetermined track, for example, at the track center" may be expressed as "positioning the head 15 on a predetermined track", "placing the head 15 on a predetermined track", "positioning the head 15 on a predetermined track", "positioning on a track", "placing on a track", or "positioning on a track", etc.

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

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

[0015] In the example shown in FIG. 2, in the disk 10, the system area 10b is arranged outward of the user data area 10a. In other words, in the disk 10, the user data area 10a is arranged inward of the system area 10b. In the example shown in FIG. 2, the system area 10b is arranged at the outermost circumference of the disk 10. Note that the user data area 10a may be divided and arranged in the radial direction of the disk 10. Also, the system area 10b may be arranged at a position different from the position shown in FIG. 2. For example, the system area 10b may be arranged between a plurality of user data areas 10a in the disk 10, or may be arranged at the innermost circumference of the disk 10.

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

[0017] The volatile memory 70 is a semiconductor memory in which the stored data is lost when the power supply is cut off. The volatile memory 70 stores data and the like 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 non-volatile memory 80 is a semiconductor memory that records the stored data even when the power supply is cut off. The non-volatile memory 80 is, for example, a NOR-type 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. Note that 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, a 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 a plurality of 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 a microprocessing unit (MPU) 60. The system controller 130 is electrically connected to, for example, the driver IC 20, the head amplifier IC 30, the volatile memory 70, the non-volatile memory 80, the buffer memory 90, and the host system 100.

[0021] The R / W channel 40 performs signal processing on data transferred from the disk 10 to the host 100 (hereinafter sometimes referred to as read data) and data transferred from the host 100 (hereinafter sometimes referred to as write data) in response to an instruction from the MPU 60 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, and 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 an instruction from the MPU 60 described later. The HDC 50 is electrically connected to, for example, the R / W channel 40, the MPU 60, the volatile memory 70, the non-volatile memory 80, and the buffer memory 90, etc.

[0023] The MPU 60 is the main controller that controls each part of the magnetic disk device 1. The MPU 60 controls the VCM 14 via the driver IC 20 and executes servo control for positioning 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 the storage destination of data transferred from the host 100, for example, 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, for example, read data. Also, the MPU 60 manages the area for recording data. The MPU 60 is connected to each part 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, etc.

[0024] The MPU60 includes 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 MPU60 executes the processing of each unit, for example, 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. on the firmware. Note that the MPU60 may include each unit, for example, 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. as circuits. 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 HDC50.

[0025] The read / write control unit 610 controls the read process of reading data from the disk 10 and the write process of writing data to the disk 10 according to commands from the host 100, etc. The read / write control unit 610 controls the VCM14 via the driver IC20, positions the head 15 at a predetermined position on the disk 10, and executes the read process or the write process. Hereinafter, the term "access" may be used in the sense of including recording or writing data to a predetermined area (write process), reading or reading data from a predetermined area (read process), and moving the head 15, etc. to a predetermined area.

[0026] The read / write control unit 610 performs a write process in a Conventional Magnetic Recording (CMR) format in which data is written, for example, 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) that is adjacent to this track (or cylinder) or this sector with a predetermined interval (gap) in the radial direction from a predetermined track (or cylinder) or a predetermined sector. "Adjacent track (or adjacent cylinder)" includes "a track (or cylinder) adjacent to the outer direction of a predetermined track (or cylinder)", "a track (or cylinder) adjacent to the inner direction of a predetermined track (or cylinder)", and "a plurality of tracks (or a plurality of cylinders) adjacent to the outer and inner directions of a predetermined track (or cylinder)". "Adjacent sector" includes "a sector adjacent to the outer direction of a predetermined sector", "a sector adjacent to the inner direction of a predetermined sector", and "a plurality of sectors adjacent to the outer and inner directions of a predetermined sector". Hereinafter, "writing data in the conventional recording format" may also be referred to as "conventional recording", "performing a conventional recording process", or simply "writing". The read / write control unit 610 performs random writing in which data is written randomly and sequential writing in which data is written sequentially.

[0027] Note that the read / write control unit 610 may perform a write process in a Shingled write Magnetic Recording (SMR) format or Shingled Write Recording (SWR) format in which, when writing a plurality of tracks (or a plurality of cylinders) sequentially, the track (or cylinder) to be written next is overwritten on a part in the radial direction of the track (or a plurality of cylinders) written immediately before. Hereinafter, "writing data in the shingled recording format" may also be referred to as "shingled recording", "performing a shingled recording process", or simply "writing".

[0028] The error detection unit 620 detects data, sectors, regions, etc. where an error has occurred. For example, the error detection unit 620 detects data that cannot be read (hereinafter, may also be referred to as read error data or error data) or sectors that cannot be read (hereinafter, may also be referred to as read error sectors or error sectors). The error data and error sectors may occur, for example, due to defects, misalignment of the head 15, and misalignment of adjacent tracks (or adjacent cylinders).

[0029] The error correction unit 630 recovers (corrects, remedies, or error-corrects) the error data or error sectors. The error correction unit 630 executes a read retry that reads the error data or error sectors multiple times. Also, the error correction unit 630 executes a process (hereinafter, may also be referred to as ECC process or error correction process) of correcting the error (mistake) of the error data or error sectors based on an Error Correction Code. The error correction unit 630 executes an ECC process (hereinafter, may also be referred to as sector ECC process) on this error data or this error sector based on the ECC (hereinafter, may also be referred to as sector ECC) corresponding to the error data or error sectors of a predetermined track (or a predetermined cylinder). The sector ECC process corresponds to error correction or error correction processing on a sector-by-sector basis.

[0030] The error correction unit 630 performs an ECC process (hereinafter, may also be referred to as a track ECC process) on this track (or a predetermined cylinder) or a part of this track (or a predetermined cylinder), for example, error data or error sectors of a plurality of data or a plurality of sectors arranged continuously in the circumferential direction in a predetermined track (or a predetermined cylinder), based on an ECC (hereinafter, may also be referred to as a track ECC) corresponding to a predetermined track (or a predetermined cylinder) or a part of a predetermined track (or a predetermined cylinder), for example, a plurality of data or a plurality of sectors arranged continuously in the circumferential direction in a predetermined track. The track ECC process corresponds to an error correction process or an error correction process in track units. Here, the track unit may include, in addition to the physical track unit, a region unit constituted by less than the physical track. For example, the error correction unit 630 performs track ECC processing on the error sectors of this track (or a predetermined cylinder) or a part of this track (or a predetermined cylinder) based on parity data or a parity sector corresponding to a predetermined track (or a predetermined cylinder) or a part of a predetermined track (or a predetermined cylinder). The error correction unit 630 records information related to the error data or error sectors (hereinafter, may also be 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 a 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 a predetermined track (or a predetermined cylinder), the parity sector management unit 640 calculates a 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). Also, when writing some sectors (or data) to a predetermined track (or a predetermined cylinder), the parity sector management unit 640 reads the track (or the predetermined cylinder) to which the some sectors (or data) are to be written, and performs an XOR operation on all sectors (or data) other than the parity sector of the track (or cylinder) in which the sectors (or data) corresponding to the some sectors (or data) in a predetermined recording area, for example, the volatile memory 70, etc. are replaced with the some sectors (or data) to calculate a parity sector, writes (or changes) all sectors other than the parity sector of the track (or cylinder) in which the some sectors (or data) are 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 predetermined data (hereinafter, may also be referred to as updated data), read at least one sector or track (cylinder) to which the updated data is to be written, replace the data corresponding to the updated data in this at least one sector or this track (cylinder) with the updated data, perform an XOR operation on all sectors (hereinafter, may also be referred to as an updated sector group) other than the parity sector of this at least one sector or this track (cylinder) (hereinafter, may also be referred to as an updated track (updated cylinder)) to calculate a parity sector (hereinafter, may also be referred to as an updated parity sector), and write the updated sector group and the updated parity sector to the same sector or track" may also be referred to as "read modify write". Hereinafter, for convenience of explanation, "performing an XOR operation on sectors other than the parity sector" 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 the data in a predetermined area, and writes the calculated parity sector to a predetermined area of the disk 10. The parity sector management unit 640 calculates a parity sector by performing an XOR operation on all sectors of a predetermined track (or a predetermined cylinder), and writes the calculated parity sector to this track (or this cylinder). Note that the parity sector management unit 640 may calculate a parity sector by performing an XOR operation on some sectors of a predetermined track (or a predetermined cylinder), and write the calculated parity sector to this track (or this cylinder). For example, the parity sector management unit 640 performs an XOR operation on all sectors (hereinafter, also referred to as valid sectors) other than the sectors that are set or registered as invalid sectors (hereinafter, also referred to as defect registration sectors) due to defects or the like occurring in a predetermined track (or a predetermined cylinder), and calculates a parity sector, and writes the calculated parity sector to this track (or this cylinder). The defect registration sectors correspond to sectors that are not used for data recording or the like, for example, error sectors. The valid sectors correspond to sectors that are used for data recording or the like. 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 a part of each track is a valid parity sector (hereinafter, also referred to as a valid parity sector) that can be used for error correction, for example, track ECC processing, or an invalid parity sector (hereinafter, also referred to as an invalid parity sector) that cannot be used for error correction, for example, track ECC processing.

[0035] The parity sector management unit 640 manages the parity sector obtained by performing an XOR operation on all valid sectors of a predetermined track as a valid parity sector. The parity sector management unit 640 records, as a table (hereinafter, may also be referred to as a management table) TB1, the parity sector of this track as a valid parity sector in a predetermined recording area, for example, the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The parity sector management unit 640 records, in a predetermined recording area, for example, the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, a track or cylinder (hereinafter, may also be referred to as a correctable track or a correctable cylinder) on which track ECC processing can be executed (or corrected) based on the valid parity sector, as the management table TB1.

[0036] The parity sector management unit 640 writes (or overwrites) at least one sector, for example, a valid sector (hereinafter may also be referred to as a rear sector), that is arranged continuously in the circumferential direction from the parity sector on a predetermined track, and manages the parity sector obtained by performing an XOR operation on all rear sectors, for example, valid sectors, as a valid parity sector. The parity sector management unit 640 records the management table TB1 as a valid parity sector of this track in a predetermined recording area, for example, the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The parity sector management unit 640 can execute (or correct) track ECC processing based on the valid parity sector on a predetermined track, and records the rear sectors that can execute (or correct) track ECC processing in a predetermined recording area, for example, the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, as the management table TB1. Further, when the parity sector management unit 640 includes a rear sector that can execute (or correct) track ECC processing based on the valid parity sector on a predetermined track, the parity sector management unit 640 records sectors other than the rear sectors that cannot execute (or correct) track ECC processing (hereinafter may also be referred to as front sectors) in a predetermined recording area, for example, the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, as the management table TB1.

[0037] The parity sector management unit 640 manages a parity sector as an invalid parity sector when the parity sector of a track in which a front sector, for example, an active sector (hereinafter, may also be referred to as a front sector) is written (overwritten) corresponds to the result of performing an XOR operation on all sectors of the track before the front sector is written. The parity sector management unit 640 records the parity sector of this track as a management table TB1 in a predetermined recording area, for example, the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, as an invalid parity sector. The parity sector management unit 640 records a track or cylinder for which track ECC processing cannot be executed (or corrected) (hereinafter, may also be referred to as an uncorrectable track or uncorrectable cylinder) in a predetermined recording area, for example, the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, as a management table TB1.

[0038] Hereinafter, "at least one sector capable of executing track ECC processing" may also be referred to as a "correctable sector or logical track". Also, "at least one sector for which track ECC cannot be executed (or corrected)" may also be referred to as an "uncorrectable sector". The areas capable of executing (or correcting) track ECC such as "correctable tracks, correctable cylinders, and correctable sectors" are collectively referred to as "correctable areas", and the areas for which track ECC processing cannot be executed 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 area and the uncorrectable area of the disk 10 in the management table TB1. For example, if the parity sector management unit 640 indicates the correctable area and the uncorrectable area up to track 0, track 1, track 2, track 3, track 4, track 5, track 6, and track 7 in the management table TB1 as 3Eh (binary: 00111110) in hexadecimal, it determines that tracks 2 to 6 are the correctable area. In this case, in the management table TB1, it is indicated by 1-bit information for each track, where "1" indicates the correctable area and "0" indicates the uncorrectable area. The parity sector management unit 640 refers to the management table TB1 when performing a write operation by executing a write process via the read / write control unit 610, and when performing a read operation by executing a read process 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 to execute a write where error correction at the track unit from the host 100 or the like becomes uncorrectable, such as a sequential write up to the middle of 1 track, or a random write. The parity sector management unit 640 updates or changes the correctable area and the uncorrectable area each time it executes a random write. When the parity sector management unit 640 performs a random write to a part of the correctable area, it changes this correctable area to an uncorrectable area. For example, when the parity sector management unit 640 performs a random write to a part of the correctable track, it changes this correctable track to an uncorrectable track. In other words, when the parity sector management unit 640 performs a random write of less than 1 track of data to the correctable track, it changes this correctable track to an uncorrectable track.

[0041] The parity sector management unit 640 manages, in a table (hereinafter sometimes referred to as the random write prohibition table) TB2, an area that causes a read error when changed from a correctable area to a non-correctable area (hereinafter sometimes referred to as the random write prohibition area). In other words, the parity sector management unit 640 has a random write prohibition table TB2 for managing the random write prohibition area.

[0042] For example, the parity sector management unit 640 manages, in the random write prohibition table TB2, a track that causes a read error when changed from a correctable track to a non-correctable track (hereinafter sometimes referred to as the random write prohibition track). In other words, the parity sector management unit 640 has a random write prohibition table TB2 for managing the random write prohibition track.

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

[0044] The off-track management unit 650 manages the area target position of the target area of the disk 10 (hereinafter sometimes referred to as the target area), for example, the DOL (Drift of level) (or WOS (Write off track Slice)), which is the upper limit value of the deviation amount in the radial direction from the center of a predetermined area. The off-track management unit 650 manages the track target position of the target track of the disk 10 (hereinafter sometimes referred to as the target track), for example, the DOL (or WOS), which is the upper limit value of the deviation amount in the radial direction from the track center (hereinafter sometimes 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 regions respectively. In other words, the off-track management unit 650 sets a plurality of DOLs for the directions towards a plurality of regions 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 the directions towards 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 the directions towards a plurality of sectors respectively.

[0046] The off-track management unit 650 sets a plurality of DOLs for a predetermined region (the direction towards the predetermined region). The off-track management unit 650 sets a plurality of DOLs for a plurality of regions obtained by dividing the predetermined region (the directions towards the plurality of regions obtained by dividing the predetermined region) respectively. For example, the off-track management unit 650 sets a plurality of DOLs for a predetermined track (the direction towards the predetermined track). The off-track management unit 650 sets a plurality of DOLs for a plurality of regions obtained by dividing the predetermined track (the directions towards the plurality of regions obtained by dividing the predetermined track) respectively.

[0047] The off-track management unit 650 sets different DOLs for this radial region (the direction towards this radial region) of the target region according to whether the region located in the radial direction of the target region (hereinafter sometimes referred to as the radial region) is a correctable region (hereinafter sometimes referred to as the correctable radial region) or a non-correctable region (hereinafter sometimes referred to as the non-correctable radial region). In other words, the off-track management unit 650 sets different values for the DOL for the correctable radial region and the DOL for the non-correctable radial region in the target region.

[0048] The correctable radius area can reduce the occurrence rate of uncorrectable errors, which are errors that cannot be read more than the uncorrectable radius area when data is written to the target area. Therefore, the target position of the area in the radial direction of the target area with respect to the correctable radius area, for example, the distance or approach amount (hereinafter, squeeze) from the center in the radial direction of the target area, can be larger than the squeeze with respect to the uncorrectable radius area. In other words, the squeeze margin for the correctable radius area can be larger than the squeeze margin for the uncorrectable radius area.

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

[0050] The off-track management unit 650 sets different DOLs for this adjacent area (the direction towards this adjacent area) of the target area according to whether the area adjacent to the target area in the radial direction (hereinafter, may also be referred to as an adjacent area) is a correctable area (hereinafter, may also be referred to as a correctable adjacent area) or an uncorrectable area (hereinafter, may also be 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 have a lower rate of uncorrectable errors than the uncorrectable adjacent area when writing data to the target area. Therefore, the squeeze on the correctable adjacent area can be greater than the squeeze on the uncorrectable adjacent area. In other words, the squeeze margin for the correctable adjacent area can be greater than the squeeze margin for the uncorrectable adjacent area.

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

[0053] The off-track management unit 650 sets the DOL for this radial track of the target track to different DOLs according to whether the track located in the radial direction of the target track (hereinafter, may also be referred to as the radial track) is a correctable track (hereinafter, may also be referred to as the correctable radial track) or an uncorrectable track (hereinafter, may also be referred to as the uncorrectable radial track). In other words, in the target area, 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.

[0054] The correctable radial track can have a lower rate of uncorrectable errors than the uncorrectable radial track when writing data to the target area. Therefore, the squeeze on the correctable radial track can be greater than the squeeze on the uncorrectable radial track. In other words, the squeeze margin for the correctable radial track can be greater than the squeeze margin for the uncorrectable radial track.

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

[0056] The off-track management unit 650 sets the DOL for this adjacent track (the direction towards this adjacent track) of the target track according to whether the track adjacent to the target track in the radial direction (hereinafter, may also be referred to as the adjacent track) is a correctable track (hereinafter, may also be referred to as the correctable adjacent track) or an uncorrectable track (hereinafter, may also be 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] When writing data to the target area, the correctable adjacent track can have a lower occurrence rate of unreadable errors than the uncorrectable adjacent track. 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] When the off-track management unit 650 determines that the adjacent track of the target track is a correctable adjacent track, it sets the DOL for this adjacent track (the direction towards this adjacent track) of the target track to the high DOL. When the off-track management unit 650 determines that the adjacent track of the target track is an uncorrectable adjacent track, it sets the DOL for this adjacent track (the direction towards this adjacent track) of the target track to the low DOL.

[0059] The off-track management unit 650 is located in the radial direction of at least one sector (hereinafter, may also be referred to as the target sector) of the target track, and sets different DOLs for the DOL of this target sector with respect to this radial sector (the direction towards this radial sector) according to whether at least one sector arranged in the circumferential direction (hereinafter, may also be referred to as the radial sector) is a correctable sector (hereinafter, may also be referred to as the correctable radial sector) or a non-correctable sector (hereinafter, may also be referred to as the non-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 non-correctable radial sector in the target area.

[0060] The correctable radial sector can reduce the occurrence rate of un-recoverable errors compared to the non-correctable radial sector when writing data to the target area. Therefore, the squeeze for the correctable radial sector can be larger than the squeeze for the non-correctable radial sector. In other words, the squeeze margin for the correctable radial sector can be larger than the squeeze margin for the non-correctable radial sector.

[0061] When 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 target sector with respect to this radial sector (the direction towards this radial sector) to a high DOL. When the off-track management unit 650 determines that the radial sector of the target track is a non-correctable radial sector, it sets the DOL for this target sector with respect to this radial sector (the direction towards this radial sector) to a low DOL.

[0062] The off-track management unit 650 sets the DOL for this adjacent sector (the direction towards this adjacent sector) of the target sector according to whether at least one sector adjacent in the radial direction of the target sector and arranged in the circumferential direction (hereinafter, may also be referred to as an adjacent sector) is a correctable sector (hereinafter, may also be referred to as a correctable adjacent sector) or a non-correctable sector (hereinafter, may also be referred to as a non-correctable 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 non-correctable adjacent sector in the target area.

[0063] The correctable adjacent sector can have a lower occurrence rate of un-recoverable errors than the non-correctable adjacent sector when writing data to the target area. Therefore, the squeeze for the correctable adjacent sector can be larger than the squeeze for the non-correctable adjacent sector. In other words, the squeeze margin for the correctable adjacent sector can be larger than the squeeze margin for the non-correctable adjacent sector.

[0064] When 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 (the direction towards this adjacent sector) of the target sector to a high DOL. When the off-track management unit 650 determines that the adjacent sector of the target track is a non-correctable adjacent sector, it sets the DOL for this adjacent sector (the direction towards this adjacent sector) of the target sector to a low DOL.

[0065] The off-track management unit 650 manages a threshold value of the off-track amount (hereinafter, may also be referred to as an un-recoverable threshold) for a radial track, for example, this radial track (the direction towards the radial track) where an error occurs that cannot be read without performing track ECC on an adjacent track, for example, this adjacent track (the direction towards the adjacent track). The un-recoverable threshold is larger than the DOL. The off-track management unit 650 has a plurality of un-recoverable thresholds.

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

[0067] The off-track management unit 650 sets an unrecoverable threshold (hereinafter, may also be referred to as a low unrecoverable threshold) that is smaller than the high DOL set for the radius track (direction toward the radius track), for example, the adjacent track (direction toward the adjacent track) in the target track and larger than the low DOL. The low unrecoverable threshold corresponds to the unrecoverable threshold of the radius track or radius sector where the low DOL is set, for example, the adjacent track or adjacent sector where the low DOL is set. Incidentally, the unrecoverable threshold of the radius track or radius sector where the high DOL is set, for example, the adjacent track or adjacent sector where the 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 the radius sector (direction toward the radius sector) where the high DOL is set in the target sector, for example, the adjacent sector (direction toward the adjacent sector).

[0069] When the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radius track (the direction toward the predetermined radius track), for example, a predetermined adjacent track (the direction toward the predetermined adjacent track) on the target track is greater than the low unrecoverable threshold corresponding to this radius track (the direction toward this radius track), for example, this adjacent track (the direction toward this adjacent track), the off-track management unit 650 does not permit write processing on this radius track. For example, when the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent track (the direction toward the correctable adjacent track) on the target track is greater than the low unrecoverable threshold corresponding to this correctable adjacent track (the direction toward this correctable adjacent track), the off-track management unit 650 does not permit a write, such as a sequential write up to the middle of one track or a random write, for which error correction on a per-track basis to a part of this correctable adjacent track becomes impossible. In other words, when the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent track (the direction toward the correctable adjacent track) on the target track is greater than the low unrecoverable threshold corresponding to this correctable adjacent track (the direction toward this correctable adjacent track), the off-track management unit 650 does not permit a random write of data less than one track to this correctable adjacent track.

[0070] If the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radius track (the direction toward the predetermined radius track), for example, a predetermined adjacent track (the direction toward the predetermined adjacent track) in the target track is greater than the low unrecoverable threshold value corresponding to this adjacent track (the direction toward this adjacent track), this radius track may be managed in the random write prohibition table TB2. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent track (the direction toward the correctable adjacent track) in the target track is greater than the low unrecoverable threshold value corresponding to this correctable adjacent track (the direction toward this correctable adjacent track), this correctable adjacent track may be managed in the random write prohibition table TB2.

[0071] If the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radius track (the direction toward the predetermined radius track), for example, a predetermined adjacent track (the direction toward the predetermined adjacent track) in the target track is greater than the low unrecoverable threshold value corresponding to this adjacent track (the direction toward this adjacent track), a read-modify-write may be executed on this radius track, for example, this adjacent track. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent track (the direction toward the correctable adjacent track) in the target track is greater than the low unrecoverable threshold value corresponding to this correctable adjacent track (the direction toward this correctable adjacent track), a read-modify-write may be executed on this correctable radius track, for example, this correctable adjacent track.

[0072] If the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radius sector (the direction toward the predetermined radius sector), for example, a predetermined adjacent sector (the direction toward the predetermined adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this radius sector (the direction toward this radius sector), for example, this adjacent sector (the direction toward this adjacent sector), the off-track management unit 650 does not permit writing to this radius sector. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent sector (the direction toward the correctable adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (the direction toward this correctable adjacent sector), the off-track management unit 650 does not permit writing such as sequential writing up to the middle of one track or random writing that makes track unit error correction to a part of this correctable adjacent sector impossible. In other words, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent sector (the direction toward the correctable adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (the direction toward this correctable adjacent sector), the off-track management unit 650 does not permit random writing of data less than the amount of data writable to the entire area of this correctable adjacent sector to this correctable adjacent sector.

[0073] If the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radial sector (the direction toward the predetermined radial sector), for example, a predetermined adjacent sector (the direction toward the predetermined adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this radial sector (the direction toward this radial sector), for example, this adjacent sector, this radial sector may be managed in the random write prohibition table TB2. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent sector (the direction toward the correctable adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (the direction toward this correctable adjacent sector), this correctable adjacent sector may be managed in the random write prohibition table TB2.

[0074] If the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a predetermined radial sector (the direction toward the predetermined radial sector), for example, a predetermined adjacent sector (the direction toward the predetermined adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this radial sector (the direction toward this radial sector), for example, this adjacent sector, read-modify-write may be executed on this radial sector, for example, this adjacent sector. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) with respect to a correctable adjacent sector (the direction toward the correctable adjacent sector) in the target sector is greater than the low unrecoverable threshold corresponding to this correctable adjacent sector (the direction toward this correctable adjacent sector), read-modify-write may be executed on this correctable radial sector, for example, this correctable adjacent sector.

[0075] FIG. 3 is a schematic diagram showing an example of track ECC processing. In FIG. 3, in the circumferential direction (circumferential position), the direction in which the head 15 advances with respect to the disk 10, that is, the direction of reading / writing (hereinafter, may also be referred to as the advancing direction) is shown. In FIG. 3, the advancing direction is the backward direction (or, may also be simply referred to as backward). Note that the advancing direction may be the forward direction (or, may also be simply referred to as forward). FIG. 3 shows track TRn-1, track TRn, and track TRn+1. In FIG. 3, tracks TRn-1 to TRn+1 are arranged in the order of description from the outer direction to the inner direction. Track TRn is adjacent to the outer side of track TRn-1, and track TRn+1 is adjacent to the outer side of track TRn. 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 continuously written in the order of description in the advancing direction. Parity sector Pn-1 corresponds to the result of performing an XOR operation on sectors Sc(n-1)0 to Sc(n-1)11. That is, 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 continuously written in the order of description in the advancing direction. Parity sector Pn corresponds to the result of performing an XOR operation on sectors Scn0 to Scn11. That is, 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 continuously in the order described in the advancing direction. Parity sector Pn+1 corresponds to the result of performing an XOR operation on sectors Sc(n+1)0 to Sc(n+1)11. That is, parity sector Pn+1 is a valid parity sector. Track TRn+1 corresponds to a correctable track.

[0076] In the example shown in FIG. 3, when the MPU60 detects an error sector within sectors Scn0 to Scn11 of track TRn and cannot correct this error sector by read retry and sector ECC processing, the MPU60 executes track ECC processing on this error sector based on parity sector Pn and corrects this error sector.

[0077] FIG. 4 is a schematic diagram showing an example of track ECC processing. FIG. 4 corresponds to FIG. 3. In the example shown in FIG. 4, the MPU60 randomly overwrites sectors Scn5, Scn6, and Scn7 of track TRn. The MPU60 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 non-volatile memory 80, or the buffer memory 90, as management table TB1. When the MPU60 detects an error sector within sectors Scn0 to Scn11 of track TRn and cannot correct this error sector by read retry and sector ECC processing, the MPU60 cannot execute track ECC processing on the error sector of this track TRn.

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

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

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

[0081] In the example shown in FIG. 5, MPU 60 sets the DOL (inward DOL) for the front sectors Scn0 to Scn7 of track TRn (in the direction towards 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, MPU 60 changes the DOL (inward DOL) for the front sectors Scn0 to Scn7 of track TRn (in the direction towards 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] In the example shown in FIG. 5, the MPU 60 sets the DOL (outer DOL) with respect to the front sectors Scn0 to Scn7 of the track TRn (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 the track TRn+1. In other words, the MPU 60 changes the DOL (outer DOL) with respect to the front sectors Scn0 to Scn7 of the track TRn (the direction 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 the track TRn−1.

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

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

[0085] FIG. 7 is a schematic diagram showing an example of the DOL according to the present embodiment. FIG. 7 shows tracks TRk-1, TRk, and TRk+1. In FIG. 7, the tracks TRk-1 to TRk+1 are arranged in order from the outer direction to the inner direction. The track TRk is adjacent to the inner side of the track TRk-1, and the track TRk+1 is adjacent to the outer side of the track TRk. In FIG. 7, the track TRk-1 corresponds to an uncorrectable adjacent track, and the track TRk+1 corresponds to a correctable adjacent track. FIG. 7 shows the track center TRCk of the track TRk. FIG. 7 shows the circumferential position CPS, the circumferential position CP0, and the circumferential position CPR. The circumferential position CP0 is located rearward of the circumferential position CPS, and the circumferential position CPR is located rearward of the circumferential position CP0. FIG. 7 shows the path HR71 of the head 15 from the circumferential position CPS to the circumferential position CP0 in the track TRk and the path HR72 of the head 15 from the circumferential position CP0 to the circumferential position CPR in the track TRk.

[0086] In the example shown in FIG. 7, in track TRk, MPU60 sets the DOL (outer DOL) with respect to track TRk−1 (the direction toward track TRk−1) to low DOL D1, and sets the DOL (inner DOL) with respect to track TRk+1 (the direction toward track TRk+1) to high DOL D2.

[0087] In the example shown in FIG. 7, in track TRk, MPU60 moves head 15 from circumferential position CPS to circumferential position CP0 along path HR71. When MPU60 determines that the off-track amount (squeeze) in the direction toward track TRk−1 (outer direction) at circumferential position CP0 is greater than DOL D1, MPU60 stops the write process (or write operation) and repositions head 15 at track center TRCk. When MPU60 stops the write process (or write operation) and positions head 15 at track center TRCk in track TRk, MPU60 moves head 15 from circumferential position CP0 to circumferential position CPR along path HR72.

[0088] FIG. 8 is a schematic diagram showing an example of DOL according to the present embodiment. In FIG. 8, a track TRk-1 and a track TRk are shown. In FIG. 8, the track TRk-1 has a front sector FSck-1 and a rear sector RSck-1 adjacent to the rear of the front sector FSck-1. The front sector FSck-1 corresponds to a non-correctable adjacent sector, and the rear sector RSck-1 corresponds to a correctable adjacent sector. In FIG. 8, the track TRk has a front sector FSck and a rear sector RSck adjacent to the rear of the front sector FSck. FIG. 8 shows a circumferential position CPS, a circumferential position CP1, and a circumferential position CPR. The circumferential position CP1 is located rearward of the circumferential position CPS, and the circumferential position CPR is located rearward of the circumferential position CP1. The front sector FSck-1 corresponds to the region from the circumferential position CPS to the circumferential position CP1 on the track TRk-1. The rear sector RSck-1 corresponds to the region from the circumferential position CP1 to the circumferential position CPR on the track TRk-1. The front sector FSck corresponds to the region from the circumferential position CPS to the circumferential position CP1 on the track TRk. The rear sector RSck corresponds to the region from the circumferential position CP1 to the circumferential position CPR on the track TRk. FIG. 8 shows a 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) to a low DOL D1 and the DOL for the rear sector RSck-1 (the outward DOL in the rear sector RSck) to a high DOL D2 on the track TRk.

[0090] In the example shown in FIG. 8, the MPU 60 moves the head 15 from the circumferential position CPS to the circumferential position CPR along the path HR81 on the track TRk. In the region from the circumferential position CPS to the circumferential position CP1 of the track TRk, when it is determined that the amount of off-track (squeeze) in the direction (outward direction) toward the front sector FSck-1 is equal to or less than DOL D1, the write process (or write operation) continues without stopping. In the region from the circumferential position CP1 to the circumferential position CPR of the track TRk, when it is determined that the amount of off-track (squeeze) in the direction (outward direction) toward the rear sector FSck-1 is equal to or less than DOL D2, the write process (or write operation) continues without stopping. Also, in the region from the circumferential position CP1 to the circumferential position CPR of the track TRk, when it is determined that the amount of off-track (squeeze) in the direction (outward direction) toward the rear sector FSck-1 is greater than DOL D1 and 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 DOL according to the present embodiment. FIG. 9 shows the track TRk-1, the track TRk, and the track TRk+1. FIG. 9 shows the circumferential position CPS, the circumferential position CP2, and the circumferential position CPR. The circumferential position CP2 is located rearward of the circumferential position CPS, and the circumferential position CPR is located rearward of the circumferential position CP2. FIG. 9 shows the path HR91 of the head 15 from the circumferential position CPS to the circumferential position CP2 on the track TRk and the path HR92 of the head 15 from the circumferential position CP2 to the circumferential position CPR on the track TRk.

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

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

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

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

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

[0097] When 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 the low unrecoverable threshold or equal to or less than the low unrecoverable threshold (B1104). For example, when it is determined that the target sector or the 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 the target track in the adjacent sector or the adjacent track of the target sector or the target track is greater than the low unrecoverable threshold or equal to or less than the low unrecoverable threshold.

[0098] If it is determined that the squeeze in the direction towards the target sector or the target track in this adjacent sector or this adjacent track is below the low unrecoverable threshold (NO in B1104), the MPU60 proceeds to the process of B1103. If it is determined that the squeeze in the direction towards the target sector or the target track in this adjacent sector or this adjacent track is greater than the low unrecoverable threshold (YES in B1104), the MPU60 executes a read-modify-write without permitting a track unit error correction write, such as a sequential write up to the middle of one track or a random write, to the target sector or the target track (B1105) and ends the process. For example, if it is determined that the squeeze in the direction towards the target sector or the target track in this adjacent sector or this adjacent track is greater than the low unrecoverable threshold, the MPU60 executes a read-modify-write without permitting a random write to the target sector or the target track and ends the process. For example, if it is determined that the squeeze in the direction towards the target sector or the target track in this adjacent sector or this adjacent track is greater than the low unrecoverable threshold, the MPU60 reads the target sector or the target track, writes an updated sector or an updated track in which the corresponding data of the target sector or the target track is replaced with updated data, calculates an updated parity sector by performing an XOR operation on all the updated sector groups of the updated sector or the updated track, writes the updated sector group and the updated parity sector to the same target sector or the target track, and ends the process.

[0099] According to this embodiment, the magnetic disk device 1 manages correctable areas (correctable tracks or correctable sectors) and non-correctable areas (non-correctable tracks or non-correctable sectors) in a management table TB1. The magnetic disk device 1 manages random write prohibited tracks or random write prohibited sectors in a random write prohibited table TB2. When the magnetic disk device 1 determines that an adjacent area of a target area is a correctable adjacent area, it sets the DOL for the direction toward this adjacent area of the target area to a high DOL. When the magnetic disk device 1 determines that an adjacent area of a target area is a non-correctable adjacent area, it sets the DOL for the direction toward this adjacent area of the target area to a low DOL. The magnetic disk device 1 sets a low unrecoverable threshold for an adjacent area where a high DOL is set in the target area. When the magnetic disk device 1 determines that an adjacent area of a target area is a correctable area and determines that the squeeze in the direction toward this adjacent area in this target area is greater than the low unrecoverable threshold, it does not permit a write for which error correction per track in this adjacent area becomes non-correctable, for example, a sequential write up to the middle of one track, or a random write, and instead executes a read-modify-write for this adjacent area. Therefore, the magnetic disk device 1 can improve the recording density. Also, the magnetic disk device 1 can efficiently execute write processing. Thus, the magnetic disk device 1 can improve the reliability.

[0100] Next, a magnetic disk device according to a modification of the above-described embodiment will be described. In the modification, the same reference numerals are given to the same parts as in the above-described embodiment, and detailed descriptions thereof are omitted. (Modification 1) The magnetic disk device 1 according to Modification 1 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 Modification 1. The MPU60 further includes a write count unit 660 and a refresh control unit 670. The MPU60 executes the processing of each unit, for example, the read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, the off-track management unit 650, the write count unit 660, and the refresh control unit 670, etc. on the firmware. Note that the MPU60 may include each unit, for example, the read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, the off-track management unit 650, the write count unit 660, and the refresh control unit 670, etc. as circuits. The read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, the off-track management unit 650, the write count unit 660, and the refresh control unit 670, etc. may be included in the R / W channel 40 or the HDC 50. Note that the MPU60 may not include the off-track management unit 650.

[0102] The write count unit 660 counts the number of times data has been written (hereinafter, may also be referred to as the write count or write times). The write count (or write times) corresponds to, for example, the number of times affected by leakage magnetic flux or the like from the head 15 (Adjacent Track Interference: ATI) when writing data. The write count unit 660 may hold the write count as a management table TB1 in a predetermined recording area, such as the disk 10 (system area 10b thereof), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, etc.

[0103] The write count unit 660 counts the write count of data written to an area (hereinafter, may also be referred to as the adjacent area) arranged within a predetermined range in the radial direction from the target area. For example, the write count unit 660 counts the write count of data written to an adjacent area arranged within the range affected by ATI from the target area.

[0104] When the write count unit 660 writes data to an adjacent area of the target area, it increments (increases) the write count corresponding to this target area by a predetermined value. For example, when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it increments (increases) the write count corresponding to this target area by a predetermined value. For example, when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it increments (increases) the write count corresponding to this target area by 1.

[0105] The write count unit 660 counts the number of write times when data is written to an area adjacent to the target area in the radial direction (hereinafter, may also be referred to as an adjacent area). For example, the write count unit 660 counts the number of write times when data is written to an adjacent area arranged within the range where it receives ATI from the target area.

[0106] When the write count unit 660 writes data to an adjacent area of the target area, it increments (increases) the write count corresponding to the target area by a predetermined value. For example, when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it increments (increases) the write count corresponding to the target area by a predetermined value. For example, when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it increments (increases) the write count corresponding to the target area by 1. Note that when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it may increment the write count corresponding to the target area by a value according to the squeeze amount. For example, when the write count unit 660 writes data to adjacent areas in the outer and inner directions of the target area, it may increment the write count corresponding to the target area by a value greater than 1 according to the squeeze amount.

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

[0108] When the write count unit 660 writes data to an adjacent track or adjacent sector of the target track or target sector, it increments (increments) the write count corresponding to the target track or target sector by a predetermined value. For example, when the write count unit 660 writes data to adjacent tracks in the outer and inner directions of the target track or target sector, it increments (increments) the write count corresponding to the target track or target sector by a predetermined value. For example, when the write count unit 660 writes data to adjacent tracks or adjacent sectors in the outer and inner directions of the target track or target sector, it increments the write count corresponding to the target track or target sector by 1.

[0109] The refresh control unit 670 executes a process of rewriting the same data as the data written in a predetermined area, for example, a predetermined track, to this area, for example, the predetermined track (hereinafter, may also be referred to as a refresh process). When the refresh control unit 670 determines that the write count corresponding to a predetermined area exceeds a threshold value (hereinafter, may also be referred to as a refresh threshold value) corresponding to the write count for executing the refresh process, it executes the refresh process on this area. When the refresh control unit 670 determines that the write count corresponding to a predetermined area exceeds the refresh threshold value, it executes the refresh process on a part of this area. In other words, when the refresh control unit 670 determines that the write count corresponding to a predetermined area exceeds the refresh threshold value, it executes the refresh process on data within the capacity set in advance as a format in this area. When the refresh control unit 670 executes the refresh process on a predetermined area, it resets the write count corresponding to this area, for example, sets it to 0.

[0110] When the refresh control unit 670 determines that the number of write operations corresponding to the target track or target sector exceeds the refresh threshold corresponding to this target track or this target sector, it executes a refresh process on this target track or this target sector. When the refresh control unit 670 determines that the number of write operations corresponding to the target track or target sector exceeds the refresh threshold corresponding to this target track or this target sector, it executes a refresh process on a part of this target track or this target sector. In other words, when the refresh control unit 670 determines that the number of write operations corresponding to the target track or target sector exceeds the threshold corresponding to this target track or this target sector, it executes a refresh process on data within the capacity set in advance as a format for this target track or this target sector.

[0111] The refresh control unit 670 changes (or sets) the refresh threshold. The refresh control unit 670 has a plurality of refresh thresholds. The refresh control unit 670 changes (or sets) the refresh threshold for 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 for the uncorrectable area to a refresh threshold lower than the current refresh threshold among the plurality of refresh thresholds.

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

[0113] The refresh control unit 670 has two refresh thresholds, for example, a high refresh threshold and a low refresh threshold. Note that 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 smaller than the high refresh threshold. The refresh control unit 670 sets the refresh threshold for the correctable area to the high refresh threshold and sets the refresh threshold for the uncorrectable area to the low refresh threshold. The refresh control unit 670 performs the refresh process less frequently in the uncorrectable area where the low refresh threshold is set than in the correctable area where the high refresh threshold is set. In other words, the refresh control unit 670 performs the refresh process more frequently in the correctable area where the high refresh threshold is set than in the uncorrectable area where the low refresh threshold is set. Here, the frequency corresponds to, for example, the number of times the process is executed within a specific time.

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

[0115] For example, the refresh control unit 670 sets the refresh threshold for the correctable sector (or logical track) to the high refresh threshold and sets the refresh threshold for the uncorrectable sector to the low refresh threshold.

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

[0117] For example, when the refresh control unit 670 maintains the performance of a plurality of heads 15 with respect to a predetermined cylinder (track) constant, it sets the refresh threshold of the cylinder (track) corresponding to at least one head 15 among these plurality of 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 among the plurality of heads 15 to a low refresh threshold.

[0118] For example, the refresh control unit 670 maintains the performance of four heads 15 for a predetermined cylinder (track) at a constant level. When the refresh thresholds of four cylinders (tracks) corresponding to the four heads 15 are 300 times, 300 times, 300 times, and 300 times respectively, the refresh thresholds corresponding to two of the four heads 15 for the two correctable cylinders (correctable tracks) they respectively correspond to are each increased by 100 times. In this case, the refresh control unit 670 reduces the refresh thresholds corresponding to the two cylinders (tracks) corresponding to the remaining two heads 15 out of the four heads 15, which are not the two heads 15 corresponding to the correctable cylinders (correctable tracks), by 100 times each. In this case, while maintaining the performance of the four heads 15, the TPI of the two heads 15 not corresponding to the correctable cylinders (correctable tracks) can be improved. Note that when the remaining two heads 15 out of the four heads 15, which are not the two heads 15 corresponding to the correctable cylinders (correctable tracks), correspond to writes where error correction per track becomes impossible, for example, sequential writes up to the middle of one track, or two uncorrectable cylinders (uncorrectable tracks) written randomly, the refresh control unit 670 maintains the refresh thresholds corresponding to the two cylinders (tracks) corresponding to these two heads 15 at 300 times and 300 times respectively. Here, "randomly writing to a predetermined track, for example, a correctable track (correctable cylinder)" corresponds to "writing in units smaller than the unit for which error correction per track is performed". Therefore, by randomly writing to a predetermined track, for example, a correctable track (correctable cylinder), error correction per track in this track may become impossible.When the number of write operations of a correctable cylinder (correctable track) is equal to or greater than the refresh threshold of a non-correctable cylinder (non-correctable track), when a random write is performed on the correctable cylinder (correctable track), this correctable cylinder (this correctable track) becomes a non-correctable track. Therefore, instead of permitting a random write on the correctable cylinder (correctable track), a read-modify-write is executed on the correctable cylinder (correctable track) to maintain the correctable track.

[0119] FIG. 13 is a schematic diagram showing an example of the refresh thresholds LTH and HTH according to Modification 1. In FIG. 13, the horizontal axis represents the number of write operations (times), and the vertical axis represents the Unrecoverable Error Rate. In the vertical axis of FIG. 13, the Unrecoverable Error Rate increases as it goes in the direction of the tip of the arrow, and decreases as it goes in the direction opposite to the tip of the arrow. In the horizontal axis of FIG. 13, the number of write operations increases as it goes in the direction of the tip of the arrow, and decreases as it goes in the direction opposite to the tip of the arrow. The horizontal axis of FIG. 13 shows the low refresh threshold LTH and the high refresh threshold HTH. FIG. 13 shows a change in the Unrecoverable Error Rate corresponding to the non-correctable region (hereinafter sometimes referred to as the change in the Unrecoverable Error Rate) ERL3 and a change in the Unrecoverable Error Rate corresponding to the correctable region (hereinafter sometimes referred to as the change in the Unrecoverable Error Rate) ERL4. As shown in the change in the Unrecoverable Error Rate ERL3 and the change in the Unrecoverable Error Rate ERL4 in FIG. 13, in the correctable region, the Unrecoverable Error Rate with respect to the number of write operations is lower than that in the non-correctable region.

[0120] In the example shown in FIG. 13, the MPU 60 sets the refresh threshold of the correctable area to the high refresh threshold and sets the refresh threshold of the uncorrectable area to the low refresh threshold. The MPU 60 sets the TPI of the head 15 corresponding to the uncorrectable area to a high TPI. When the MPU 60 determines that the number of write times corresponding to the correctable area exceeds the high refresh threshold HTH, the MPU 60 executes a refresh process on the correctable area. When the MPU 60 determines that the number of write times corresponding to the uncorrectable area exceeds the low refresh threshold LTH, the MPU 60 executes a refresh process on the uncorrectable area. The MPU 60 executes the 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 a refresh threshold according to the present embodiment. The MPU 60 determines whether a predetermined area is a correctable area or not (B1401). In other words, the MPU 60 determines whether a 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. When 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 process. 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] When it is determined that the specified area is a non-correctable area (NO in B1401), the MPU60 sets the refresh threshold of this non-correctable area to the low refresh threshold (B1403) and ends the process. In other words, the MPU60 sets the refresh threshold of this non-correctable track (or this non-correctable cylinder) to the low refresh threshold. The MPU60 sets the refresh threshold of this non-correctable sector to the low refresh threshold.

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

[0124] When it is determined that the number of writes in the correctable area is greater than the low refresh threshold (YES in B1502), the MPU60 executes a read-modify-write (B1504) without permitting a write that makes error correction of a track unit in the correctable area impossible, such as a sequential write up to the middle of one track or a random write, and ends the process. For example, when it is determined that the number of writes in a correctable track (or correctable cylinder) is greater than the low refresh threshold, the MPU60 executes a read-modify-write without permitting a random write to the correctable track (or correctable cylinder). For example, when it is determined that the number of writes in a correctable track (or correctable cylinder) is greater than the low refresh threshold, the MPU60 reads the correctable track, writes an updated track (or updated cylinder) in which the data instructed to be written by a write command is swapped with the corresponding data in the correctable track (or correctable cylinder), calculates an updated parity sector by performing an XOR operation on all the updated sector groups of the updated track (or updated cylinder), writes the updated sector group and the updated parity sector to the same track or cylinder, and ends the process.

[0125] According to Modification Example 1, the magnetic disk device 1 changes the refresh threshold corresponding to each cylinder on the surface of each of the plurality of disks 10 corresponding to each of the plurality of 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 of the correctable area to the high refresh threshold and sets the refresh threshold of the uncorrectable area to the low refresh threshold. The magnetic disk device 1 has a lower frequency of executing the refresh process in the uncorrectable area set to the low refresh threshold than the frequency of executing the refresh process in the correctable area set to the high refresh threshold. When the number of writes in this correctable area is greater than the low refresh threshold when writing data to the correctable area, the magnetic disk device 1 executes a read-modify-write on this correctable area. Therefore, the magnetic disk device 1 can improve the TPI. Accordingly, the magnetic disk device 1 can improve the recording density.

[0126] (Modification Example 2) The magnetic disk device 1 according to Modification Example 2 differs from the magnetic disk devices 1 according to the above-described embodiment and Modification Example 1 in that it evacuates data of a track for which track ECC cannot be executed.

[0127] FIG. 16 is a block diagram showing the configuration of the magnetic disk device 1 according to Modification Example 2. The MPU 60 further has a data evacuation unit 680. The MPU 60 executes processes of each unit, for example, 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, a write count unit 660, a refresh control unit 670, and a data evacuation unit 680, etc. on firmware. Note that the MPU 60 may have each unit, for example, 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, a write count unit 660, a refresh control unit 670, and a data evacuation unit 680, etc. as circuits. The read / write control unit 610, the error detection unit 620, the error correction unit 630, the parity sector management unit 640, the off-track management unit 650, the write count unit 660, the refresh control unit 670, and the data evacuation unit 680, etc. may be included in the R / W channel 40 or the HDC 50. Note that the MPU 60 may not include at least one of the off-track management unit 650, the write count unit 660, and the refresh control unit 670.

[0128] The data backup unit 680 records the data instructed by a command received from the host 100 or the like in a recording area different from the recording area instructed by this command (hereinafter, may also be referred to as another recording area), for example, on the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The data backup unit 680 temporarily records the data instructed by a command received from the host 100 or the like in another recording area, for example, on 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 "backing up" or "executing a backup process".

[0129] When the data backup unit 680 receives a write command (hereinafter, may also be referred to as a prohibited area write command) to a random write prohibited area, for example, a random write prohibited track or a random write prohibited sector, from the host 100 or the like, it determines whether there is a free area in another recording area.

[0130] When the data backup unit 680 determines that there is a free area in another recording area, it backs up this prohibited area write command and the data corresponding to this prohibited area write command (hereinafter, may also be referred to as prohibited area command data) to another recording area, and does not execute, stops, or temporarily holds this prohibited area write command. In other words, when the data backup unit 680 determines that there is a free area in another recording area and receives this prohibited area write command from the host 100 or the like, it backs up 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 holds the write process of this random write prohibited track.

[0131] When the data storage unit 680 determines that there is a free area in another recording area, it stores the prohibited area write command, the prohibited area command data corresponding to this prohibited area write command, and the data of this random write prohibited track (hereinafter sometimes referred to as random write prohibited data) in another recording area, and does not execute, stops, or temporarily holds this prohibited area write command. In other words, when the data storage unit 680 determines that there is a free area in another recording area and receives this prohibited area write command from the host 100 or the like, it stores the prohibited area write command, the prohibited area command data corresponding to this prohibited area write command, and the random write prohibited data corresponding to this random write prohibited track, and does not execute, stops, or temporarily holds the write process of this random write prohibited track.

[0132] When the data storage unit 680 determines that there is a free area in another recording area, based on the prohibited area command data corresponding to this prohibited area write command, it writes the random write prohibited track corresponding to this prohibited area write command so that track ECC can be executed on this random write prohibited track. In other words, when the data storage unit 680 determines that there is a free area in another recording area, based on the prohibited area command data corresponding to the prohibited area write command, it writes the random write prohibited track corresponding to this prohibited area write command so that this random write prohibited track becomes a correctable track.

[0133] When the data backup unit 680 receives a prohibited area write command from the host 100 or the like and determines that there is no free area in other recording areas, the data backup unit 680 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, to the random write prohibited track as usual, and sets the area specified by this prohibited area write command, for example, the random write prohibited track, as an uncorrectable track in the user data area 10a of the disk 10. In other words, when the data backup unit 680 receives a prohibited area write command from the host 100 or the like and determines that there is no free area in other recording areas, the data backup unit 680 writes the area corresponding to this prohibited area write command, for example, the prohibited area command data, to the random write prohibited track, and manages the area corresponding to this prohibited area write command, for example, the random write prohibited 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 or the like, the data backup unit 680 determines whether there is a free area in a cache for temporarily recording data, for example, the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90.

[0135] When the data backup unit 680 determines that there is a free area in the cache, the data backup unit 680 backs up the prohibited area command data corresponding to this prohibited area write command to the cache, and does not execute, stops, or temporarily holds the write process of this random write prohibited track.

[0136] When the data backup unit 680 determines that there is a free area in the cache, the data backup unit 680 backs up the prohibited area command data corresponding to this prohibited area write command and the random write prohibited data of the random write prohibited track corresponding to this prohibited area write command to the cache, and does not execute, stops, or temporarily holds the write process of this random write prohibited track.

[0137] When the data backup unit 680 caches the prohibited area command data (update data) corresponding to this prohibited area write command during idle time or the like, 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 backup unit 680 caches the prohibited area command data (update data) corresponding to this prohibited area write command and the random write prohibited data of the random write prohibited track corresponding to this prohibited area write command during idle time or the like, 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.

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

[0140] When the data backup 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 indicated by this prohibited area write command, for example, to the random write prohibited track, and sets the area indicated by this prohibited area write command, for example, the random write prohibited track, as a non-correctable track.

[0141] When the data backup unit 680 receives from the host 100 or the like a write command (hereinafter, may also be referred to as a non-correctable command) that cannot execute track ECC in a predetermined correctable track (hereinafter, may also be referred to as a non-correctable scheduled track), it determines whether there is a free area in another recording area.

[0142] When the data backup unit 680 determines that there is a free area in another recording area, it backs up this non-correctable command and the data corresponding to this non-correctable command (hereinafter, may also be referred to as non-correctable command data) to another recording area, and does not execute, stops, or temporarily holds this non-correctable command. In other words, when the data backup unit 680 determines that there is a free area in another recording area, it backs up this non-correctable command, the non-correctable command data corresponding to this non-correctable command, and the non-correctable scheduled data of this non-correctable scheduled track, and does not execute, stops, or temporarily holds the write process of this non-correctable scheduled track.

[0143] When the data evacuation unit 680 determines that there is a free area in another recording area, it evacuates this non-correctable command, the non-correctable command data corresponding to this non-correctable command, and the data of this non-correctable track (hereinafter sometimes referred to as non-correctable scheduled data) to another recording area, and does not execute, stops, or temporarily holds this non-correctable command. In other words, when the data evacuation unit 680 determines that there is a free area in another recording area, it evacuates this non-correctable command, the non-correctable command data corresponding to this non-correctable command, and the non-correctable scheduled data of this non-correctable track, and does not execute, stops, or temporarily holds the write process of this non-correctable track.

[0144] When the data evacuation unit 680 determines that there is a free area in another recording area, based on the non-correctable command data corresponding to this non-correctable command, it writes the non-correctable track corresponding to this non-correctable command so that track ECC can be executed on the non-correctable track. In other words, when the data evacuation unit 680 determines that there is a free area in another recording area, based on the non-correctable command data corresponding to this non-correctable command, it writes the non-correctable track corresponding to this non-correctable command so that this non-correctable track becomes a correctable track.

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

[0146] For example, when the data evacuation unit 680 receives an uncorrectable command from the host 100 or the like, it determines whether there is a free area in a 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] When the data evacuation unit 680 determines that there is a free area in the cache, it temporarily evacuates the uncorrectable command data corresponding to this uncorrectable command to the cache that records data, and does not execute, stops, or temporarily holds the write process of this uncorrectable track.

[0148] When the data evacuation unit 680 determines that there is a free area in the cache, it temporarily evacuates the uncorrectable command data corresponding to this uncorrectable command and the uncorrectable data of the uncorrectable track corresponding to this uncorrectable command to the cache that records data, and does not execute, stops, or temporarily holds the write process of this uncorrectable track.

[0149] When the data evacuation unit 680 evacuates the uncorrectable command data (update data) corresponding to this uncorrectable command to the cache during idle time or the like, it executes a read-modify-write on this uncorrectable track based on this uncorrectable command data (update data).

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

[0151] When the data backup unit 680 further receives from the host 100 or the like a command (hereinafter also referred to as an irreparable residual command) for writing data (hereinafter also referred to as irreparable residual data) to the remaining area (hereinafter also referred to as the irreparable remaining area) excluding the area for writing the irreparable command data from this irreparable scheduled track, it writes the irreparable residual data and the irreparable command data to this irreparable scheduled track in the user data area 10a of the disk 10. In other words, when the data backup unit 680 determines that it has received a command for one track of the irreparable scheduled track from the host 100 or the like, it writes the data corresponding to this one-track command to this irreparable scheduled track in the user data area 10a of the disk 10.

[0152] When the data backup unit 680 receives an irreparable command from the host 100 or the like and determines that there is no free space in the cache, it writes the irreparable command data corresponding to this irreparable command to the irreparable scheduled track and sets the irreparable scheduled track as an irreparable track.

[0153] FIG. 17 is a schematic diagram showing an example of the evacuation process 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 order from the outer direction to the inner direction. Track TRm-1 is adjacent to track TRm in the outer direction. Track TRm-2 is adjacent to track TRm-1 in the outer direction. Track TRm+1 is adjacent to track TRm in the inner direction. Track TRm+2 is adjacent to track TRm+1 in the inner direction. In FIG. 17, tracks TRm-2 to TRm+2 correspond to correctable tracks. FIG. 17 shows circumferential position CPS, circumferential position CP3, circumferential position CP4, and circumferential position 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. FIG. 17 shows area WCd1 to be written with a predetermined write command, area WCd2 to be written with a predetermined write command, and area WCd3 to be written with a predetermined write command. Hereinafter, "a command for instructing writing of a predetermined area or data" and "an area or data to be written with a predetermined write command" may also be referred to as a "write command". That is, "a command for instructing writing of area or data WCd1" and "area or data WCd1 to be written with a predetermined write command" are referred to as "write command WCd1", "a command for instructing writing of area or data WCd2" and "area WCd2 to be written with a predetermined write command" are referred to as "write command WCd2", and "a command for instructing writing of area or data WCd3" and "area WCd3 to be written with a predetermined write command" are referred to as "write command WCd3".The write command WCd1 corresponds to the area or data from the circumferential position CP4 to the circumferential position CPR of the track TRm-2, the area or data from the circumferential position CPS to the circumferential position CPR of the track TRm-1, the area or data from the circumferential position CPS to the circumferential position CPR of the track TRm, the area or data from the circumferential position CPS to the circumferential position CPR of the track TRm+1, and the area or data from the circumferential position CPS to the circumferential position CP3 of the track TRm+2. Also, the write command WCd1 corresponds to the command for writing data to the area from the circumferential position CP4 to the circumferential position CPR of the track TRm-2, the command for writing data to the area from the circumferential position CPS to the circumferential position CPR of the track TRm-1, the command for writing data to the area from the circumferential position CPS to the circumferential position CPR of the track TRm, the command for writing data to the area from the circumferential position CPS to the circumferential position CPR of the track TRm+1, and the command for writing data to the area from the circumferential position CPS to the circumferential position CP3 of the track TRm+2. The write command WCd2 corresponds to the area or data from the circumferential position CPS to the circumferential position CP4 of the track TRm-2. Also, the write command WCd2 corresponds to the command for writing data to the area from the circumferential position CPS to the circumferential position CP4 of the track TRm-2. The write command WCd3 corresponds to the area or data from the circumferential position CP3 to the circumferential position CPR of the track TRm+2. Also, the write command WCd3 corresponds to the command for writing data to the area from the circumferential position CP3 to the circumferential position CPR of the track TRm+2.

[0154] In the example shown in FIG. 17, when MPU60 receives a write command WCd1 from host 100 or the like, since the write process for one track or less is performed on track TRm-2, track TRm-2 can change from a correctable track to an uncorrectable track. Therefore, MPU60 caches the uncorrectable command data corresponding to track TRm-2 of write command WCd1 and track TRm-2, for example, stores them in the system area 10b of disk 10, volatile memory 70, non-volatile memory 80, or buffer memory 90, and does not execute the write process for track TRm-2. In other words, MPU60 caches the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and track TRm-2, for example, stores them in the system area 10b of disk 10, volatile memory 70, non-volatile memory 80, or buffer memory 90, and does not execute the write process for track TRm-2.

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

[0156] Also, when the MPU60 stores the uncorrectable command data corresponding to the track TRm-2 of the write command WCd1 and the track TRm-2 in the cache, and receives the write command WCd2 from the host 100 or the like, it writes the uncorrectable command data corresponding to the track TRm-2 of the write command WCd1 and the write command WCd2 to the track TRm-1. In other words, when the MPU60 stores the uncorrectable command data (update data) from the circumferential position CP4 to the circumferential position CPR of the track TRm-2 and the track TRm-2 in the cache, and receives the write command WCd2 from the host 100 or the like, it writes the uncorrectable command data (update data) from the circumferential position CP4 to the circumferential position CPR of the track TRm-2 and the write command WCd2 to the track TRm-1.

[0157] In the example shown in FIG. 17, when the MPU60 receives the write command WCd1 from the host 100 or the like, since the write process for one track or less is performed on the track TRm+2, the track TRm+2 can change from a correctable track to an uncorrectable track. Therefore, the MPU60 stores the uncorrectable command data corresponding to the track TRm+2 of the write command WCd1 and the track TRm+2 in the cache, for example, in the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not execute the write process for the track TRm+2. In other words, the MPU60 stores the uncorrectable command data from the circumferential position CPS to the circumferential position CP3 of the track TRm+2 and the track TRm+2 in the cache, for example, in the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not execute the write process for the track TRm+2.

[0158] When the MPU60 stores the uncancellable command data (update data) corresponding to the track TRm+2 of the write command WCd1 and the track TRm+2 in the cache, during idle time, it executes a read modify write on the track TRm−2 based on the uncancellable command data (update data) corresponding to the track TRm+2 of the write command WCd1 and the track TRm+2. In other words, when the MPU60 stores the uncancellable command data (update data) from the circumferential position CPS to the circumferential position CP3 of the track TRm+2 and the track TRm+2 in the cache, during idle time, it executes a read modify write on the track TRm−2 based on the uncancellable command data (update data) from the circumferential position CPS to the circumferential position CP3 of the track TRm+2 and the track TRm+2.

[0159] Also, when the MPU60 stores the uncancellable command data corresponding to the track TRm+2 of the write command WCd1 and the track TRm+2 in the cache and receives the write command WCd3 from the host 100 or the like, it writes the uncancellable command data corresponding to the track TRm+2 of the write command WCd1 and the write command WCd3 to the track TRm+2. In other words, when the MPU60 stores the uncancellable command data from the circumferential position CPS to the circumferential position CP3 of the track TRm+2 and the track TRm+2 in the cache and receives the write command WCd3 from the host 100 or the like, it writes the uncancellable command data from the circumferential position CPS to the circumferential position CP3 of the track TRm+2 and the write command WCd3 to the track TRm+2.

[0160] FIG. 18 is a flowchart showing an example of the save process according to Modification 2. The MPU60 receives a write command (B1801) to write data to a predetermined correctable area, for example, a correctable track, in the user data area 10a. When writing according to the write command, the MPU60 determines (B1802) whether the correctable area corresponding to this write command, for example, the correctable track, becomes a non-correctable area, for example, a non-correctable track, or not. In other words, the MPU60 determines whether the command received from the host 100 is a non-correctable command or not. If it is determined that it does not become a non-correctable area, for example, a non-correctable track (NO in B1802), the MPU60 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 it becomes a non-correctable area, for example, a non-correctable track (YES in B1802), the MPU60 determines (B1804) whether there is space in the cache or not. If it is determined that there is no space in the cache (NO in B1804), the MPU60 proceeds to the process of B1803.

[0162] If it is determined that there is space in the cache (YES in B1804), the MPU60 stores in the cache the data (non-correctable command data) corresponding to this write command (non-correctable command) (and the data (data not scheduled to be non-correctable) of the correctable track (track not scheduled to be non-correctable) in the user data area 10a corresponding to this non-correctable command) (B1805) and ends the process.

[0163] FIG. 19 is a flowchart showing an example of the save process according to Modification 2. The MPU60 receives a write command to write data to a predetermined track in the user data area 10a (B1801). When writing according to the write command, the MPU60 determines whether writing corresponding to this write command, such as sequential writing up to the middle of one track or random writing, which makes the track unit error correction for the corresponding track impossible to correct, is permitted or not (B1901). If it is determined that random writing is permitted for this track (NO in B1901), the MPU60 writes the data corresponding to this write command to this track in the user data area 10a (B1803) and ends the process.

[0164] If it is determined that random writing is not permitted for this track (YES in B1901), the MPU60 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 MPU60 proceeds to the process of B1803.

[0165] If it is determined that there is free space in the cache (YES in B1804), the MPU60 stores 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 Modification 2, when the magnetic disk device 1 receives a prohibited area write command from the host 100 or the like, it determines whether there is a free area in other recording areas. When the magnetic disk device 1 determines that there is a free area in other recording areas, it stores the prohibited area command data corresponding to this prohibited area write command and the random write prohibition data in other recording areas and does not execute this prohibited area write command. When the magnetic disk device 1 determines that there is no free area in other recording areas, it writes the prohibited area command data corresponding to the prohibited area write command to the random write prohibited track.

[0167] Further, when the magnetic disk device 1 receives an uncorrectable command from the host 100 or the like, it determines whether there is a free area in another recording area. When the magnetic disk device 1 determines that there is a free area in another recording area, it stores the uncorrectable command data corresponding to this uncorrectable command and the data to be uncorrectable in another recording area, and does not execute this uncorrectable command. When the magnetic disk device 1 determines that there is no free area in another recording area, it writes the uncorrectable command data corresponding to the uncorrectable command to the track where uncorrectable is not scheduled.

[0168] Since the DOL for a track where track ECC cannot be executed is set to a strict value, a write fault is likely to occur, so the write performance may decrease. Also, since the number of writes to a track where track ECC cannot be executed can be set low, it is necessary to execute the refresh process frequently, and the write performance may decrease. In Modification 2, when a write command is received, the data corresponding to the write command is temporarily stored in the cache, and a process of changing a track where track ECC cannot be executed to a track where track ECC can be executed is executed. Therefore, the magnetic disk device 1 can efficiently execute the write process. That is, the magnetic disk device 1 can improve the write performance. Therefore, the magnetic disk device 1 can improve the reliability.

[0169] Although several embodiments have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalent scope thereof.

Description of Reference Numerals

[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. A disk, a head for writing data to and reading data from the disk, a controller that sets different values for a first DOL for a first sector group including at least one first sector and the first parity sector that are continuous in the circumferential direction of the disk from the first parity sector capable of performing error correction processing for each track based on the first parity sector and a second DOL for a second sector group including at least one second sector that is continuous in the circumferential direction and for which error correction processing for each track cannot be performed. A magnetic disk drive comprising:

2. The magnetic disk drive according to claim 1, wherein when the controller randomly writes to a first track corresponding to the first sector group, the controller changes the DOL for the first track from the first DOL to the second DOL.

3. The magnetic disk drive according to claim 1, wherein the controller sets the first DOL for the first sector group of the first track having the first sector group and the second sector group, and sets the second DOL for the second sector group of the first track.

4. The magnetic disk drive according to claim 2 or 3, wherein when the first off-track amount for the first sector group is greater than an irrecoverable threshold, the controller does not permit writing for which error correction for each track of the first sector group becomes impossible.

5. The magnetic disk drive according to claim 4, wherein when the first off-track amount for the first sector group is greater than an irrecoverable threshold, the controller performs read-modify-write on the first sector group.

6. A disk, a head for writing data to and reading data from the disk, a controller having a table for managing a first sector group including at least one first sector and the first parity sector that are continuous in the circumferential direction of the disk from the first parity sector capable of performing error correction processing for each track based on the first parity sector and a second sector group including at least one second sector that is continuous in the circumferential direction and for which error correction processing for each track cannot be performed. A magnetic disk drive comprising:

7. A disk, a head for writing data to and reading data from the disk, A magnetic disk drive comprising: a controller having a table for managing a third sector group that causes a read error when changing to a second sector group including at least one second sector that is continuous in the circumferential direction of the disk and for which error correction processing per track cannot be executed from a first parity sector group including at least one first sector that is continuous in the circumferential direction of the disk and the first parity sector and for which error correction processing per track can be executed based on the first parity sector.

8. A disk having a first area; A head for writing data to and reading data from the disk; A magnetic disk drive comprising: a controller that, when receiving a write command to change to a first sector group including at least one first sector that is continuous in the circumferential direction of the disk where writing is not permitted and for which error correction per track is impossible, temporarily retreats to a first recording area different from the first area and does not execute a write process on the first area.

9. A disk having a first area; A head for writing data to and reading data from the disk; A magnetic disk drive comprising: a controller that, when receiving a first write command to change to a second sector group including at least one second sector that is continuous in the circumferential direction of the disk and for which error correction processing per track cannot be executed from a first sector group including at least one first sector that is continuous in the circumferential direction of the disk and the first parity sector and for which error correction processing per track can be executed based on the first parity sector, temporarily retreats the third sector group corresponding to the first write command to a first recording area different from the first area and does not execute a write process on the first area for the third sector group.

10. The magnetic disk drive according to claim 9, wherein the controller executes read-modify-write based on the first sector group and the third sector group.

11. The magnetic disk drive according to claim 9, wherein the controller writes a fourth sector group corresponding to a capacity excluding the third sector group from all data of one track continuously to the third sector group when receiving a second write command.

12. The magnetic disk device according to claim 9, wherein when there is no free area in the first recording area, the controller writes the third sector group according to the first write command.

13. The magnetic disk device according to any one of claims 9 to 12, wherein the first recording area is a cache for temporarily writing data.

14. A method for setting a DOL applied to a magnetic disk device including a disk and a head for writing data to the disk and reading data from the disk, setting different values for a first DOL for a first sector group including at least one first sector and the first parity sector that are continuous in the circumferential direction of the disk from the first parity sector capable of performing error correction processing per track unit and a second DOL for a second sector group including at least one second sector that is continuous in the circumferential direction and incapable of performing error correction processing per track unit. A method for setting DOL.

Citation Information

Patent Citations

  • Storage device, controller, and failure report method

    JP2007317283A

  • Information processor, information processing method and computer program

    JP2008250918A

  • Device and method for controlling data writing

    JP2011253580A

  • Magnetic disk device and write processing method

    JP2019215943A

  • Magnetic disc device and write processing method

    JP2020149757A