Disk drive and DOL configuration method
By setting different types of sector groups in a magnetic disk device and setting DOL values respectively, the difficulty of track error correction processing and data deviation problems are solved, and data reliability is improved.
Patent Information
- Application Number
- CN202210563132.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-12-22
- Filing Date
- 2022-05-19
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2042-05-19
AI Technical Summary
When a disk device overwrites a parity sector in a conventional recording mode, it may be unable to perform track error correction processing, resulting in data errors being difficult to correct and problems such as data erasure and track deviation.
The magnetic disk device improves data reliability by setting different types of sector groups, including sector groups that can perform track error correction processing and sector groups that cannot perform error correction processing, and setting different DOL values for each sector group.
It effectively prevents data errors, reduces the risk of data erasure and track deviation, and improves the data reliability of the disk device.
Smart Images

Figure CN116343831B_ABST
Abstract
Description
[0001] This application claims priority based on Japanese Patent Application No. 2021-207845 (filing date: December 22, 2021), and the entire contents of the basic application are incorporated herein by reference. Technical Field
[0002] Embodiments of the present invention relate to a magnetic disk device and a method for setting a DOL. Background Art
[0003] A magnetic disk drive can include an error correction function that, if a sector cannot be corrected (saved or repaired) using the correction code corresponding to that sector, corrects the sector based on the parity sector corresponding to the track containing that sector. The magnetic disk drive writes the parity sector, obtained by performing an exclusive OR (XOR) operation on the sectors of a predetermined track, to that track. If the magnetic disk drive detects an error in a predetermined sector of that track, it performs error correction processing (hereinafter sometimes referred to as track ECC processing) using the error correction code corresponding to that track. If the magnetic disk drive randomly overwrites data on a portion of a track containing a parity sector using conventional magnetic recording (CMR), the magnetic disk drive may be unable to perform track ECC processing on that track.
[0004] The magnetic disk device sets a DOL (Drift of level) or WOS (Write off track Slice) for the target track (hereinafter sometimes referred to as the target track). The DOL or WOS is the upper limit of the offset of the target track from the target position (hereinafter sometimes referred to as the target position), for example, the center of the track in the radial direction of the disk.
[0005] Furthermore, in magnetic disk drives, when data is written, side erase (or "side erase") can occur due to magnetic flux leakage from the head (Adjacent Track Interference (ATI)). ATI varies depending on, for example, the head characteristics, the TPI (Track Per Inch) setting, and the write current setting. To prevent side erase, magnetic disk drives have a function (refresh function) that rewrites the data on a specific track if data has been written to its neighboring tracks a specified number of times. Summary of the Invention
[0006] Embodiments of the present invention provide a magnetic disk device and a DOL setting method capable of improving reliability.
[0007] The magnetic disk device involved in this embodiment includes: a disk; a head that writes data to the disk and reads data from the disk; and a controller that sets a first DOL for a first sector group and a second DOL for a second sector group to different values, the first sector group including at least one first sector and the first parity sector that are continuous in the circumferential direction of the disk starting from the first parity sector and capable of performing error correction processing in units of tracks based on the first parity sector, and the second sector group including at least one second sector that is continuous in the circumferential direction and for which error correction processing in units of tracks cannot be performed. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 This is a block diagram showing the configuration of a magnetic disk device according to an embodiment.
[0009] Figure 2 This is a schematic diagram showing an example of the arrangement of the head relative to the disk according to the embodiment.
[0010] Figure 3 This is a schematic diagram showing an example of track ECC processing.
[0011] Figure 4 This is a schematic diagram showing an example of track ECC processing.
[0012] Figure 5 This is a schematic diagram showing an example of track ECC processing.
[0013] Figure 6 FIG. 1 is a schematic diagram showing an example of a low DOL, a high DOL, and a low unrecoverable threshold value UTH1 according to an embodiment.
[0014] Figure 7 It is a schematic diagram showing an example of the DOL according to this embodiment.
[0015] Figure 8 It is a schematic diagram showing an example of the DOL according to this embodiment.
[0016] Figure 9 It is a schematic diagram showing an example of the DOL according to this embodiment.
[0017] Figure 10 This is a flowchart showing an example of a method for setting a DOL according to this embodiment.
[0018] Figure 11 This is a flowchart showing an example of the write process according to this embodiment.
[0019] Figure 12 This is a block diagram showing the configuration of a magnetic disk device according to Modification 1.
[0020] Figure 13 This is a schematic diagram showing an example of a refresh threshold value according to Modification 1.
[0021] Figure 14 This is a flowchart showing an example of a method for setting a refresh threshold according to this embodiment.
[0022] Figure 15 This is a flowchart showing an example of a write process in a correctable area according to the present embodiment.
[0023] Figure 16 This is a block diagram showing the configuration of a magnetic disk device according to Modification 2.
[0024] Figure 17 This is a schematic diagram showing an example of the transfer process according to the second modification.
[0025] Figure 18 This is a flowchart showing an example of the transfer process according to Modification 2.
[0026] Figure 19 This is a flowchart showing an example of the transfer process according to Modification 2.
[0027] Label Description
[0028] 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, 15 W write head, 15 R 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 DETAILED DESCRIPTION
[0029] Hereinafter, embodiments will be described with reference to the accompanying drawings. However, the accompanying drawings are merely examples and do not limit the scope of the invention.
[0030] (Implementation Method)
[0031] Figure 1 It is a block diagram showing the configuration of the magnetic disk device 1 according to the embodiment.
[0032] The magnetic disk drive 1 includes a head disk assembly (HDA) (described later), a driver IC 20, a head amplifier integrated circuit (hereinafter sometimes also referred to as a head amplifier IC or preamplifier) 30, a volatile memory 70, a nonvolatile memory 80, a buffer memory (cache) 90, and a system controller 130, which is a single-chip integrated circuit. Furthermore, the magnetic disk drive 1 is connected to a host system (hereinafter simply referred to as a host) 100.
[0033] The HDA includes a magnetic disk (sometimes referred to as a disk) 10, a spindle motor (sometimes referred to as an SPM) 12, an arm 13 carrying a head 15, and a voice coil motor (sometimes referred to as a VCM) 14. The disk 10 is mounted on the SPM 12 and rotated by the SPM 12. The arm 13 and the VCM 14 constitute an actuator. Driven by the VCM 14, the actuator controls the movement of the head 15 mounted on the arm 13 to a predetermined position on the disk 10. The number of disks 10 and heads 15 may be more than two. Furthermore, the number of actuators may be more than two.
[0034] The disk 10 has a user data area 10a, which can be used by the user, and a system area 10b, which records information required for system management, in areas where data can be written. Furthermore, the disk 10 may also have a media cache (sometimes referred to as a media cache area), separate from the user data area 10a and the system area 10b, that temporarily stores data (or commands) transmitted from the host 100, etc., before writing them to a predetermined area within the user data area 10a. Hereinafter, the direction from the inner circumference toward the outer circumference of the disk 10, or from the outer circumference toward the inner circumference, will be referred to as the radial direction. Within the radial direction, the direction from the inner circumference toward the outer circumference will be referred to as the outer direction (or outer side), while the direction from the outer circumference toward the inner circumference, i.e., the direction opposite to the outer direction, will be referred to as the inner direction (or inner side). The direction perpendicular to the radial direction of the disk 10 will be referred to as the circumferential direction. In other words, the circumferential direction corresponds to the direction along the circumference of the disk 10. Furthermore, a predetermined position in the radial direction of the disk 10 will sometimes be referred to as a radial position, and a predetermined position in the circumferential direction of the disk 10 will sometimes be referred to as a circumferential position. Radial position and circumferential position are sometimes referred to collectively as "position." The disk 10 is divided into multiple areas (hereinafter sometimes referred to as zones or zone areas) according to predetermined radial ranges. A zone includes multiple tracks. A track includes multiple sectors. Furthermore, the term "track" can be used to mean: one of the multiple areas divided by predetermined radial ranges on the disk 10; data written to one of the multiple areas divided by predetermined radial ranges on the disk 10; an area extending circumferentially at a predetermined radial position on the disk 10; data written to an area extending circumferentially at a predetermined radial position on the disk 10; an area covering one circumference of the disk 10; data written to an area covering one circumference of the disk 10; the path of the head 15 positioned at a predetermined radial position on the disk 10 for writing; data written by the head 15 positioned at a predetermined radial position on the disk 10; data written to a predetermined track on the disk 10; and other various meanings. The term "sector" is used to mean one of the multiple areas obtained by dividing the predetermined track of the disk 10 in the circumferential direction, data written in one of the multiple areas obtained by dividing the predetermined track of the disk 10 in the circumferential direction, an area at a predetermined circumferential position at a predetermined radial position of the disk 10, data written in an area at a predetermined circumferential position at a predetermined radial position of the disk 10, data written in a predetermined sector of the disk 10, and other various meanings. Sometimes, the "width of the track in the radial direction" is also referred to as the "track width." Sometimes, the center position of the track width is also referred to as the track center. Sometimes, the track center is simply referred to as the track. In addition, sometimes, the "width of the sector in the radial direction" is also referred to as the "sector width."The center of the sector width is sometimes called the sector center. Sometimes the sector center is simply called the sector. There are multiple sector centers in the track center.
[0035] The head 15 is mainly composed of a slider and includes a write head 15W and a read head 15R mounted on the slider. The write head 15W writes data to the disk 10. For example, the write head 15W writes data to a predetermined track on the disk 10. The read head 15R reads data recorded on the disk 10. For example, the read head 15R reads data from a predetermined track on the disk 10. The "write head 15W" is sometimes referred to simply as "head 15," while the "read head 15R" is sometimes referred to simply as "head 15." Furthermore, the "write head 15W and read head 15R" are sometimes collectively referred to as "head 15." The "center portion of the head 15" is sometimes referred to as "head 15," the "center portion of the write head 15W" is sometimes referred to as "write head 15W," and the "center portion of the read head 15R" is sometimes referred to as "read head 15R." The "center portion of the write head 15W" is sometimes referred to simply as "head 15," while the "center portion of the read head 15R" is sometimes referred to simply as "head 15." Sometimes, “positioning the center of the head 15 at the predetermined position” is also expressed as “positioning the head 15 at the predetermined position”, “configuring the head 15 at the predetermined position” or “locating the head 15 at the predetermined position”. Sometimes, “positioning the head 15 at the predetermined area”, “configuring the head 15 at the predetermined area”, “locating the head 15 at the predetermined area”, “positioning the head 15 at the predetermined area”, “positioning the predetermined area”, “configuring the predetermined area” or “locating at the predetermined area” is also expressed as “positioning the center of the head 15 at the target position of the predetermined area (hereinafter sometimes also referred to as the area target position), for example, the center in the radial direction of the predetermined area”. Sometimes, “positioning the head 15 at the predetermined track”, “configuring the head 15 at the predetermined track”, “locating the head 15 at the predetermined track”, “positioning at the track”, “configured at the track” or “locating at the track” is also expressed as “positioning the center of the head 15 at the target position of the predetermined track (hereinafter sometimes also referred to as the track target position), for example, the center of the track”.
[0036] Figure 2 1 is a schematic diagram showing an example of the configuration of the head 15 relative to the disk 10 according to this embodiment. Figure 2 As shown, in the circumferential direction, the direction in which the disk 10 rotates is referred to as the rotation direction. Figure 2 In the example shown, the direction of rotation is indicated by a counterclockwise direction, but it may also be an opposite (clockwise) direction.
[0037] The head 15 rotates about the rotation axis relative to the disk 10 by being driven by the VCM 14 , and moves from the inner direction to the outer direction to a predetermined position, or moves from the outer direction to the inner direction.
[0038] exist Figure 2In the example shown, the system area 10b is arranged outside the user data area 10a in the disk 10. In other words, the user data area 10a is arranged inside the system area 10b in the disk 10. Figure 2 In the example shown, the system area 10b is arranged at the outermost periphery of the disk 10. In addition, the user data area 10a may be divided and arranged in the radial direction of the disk 10. In addition, the system area 10b may be arranged at the same Figure 2 For example, in the disk 10 , the system area 10 b may be located between the plurality of user data areas 10 a or may be located at the innermost circumference of the disk 10 .
[0039] The driver IC 20 controls driving of the SPM 12 and the VCM 14 under the control of the system controller 130 (more specifically, the MPU 60 described later).
[0040] The head amplifier IC (preamplifier) 30 includes a read amplifier and a write driver. The read amplifier amplifies the read signal 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 to the head 15 in response to the signal output from the R / W channel 40.
[0041] Volatile memory 70 is a semiconductor memory whose stored data is lost when power is cut off. It stores data required for processing by various components of magnetic disk drive 1. Examples of volatile memory 70 include DRAM (Dynamic Random Access Memory) or SDRAM (Synchronous Dynamic Random Access Memory).
[0042] The nonvolatile memory 80 is a semiconductor memory that records stored data even when power is cut off. The nonvolatile memory 80 is, for example, a NOR-type or NAND-type flash ROM (Flash Read Only Memory: FROM).
[0043] The buffer memory 90 is a semiconductor memory that temporarily records data exchanged between the magnetic disk drive 1 and the host computer 100. Alternatively, the buffer memory 90 may be integrally formed with the volatile memory 70. Examples of the buffer memory 90 include DRAM, SRAM (Static Random Access Memory), SDRAM, FeRAM (Ferroelectric Random Access Memory), and MRAM (Magnetoresistive Random Access Memory).
[0044] The system controller (controller) 130 is implemented, for example, using a large-scale integrated circuit (LSI) known as a system-on-a-chip (SoC), in which multiple components are integrated into a single chip. The system controller 130 includes a read / write (R / W) channel 40, a hard disk controller (HDC) 50, and a microprocessor or microprocessing unit (MPU) 60. The system controller 130 is electrically connected to, for example, a driver IC 20, a head amplifier IC 30, a volatile memory 70, a nonvolatile memory 80, a buffer memory 90, and a host system 100.
[0045] The R / W channel 40 performs signal processing for 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 accordance with instructions from the MPU 60, described later. The R / W channel 40 includes circuitry or functions for modulating write data. It also includes circuitry or functions 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.
[0046] The HDC 50 controls data transfer. For example, the HDC 50 controls data transfer between the host 100 and the disk 10 according to instructions 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 nonvolatile memory 80, and the buffer memory 90.
[0047] The MPU 60 is a main controller that controls various components of the magnetic disk drive 1. The MPU 60 controls the VCM 14 via the driver IC 20, performing servo control to position the head 15. The MPU 60 controls the SPM 12 via the driver IC 20 to rotate the disk 10. The MPU 60 controls the write operation to the disk 10 and selects the storage destination for data transmitted from the host 100, such as write data. The MPU 60 controls the read operation to read data from the disk 10 and controls the processing of data transmitted from the disk 10 to the host 100, such as read data. Furthermore, the MPU 60 manages the area where data is recorded. The MPU 60 is connected to various components of the magnetic disk drive 1. For example, the MPU 60 is electrically connected to the driver IC 20, the R / W channel 40, and the HDC 50.
[0048] The MPU 60 includes a read / write control unit 610, an error detection unit 620, an error correction unit 630, a parity sector management unit 640, and an off-track management unit 650. The MPU 60 executes the processing of each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, and off-track management unit 650, in firmware. Alternatively, the MPU 60 may include each unit, such as the read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, and off-track management unit 650, as a circuit. The read / write control unit 610, error detection unit 620, error correction unit 630, parity sector management unit 640, and off-track management unit 650 may also be included in the R / W channel 40 or the HDC 50.
[0049] The read / write control unit 610 controls the reading process of data from the disk 10 and the writing process of data to the disk 10 in accordance with commands from the host computer 100. The read / write control unit 610 controls the VCM 14 via the driver IC 20 to position the head 15 at a predetermined position on the disk 10 and perform the reading process or the writing process. Hereinafter, the term "access" may be used to include recording or writing data to a predetermined area (writing process), reading or reading data from a predetermined area (reading process), and moving the head 15 to a predetermined area.
[0050] The read / write control unit 610 performs a write process in, for example, a conventional magnetic recording (CMR) format, in which data is written to other tracks (hereinafter sometimes referred to as adjacent tracks (or adjacent cylinders)) or other sectors (hereinafter sometimes referred to as adjacent sectors) adjacent to a predetermined track (or cylinder) or sector with a predetermined interval (gap) in the radial direction from the predetermined track (or cylinder) or sector. "Adjacent tracks (or adjacent cylinders)" include "tracks (or adjacent cylinders) adjacent to the predetermined track (or cylinder) in the outer direction," "tracks (or adjacent cylinders) adjacent to the predetermined track (or cylinder) in the inner direction," and "multiple tracks (or multiple cylinders) adjacent to the predetermined track (or cylinder) in both the outer and inner directions." "Adjacent sectors" include "sectors adjacent to a predetermined sector in the outer direction," "sectors adjacent to a predetermined sector in the inner direction," and "multiple sectors adjacent to a predetermined sector in both the outer and inner directions." Hereinafter, "writing data in a normal recording format" may be referred to as "normal recording," "performing a normal recording process," or simply "writing." The read / write control unit 610 performs random writes for random data writing and sequential writes for sequential data writing.
[0051] Alternatively, the read / write control unit 610 may perform a write process using shingled magnetic recording (SMR or SWR). This shingled recording method involves sequentially writing to multiple tracks (or cylinders) while overlapping the radial direction of the previously written track (or cylinders). Hereinafter, "writing data using shingled recording" may be referred to as "shingling recording," "performing shingled recording processing," or simply "writing."
[0052] The error detection unit 620 detects data, sectors, and areas where errors have occurred. For example, the error detection unit 620 detects unreadable data (hereinafter sometimes referred to as read error data or error data) or unreadable sectors (hereinafter sometimes referred to as read error sectors or error sectors). Error data and error sectors may be caused by, for example, defects, misalignment of the head 15, or misalignment of adjacent tracks (or adjacent cylinders).
[0053] The error correction unit 630 repairs (corrects, rescues, or corrects) erroneous data or erroneous sectors. The error correction unit 630 performs multiple read retries to read the erroneous data or erroneous sectors. In addition, the error correction unit 630 performs processing based on an error correction code (Error Correction Code) to correct errors in erroneous data or erroneous sectors (hereinafter sometimes referred to as ECC processing or error correction processing). The error correction unit 630 performs ECC processing (hereinafter sometimes referred to as sector ECC processing) on the erroneous data or erroneous sectors based on the ECC (hereinafter sometimes referred to as sector ECC) corresponding to the erroneous data or erroneous sectors of a predetermined track (or predetermined cylinder). Sector ECC processing is equivalent to error correction or error correction processing in units of sectors.
[0054] The error correction unit 630 performs ECC processing (hereinafter sometimes referred to as track ECC processing) on erroneous data or erroneous sectors of a predetermined track (or predetermined cylinder) or a portion of the track (or predetermined cylinder), such as a plurality of data or a plurality of sectors arranged continuously along the circumferential direction in the predetermined track (or predetermined cylinder), based on the ECC corresponding to the predetermined track (or predetermined cylinder) or a portion of the track (or predetermined cylinder), such as a plurality of data or a plurality of sectors arranged continuously along the circumferential direction in the predetermined track (or predetermined cylinder). Track ECC processing is equivalent to error correction processing or error correction processing in units of tracks. Here, the term "track" may include not only units of physical tracks but also units of areas below the physical tracks. For example, the error correction unit 630 performs track ECC processing on the error sectors of a predetermined track (or predetermined cylinder) or a portion of the predetermined track (or predetermined cylinder) based on the parity data or parity sectors corresponding to the predetermined track (or predetermined cylinder) or a portion of the predetermined track (or predetermined cylinder). The error correction unit 630 records information associated with the error data or error sectors (hereinafter sometimes referred to as error data information or error sector information) in a predetermined recording area, such as the disk 10, the volatile memory 70, or the non-volatile memory 80.
[0055] The parity sector management unit 640 performs an exclusive OR (XOR) operation to calculate a parity sector (or parity data), writes the parity sector (or parity data), and manages the parity sector (or parity data).
[0056] When writing to a predetermined track (or a predetermined cylinder), the parity sector management unit 640 performs an XOR operation on all sectors (or data) other than the parity sector of the track (or the cylinder) to calculate the parity sector (or parity data), writes (or changes) the calculated parity sector (or parity data), and manages the parity sector (or parity data). In addition, when writing a portion of sectors (or data) to a predetermined track (or predetermined cylinder), the parity sector management unit 640 reads the track (or predetermined cylinder) to which the portion of sectors (or data) is to be written, performs an XOR operation on all sectors (or data) other than the parity sector of the track (or cylinder) after replacing the sector (or data) corresponding to the portion of sectors (or data) with the portion of sectors (or data) in a predetermined recording area, such as the volatile memory 70, to calculate the parity sector, writes (or changes) all sectors other than the parity sector of the track (or cylinder) after replacing the portion of sectors (or data) with the portion of sectors (or data) on the same track (or cylinder) and the calculated parity sector (or parity data), and manages the parity sector (or parity data). Hereinafter, "when writing predetermined data (hereinafter sometimes referred to as update data), reading at least one sector or track (cylinder) to which the update data is to be written, performing an XOR operation on all sectors (hereinafter sometimes referred to as an update sector group) other than the parity sector of the at least one sector or track (cylinder) (hereinafter sometimes referred to as an update sector or update track (update cylinder)) after replacing the data corresponding to the update data in the at least one sector or track (cylinder) with the update data to calculate a parity sector (hereinafter sometimes referred to as an update parity sector), and writing the update sector group and the update parity sector to the same sector or track" may sometimes be referred to as "read-modify-write". Hereinafter, for convenience of explanation, "performing an XOR operation on sectors other than the parity sector" may sometimes be referred to as "performing an XOR operation on sectors".
[0057] The parity sector management unit 640 performs an XOR operation on the data in a predetermined area to calculate a parity sector, and writes the calculated parity sector to a predetermined area of the disk 10. The parity sector management unit 640 performs an XOR operation on all sectors of a predetermined track (or predetermined cylinder) to calculate a parity sector, and writes the calculated parity sector to the track (or the cylinder). Alternatively, the parity sector management unit 640 may perform an XOR operation on a portion of the sectors of a predetermined track (or predetermined cylinder) to calculate a parity sector, and write the calculated parity sector to the track (or the cylinder). For example, the parity sector management unit 640 may perform an XOR operation on all sectors (hereinafter sometimes referred to as valid sectors) in a predetermined track (or predetermined cylinder) except for sectors that have been set or registered as invalid sectors due to defects (hereinafter sometimes referred to as defect registration sectors), calculate parity sectors, and write the calculated parity sectors to the track (or cylinder). Defect registration sectors correspond to sectors that are not used for data recording, such as error sectors. Valid sectors correspond to sectors used for data recording, etc. For convenience of explanation, "performing an XOR operation on valid sectors other than defect registration sectors" may sometimes be referred to as "performing an XOR operation on sectors."
[0058] 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 that can be used through error correction, such as track ECC processing (sometimes also referred to as a valid parity sector below), or an invalid parity sector that cannot be used through error correction, such as track ECC processing (sometimes also referred to as an invalid parity sector below).
[0059] 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 treats the parity sector of the track as a valid parity sector and records it as a table (hereinafter sometimes referred to as a management table) TB1 in a predetermined recording area, such as the disk 10 (system area 10b), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The parity sector management unit 640 records the tracks or cylinders (hereinafter sometimes referred to as correctable tracks or correctable cylinders) for which track ECC processing can be performed (or corrected) based on the valid parity sector as a management table TB1 in a predetermined recording area, such as the disk 10 (system area 10b), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90.
[0060] The parity sector management unit 640 manages the parity sector obtained by writing (or overwriting) at least one sector circumferentially arranged consecutively from the parity sector in a predetermined track, such as a valid sector (hereinafter sometimes referred to as a trailing sector), and performing an XOR operation on all trailing sectors, such as the valid sectors, as a valid parity sector. The parity sector management unit 640 identifies the parity sector of the track as a valid parity sector and records it as a management table TB1 in a predetermined recording area, such as 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 the trailing sectors, for which track ECC processing can be performed (or corrected) based on the valid parity sector in the predetermined track, as a management table TB1 in a predetermined recording area, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. In addition, when a predetermined track includes a rear sector on which track ECC processing can be performed (or can be corrected) based on a valid parity sector, the parity sector management unit 640 records the sectors other than the rear sector on which track ECC processing cannot be performed (or cannot be corrected) (hereinafter sometimes also referred to as the front sector) as a management table TB1 in a predetermined recording area, such as the disk 10 (system area 10b), the volatile memory 70, the non-volatile memory 80 or the buffer memory 90.
[0061] When the parity sector of a track in which a previous sector, for example, a valid sector (hereinafter sometimes referred to as a previous sector), is written (overwritten), the parity sector management unit 640 manages the parity sector as an invalid parity sector when the parity sector is equivalent to the result of performing an XOR operation on all sectors of the track before the previous sector is written (hereinafter sometimes referred to as a previous parity sector). The parity sector management unit 640 manages the parity sector of the track as an invalid parity sector and records the invalid parity sector in a predetermined recording area, for example, the disk 10 (system area 10b), the volatile memory 70, the non-volatile memory 80, or the buffer memory 90 as a management table TB1. The parity sector management unit 640 records the tracks or cylinders that cannot perform track ECC processing (or cannot be corrected) (sometimes also referred to as uncorrectable tracks or uncorrectable cylinders) as management table TB1 in a predetermined recording area, such as disk 10 (system area 10b), volatile memory 70, non-volatile memory 80 or buffer memory 90.
[0062] Hereinafter, "at least one sector where track ECC processing can be performed" is sometimes referred to as a "correctable sector or logical track." Furthermore, "at least one sector where track ECC cannot be performed (or cannot be corrected)" is sometimes referred to as an "uncorrectable sector." Sometimes, "areas where track ECC can be performed (or can be corrected), such as correctable tracks, correctable cylinders, and correctable sectors" are collectively referred to as "correctable areas," and "areas where track ECC cannot be performed, such as uncorrectable tracks, uncorrectable cylinders, and uncorrectable sectors" are collectively referred to as "uncorrectable areas."
[0063] The parity sector management unit 640 manages the correctable and uncorrectable areas of the disk 10 using a management table TB1. For example, if the parity sector management unit 640 represents the correctable and uncorrectable areas of tracks 0, 1, 2, 3, 4, 5, 6, and 7 in hexadecimal notation as 3Eh (binary notation: 00111110) in management table TB1, tracks 2 through 6 are considered correctable areas. In this case, each track is represented by one bit of information in management table TB1, with a "1" indicating a correctable area and a "0" indicating an uncorrectable area. The parity sector management unit 640 refers to management table TB1 when performing write operations and when performing read operations via the read / write control unit 610.
[0064] The parity sector management unit 640 manages the correctable area and the uncorrectable area whenever it receives a command from the host 100, etc., for example, to perform a write that becomes uncorrectable due to error correction in track units, such as a sequential write to the middle of a track, or a random write. The parity sector management unit 640 updates or changes the correctable area and the uncorrectable area whenever a random write is performed. If a random write is performed on a portion of a correctable area, the parity sector management unit 640 changes the correctable area to an uncorrectable area. For example, if a random write is performed on a portion of a correctable track, the parity sector management unit 640 changes the correctable track to an uncorrectable track. In other words, if a random write is performed on a correctable track containing less than one track's worth of data, the parity sector management unit 640 changes the correctable track to an uncorrectable track.
[0065] The parity sector management unit 640 uses a table (hereinafter sometimes referred to as a random write prohibition table) TB2 to manage areas where read errors occur when data is changed from a correctable area to an uncorrectable area (hereinafter sometimes referred to as a random write prohibition area). In other words, the parity sector management unit 640 includes a random write prohibition table TB2 for managing the random write prohibition area.
[0066] For example, the parity sector management unit 640 uses the random write prohibit table TB2 to manage tracks that generate read errors when a correctable track is changed to an uncorrectable track (hereinafter sometimes referred to as random write prohibit tracks). In other words, the parity sector management unit 640 has the random write prohibit table TB2 for managing random write prohibit tracks.
[0067] For example, the parity sector management unit 640 uses the random write prohibit table TB2 to manage at least one sector (hereinafter sometimes referred to as a random write prohibit sector) that has generated a read error when the sector has changed from a correctable sector to an uncorrectable sector. In other words, the parity sector management unit 640 has the random write prohibit table TB2 for managing the random write prohibit sectors.
[0068] The off-track management unit 650 manages the target area position of the target area (hereinafter sometimes referred to as the target area) of the disk 10, for example, the upper limit of the deviation amount in the radial direction from the center of the predetermined area, namely, the DOL (Drift of level) (or WOS (Write off track slice)). The off-track management unit 650 manages the target track position of the target track (hereinafter sometimes referred to as the target track) of the disk 10, for example, the upper limit of the deviation amount in the radial direction from the center of the track (hereinafter sometimes referred to as the off-track amount), namely, the DOL (or WOS). The off-track management unit 650 has multiple DOLs.
[0069] The off-track management unit 650 sets multiple DOLs for multiple areas. In other words, the off-track management unit 650 sets multiple DOLs for directions toward multiple areas. The off-track management unit 650 sets multiple DOLs for multiple tracks. In other words, the off-track management unit 650 sets multiple DOLs for directions toward multiple tracks. The off-track management unit 650 sets multiple DOLs for multiple sectors. In other words, the off-track management unit 650 sets multiple DOLs for directions toward multiple sectors.
[0070] The off-track management unit 650 sets multiple DOLs for a predetermined area (in the direction toward the predetermined area). The off-track management unit 650 sets multiple DOLs for each of the multiple areas obtained by dividing the predetermined area (in the direction toward the multiple areas obtained by dividing the predetermined area). For example, the off-track management unit 650 sets multiple DOLs for a predetermined track (in the direction toward the predetermined track). The off-track management unit 650 sets multiple DOLs for each of the multiple areas obtained by dividing the predetermined track (in the direction toward the multiple areas obtained by dividing the predetermined track).
[0071] The off-track management unit 650 sets the DOL of the target area (hereinafter sometimes referred to as the target area) with respect to the radial area (in the direction toward the radial area) to different DOLs depending on whether the area in the radial direction of the target area (hereinafter sometimes referred to as the target area) is a correctable area (hereinafter sometimes referred to as the correctable radial area) or an uncorrectable area (hereinafter sometimes referred to as the uncorrectable radial area). In other words, within the target area, the off-track management unit 650 sets different DOLs for the correctable radial area and the uncorrectable radial area.
[0072] For the correctable radius area, when data is written to the target area, the occurrence rate of unrecoverable errors (i.e., unreadable errors) can be reduced compared to the uncorrectable radius area. Therefore, the area target position in the radial direction of the target area, for example, the distance or proximity from the radial center of the target area (hereinafter referred to as "squeeze"), can be larger for the correctable radius area than for the uncorrectable radius area. In other words, the squeeze margin for the correctable radius area can be larger than that for the uncorrectable radius area.
[0073] If the deviation track management unit 650 determines that the radius area of the target area is a correctable radius area, it sets the DOL of the target area with respect to the radius area (in the direction toward the radius area) to a predetermined DOL (hereinafter sometimes referred to as a high DOL). If the deviation track management unit 650 determines that the radius area of the target area is an uncorrectable radius area, it sets the DOL of the target area with respect to the radius area (in the direction toward the radius area) to a DOL (hereinafter sometimes referred to as a low DOL) (in absolute value) that is smaller than (in absolute value) the high DOL. The high DOL is larger than the low DOL.
[0074] The off-track management unit 650 sets a different DOL for the target area with respect to (in the direction toward) the adjacent area (hereinafter sometimes referred to as the adjacent area) radially adjacent to the target area, depending on whether the adjacent area is a correctable area (hereinafter sometimes referred to as the correctable adjacent area) or an uncorrectable area (hereinafter sometimes referred to as the uncorrectable adjacent area). In other words, within the target area, the off-track management unit 650 sets different DOL values for the correctable adjacent area and the uncorrectable adjacent area.
[0075] For correctable adjacent regions, when data is written to the target region, the rate of unrecoverable errors can be reduced compared to uncorrectable adjacent regions. Therefore, the squeeze rate for correctable adjacent regions can be greater than that for uncorrectable adjacent regions. In other words, the squeeze margin for correctable adjacent regions can be greater than that for uncorrectable adjacent regions.
[0076] If the off-track management unit 650 determines that the adjacent area of the target area is a correctable adjacent area, it sets the DOL of the target area with respect to the adjacent area (in the direction toward the adjacent area) to a high DOL. If the off-track management unit 650 determines that the adjacent area of the target area is an uncorrectable adjacent area, it sets the DOL of the target area with respect to the adjacent area (in the direction toward the adjacent area) to a low DOL.
[0077] The off-track management unit 650 sets the DOL for the target track (hereinafter sometimes referred to as the target track) to different values depending on whether the track (hereinafter sometimes referred to as the radius track) located in the radial direction of the target track (hereinafter sometimes referred to as the target track) is a correctable track (hereinafter sometimes referred to as the correctable radius track) or an uncorrectable track (hereinafter sometimes referred to as the uncorrectable radius track). In other words, in the target area, the off-track management unit 650 sets different values for the DOL for the correctable radius track and the DOL for the uncorrectable radius track.
[0078] For correctable radius tracks, when data is written to the target area, the rate of unrecoverable errors can be reduced compared to uncorrectable radius tracks. Therefore, the squeeze applied to correctable radius tracks can be greater than that applied to uncorrectable radius tracks. In other words, the squeeze margin for correctable radius tracks can be greater than that for uncorrectable radius tracks.
[0079] If the deviation track management unit 650 determines that the radial track of the target track is a correctable radial track, it sets the DOL of the target track with respect to the radial track (in the direction toward the radial track) to a high DOL. If the deviation track management unit 650 determines that the radial track of the target track is an uncorrectable radial track, it sets the DOL of the target track with respect to the radial track (in the direction toward the radial track) to a low DOL.
[0080] The off-track management unit 650 sets the target track's DOL relative to (in the direction toward) the adjacent track (hereinafter, sometimes referred to as the adjacent track) based on whether the track radially adjacent to the target track (hereinafter, sometimes referred to as the adjacent track) is a correctable track (hereinafter, sometimes referred to as the correctable adjacent track) or an uncorrectable track (hereinafter, sometimes referred to as the uncorrectable adjacent track). In other words, in the target area, 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.
[0081] For correctable adjacent tracks, when data is written to the target area, the rate of unrecoverable errors can be reduced compared to uncorrectable adjacent tracks. Therefore, the squeeze applied to correctable adjacent tracks can be greater than that applied to uncorrectable adjacent tracks. In other words, the squeeze margin for correctable adjacent tracks can be greater than that for uncorrectable adjacent tracks.
[0082] If the deviation track management unit 650 determines that the adjacent track of the target track is a correctable adjacent track, it sets the DOL of the target track with respect to the adjacent track (in the direction toward the adjacent track) to a high DOL. If the deviation track management unit 650 determines that the adjacent track of the target track is an uncorrectable adjacent track, it sets the DOL of the target track with respect to the adjacent track (in the direction toward the adjacent track) to a low DOL.
[0083] The off-track management unit 650 sets the DOL of the target sector with respect to (in the direction toward) the radial sector to different values, depending on whether at least one sector (hereinafter sometimes referred to as a radial sector) located in the radial direction of at least one target sector of the target track (hereinafter sometimes referred to as the target sector) and arranged along the circumferential direction is a correctable sector (hereinafter sometimes referred to as a correctable radial sector) or an uncorrectable sector (hereinafter sometimes referred to as a correctable radial sector). In other words, in the target area, the off-track management unit 650 sets different values for the DOL of the correctable radial sector and the DOL of the uncorrectable radial sector.
[0084] For sectors with correctable radius, when data is written to the target area, the rate of unrecoverable errors can be reduced compared to sectors with uncorrectable radius. Therefore, the squeeze rate for sectors with correctable radius can be greater than that for sectors with uncorrectable radius. In other words, the squeeze margin for sectors with correctable radius can be greater than that for sectors with uncorrectable radius.
[0085] If the off-track management unit 650 determines that the radius sector of the target sector is a correctable radius sector, it sets the DOL of the target sector with respect to the radius sector (in the direction toward the radius sector) to a high DOL. If the off-track management unit 650 determines that the radius sector of the target track is an uncorrectable radius sector, it sets the DOL of the target sector with respect to the radius sector (in the direction toward the radius sector) to a low DOL.
[0086] The off-track management unit 650 sets the target sector's DOL relative to (in the direction toward) the adjacent sector (or sectors that are radially adjacent to the target sector and arranged along the circumferential direction, sometimes referred to as an adjacent sector) based on whether the sector is a correctable sector (also referred to as a correctable adjacent sector) or an uncorrectable sector (also referred to as an uncorrectable adjacent sector). In other words, within the target area, the off-track management unit 650 sets different DOL values for correctable adjacent sectors and for uncorrectable adjacent sectors.
[0087] For correctable adjacent sectors, when data is written to the target area, the rate of unrecoverable errors can be reduced compared to uncorrectable adjacent sectors. Therefore, the squeeze rate for correctable adjacent sectors can be greater than that for uncorrectable adjacent sectors. In other words, the squeeze margin for correctable adjacent sectors can be greater than that for uncorrectable adjacent sectors.
[0088] If the off-track management unit 650 determines that the adjacent sector of the target sector is a correctable adjacent sector, it sets the DOL of the target sector with respect to the adjacent sector (in the direction toward the adjacent sector) to a high DOL. If the off-track management unit 650 determines that the adjacent sector of the target track is an uncorrectable adjacent sector, it sets the DOL of the target sector with respect to the adjacent sector (in the direction toward the adjacent sector) to a low DOL.
[0089] The off-track management unit 650 manages a threshold (hereinafter sometimes referred to as an unrecoverable threshold) for the off-track amount of a radial track (toward the radial track) or an adjacent track (toward the adjacent track) that would cause an unreadable error if track ECC was not performed on the radial track, such as an adjacent track. The unrecoverable threshold is greater than the DOL. The off-track management unit 650 has multiple unrecoverable thresholds.
[0090] The off-track management unit 650 sets a plurality of unrecoverable thresholds corresponding to a plurality of DOLs (directions toward a plurality of DOLs). The off-track management unit 650 sets different unrecoverable thresholds for different DOLs.
[0091] The deviation track management unit 650 sets an unrecoverable threshold value (hereinafter sometimes referred to as a low unrecoverable threshold value) that is smaller than the high DOL and larger than the low DOL for a radial track (in the direction toward the radial track) or an adjacent track (in the direction toward the adjacent track) in which a high DOL is set in the target track. The low unrecoverable threshold value corresponds to the unrecoverable threshold value of a radial track or a radial sector in which a low DOL is set, for example, an adjacent track or an adjacent sector in which a low DOL is set. In addition, the unrecoverable threshold value of a radial track or a radial sector in which a high DOL is set, for example, an adjacent track or an adjacent sector in which a high DOL is set, is sometimes referred to as a high unrecoverable threshold value. The high unrecoverable threshold value is larger than the high DOL.
[0092] The off-track management unit 650 sets a low unrecoverable threshold for a radial sector (in the direction toward the radial sector) where a high DOL is set in the target sector, for example, an adjacent sector (in the direction toward the adjacent sector).
[0093] When the deviation track management unit 650 determines that the deviation track amount (or squeeze) for a predetermined radial track (in the direction toward the predetermined radial track), for example, a predetermined adjacent track (in the direction toward the predetermined adjacent track) in the target track is greater than a low unrecoverable threshold value corresponding to the radial track (in the direction toward the radial track), for example, the adjacent track (in the direction toward the adjacent track), write processing is not permitted on the radial track. For example, when the deviation track management unit 650 determines that the deviation track amount (or squeeze) for a correctable adjacent track (in the direction toward the correctable adjacent track) in the target track is greater than a low unrecoverable threshold value corresponding to the correctable adjacent track (in the direction toward the correctable adjacent track), write processing to a portion of the correctable adjacent track in which error correction in units of tracks becomes uncorrectable, for example, sequential writing to the middle of one track, or random writing is not permitted. In other words, when the deviation track management unit 650 determines in the object track that the deviation track amount (or squeezing) for the correctable adjacent track (toward the correctable adjacent track) is greater than the low unrecoverable threshold corresponding to the correctable adjacent track (toward the correctable adjacent track), random writing of data less than 1 track amount is not allowed in the correctable adjacent track.
[0094] The deviation track management unit 650 may also manage the radial track using the random write prohibition table TB2 when it is determined in the object track that the deviation track amount (or squeeze) for a predetermined radial track (in the direction toward the predetermined radial track), for example, a predetermined adjacent track (in the direction toward the predetermined adjacent track) is greater than the low irrecoverable threshold value corresponding to the radial track (in the direction toward the radial track), for example, the adjacent track (in the direction toward the adjacent track). For example, the deviation track management unit 650 may also manage the correctable adjacent track using the random write prohibition table TB2 when it is determined in the object track that the deviation track amount (or squeeze) for a correctable adjacent track (in the direction toward the correctable adjacent track) is greater than the low irrecoverable threshold value corresponding to the correctable adjacent track (in the direction toward the correctable adjacent track).
[0095] The deviation track management unit 650 may also perform a read-modify-write on a predetermined radius track (in the direction toward the predetermined radius track), for example, a predetermined adjacent track (in the direction toward the predetermined adjacent track), when it is determined in the object track that the deviation track amount (or squeezing) for the predetermined radius track (in the direction toward the predetermined radius track), for example, a predetermined adjacent track (in the direction toward the predetermined adjacent track), is greater than a low unrecoverable threshold value corresponding to the adjacent track (in the direction toward the adjacent track). For example, the deviation track management unit 650 may also perform a read-modify-write on a correctable radius track, for example, a correctable adjacent track, when it is determined in the object track that the deviation track amount (or squeezing) for the correctable adjacent track (in the direction toward the correctable adjacent track) is greater than a low unrecoverable threshold value corresponding to the correctable adjacent track (in the direction toward the correctable adjacent track).
[0096] If the off-track management unit 650 determines that the off-track amount (or squeeze) for a predetermined radius sector (in the direction toward the predetermined radius sector), such as a predetermined adjacent sector (in the direction toward the predetermined adjacent sector), in the target sector is greater than a low unrecoverable threshold value corresponding to the radius sector (in the direction toward the radius sector), such as the adjacent sector (in the direction toward the adjacent sector), then write processing is not permitted in the radius sector. For example, if the off-track management unit 650 determines that the off-track amount (or squeeze) for a correctable adjacent sector (in the direction toward the correctable adjacent sector) in the target sector is greater than a low unrecoverable threshold value corresponding to the correctable adjacent sector (in the direction toward the correctable adjacent sector), then write processing to a portion of the correctable adjacent sector in which error correction on a track-by-track basis becomes uncorrectable, such as sequential writing to the middle of a track or random writing, is not permitted. In other words, when the deviation track management unit 650 determines in the object sector that the deviation track amount (or squeeze) for the correctable adjacent sector (in the direction toward the correctable adjacent sector) is greater than the low unrecoverable threshold corresponding to the correctable adjacent sector (in the direction toward the correctable adjacent sector), random writing of data less than the amount of data that can be written in the entire area of the correctable adjacent sector is not allowed in the correctable adjacent sector.
[0097] The off-track management unit 650 may also manage the radial sector using the random write prohibit table TB2 when it is determined in the target sector that the off-track amount (or squeeze) for a predetermined radial sector (in the direction toward the predetermined radial sector), for example, a predetermined adjacent sector (in the direction toward the predetermined adjacent sector), is greater than the low unrecoverable threshold value corresponding to the radial sector (in the direction toward the radial sector), for example, the adjacent sector (in the direction toward the adjacent sector). For example, the off-track management unit 650 may also manage the correctable adjacent sector using the random write prohibit table TB2 when it is determined in the target sector that the off-track amount (or squeeze) for a correctable adjacent sector (in the direction toward the correctable adjacent sector) is greater than the low unrecoverable threshold value corresponding to the correctable adjacent sector (in the direction toward the correctable adjacent sector).
[0098] The off-track management unit 650 may also perform a read-modify-write on a radial sector, such as a predetermined adjacent sector (in the direction of the predetermined radial sector), when it is determined in the target sector that the off-track amount (or squeeze) for a predetermined radial sector (in the direction of the predetermined radial sector), such as a predetermined adjacent sector (in the direction of the predetermined adjacent sector), is greater than a low unrecoverable threshold value corresponding to the radial sector (in the direction of the radial sector), such as the adjacent sector (in the direction of the adjacent sector). For example, the off-track management unit 650 may also perform a read-modify-write on a correctable radial sector, such as the correctable adjacent sector, when it is determined in the target sector that the off-track amount (or squeeze) for a correctable adjacent sector (in the direction of the correctable adjacent sector) is greater than a low unrecoverable threshold value corresponding to the correctable adjacent sector (in the direction of the correctable adjacent sector).
[0099] Figure 3 FIG is a schematic diagram showing an example of track ECC processing. Figure 3 In FIG, the direction in which the head 15 moves relative to the disk 10, that is, the direction of reading / writing (hereinafter sometimes referred to as the moving direction) is shown in the circumferential direction (circumferential position). Figure 3 In the example, the direction of travel is the rear direction (or sometimes simply referred to as the rear). In addition, the direction of travel can also be the front direction (or sometimes simply referred to as the front). Figure 3 , track TRn-1, track TRn, and track TRn+1 are shown. Figure 3In the example, tracks TRn-1 through TRn+1 are arranged in the order listed from outward to inward. Track TRn is adjacent to track TRn-1 in the outward direction, and track TRn+1 is adjacent to track TRn in the outward direction. 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 a parity sector Pn-1. Sectors Sc(n-1)0, Sc(n-1)1, Sc(n-1)2, Sc(n-1)3, Sc(n-1)4, Sc(n-1)5, Sc(n-1)6, Sc(n-1)7, Sc(n-1)8, Sc(n-1)9, Sc(n-1)10, Sc(n-1)11, and parity sector Pn-1 are written consecutively in the order listed in the forward direction. Parity sector Pn-1 is equivalent to the result of performing an XOR operation on sectors Sc(n-1)0 through Sc(n-1)11. In other words, parity sector Pn-1 is a valid parity sector. Track TRn-1 corresponds to a correctable track. Track TRn includes sectors Scn0, Scn1, Scn2, Scn3, Scn4, Scn5, Scn6, Scn7, Scn8, Scn9, Scn10, and Scn11, as well as a parity sector Pn. Sectors Scn0, Scn1, Scn2, Scn3, Scn4, Scn5, Scn6, Scn7, Scn8, Scn9, Scn10, and Scn11, as well as parity sector Pn, are written consecutively in the order in which they are written. Parity sector Pn is equivalent to the result of performing an XOR operation on sectors Scn0 through Scn11. In other words, parity sector Pn is a valid parity sector. Track TRn corresponds to a correctable track. Track TRn+1 includes 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 a parity sector Pn+1. Sectors Sc(n+1)0, Sc(n+1)1, Sc(n+1)2, Sc(n+1)3, Sc(n+1)4, Sc(n+1)5, Sc(n+1)6, Sc(n+1)7, Sc(n+1)8, Sc(n+1)9, Sc(n+1)10, Sc(n+1)11, and parity sector Pn+1 are written consecutively in the order in which they are written in the direction of travel.Parity sector Pn+1 is equivalent to the result of performing an XOR operation on sectors Sc(n+1)0 to Sc(n+1)11. In other words, parity sector Pn+1 is a valid parity sector. Track TRn+1 is equivalent to a correctable track.
[0100] exist Figure 3 In the example shown, when MPU60 detects an error sector in sectors Scn0~Scn11 of track TRn, if the error sector cannot be corrected through read retry and sector ECC processing, track ECC processing is performed on the error sector based on the parity sector Pn to correct the error sector.
[0101] Figure 4 This is a schematic diagram showing an example of track ECC processing. Figure 4 and Figure 3 correspond.
[0102] exist Figure 4 In the example shown, the MPU 60 randomly overwrites sectors Scn5, Scn6, and Scn7 of track TRn. The MPU 60 identifies track TRn as an uncorrectable track and records this information as management table TB1 in a predetermined recording area, such as the system area 10b of the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90. If the MPU 60 detects an error sector in sectors Scn0 to Scn11 of track TRn and cannot correct the error sector through read retry and sector ECC processing, track ECC processing will not be performed on the error sector of track TRn.
[0103] exist Figure 4 In the example shown, the MPU 60 sets the DOL (inward DOL) for track TRn (direction toward track TRn) to low DOL in track TRn-1. In other words, the MPU 60 changes the DOL (inward DOL) for track TRn (direction toward track TRn) from high DOL to low DOL in track TRn-1.
[0104] exist Figure 4 In the example shown, the MPU 60 sets the DOL (outward DOL) for track TRn (in the direction toward track TRn) to a low DOL in track TRn+1. In other words, the MPU 60 changes the DOL (outward DOL) for track TRn (in the direction toward track TRn) from a high DOL to a low DOL in track TRn+1.
[0105] Figure 5 This is a schematic diagram showing an example of track ECC processing. Figure 5 and Figure 3 correspond.
[0106] exist Figure 5 In the example shown, the MPU 60 overwrites the rear sectors Scn8, Scn9, Scn10, and Scn11 of track TRn. The MPU 60 performs an XOR operation on the rear sectors Scn8-Scn11 and overwrites the parity sector Pn. The MPU 60 identifies the rear sectors Scn8-Scn11 as correctable sectors and records them as management table TB1 in a predetermined recording area, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. The MPU 60 identifies the front sectors Scn0-Scn7 as uncorrectable sectors and records them as management table TB1 in a predetermined recording area, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90. If the MPU 60 detects an error sector in the rear sectors Scn8 to Scn11 of track TRn and cannot correct the error sector through read retry and sector ECC processing, it performs track ECC processing on the error sector based on parity sector Pn to correct the error sector. If the MPU 60 detects an error sector in the front sectors Scn0 to Scn7 of track TRn and cannot correct the error sector through read retry and sector ECC processing, it cannot perform track ECC processing on the error sector of track TRn.
[0107] exist Figure 5 In the example shown, the MPU 60 sets the DOL (inward DOL) for the leading sectors Scn0 to Scn7 of track TRn (direction toward the leading sectors Scn0 to Scn7) in the leading sectors Sc(n-1)0 to Sc(n-1)7 of track TRn-1 to a low DOL. In other words, the MPU 60 changes the DOL (inward DOL) for the leading sectors Scn0 to Scn7 of track TRn (direction toward the leading sectors Scn0 to Scn7) in the leading sectors Sc(n-1)0 to Sc(n-1)7 of track TRn-1 from a high DOL to a low DOL.
[0108] exist Figure 5In the example shown, the MPU 60 sets the DOL (outward DOL) for the leading sectors Scn0 to Scn7 of track TRn (directed toward the leading sectors Scn0 to Scn7) in the leading sectors Sc(n+1)0 to Sc(n+1)7 of track TRn+1 to a low DOL. In other words, the MPU 60 changes the DOL (outward DOL) for the leading sectors Scn0 to Scn7 of track TRn (directed toward the leading sectors Scn0 to Scn7) in the leading sectors Sc(n+1)0 to Sc(n+1)7 of track TRn-1 from a high DOL to a low DOL.
[0109] Figure 6 FIG. 1 is a schematic diagram showing an example of the low DOL D1, high DOL D2 and low unrecoverable threshold UTH1 involved in this embodiment. Figure 6 In the figure, the horizontal axis represents squeeze (or the amount of deviation from the track), and the vertical axis represents the unrecoverable error rate (Unrecoverable Error Rate). Figure 6 On the vertical axis, the unrecoverable error rate increases as it goes toward the front end of the arrow, and decreases as it goes toward the side opposite to the front end of the arrow. Figure 6 On the horizontal axis, the extrusion increases toward the front end of the arrow and decreases toward the side opposite to the front end of the arrow. Figure 6 The horizontal axis shows the low DOLD1, high DOL D2 and unrecoverable threshold UTH1. Figure 6 On the horizontal axis, high DOL D2 is greater than low DOL D1. The low unrecoverable threshold UTH1 corresponds to low DOL D1. The low unrecoverable threshold UTH1 is greater than low DOL D1 and smaller than high DOL D2. Figure 6 The figure shows the change of the unrecoverable error rate corresponding to the uncorrectable adjacent area (uncorrectable adjacent track and uncorrectable adjacent sector, etc.) with respect to squeezing (hereinafter sometimes referred to as the change of the unrecoverable error rate corresponding to the uncorrectable adjacent area) ERL1, and the change of the unrecoverable error rate corresponding to the correctable adjacent area (correctable adjacent track and correctable adjacent sector, etc.) with respect to squeezing (hereinafter sometimes referred to as the change of the unrecoverable error rate corresponding to the correctable adjacent area) ERL2. Figure 6 As shown by 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 is larger than that in the uncorrectable region under a small squeeze.
[0110] exist Figure 6In the example shown, the MPU 60 sets the DOL for an uncorrectable adjacent track or sector (in the direction toward the uncorrectable adjacent track or sector) in the target track or sector to a low DOL D1, and sets the DOL for a correctable adjacent track or sector (in the direction toward the correctable adjacent track or sector) to a high DOL D2. The MPU 60 sets a low unrecoverable threshold UTH1 for a correctable adjacent track or sector (in the direction toward the correctable adjacent track or sector) in the target track. The MPU 60 may also perform a read-modify-write on the correctable adjacent track or sector if it determines that the off-track amount (or squeeze) for a correctable adjacent track or sector (in the direction toward the correctable adjacent track or sector) in the target track is greater than the low unrecoverable threshold.
[0111] Figure 7 Schematic diagram showing an example of DOL according to this embodiment. Figure 7 , track TRk-1, track TRk, and track TRk+1 are shown. Figure 7 In FIG, tracks TRk-1 to TRk+1 are arranged in the order described from the outside to the inside. Track TRk is adjacent to track TRk-1 in the inside direction, and track TRk+1 is adjacent to track TRk in the outside direction. Figure 7 In the example, track TRk-1 is equivalent to an adjacent track that cannot be corrected, and track TRk+1 is equivalent to an adjacent track that can be corrected. Figure 7 The track center TRCk of the track TRk is shown in FIG. Figure 7 Circumferential position CPS, circumferential position CP0 and circumferential position CPR are shown in FIG. Circumferential position CP0 is located in the rear direction relative to circumferential position CPS, and circumferential position CPR is located in the rear direction relative to circumferential position CP0. Figure 7 7 shows a path HR71 of the head 15 from the circumferential position CPS to the circumferential position CP0 in the track TRk, and a path HR72 of the head 15 from the circumferential position CP0 to the circumferential position CPR in the track TRk.
[0112] exist Figure 7 In the example shown, MPU60 sets the DOL (DOL in the outward direction) for track TRk-1 (in the direction toward track TRk-1) in track TRk to low DOL D1, and sets the DOL (DOL in the inward direction) for track TRk+1 (in the direction toward track TRk+1) to high DOL D2.
[0113] exist Figure 7In the example shown, the MPU 60 moves the head 15 from circumferential position CPS to circumferential position CP0 along path HR71 on track TRk. If the MPU 60 determines at circumferential position CP0 that the amount of off-track movement (squeeze) toward the track TRk-1 side (outward) is greater than DOL D1, the MPU 60 stops the write process (or write operation) and repositions the head 15 to the center of the track TRCk. If the MPU 60 stops the write process (or write operation) on track TRk and positions the head 15 at the center of the track TRCk, the head 15 moves from circumferential position CP0 to circumferential position CPR along path HR72.
[0114] Figure 8 Schematic diagram showing an example of DOL according to this embodiment. Figure 8 The track TRk-1 and the track TRk are shown in FIG. Figure 8 In FIG, track TRk-1 has a front sector FSck-1 and a rear sector RSck-1 adjacent to the front sector FSck-1 in the rear direction. The front sector FSck-1 is equivalent to an uncorrectable adjacent sector, and the rear sector RSck-1 is equivalent to a correctable adjacent sector. Figure 8 In FIG, the track TRk has a front sector FSck and a rear sector RSck adjacent to the front sector FSck in the rear direction. Figure 8 The circumferential position CPS, circumferential position CP1 and circumferential position CPR are shown in the figure. The circumferential position CP1 is located in the rear direction of the circumferential position CPS, and the circumferential position CPR is located in the rear direction of the circumferential position CP1. The front sector FSck-1 is equivalent to the area from the circumferential position CPS to the circumferential position CP1 in the track TRk-1. The rear sector RSck-1 is equivalent to the area from the circumferential position CP1 to the circumferential position CPR in the track TRk-1. The front sector FSck is equivalent to the area from the circumferential position CPS to the circumferential position CP1 in the track TRk. The rear sector RSck is equivalent to the area from the circumferential position CP1 to the circumferential position CPR in the track TRk. In Figure 8 8 shows a path HR81 of the head 15 from the circumferential position CPS to the circumferential position CPR in the track TRk.
[0115] exist Figure 8 In the example shown, MPU60 sets the DOL for the front sector FSck-1 (the DOL in the outward direction in the front sector FSck) to low DOL D1 in track TRk, and sets the DOL for the rear sector RSck-1 (the DOL in the outward direction in the rear sector RSck) to high DOL D2.
[0116] exist Figure 8In the example shown, the MPU 60 moves the head 15 from circumferential position CPS to circumferential position CPR in track TRk along path HR81. If the MPU 60 determines that the amount of off-track (squeeze) toward the front sector FSck-1 (outward) in the region from circumferential position CPS to circumferential position CP1 of track TRk is less than DOL D1, the MPU 60 continues the write process (or write operation) without stopping. If the MPU 60 determines that the amount of off-track (squeeze) toward the rear sector FSck-1 (outward) in the region from circumferential position CP1 to circumferential position CPR of track TRk is less than DOL D2, the MPU 60 continues the write process (or write operation) without stopping. In addition, when MPU60 determines in the area from the circumferential position CP1 to the circumferential position CPR of the track TRk that the deviation track amount (squeeze) in the direction (outward direction) toward the rear sector FSck-1 is greater than DOL D1 and is less than DOL D2, it continues the write processing (or write action) without stopping.
[0117] Figure 9 Schematic diagram showing an example of DOL according to this embodiment. Figure 9 , track TRk-1, track TRk, and track TRk+1 are shown. Figure 9 Circumferential position CPS, circumferential position CP2 and circumferential position CPR are shown in FIG. Circumferential position CP2 is located in the rear direction relative to circumferential position CPS, and circumferential position CPR is located in the rear direction relative to circumferential position CP2. Figure 9 9 shows a path HR91 of the head 15 from the circumferential position CPS to the circumferential position CP2 in the track TRk, and a path HR92 of the head 15 from the circumferential position CP2 to the circumferential position CPR in the track TRk.
[0118] exist Figure 9 In the example shown, the MPU 60 sets the DOL (outward DOL) for track TRk-1 (direction toward track TRk-1) to a low DOL D1, and sets the DOL (inward DOL) for track TRk+1 (direction toward track TRk+1) to a high DOL D2. Figure 9 In the example shown, the MPU 60 sets the low unrecoverable threshold value UTH1 for the track TRk+1 (inward direction) in the track TRk.
[0119] exist Figure 9In the example shown, the MPU 60 moves the head 15 from circumferential position CPS to circumferential position CP2 on track TRk along path HR91. If the MPU 60 determines that the amount of off-track (squeeze) toward track TRk+1 (inward) is greater than the lower unrecoverable threshold value UTH1, it performs a read-modify-write on track TRk+1. If the MPU 60 determines that the amount of off-track (squeeze) toward track TRk+1 (inward) is greater than DOL D2 at circumferential position CP2, it stops the write process (or write operation) and repositions the head 15 to the center of the track TRCk. If the MPU 60 stops the write process (or write operation) on track TRk and positions the head 15 at the center of the track TRCk, it moves the head 15 from circumferential position CP2 to circumferential position CPR along path HR92.
[0120] Figure 10 This is a flowchart showing an example of a method for setting a DOL according to this embodiment.
[0121] MPU60 determines whether the adjacent area of the object area is a correctable area (B1001). For example, MPU60 determines whether the adjacent track or adjacent sector of the object track or object sector is a correctable adjacent track or correctable adjacent sector, or an uncorrectable adjacent track or uncorrectable adjacent sector. In the case where it is determined that the adjacent area of the object area is a correctable area (B1001: Yes), MPU60 sets the DOL of the object area with respect to the adjacent area to a high DOL (B1002). MPU60 sets a low unrecoverable threshold value for the adjacent area of the object area (B1003) and ends the processing. In the case where it is determined that the adjacent area of the object area is an uncorrectable area (B1001: No), MPU60 sets the DOL of the object area with respect to the adjacent area to a low DOL (B1004) and ends the processing.
[0122] Figure 11 This is a flowchart showing an example of the write process according to this embodiment.
[0123] The MPU 60 receives a write command to write data to a target area (B1101). For example, the MPU 60 receives a write command to write data to a target track or sector. The MPU 60 determines whether the target area is a correctable area (B1102). For example, the MPU 60 determines whether the target track or sector is a correctable track or sector, or an uncorrectable track or sector.
[0124] If the target area is determined not to be a correctable area (B1102: No), the MPU 60 writes data to the target area (B1103) and terminates the process. For example, if the target track or sector is determined not to be a correctable track or sector, the MPU 60 writes data to the target track or sector and terminates the process.
[0125] If the target area is determined to be a correctable area (B1102: Yes), the MPU 60 determines whether the squeezing in the adjacent areas of the target area toward the target area is greater than the lower unrecoverable threshold or is below the lower unrecoverable threshold (B1104). For example, if the target sector or track is determined to be a correctable sector or track, the MPU 60 determines whether the squeezing in the adjacent sectors or tracks of the target sector or track toward the target sector or track is greater than the lower unrecoverable threshold or is below the lower unrecoverable threshold.
[0126] If it is determined that the squeeze in the adjacent sector or track toward the target sector or target track is less than the lower unrecoverable threshold (B1104: No), the MPU 60 proceeds to processing at B1103. If it is determined that the squeeze in the adjacent sector or track toward the target sector or target track is greater than the lower unrecoverable threshold (B1104: Yes), the MPU 60 does not allow writes that render track-by-track error correction uncorrectable, such as sequential writes to the middle of a track, or random writes, in the target sector or target track, and performs a read-modify-write (B1105), terminating the processing. For example, if it is determined that the squeeze in the adjacent sector or track toward the target sector or target track is greater than the lower unrecoverable threshold, the MPU 60 does not allow random writes in the target sector or target track, performs a read-modify-write, and terminates the processing. For example, when it is determined that the squeezing in the adjacent sector or the adjacent track toward the object sector or the object track is greater than the lower irrecoverable threshold, MPU60 reads the object sector or the object track, replaces the corresponding data of the object sector or the object track with the updated data, writes the updated sector or the updated track, performs an XOR operation on all the updated sector groups of the updated sector or the updated track, calculates the updated parity sector, writes the updated sector group and the updated parity sector to the same object sector or the object track, and ends the processing.
[0127] According to the present embodiment, the disk device 1 manages correctable areas (correctable tracks or correctable sectors) and uncorrectable areas (uncorrectable tracks or uncorrectable sectors) using a management table TB1. The disk device 1 manages random write prohibited tracks or random write prohibited sectors using a random write prohibited table TB2. When the disk device 1 determines that an adjacent area of an object area is a correctable adjacent area, the disk device 1 sets the DOL of the object area in the direction toward the adjacent area to a high DOL. When the disk device 1 determines that an adjacent area of an object area is an uncorrectable adjacent area, the disk device 1 sets the DOL of the object area in the direction toward the adjacent area to a low DOL. The disk device 1 sets a low unrecoverable threshold for the adjacent area for which a high DOL is set in the object area. If the magnetic disk device 1 determines that an adjacent area of a target area is a correctable area and that the squeeze in the target area toward the adjacent area is greater than the unrecoverable threshold, it performs a read-modify-write on the adjacent area without allowing track-by-track error correction to render it uncorrectable, such as sequential writing to the middle of a track or random writing. Consequently, the magnetic disk device 1 can improve recording density. Furthermore, the magnetic disk device 1 can efficiently perform write processing, thereby improving reliability.
[0128] Next, a magnetic disk device according to a modified example of the aforementioned embodiment will be described. In the modified example, the same reference numerals are given to the same parts as those in the aforementioned embodiment, and detailed description thereof will be omitted.
[0129] (Variation 1)
[0130] The magnetic disk device 1 according to the first modification differs from the magnetic disk device 1 according to the aforementioned embodiment in that it executes a refresh process.
[0131] Figure 12 This is a block diagram showing the configuration of a magnetic disk device 1 according to Modification 1.
[0132] The MPU 60 also includes a write counter unit 660 and a refresh control unit 670. The MPU 60 executes the processing of various units, such as 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 counter unit 660, and the refresh control unit 670, in firmware. Alternatively, the MPU 60 may include various units, such as 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 counter unit 660, and the refresh control unit 670, 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 counter unit 660, and the refresh control unit 670 may also be included in the R / W channel 40 or the HDC 50. In addition, the MPU 60 may not include the off-track management unit 650 .
[0133] The write counter unit 660 counts the number of times data has been written (hereinafter sometimes referred to as the write count or write count). The write count (or write count) corresponds to, for example, the number of times data has been written and affected by magnetic flux leakage from the head 15 (Adjacent Track Interference: ATI). The write counter unit 660 may store the write count as a table in a predetermined recording area, such as the disk 10 (system area 10b), the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90, as a management table TB1.
[0134] The write counter 660 counts the number of writes performed on a region (hereinafter sometimes referred to as a proximity region) located within a predetermined range from the target region in a radial direction. For example, the write counter 660 counts the number of writes performed on the proximity region located within the range from the target region to which ATI is applied.
[0135] When data is written to an area adjacent to the target area, the write counter section 660 increases (increments) the number of writes corresponding to the target area by a predetermined value. For example, when data is written to an area adjacent to the target area in both the outer and inner directions, the write counter section 660 increases (increments) the number of writes corresponding to the target area by a predetermined value. For example, when data is written to an area adjacent to the target area in both the outer and inner directions, the write counter section 660 increases (increments) the number of writes corresponding to the target area by 1.
[0136] The write counter section 660 counts the number of times data is written to a region radially adjacent to the target region (hereinafter sometimes referred to as an adjacent region). For example, the write counter section 660 counts the number of times data is written to an adjacent region located within the range of the target region that is subject to ATI.
[0137] The write counter section 660 increases (increments) the number of writes corresponding to the object area by a predetermined value when data is written to an adjacent area in the outer and inner directions of the object area. For example, the write counter section 660 increases (increments) the number of writes corresponding to the object area by a predetermined value when data is written to an adjacent area in the outer and inner directions of the object area. For example, the write counter section 660 increases (increments) the number of writes corresponding to the object area by 1 when data is written to an adjacent area in the outer and inner directions of the object area. In addition, the write counter section 660 may also increase the number of writes corresponding to the object area by a value corresponding to the squeezing amount when data is written to an adjacent area in the outer and inner directions of the object area. For example, the write counter section 660 may also increase the number of writes corresponding to the object area by a value greater than 1 corresponding to the squeezing amount when data is written to an adjacent area in the outer and inner directions of the object area.
[0138] The write counter section 660 counts the number of times data is written to an adjacent track or sector that is radially adjacent to the target track or sector.
[0139] When data is written to an adjacent track or sector of a target track or sector, the write counter section 660 increases (increments) the number of writes corresponding to the target track or sector by a predetermined value. For example, when data is written to adjacent tracks in the outer and inner directions of the target track or sector, the write counter section 660 increases (increments) the number of writes corresponding to the target track or sector by a predetermined value. For example, when data is written to adjacent tracks or sectors in the outer and inner directions of the target track or sector, the write counter section 660 increases (increments) the number of writes corresponding to the target track or sector by 1.
[0140] The refresh control unit 670 performs the following processing (hereinafter sometimes referred to as refresh processing): rewriting the same data as the data written in a predetermined area, such as a predetermined track, to the area, such as a predetermined track. When the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds a threshold value (hereinafter sometimes referred to as refresh threshold value) corresponding to the number of writes for performing the refresh processing, the refresh control unit 670 performs refresh processing on the area. When the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds the refresh threshold value, the refresh control unit 670 performs refresh processing on a part of the area. In other words, when the refresh control unit 670 determines that the number of writes corresponding to the predetermined area exceeds the refresh threshold value, the refresh control unit 670 performs refresh processing on data below the capacity pre-set as the format in the area. When the refresh processing is performed on the predetermined area, the refresh control unit 670 resets the number of writes corresponding to the area, for example, to 0.
[0141] When the refresh control unit 670 determines that the number of writes corresponding to the target track or target sector exceeds the refresh threshold corresponding to the target track or target sector, it performs a refresh process on the target track or target sector. When the refresh control unit 670 determines that the number of writes corresponding to the target track or target sector exceeds the refresh threshold corresponding to the target track or target sector, it performs a refresh process on a portion of the target track or target sector. In other words, when the refresh control unit 670 determines that the number of writes corresponding to the target track or target sector exceeds the threshold corresponding to the target track or target sector, it performs a refresh process on data in the target track or target sector that is less than the capacity preset as a format.
[0142] The refresh control unit 670 changes (or sets) the refresh threshold value. The refresh control unit 670 has a plurality of refresh threshold values.
[0143] 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 multiple 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 multiple refresh thresholds.
[0144] In addition, the refresh control unit 670 sets the refresh threshold of the correctable area to a refresh threshold higher than the refresh threshold of the uncorrectable area among the multiple refresh thresholds, and sets the refresh threshold of the uncorrectable area to a refresh threshold lower than the refresh threshold of the correctable area among the multiple refresh thresholds.
[0145] The refresh control unit 670 has two refresh thresholds, for example, a high refresh threshold and a low refresh threshold. In addition, the refresh control unit 670 may also have more than three refresh thresholds. The high refresh threshold is larger 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 of the correctable area to the high refresh threshold, and sets the refresh threshold of the uncorrectable area to the low refresh threshold. The refresh control unit 670 performs refresh processing on the uncorrectable area with the low refresh threshold set less frequently than it performs refresh processing on the correctable area with the high refresh threshold set. In other words, the refresh control unit 670 performs refresh processing on the correctable area with the high refresh threshold set more frequently than it performs refresh processing on the uncorrectable area with the low refresh threshold set. Here, the frequency is equivalent to, for example, the number of times the processing is performed at a specific time.
[0146] For example, the refresh control unit 670 sets the refresh threshold for correctable tracks or correctable cylinders to a high refresh threshold, and sets the refresh threshold for uncorrectable tracks or uncorrectable cylinders to a low refresh threshold.
[0147] For example, the refresh control unit 670 sets the refresh threshold of the correctable sector (or logical track) to a high refresh threshold, and sets the refresh threshold of the uncorrectable sector to a low refresh threshold.
[0148] The refresh control unit 670 may set the refresh thresholds for the tracks corresponding to the heads 15 to different refresh thresholds among the multiple heads 15 corresponding to the predetermined cylinders (tracks). Alternatively, the refresh control unit 670 may set the refresh thresholds for the tracks corresponding to the heads 15 to the same refresh threshold among the multiple heads 15 corresponding to the predetermined cylinders (tracks).
[0149] For example, while maintaining the performance of multiple heads 15 for predetermined cylinders (tracks) at a constant level, the refresh control unit 670 sets the refresh threshold of the cylinder (track) corresponding to at least one of the multiple heads 15 to a high refresh threshold, and sets the refresh threshold of the cylinder (track) corresponding to other heads 15 other than at least one of the multiple heads 15 set to the high refresh threshold to a low refresh threshold.
[0150] For example, when the refresh control unit 670 maintains the performance of the four heads 15 for predetermined cylinders (tracks) constant and the refresh thresholds for the four cylinders (tracks) corresponding to the four heads 15 are 300 times, 300 times, 300 times, and 300 times, respectively, the refresh control unit 670 increases the two refresh thresholds corresponding to the two correctable cylinders (correctable tracks) corresponding to two of the four heads 15 by 100 times. In this case, the refresh control unit 670 decreases the two refresh thresholds corresponding to the two cylinders (tracks) corresponding to the remaining two heads 15 other than the two heads 15 corresponding to the correctable cylinders (correctable tracks) by 100 times. In this case, the TPI of the two heads 15 that do not correspond to the correctable cylinders (correctable tracks) can be improved while maintaining the performance of the four heads 15. Furthermore, when the remaining two heads 15 of the four heads 15, other than the two heads 15 corresponding to the correctable cylinders (correctable tracks), correspond to two uncorrectable cylinders (uncorrectable tracks) that have been written to and become uncorrectable by error correction on a track-by-track basis, such as sequential writing up to the middle of one track, or random writing, the refresh control unit 670 maintains the two refresh thresholds corresponding to the two cylinders (tracks) corresponding to each of these two heads 15 at 300 times and 300 times, respectively. Here, "randomly writing to a predetermined track, such as a correctable track (correctable cylinder)" is equivalent to "writing in a unit smaller than that for which error correction on a track-by-track basis is performed." Therefore, due to random writing to a predetermined track, such as a correctable track (correctable cylinder), it may be possible that error correction on a track-by-track basis cannot be performed on that track. When the refresh control unit 670 performs random writing on the correctable cylinder (correctable track) when the number of writes to the correctable cylinder (correctable track) is above the refresh threshold of the uncorrectable cylinder (uncorrectable track), the correctable cylinder (the correctable track) becomes an uncorrectable track. Therefore, random writing is not allowed on the correctable cylinder (correctable track), and read-modify-write is performed on the correctable cylinder (correctable track) to maintain the correctable track.
[0151] Figure 13 : is a schematic diagram showing an example of the refresh threshold values LTH and HTH according to Modification 1. Figure 13 In the figure, the horizontal axis represents the number of writes (times), and the vertical axis represents the unrecoverable error rate (Unrecoverable Error Rate). Figure 13 On the vertical axis, the unrecoverable error rate increases as it goes toward the front end of the arrow, and decreases as it goes toward the side opposite to the front end of the arrow. Figure 13 On the horizontal axis, the number of writes increases as it goes toward the front end of the arrow, and decreases as it goes toward the side opposite to the front end of the arrow. Figure 13The horizontal axis shows the low refresh threshold LTH and the high refresh threshold HTH. Figure 13 The change in the unrecoverable error rate corresponding to the uncorrectable area (hereinafter sometimes referred to as the change in the unrecoverable error rate) ERL3 and the change in the unrecoverable error rate corresponding to the correctable area (hereinafter sometimes referred to as the change in the unrecoverable error rate) ERL4 are shown. Figure 13 As shown in the changes in the unrecoverable error rate ERL3 and the unrecoverable error rate ERL4, the unrecoverable error rate of the correctable area with respect to the number of writes is lower than that of the uncorrectable area.
[0152] exist Figure 13 In the example shown, the MPU 60 sets the refresh threshold for the correctable area to the high refresh threshold and the refresh threshold for the uncorrectable area to the low refresh threshold. The MPU 60 sets the TPI of the head 15 corresponding to the uncorrectable area to the high TPI. If the MPU 60 determines that the number of writes corresponding to the correctable area exceeds the high refresh threshold HTH, it executes a refresh process on the correctable area. If the MPU 60 determines that the number of writes corresponding to the uncorrectable area exceeds the low refresh threshold LTH, it 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.
[0153] Figure 14 This is a flowchart showing an example of a method for setting a refresh threshold according to this embodiment.
[0154] MPU60 determines whether the predetermined area is a correctable area (B1401). In other words, MPU60 determines whether the predetermined area is a correctable area or an uncorrectable area. For example, MPU60 determines whether the predetermined track is a correctable track or an uncorrectable track. For example, MPU60 determines whether the predetermined sector is a correctable sector or an uncorrectable sector. In the case where it is determined that the predetermined area is a correctable area (B1401: Yes), MPU60 sets the refresh threshold of the correctable area to the high refresh threshold (B1402) and ends the processing. In other words, MPU60 sets the refresh threshold of the correctable track (or the correctable cylinder) to the high refresh threshold. MPU60 sets the refresh threshold of the correctable sector to the high refresh threshold.
[0155] If the predetermined area is determined to be an uncorrectable area (B1401: No), the MPU 60 sets the refresh threshold for the uncorrectable area to the low refresh threshold (B1403), and the process ends. In other words, the MPU 60 sets the refresh threshold for the uncorrectable track (or uncorrectable cylinder) to the low refresh threshold. The MPU 60 sets the refresh threshold for the uncorrectable sector to the low refresh threshold.
[0156] Figure 15 This is a flowchart showing an example of a write process in a correctable area according to the present embodiment.
[0157] MPU60 receives a write command to write data to a correctable area (B1501). For example, MPU60 receives a write command to write data to a correctable track (or correctable cylinder). MPU60 determines whether the number of writes to the correctable area is greater than the low refresh threshold or is below the low refresh threshold (B1502). For example, MPU60 determines whether the number of writes to the correctable track (or correctable cylinder) is greater than the low refresh threshold or is below the low refresh threshold. In the case where it is determined that the number of writes to the correctable area is below the low refresh threshold (B1502: No), MPU60 writes data to the correctable area (B1503) and ends the processing. For example, in the case where it is determined that the number of writes to the correctable track is below the low refresh threshold, MPU60 writes data to the correctable track and ends the processing.
[0158] If it is determined that the number of writes to the correctable area is greater than the low refresh threshold (B1502: Yes), the MPU 60 does not allow writes that render error correction in units of tracks uncorrectable, such as sequential writes to the middle of a track, or random writes in the correctable area, and performs a read-modify-write (B1504), terminating the process. For example, if it is determined that the number of writes to a correctable track (or correctable cylinder) is greater than the low refresh threshold, the MPU 60 does not allow random writes in the correctable track (or correctable cylinder), and performs a read-modify-write. For example, when it is determined that the number of writes to a correctable track (or a correctable cylinder) is greater than the low refresh threshold, MPU60 reads the correctable track, writes the update track (or update cylinder) to replace the data indicated by the write command with the corresponding data of the correctable track (or correctable cylinder), performs an XOR operation on all update sector groups of the update track (or update cylinder) to calculate the update parity sector, writes the update sector group and the update parity sector to the same track or cylinder, and ends the processing.
[0159] According to variant example 1, the magnetic disk device 1 changes the refresh threshold corresponding to each cylinder of the surface of the multiple disks 10 corresponding to each of the multiple heads 15. The magnetic disk device 1 has a high refresh threshold and a low refresh threshold. The magnetic disk device 1 sets the refresh threshold of the correctable area to the high refresh threshold and sets the refresh threshold of the uncorrectable area to the low refresh threshold. The frequency with which the magnetic disk device 1 performs refresh processing on the uncorrectable area set to the low refresh threshold is lower than the frequency with which the magnetic disk device 1 performs refresh processing on the correctable area set to the high refresh threshold. When writing data to the correctable area, the magnetic disk device 1 performs a read-modify-write on the correctable area if the number of writes to the correctable area is greater than the low refresh threshold. Therefore, the magnetic disk device 1 can improve the TPI. Therefore, the magnetic disk device 1 can improve the recording density.
[0160] (Variation 2)
[0161] The magnetic disk device 1 according to the second modification differs from the magnetic disk device 1 according to the above-described embodiment and the first modification in that it performs data transfer on a track for which track ECC cannot be executed.
[0162] Figure 16 This is a block diagram showing the configuration of a magnetic disk device 1 according to Modification 2.
[0163] The MPU 60 also includes a data transfer unit 680. The MPU 60 executes the processing of various units, such as 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 counter unit 660, the refresh control unit 670, and the data transfer unit 680, in firmware. Alternatively, the MPU 60 may include various units, such as 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 counter unit 660, the refresh control unit 670, and the data transfer unit 680, 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 counter unit 660, the refresh control unit 670, and the data transfer unit 680 may also be included in the R / W channel 40 or the HDC 50. Furthermore, the MPU 60 may not include at least one of the off-track management unit 650, the write counter unit 660, and the refresh control unit 670.
[0164] The data transfer unit 680 records data instructed by a command received from the host 100 or the like to a recording area different from the recording area instructed by the command (hereinafter sometimes referred to as another recording area), such as the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90. The data transfer unit 680 temporarily records data instructed by a command received from the host 100 or the like to another recording area, such as the disk 10, the volatile memory 70, the nonvolatile memory 80, or the buffer memory 90. Hereinafter, "temporarily recording data to another recording area" may also be referred to as "transferring" or "performing a transfer process."
[0165] When the data transfer unit 680 receives a write command to a random write-protected area, such as a random write-protected track or a random write-protected sector (hereinafter sometimes also referred to as a protected area write command) from the host 100 or the like, it determines whether there is a free area in other recording areas.
[0166] If the data transfer unit 680 determines that there is a free area in another recording area, it transfers the prohibited area write command and the data corresponding to the prohibited area write command (hereinafter sometimes referred to as prohibited area command data) to the other recording area, and stops or temporarily suspends the execution of the prohibited area write command without executing it. In other words, if the data transfer unit 680 receives the prohibited area write command from the host 100 or the like, and determines that there is a free area in another recording area, it transfers the prohibited area write command and the prohibited area command data corresponding to the prohibited area write command, and stops or temporarily suspends the execution of the write process of the random write-prohibited track without executing it.
[0167] When the data transfer unit 680 determines that there is a free area in another recording area, it transfers the prohibited area write command, the prohibited area command data corresponding to the prohibited area write command, and the data of the random write prohibition track (hereinafter sometimes referred to as random write prohibition data) to the other recording area, and stops or temporarily puts the prohibited area write command on hold without executing it. In other words, when the data transfer unit 680 receives the prohibited area write command from the host 100 or the like, it transfers the prohibited area write command, the prohibited area command data corresponding to the prohibited area write command, and the random write prohibition data corresponding to the random write prohibition track, and stops or temporarily puts the write process of the random write prohibition track on hold without executing it.
[0168] If the data transfer unit 680 determines that there is a free area in the other recording area, it writes to the random write inhibit track corresponding to the prohibit area write command based on the prohibit area command data corresponding to the prohibit area write command, so that track ECC can be performed on the random write inhibit track. In other words, if the data transfer unit 680 determines that there is a free area in the other recording area, it writes to the random write inhibit track corresponding to the prohibit area write command based on the prohibit area command data corresponding to the prohibit area write command, so that the random write inhibit track becomes a correctable track.
[0169] When the data transfer unit 680 receives a forbidden area write command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the forbidden area command data corresponding to the forbidden area write command to the area specified by the forbidden area write command, for example, the random write-inhibit track, as usual, and sets the area specified by the forbidden area write command, for example, the random write-inhibit track, as an uncorrectable track in the user data area 10a of the disk 10. In other words, when the data transfer unit 680 receives a forbidden area write command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the area corresponding to the forbidden area write command, for example, the forbidden area command data, to the random write-inhibit track, and manages the area corresponding to the forbidden area write command, for example, the random write-inhibit track, as an uncorrectable track in the user data area 10a of the disk 10 using the management table TB1.
[0170] For example, when the data transfer unit 680 receives a prohibited area write command from the host 100, etc., it determines whether there is a free area in the cache that temporarily records data, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80 or the buffer memory 90.
[0171] When determining that there is free area in the cache, the data transfer unit 680 transfers the prohibited area command data corresponding to the prohibited area write command to the cache and stops or temporarily suspends the write process of the random write prohibited track without executing it.
[0172] When the data transfer unit 680 determines that there is a free area in the cache, it transfers the prohibited area command data corresponding to the prohibited area write command and the random write prohibition data of the random write prohibition track corresponding to the prohibited area write command to the cache, and stops or temporarily puts the write processing of the random write prohibition track on hold without executing it.
[0173] When the data transfer unit 680 is idle, etc., and transfers the prohibited area command data (update data) corresponding to the prohibited area write command to the cache, it performs read-modify-write on the random write prohibited track based on the prohibited area command data (update data) and the random write prohibited data.
[0174] When the data transfer unit 680 is idle, etc., it transfers the prohibited area command data (update data) corresponding to the prohibited area write command and the random write prohibition data of the random write prohibition track corresponding to the prohibited area write command to the cache, and then performs read, modify and write on the random write prohibition track based on the prohibited area command data (update data) and the random write prohibition data.
[0175] When the data transfer unit 680 further receives a command (hereinafter sometimes referred to as a write-prohibit-remaining command) from the host 100 or the like to write data (hereinafter sometimes referred to as write-prohibit-remaining data) to the remaining area (hereinafter sometimes referred to as write-prohibit-remaining area) of the random write-prohibit track after excluding the area containing the write-prohibit-area command data, the data transfer unit 680 writes the write-prohibit-remaining data and the prohibition-area command data to the random write-prohibit track of the user data area 10a of the disk 10. In other words, when the data transfer unit 680 determines that at least one command (hereinafter sometimes referred to as a one-track-worth command) to write one track's worth of data to the random write-prohibit track has been received from the host 100 or the like, the data transfer unit 680 writes the data corresponding to the one-track-worth command to the random write-prohibit track of the user data area 10a of the disk 10.
[0176] When the data transfer unit 680 receives a prohibited area write command from the host 100, etc. and determines that there is no free area in the cache, it writes the prohibited area command data corresponding to the prohibited area write command to the area indicated by the prohibited area write command, such as a random write prohibited track, and sets the area indicated by the prohibited area write command, such as a random write prohibited track, as an uncorrectable track.
[0177] When the data transfer unit 680 receives a write command (hereinafter sometimes also referred to as an uncorrectable command) from the host 100, etc. that makes the track ECC unable to be executed in a predetermined correctable track (hereinafter sometimes also referred to as a planned uncorrectable track), it determines whether there is a free area in other recording areas.
[0178] If the data transfer unit 680 determines that there is free space in another recording area, it transfers the uncorrectable command and the data corresponding to the uncorrectable command (hereinafter sometimes referred to as uncorrectable command data) to the other recording area, and stops or temporarily suspends the execution of the uncorrectable command. In other words, if the data transfer unit 680 determines that there is free space in another recording area, it transfers the uncorrectable command, the uncorrectable command data corresponding to the uncorrectable command, and the planned uncorrectable data of the planned uncorrectable track, and stops or temporarily suspends the execution of the write process of the planned uncorrectable track.
[0179] If the data transfer unit 680 determines that there is free space in another recording area, it transfers the uncorrectable command, the uncorrectable command data corresponding to the uncorrectable command, and the data of the planned uncorrectable track (hereinafter sometimes referred to as the planned uncorrectable data) to the other recording area, and stops or temporarily suspends the execution of the uncorrectable command. In other words, if the data transfer unit 680 determines that there is free space in another recording area, it transfers the uncorrectable command, the uncorrectable command data corresponding to the uncorrectable command, and the planned uncorrectable data of the planned uncorrectable track, and stops or temporarily suspends the execution of the write process of the planned uncorrectable track.
[0180] If the data transfer unit 680 determines that there is free space in another recording area, it writes the planned uncorrectable track corresponding to the uncorrectable command based on the uncorrectable command data corresponding to the uncorrectable command, thereby enabling track ECC to be performed on the planned uncorrectable track. In other words, if the data transfer unit 680 determines that there is free space in another recording area, it writes the planned uncorrectable track corresponding to the uncorrectable command based on the uncorrectable command data corresponding to the uncorrectable command, thereby making the planned uncorrectable track a correctable track.
[0181] When the data transfer unit 680 receives an uncorrectable command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the uncorrectable command data corresponding to the uncorrectable command to the planned uncorrectable track, and sets the planned uncorrectable track as the uncorrectable track in the user data area 10a of the disk 10. In other words, when the data transfer unit 680 receives an uncorrectable command from the host 100 or the like and determines that there is no free area in other recording areas, it writes the uncorrectable command data corresponding to the uncorrectable command to the planned uncorrectable track, and manages the planned uncorrectable track as the uncorrectable track in the user data area 10a of the disk 10 using the management table TB1.
[0182] For example, when the data transfer unit 680 receives an uncorrectable command from the host 100, etc., it determines whether there is a free area in the cache, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80 or the buffer memory 90.
[0183] When the data transfer unit 680 determines that there is free area in the cache, it transfers the uncorrectable command data corresponding to the uncorrectable command to the cache that temporarily records data, and stops or temporarily puts the write process of the planned uncorrectable track on hold without executing it.
[0184] When it is determined that there is a free area in the cache, the data transfer unit 680 transfers the uncorrectable command data corresponding to the uncorrectable command and the planned uncorrectable data of the planned uncorrectable track corresponding to the uncorrectable command to the cache that temporarily records the data, and stops or temporarily puts the write processing of the planned uncorrectable track on hold without executing it.
[0185] When the data transfer unit 680 is idle, etc., and transfers the uncorrectable command data (update data) corresponding to the uncorrectable command to the cache, it performs read, modify and write on the planned uncorrectable track based on the uncorrectable command data (update data).
[0186] When the data transfer unit 680 is idle, etc., it transfers the uncorrectable command data (update data) corresponding to the uncorrectable command and the planned uncorrectable data of the planned uncorrectable track corresponding to the uncorrectable command to the cache, and then performs read, modify and write on the planned uncorrectable track based on the uncorrectable command data (update data) and the planned uncorrectable data.
[0187] When the data transfer unit 680 further receives a command (hereinafter sometimes referred to as an uncorrectable remaining command) from the host 100 or the like to write data (hereinafter sometimes referred to as uncorrectable remaining data) to the remaining area (hereinafter sometimes referred to as an uncorrectable remaining area) of the planned uncorrectable track excluding the area where the uncorrectability command data is written, the data transfer unit 680 writes the uncorrectable remaining data and the uncorrectability command data to the planned uncorrectable track in the user data area 10a of the disk 10. In other words, when the data transfer unit 680 determines that a command for one track of the planned uncorrectable track has been received from the host 100 or the like, the data transfer unit 680 writes data corresponding to the one track command to the planned uncorrectable track in the user data area 10a of the disk 10.
[0188] When the data transfer unit 680 receives an uncorrectable command from the host 100 and determines that there is no free area in the cache, it writes the uncorrectable command data corresponding to the uncorrectable command to the planned uncorrectable track and sets the planned uncorrectable track as an uncorrectable track.
[0189] Figure 17 : is a schematic diagram showing an example of the transfer processing involved in Modification Example 2. Figure 17 , there are shown tracks TRm-2, TRm+1, TRm, TRm+1, and TRm+2. Figure 17 In the figure, tracks TRm-2 to TRk+2 are arranged in the order listed from the outside to the inside. Track TRm-1 is adjacent to track TRm in the outside direction. Track TRm-2 is adjacent to track TRm-1 in the outside direction. Track TRm+1 is adjacent to track TRm in the inside direction. Track TRm+2 is adjacent to track TRm+1 in the inside direction. Figure 17 In the , tracks TRm-2 to TRm+2 are equivalent to correctable tracks. Figure 17 Circumferential position CPS, circumferential position CP3, circumferential position CP4 and circumferential position CPR are shown in FIG. Circumferential position CP3 is located in a rearward direction relative to circumferential position CPS, circumferential position CP4 is located in a rearward direction relative to circumferential position CP3, and circumferential position CPR is located in a rearward direction relative to circumferential position CP4. Figure 17, area WCd1 to be written using a predetermined write command, area WCd2 to be written using a predetermined write command, and area WCd3 to be written using a predetermined write command are shown. Hereinafter, the "command indicating writing of a predetermined area or data" and the "area or data to be written using a predetermined write command" are sometimes referred to as "write commands." That is, the "command indicating writing of area or data WCd1" and the "area or data WCd1 to be written using a predetermined write command" are referred to as "write command WCd1," the "command indicating writing of area or data WCd2" and the "area WCd2 to be written using a predetermined write command" are referred to as "write command WCd2," and the "command indicating writing of area or data WCd3" and the "area WCd3 to be written using a predetermined write command" are referred to as "write command WCd3." The write command WCd1 is equivalent to the area or data from the circumferential position CP4 to the circumferential position CPR of track TRm-2, the area or data from the circumferential position CPS to the circumferential position CPR of track TRm-1, the area or data from the circumferential position CPS to the circumferential position CPR of track TRm, the area or data from the circumferential position CPS to the circumferential position CPR of track TRm+1, and the area or data from the circumferential position CPS to the circumferential position CP3 of track TRm+2. Furthermore, write command WCd1 corresponds to a command to write data to the area from circumferential position CP4 to circumferential position CPR of track TRm-2, a command to write data to the area from circumferential position CPS to circumferential position CPR of track TRm-1, a command to write data to the area from circumferential position CPS to circumferential position CPR of track TRm, a command to write data to the area from circumferential position CPS to circumferential position CPR of track TRm+1, and a command to write data to the area from circumferential position CPS to circumferential position CP3 of track TRm+2. Write command WCd2 corresponds to a command to write data to the area or data from circumferential position CPS to circumferential position CP4 of track TRm-2. Furthermore, write command WCd2 corresponds to a command to write data to the area from circumferential position CPS to circumferential position CP4 of track TRm-2. Write command WCd3 corresponds to a command to write data to the area or data from circumferential position CP3 to circumferential position CPR of track TRm+2. Furthermore, the write command WCd3 corresponds to a command for writing data to the area from the circumferential position CP3 to the circumferential position CPR of the track TRm+2.
[0190] exist Figure 17In the example shown, when the MPU 60 receives a write command WCd1 from the host 100 or the like, the write process for track TRm-2 will cause track TRm-2 to change from a correctable track to an uncorrectable track due to the write process for less than one track. Therefore, the MPU 60 stores the uncorrectable command data corresponding to track TRm-2 in the write command WCd1 and track TRm-2 in a cache, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not write track TRm-2. In other words, the MPU 60 stores the uncorrectable command data (update data) for track TRm-2 from circumferential position CP4 to circumferential position CPR and track TRm-2 in a cache, such as the system area 10b of the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not write track TRm-2.
[0191] When the MPU 60 transfers the uncorrectable command data (update data) corresponding to track TRm-2 of the write command WCd1 and track TRm-2 to the cache, the MPU 60 performs a read-modify-write on track TRm-2 based on the uncorrectable command data (update data) corresponding to track TRm-2 of the write command WCd1 and track TRm-2 during idle time. In other words, when the MPU 60 transfers the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and track TRm-2 to the cache, the MPU 60 performs a read-modify-write on track TRm-2 based on the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 during idle time.
[0192] Furthermore, when the MPU 60 transfers the uncorrectable command data corresponding to track TRm-2 of the write command WCd1 and track TRm-2 to the cache and receives the write command WCd2 from the host 100 or the like, the MPU 60 writes the uncorrectable command data corresponding to track TRm-2 of the write command WCd1 and the write command WCd2 to track TRm-1. In other words, when the MPU 60 transfers the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and track TRm-2 to the cache and receives the write command WCd2 from the host 100 or the like, the MPU 60 writes the uncorrectable command data (update data) from circumferential position CP4 to circumferential position CPR of track TRm-2 and the write command WCd2 to track TRm-1.
[0193] exist Figure 17In the example shown, when the MPU 60 receives a write command WCd1 from the host 100 or the like, there is a risk that track TRm+2 will change from a correctable track to an uncorrectable track due to the write process for track TRm+2, which will decrease by less than one track. Therefore, the MPU 60 stores the uncorrectable command data corresponding to track TRm+2 in the write command WCd1 and track TRm+2 in a cache, such as the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not write track TRm+2. In other words, the MPU 60 stores the uncorrectable command data for track TRm+2 from circumferential position CPS to circumferential position CP3 in the cache, such as the disk 10, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90, and does not write track TRm+2.
[0194] When the MPU 60 stores the uncorrectable command data (update data) corresponding to track TRm+2 and track TRm+2 of the write command WCd1 in the cache, the MPU 60 performs a read-modify-write on track TRm-2 during idle time based on the uncorrectable command data (update data) corresponding to track TRm+2 and track TRm+2 of the write command WCd1. In other words, when the MPU 60 stores the uncorrectable command data (update data) from circumferential position CPS to circumferential position CP3 of track TRm+2 and track TRm+2 in the cache, the MPU 60 performs a read-modify-write on track TRm-2 during idle time based on the uncorrectable command data (update data) from circumferential position CPS to circumferential position CP3 of track TRm+2 and track TRm+2.
[0195] Furthermore, when the MPU 60 transfers the uncorrectable command data corresponding to track TRm+2 of write command WCd1 and track TRm+2 to the cache and receives write command WCd3 from the host 100 or the like, the MPU 60 writes the uncorrectable command data corresponding to track TRm+2 of write command WCd1 and write command WCd3 to track TRm+2. In other words, when the MPU 60 transfers the uncorrectable command data from circumferential position CPS to circumferential position CP3 of track TRm+2 and track TRm+2 to the cache and receives write command WCd3 from the host 100 or the like, the MPU 60 writes the uncorrectable command data from circumferential position CPS to circumferential position CP3 of track TRm+2 and write command WCd3 to track TRm+2.
[0196] Figure 18 This is a flowchart showing an example of the transfer process according to Modification 2.
[0197] The MPU 60 receives a write command to write data to a predetermined correctable area, such as a correctable track, of the user data area 10a (B1801). The MPU 60 determines whether the correctable area, such as a correctable track, corresponding to the write command becomes an uncorrectable area, such as an uncorrectable track, when writing is performed in accordance with the write command (B1802). In other words, the MPU 60 determines whether the command received from the host 100 is an uncorrectable command. When it is determined that the data will not become an uncorrectable area, such as an uncorrectable track (B1802: No), the MPU 60 writes the data corresponding to the write command to the predetermined correctable area, such as a correctable track, of the user data area 10a (B1803), and ends the processing.
[0198] If it is determined that the area is uncorrectable, such as an uncorrectable track (B1802: Yes), the MPU 60 determines whether there is free space in the cache (B1804). If it is determined that there is no free space in the cache (B1804: No), the MPU 60 proceeds to the process of B1803.
[0199] When it is determined that there is free space in the cache (B1804: Yes), MPU60 transfers the data (uncorrectable command data) corresponding to the write command (uncorrectable command) (and the data (planned uncorrectable data) of the correctable track (planned uncorrectable track) of the user data area 10a corresponding to the uncorrectable command) to the cache (B1805), and ends the processing.
[0200] Figure 19 This is a flowchart showing an example of the transfer process according to Modification 2.
[0201] The MPU 60 receives a write command to write data to a predetermined track in the user data area 10a (B1801). When writing is performed in accordance with the write command, the MPU 60 determines whether the track corresponding to the write command is not permitted for writing in which error correction cannot be corrected on a track-by-track basis, such as sequential writing up to the middle of a track, or random writing, or whether random writing is permitted (B1901). If random writing is permitted for the track (B1901: No), the MPU 60 writes the data corresponding to the write command to the track in the user data area 10a (B1803), and the process ends.
[0202] If it is determined that random writing is not permitted for the track (B1901: Yes), the MPU 60 determines whether there is free space in the cache (B1804). If it is determined that there is no free space in the cache (B1804: No), the MPU 60 proceeds to the process of B1803.
[0203] When determining that there is free space in the cache (B1804: YES), the MPU 60 transfers the data corresponding to the write command and the data of the track of the user data area 10a corresponding to the command to the cache (B1805), and ends the processing.
[0204] According to Modification 2, upon receiving a prohibited area write command from the host computer 100 or the like, the magnetic disk device 1 determines whether there is a free area in the other recording areas. If the magnetic disk device 1 determines that there is a free area in the other recording areas, it transfers the prohibited area command data and random write prohibition data corresponding to the prohibited area write command to the other recording areas and does not execute the prohibited area write command. If the magnetic disk device 1 determines that there is no free area in the other recording areas, it writes the prohibited area command data corresponding to the prohibited area write command to the random write prohibition track.
[0205] Furthermore, upon receiving an uncorrectable command from the host computer 100 or the like, the magnetic disk device 1 determines whether there is free space in the other recording areas. If the magnetic disk device 1 determines that there is free space in the other recording areas, it transfers the uncorrectable command data and the planned uncorrectable data corresponding to the uncorrectable command to the other recording areas and does not execute the uncorrectable command. If the magnetic disk device 1 determines that there is no free space in the other recording areas, it writes the uncorrectable command data corresponding to the uncorrectable command to the planned uncorrectable track.
[0206] The DOL of the track that cannot execute track ECC is set to a strict value, so write failures (Write Fault) are likely to occur, and therefore, write performance (Write Performance) may be reduced. In addition, the number of writes to the track that cannot execute track ECC may be set low, so it is necessary to frequently perform refresh processing, and write performance may be reduced. In variant example 2, the following processing is performed: when a write command is received, the data corresponding to the write command is temporarily transferred to the cache, and the track that cannot execute track ECC is changed to a track that can execute track ECC. Therefore, the magnetic disk device 1 can perform write processing efficiently. That is, the magnetic disk device 1 can improve write performance. Therefore, the magnetic disk device 1 can improve reliability.
[0207] While several embodiments have been described above, these embodiments are provided as examples and are not intended to limit the scope of the invention. These new embodiments can be implemented in various other ways and can be omitted, replaced, or modified without departing from the spirit of the invention. These embodiments and / or their variations are intended to be within the scope and spirit of the invention and are included within the invention set forth in the claims and their equivalents.
Claims
1. A magnetic disk device comprising: plate; a head that writes data to and reads data from the disk; and a controller that sets a first DOL for a first sector group and a second DOL for a second sector group to different values, the first sector group including a first parity sector and at least one first sector continuous in a circumferential direction of the disk from the first parity sector, the at least one first sector capable of performing track-based error correction processing based on the first parity sector, and the second sector group including at least one second sector continuous in the circumferential direction for which track-based error correction processing is not performed, in, The DOL is an upper limit value of the deviation amount of the target track from the target position in the radial direction of the disk.
2. The magnetic disk device according to claim 1, When random writing is performed on 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 device according to claim 1, The controller sets the first DOL for the first sector group of the first track including 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 device according to claim 2 or 3, The controller does not permit error correction in units of tracks to be performed on the first sector group, resulting in uncorrectable writing, when a first off-track amount for the first sector group is larger than an unrecoverable threshold.
5. The magnetic disk device according to claim 4, The controller performs a read-modify-write operation on the first sector group when a first off-track amount of the first sector group is greater than an unrecoverable threshold.
6. A magnetic disk device comprising: plate; a head that writes data to and reads data from the disk; and A controller having a table for managing a first sector group and a second sector group, wherein the first sector group includes a first parity sector and at least one first sector continuous in the circumferential direction of the disk starting from the first parity sector, the at least one first sector being capable of performing error correction processing in units of tracks based on the first parity sector, and the second sector group including at least one second sector continuous in the circumferential direction for which error correction processing in units of tracks cannot be performed.
7. A magnetic disk device having: plate; a head that writes data to and reads data from the disk; and A controller having a table for managing a third sector group, wherein the third sector group is a sector group that will generate a read error when changing from the first sector group to the second sector group, the first sector group including a first parity sector and at least one first sector continuous in the circumferential direction of the disk starting from the first parity sector, the at least one first sector capable of performing error correction processing on a track-by-track basis based on the first parity sector, and the second sector group including at least one second sector continuous in the circumferential direction for which error correction processing on a track-by-track basis cannot be performed.
8. A magnetic disk device comprising: a disc having a first region; a head that writes data to and reads data from the disk; and A controller which, upon receiving a write command to change to a first sector group, temporarily transfers the command to a first recording area different from the first area and does not perform write processing on the first area. The first sector group includes at least one first sector that is continuous in the circumferential direction of the disk and in which error correction in track units is not allowed and becomes uncorrectable.
9. A magnetic disk device comprising: a disc having a first region; a head that writes data to and reads data from the disk; and A controller, which, upon receiving a first write command to change from a first sector group to a second sector group, temporarily transfers a third sector group corresponding to the first write command to a first recording area different from the first area, and does not perform write processing of the third sector group on the first area, wherein the first sector group includes a first parity sector and at least one first sector continuous in the circumferential direction of the disk starting from the first parity sector, the at least one first sector being capable of performing error correction processing in units of tracks based on the first parity sector, and the second sector group including at least one second sector continuous in the circumferential direction for which error correction processing in units of tracks cannot be performed.
10. The magnetic disk device according to claim 9, The controller performs a read-modify-write based on the first sector group and the third sector group.
11. The magnetic disk device according to claim 9, The controller writes the third and fourth sector groups upon receiving a second write command to write a fourth sector group corresponding to the capacity of all data in one track excluding the third sector group, consecutively to the third sector group.
12. The magnetic disk device according to claim 9, 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, The first recording area is a cache for temporarily writing data.
14. A method for setting a DOL, applied to a magnetic disk device, the magnetic disk device comprising a disk and a head, the head writing data to the disk and reading data from the disk, wherein: The DOL is an upper limit value of the offset of the target track from the target position in the radial direction of the disk, and the method for setting the DOL includes: The first DOL for the first sector group and the second DOL for the second sector group are set to different values, the first sector group includes a first parity sector and at least one first sector continuous in the circumferential direction of the disk starting from the first parity sector, the at least one first sector can perform error correction processing in units of tracks based on the first parity sector, and the second sector group includes at least one second sector continuous in the circumferential direction for which error correction processing in units of tracks cannot be performed.
Citation Information
Patent Citations
Record / play device, error correction method, and control device
CN104756092A
Magnetic disk device and write processing method
CN112530466A