Magnetic disk device and error correction method
By using parity data in the disk device for error correction, combined with strong read retry and redistribution processing, the sector problem that cannot be recovered under high TPI is solved, and the recording density and data reading reliability are improved.
Patent Information
- Application Number
- CN202110028378.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-08-05
- Filing Date
- 2021-01-11
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2041-01-11
AI Technical Summary
Under the high TPI setting, the disk device has sectors that cannot be restored through the error correction function due to problems such as drift writing, and the existing read retry method is inefficient and cannot effectively improve the recording density.
In the disk device, from the initial reading of the first track by the controller, error correction is performed on sectors that cannot be read using parity data corresponding to the track, and combined with a powerful read retry method and redistribution processing, the read success rate is improved.
It improves the recording density of the disk device, enhances the correction ability of damage and uneven spacing, and improves the reliability and efficiency of data reading.
Smart Images

Figure CN114067902B_ABST
Abstract
Description
[0001] This application claims the priority of Japanese Patent Application No. 2020-132886 (filing date: August 5, 2020), the entire contents of which are incorporated herein by reference. Technical Field
[0002] Embodiments of the present invention relate to a magnetic disk device and an error correction method. Background Art
[0003] When a magnetic disk device detects an unreadable sector in a predetermined track (hereinafter sometimes referred to as a read error sector), it rereads the read error sector (hereinafter sometimes referred to as a read retry) a predetermined number of times or more. If the magnetic disk device cannot read the read error sector even after performing a predetermined number of read retries, it performs a read retry method (hereinafter sometimes referred to as a strong read retry method) on the read error sector, such as averaging or defect detection, to increase the likelihood of reading the read error sector compared to a normal read retry. If the read error sector is successfully read (recovered or relieved) after performing a predetermined number of read retries or the strong read retry method, the magnetic disk device reallocates the recovered read error sector. Furthermore, the magnetic disk device may include an error correction function that corrects read errors based on parity data corresponding to the predetermined track as a strong read retry method. A magnetic disk device with an error correction function can set the disk's TPI (tracks per inch) to a high value. When the disk TPI is set high, sectors may occur due to drift-off-write (DOW) and other issues that cannot be recovered using error correction alone. Magnetic disk drives can easily correct disk damage and uneven spacing using error correction, so reallocation may be necessary regardless of the number of read retries. Summary of the Invention
[0004] Embodiments of the present invention provide a magnetic disk device and an error correction method capable of improving recording density.
[0005] 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 performs error correction on the first sector that cannot be read on the first track based on the first parity data corresponding to the first track, starting from the initial reading of the first track of the disk for one round. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 This is a block diagram showing the configuration of a magnetic disk device according to the first embodiment.
[0007] Figure 2 This is a schematic diagram showing an example of the arrangement of the head relative to the disk according to the first embodiment.
[0008] Figure 3 2 is a block diagram showing an example of a read system RSYS of the R / W channel.
[0009] Figure 4 This is a schematic diagram showing an example of a method for correcting errors in units of tracks according to the first embodiment.
[0010] Figure 5 This is a diagram showing an example of a read process without read retry.
[0011] Figure 6 This is a diagram showing an example of a read process involving read retry.
[0012] Figure 7 This is a diagram showing an example of redistribution.
[0013] Figure 8 This is a schematic diagram of an example of a table showing the relationship between read retry, the aggressive read retry method, and reallocation.
[0014] Figure 9 This is a flowchart showing an example of the error correction processing method according to the first embodiment.
[0015] Figure 10 This is a flowchart showing an example of the reallocation processing method according to the first embodiment.
[0016] Figure 11 This is a schematic diagram showing an example of a parity sector generation method according to Modification 1.
[0017] Figure 12 This is a flowchart showing an example of a parity sector generation method according to Modification 1.
[0018] Figure 13 This is a schematic diagram showing an example of a parity sector generation method according to Modification 2.
[0019] Figure 14 This is a flowchart showing an example of a parity sector generation method according to Modification 2. DETAILED DESCRIPTION
[0020] 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.
[0021] (First embodiment)
[0022] Figure 1 This is a block diagram showing the configuration of the magnetic disk device 1 according to the first embodiment.
[0023] 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 pre-amplifier) 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. The magnetic disk drive 1 is connected to a host system (host) 100.
[0024] The HAD includes a magnetic disk (hereinafter referred to as a disk) 10, a spindle motor (SPM) 12, an arm 13 carrying a head 15, and a voice coil motor (VCM) 14. The disk 10 is mounted on the spindle motor 12 and rotated by the spindle motor 12. The arm 13 and the VCM 14 constitute an actuator. The actuator, driven by the VCM 14, controls the movement of the head 15 mounted on the arm 13 to a predetermined position on the disk 10. There may be more than two disks 10 and heads 15.
[0025] The disk 10 allocates data-writable areas to a user data area 10a, which can be used by the user, and a system area 10b, which records information required for system management. Furthermore, the disk 10 may also include a media cache (sometimes referred to as a media cache area) as a separate area from the user data area 10a and the system area 10b, which temporarily stores data (or commands) transmitted from the host 100, etc., before writing the data 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. Sometimes the radial position and the circumferential position are also referred to as positions. The disk 10 is divided into a plurality of areas (hereinafter sometimes referred to as zones or partition areas) for each predetermined range in the radial direction. Data can be written in a partition for each predetermined range in the radial direction. In other words, a plurality of tracks can be written in a partition. A track can write data for each predetermined range in the circumferential direction. In other words, a track includes a plurality of sectors. In addition, the term "track" is used to refer to one of the plurality of areas in which the disk 10 is divided for each predetermined range in the radial direction, the path of the head 15 at a predetermined radial position of the disk 10, data extending in the circumferential direction in the predetermined radial direction of the disk 10, data written in one circle of a predetermined track of the disk 10, data written in a predetermined track of the disk 10, and various other meanings. The term "sector" can be used to refer to one of the multiple areas formed by circumferentially partitioning a predetermined track on the disk 10, data written at a predetermined circumferential position at a predetermined radial position on the disk 10, data written in a predetermined sector of the disk 10, or various other meanings. The "radial width of a track" is sometimes referred to as the "track width." Furthermore, the "radial width of a sector" is sometimes referred to as the "sector width."
[0026] The head 15 mainly includes 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.
[0027] 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 2As 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 the opposite (clockwise) direction is also possible.
[0028] 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 from the outer direction to the inner direction.
[0029] exist Figure 2 In the example shown, the system area 10b is arranged outside the user data area 10a in the disk 10. Figure 2 In the example shown, the system area 10b is arranged at the outermost periphery of the disk 10. Alternatively, the system area 10b may be arranged at a position corresponding to the outer periphery of the disk 10. Figure 2 The positions shown are different locations.
[0030] 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).
[0031] The head amplifier IC (pre-amplifier) 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 accordance with the write data output from the R / W channel 40.
[0032] Volatile memory 70 is a semiconductor memory that loses stored data 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).
[0033] 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).
[0034] The buffer memory 90 is a semiconductor memory that temporarily stores data exchanged between the magnetic disk drive 1 and the host computer 100. Alternatively, the buffer memory 90 may be integrated with the volatile memory 70. Examples of the buffer memory 90 include DRAM, SRAM (Static Random Access Memory), SDRAM, FeRAM (Ferroelectric Random Access Memory), or MRAM (Magnetoresistive Random Access Memory).
[0035] The system controller (controller) 130 can be 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, for example, a read / write (R / W) channel 40, a hard disk controller (HDC) 50, and a microprocessor (MPU) 60. The R / W channel 40, HDC 50, and MPU 60 are electrically connected to one another. The system controller 130 is electrically connected to, for example, the driver IC 20, the head amplifier IC 30, the volatile memory 70, the nonvolatile memory 80, the buffer memory 90, and the host system 100.
[0036] The R / W channel 40 performs signal processing for data transferred from the disk 10 to the host 100, such as read data, and for data transferred from the host 100, such as write data, based on instructions from the MPU 60, described later. The R / W channel 40 includes circuitry or functionality for measuring 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.
[0037] Hereinafter, a system in which the head 15 , the head amplifier IC 30 , and the controller 130 transmit data read from the disk 10 to the host computer 100 may also be referred to as a reading system.
[0038] Figure 3 4 is a block diagram showing an example of a reading system RSYS of the R / W channel 40 .
[0039] The system controller 130 includes a read system RSYS. The R / W channel 40 includes a switch 410, an adaptive filter 420, a Viterbi decoder 430, and an LDPC (Low Density Parity Check) unit 440 as the read system RSYS. In addition, the system controller 130 may include other circuits other than the switch 410, the adaptive filter 420, the Viterbi decoder 430, and the LDPC unit 440 as the read system RSYS. In addition, in the system controller 130, the switch 410, the adaptive filter 420, the Viterbi decoder 430, and the LDPC unit 440 may be provided in a manner similar to the embodiment of the present invention. Figure 3 In the system controller 130 , each unit of the read system RSYS, such as the switch 410 , the adaptive filter 420 , the Viterbi decoder 430 , and the LDPC unit 440 , executes processing under the control of the MPU 60 .
[0040] The converter 410 converts the data input from the head amplifier IC 30 and outputs the converted data to the adaptive filter 420. For example, the converter 410 is an AD (Analog-Digital) converter that converts analog data input from the head amplifier IC 30 into digital data.
[0041] Adaptive filter 420 equalizes the waveform of the data input from converter 410 and outputs the equalized data to the Viterbi combiner. Adaptive filter 420 is, for example, a FIR (Finite Impulse Response) filter.
[0042] The Viterbi decoder 430 performs Viterbi decoding on the data input from the adaptive filter 420 , and outputs the Viterbi-decoded data to the LDPC unit 440 .
[0043] The LDPC unit 440 performs LDPC processing (or sometimes referred to as LDPC correction processing) on the data input from the Viterbi decoder 430 , and outputs the data subjected to the LDPC processing to the HDC 50 .
[0044] The HDC 50 controls data transfer. For example, based on instructions from the MPU 60 (described later), the HDC 50 controls data transfer between the host 100 and the disk 10. 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.
[0045] The MPU 60 is a main controller that controls various components of the magnetic disk drive 1. The MPU 60 performs servo control, controlling the VCM 14 via the driver IC 20 and positioning 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 for writing data to the disk 10 and selects the storage destination for data transferred from the host 100, such as the write data. Furthermore, the MPU 60 controls the read operation for reading data from the disk 10 and controls the processing of data transferred from the disk 10 to the host 100. 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.
[0046] The MPU 60 includes a read / write control unit 610, a parity data management unit 620, an error sector detection unit 630, a retry processing unit 640, an error correction unit 650, and a reallocation control unit 660. The MPU 60 executes the processing of each of these units, such as the read / write control unit 610, the parity data management unit 620, the error sector detection unit 630, the retry processing unit 640, the error correction unit 650, and the reallocation control unit 660, in firmware. Alternatively, the MPU 60 may include these units as circuits. Furthermore, the read / write control unit 610, the parity data management unit 620, the error sector detection unit 630, the retry processing unit 640, the error correction unit 650, and the reallocation control unit 660 may be located in the R / W channel 40 or the HDC 50.
[0047] The read / write control unit 610 controls data reading and writing according to 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 to read or write data. For example, the read / write control unit 610 seeks the head 15 to a predetermined circumferential position (hereinafter referred to as the circumferential position) or a predetermined radial position (hereinafter referred to as the radial position) on the disk 10. The read / write control unit 610 positions the head 15 at a predetermined radial position to write data to or read data from a predetermined sector. Hereinafter, the phrase "positioning or disposing the center of the head 15 (write head 15W or read head 15R) at a predetermined position" may be simply expressed as "positioning or disposing the head 15 (write head 15W or read head 15R) at a predetermined position." Furthermore, data written to the disk 10 may be referred to as write data, and data read from the disk 10 may be referred to as read data. In addition, the read / write control unit 610 can write data in a shingled recording (SMR, or SWR) format in which the track to be written next is overlapped with a portion of the predetermined track in the radial direction, or can write data in a conventional recording (CMR) format in which data is written to a track (hereinafter sometimes referred to as an adjacent track) that is radially adjacent to the predetermined track and is spaced apart from the predetermined track in the radial direction by a predetermined interval.
[0048] The parity data management unit 620 calculates parity data as the result of an exclusive OR (XOR) operation. Parity data corresponds to, for example, a parity bit and a parity check code. The parity data management unit 620 manages the parity data calculated by the XOR operation. For example, the parity data management unit 620 performs an XOR operation on data transmitted from the host 100 or data read from the disk 10 to calculate parity data. The parity data management unit 620 writes the parity data corresponding to a predetermined track to a predetermined sector of the track via the read / write control unit 610. Hereinafter, the predetermined sector of the track to which the parity data corresponding to the predetermined track is written is referred to as a parity sector. In one example, the parity data management unit 620 performs an XOR operation on the data of all sectors read from or written to a predetermined track, calculates parity data as the result of the XOR operation corresponding to the data of all sectors, and writes the calculated parity data to the parity sector of the track. The parity data management unit 620 writes each parity data corresponding to each track of the disk 10 to each parity sector corresponding to each track. Alternatively, the parity data management unit 620 may perform an XOR operation on the data of several sectors of all sectors of the predetermined track, calculates parity data as the result of the XOR operation corresponding to the data of several sectors, and writes the calculated parity data to the parity sector of the track. Alternatively, the parity data management unit 620 may record the calculated parity data in a memory, such as the user data area 10a, the system area 10b, the volatile memory 70, the non-volatile memory 80, or the buffer memory 90.
[0049] The error sector detection unit 630 detects sectors that cannot be read (hereinafter sometimes referred to as read error sectors). In other words, the error sector detection unit 630 detects data that cannot be read (hereinafter sometimes referred to as read error data). The error sector detection unit 630 detects read error sectors based on a detection (check) code. In other words, the error sector detection unit 630 detects read error data written to a read error sector, for example, based on a detection (check) code. For example, the error sector detection unit 630 detects read error sectors of a predetermined track based on a parity check code. In other words, the error sector detection unit 630 detects read error data written to a read error sector of a predetermined track based on a parity check code.
[0050] The retry processing unit 640 reads (hereinafter sometimes referred to as read retry or retry) a predetermined track, predetermined sector, or predetermined data again. When a read error sector is detected on a predetermined track, the retry processing unit 640 performs a read retry on the read error sector (or the track). In other words, when the retry processing unit 640 detects read error data of a read error sector on a predetermined track, it performs a read retry on the read error data of the read error sector. For example, the retry processing unit 640 performs a read retry on the read error sector (or the track) until the read error sector of the predetermined track can be read. In other words, the retry processing unit 640 performs a read retry on the read error data of the read error sector until the read error data of the read error sector of the predetermined track can be read. Alternatively, for example, the retry processing unit 640 may stop retrying the read error sector (or the track) after performing a predetermined number of read retries on the read error sector (or the track) of the predetermined track. In other words, the retry processing unit 640 may stop retrying to read the error data of a read error sector of a predetermined track after performing a predetermined number of retry operations to read the error data of the read error sector.
[0051] The retry processing unit 640 performs a read retry method (hereinafter sometimes referred to as a strong read retry method) on a predetermined track, a read error sector, or the read error data, which has a higher probability of being able to read the track, the read error sector, or the read error data than a normal read retry method of rereading the track, the read error sector of the track, or the read error data of the read error sector. For example, the strong read retry method using error correction described below is performed. For example, when a read error sector is detected during the initial read (initial read, first read, or zeroth read retry) of the predetermined track, the retry processing unit 640 performs the strong read retry method on the read error sector during each read process (or each read retry process) from the initial read (or zeroth read retry) of the track to the Xth (X≥1)th read (or Yth (Y≥0)th read retry) of the track in which the read error sector is completed. In other words, when a read error sector of a predetermined track is detected by the initial read, the retry processing unit 640 performs a strong read retry method on the read error sector each time a one-cycle read (hereinafter sometimes referred to as a one-cycle read) or a one-cycle read retry (hereinafter sometimes referred to as a one-cycle read retry) is performed on the track starting from the initial read of the track. Hereinafter, the following situation is sometimes referred to as a "one-cycle read": in this situation, in order to perform a strong read retry method, such as a retry method or error correction method using error correction, on a read error sector detected on a specified track in a single command input or instruction from the host 100, the head 15 performs a one-cycle read on the track by returning to the predetermined circumferential position in one direction along the circumferential direction. In addition, the following situation is sometimes referred to as "single-turn reading": in this situation, in response to a single command input or instruction from the host 100, etc., the head 15 performs a single-turn reading along the circumference of a predetermined track, returning in one direction from a predetermined circumferential position to the predetermined circumferential position. Furthermore, the retry processing unit 640 may also perform a strong read retry method, such as averaging or defect detection, on a predetermined track, a read error sector of the track, or read error data of the read error sector.
[0052] The terms "initial read (or initial read processing)" and "1st read (or 1st read processing)" or "0th read retry (or 0th read retry processing)" may also include the meaning of "in a command input or indicated by the host 100, etc., causing the head 15 to seek from other tracks, positioning the head 15 at the track specified by the command (hereinafter sometimes also referred to as the specified track), and starting the initial 1st week of reading (or read processing) or the 0th week of read retry (or read retry processing) starting from reading the specified track." In other words, the terms "initial read (or initial read processing)" and "1st read (or 1st read processing)" or "0th read retry (or 0th read retry processing)" may also include the meaning of "in a command input or indicated by the host 100, etc., causing the head 15 to seek from other tracks, positioning the head 15 on the track specified by the command (hereinafter sometimes also referred to as the designated track), and performing the initial 1st week of read (or read processing) or the 0th week of read retry (or read retry processing) on the designated track before the read retry."
[0053] The terms "Xth read (or Xth read processing)" or "Yth read retry (or Yth read retry processing)" may also include the meaning of "in a command input or instructed by the host 100, etc., causing the head 15 to seek from other tracks, positioning the head 15 at the designated track specified by the command, and starting the Xth round of reading (or read processing) or the Yth round of read retry (or read retry processing) of the designated track from the start of reading the designated track." In other words, the terms "Xth read (or Xth read processing)" or "Yth read retry (or Yth read retry processing)" may also include the meaning of "in a command input or instructed by the host 100, etc., causing the head 15 to seek from other tracks, positioning the head 15 at the designated track specified by the command, and performing the Xth round of reading (or read processing) or the Yth round of read retry (or read retry processing) of the designated track from the initial read before performing a read retry on the designated track."
[0054] The error correction unit 650 corrects errors (errors) that cause read errors (hereinafter sometimes referred to as error correction or correction). The error correction unit 650 performs error correction on read error sectors and corrects the read error sectors. In other words, the error correction unit 650 performs error correction on the read error data of the read error sector and corrects the read error data. For example, the error correction unit 650 uses a strong read retry method to perform error correction on read error sectors and correct the read error sectors. When a read error sector is detected, the error correction unit 650 performs error correction on the read error sector and corrects the read error sector. In other words, when a read error sector is detected, the error correction unit 650 performs error correction on the read error data of the read error sector and corrects the read error data. The error correction unit 650 performs error correction on a track basis, for example. Hereinafter, "error correction on a track basis" may sometimes be referred to as "track-based error correction." For example, if a read error sector is detected on a predetermined track, the error correction unit 650 performs error correction on the read error sector detected on the track based on the error correction code (Error Correction Code) corresponding to the track, thereby correcting the read error sector on the track. In other words, if read error data of a read error sector is detected on a predetermined track, the error correction unit 650 performs error correction on the read error data of the read error sector detected on the track based on the error correction code corresponding to the track, thereby correcting the read error data of the read error sector on the track. For example, if a read error sector is detected on a predetermined track, the error correction unit 650 performs error correction on the detected read error sector based on the parity data or parity code corresponding to the track, thereby correcting the read error sector on the track. In other words, when read error data of a read error sector is detected on a predetermined track, the error correction unit 650 performs error correction on the read error data of the detected read error sector based on the parity data or parity code corresponding to the track, thereby correcting the read error data of the read error sector of the track. Furthermore, when multiple read error sectors are detected on a predetermined track, the error correction unit 650 performs error correction on each of the multiple read error sectors detected based on the parity data or parity code corresponding to the track, thereby correcting the multiple read error data of the track.
[0055] For example, if a read error sector is detected during the initial read of a specified track specified in a command, the error correction unit 650 performs error correction on the detected read error sector based on the parity data corresponding to the specified track, thereby correcting the read error sector of the specified track. In other words, if read error data of a read error sector is detected during the initial read of a specified track specified in a command, the error correction unit 650 performs error correction on the detected read error data of the read error sector based on the parity data corresponding to the specified track, thereby correcting the read error data of the read error sector of the specified track.
[0056] For example, if a read error sector detected in a specified track specified by a command cannot be read, the error correction unit 650 performs a one-way read of the specified track to perform error correction on the read error sector, thereby correcting the read error sector in the specified track. In other words, if the read error data in a read error sector detected in a specified track specified by a command cannot be read, the error correction unit 650 performs a one-way read of the specified track to perform error correction on the read error data written to the read error sector, thereby correcting the read error data written to the read error sector in the specified track.
[0057] For example, if a read error sector is detected in a specified track specified by a command, the error correction unit 650 repeatedly performs one-cycle reading (or read retry), and each time the specified track is read (or read retry), error correction is performed on the read error sector of the specified track until the read error sector can be read. In other words, if a read error sector is detected in a specified track specified by a command, the error correction unit 650 repeatedly performs one-cycle reading (or read retry), and each time the specified track is read (or read retry), error correction is performed on the read error data of the read error sector of the specified track until the read error data of the read error sector can be read.
[0058] For example, if a read error sector is detected during the initial read of a specified track specified by a command, the error correction unit 650 performs error correction on the read error sector starting from the initial read, repeatedly performs one-cycle read (or one-cycle read retry) on the specified track, and performs error correction on the read error sector of the specified track each time the read is performed (or one-cycle read retry) on the specified track until the read error sector can be read. In other words, if read error data of a read error sector is detected during the initial read of a specified track specified by a command, the error correction unit 650 performs error correction on the read error data of the read error sector starting from the initial read, repeatedly performs one-cycle read (or one-cycle read retry) on the specified track, and performs error correction on the read error data of the read error sector of the specified track each time the read is performed (or one-cycle read retry) on the specified track until the read error data of the read error sector can be read.
[0059] The reallocation (Re-Assign) control unit 660 reallocates (or performs reallocation processing) a predetermined area (hereinafter sometimes referred to as the object area). The reallocation control unit 660 reallocates the target sector (hereinafter sometimes referred to as the object sector) of the target track (hereinafter sometimes referred to as the object track) or the target data (hereinafter sometimes referred to as the object data). The target track includes, for example, a designated track. The target sector includes, for example, a read error sector. The target data includes, for example, read error data. Reallocation includes a process of confirming (or verifying) whether the written or read data can be written / read normally (hereinafter sometimes referred to as Write / Read Verify or Write / Read Verify processing), and a process of writing the data written to the target area to another area outside the target area (hereinafter sometimes referred to as a replacement area), that is, a process of replacing the target sector of the target track with a predetermined sector (hereinafter sometimes referred to as a replacement sector) of another track (hereinafter sometimes referred to as another track) different from the target track, or a process of reconfiguring. For example, during the reallocation process, when the write / read verification (Write & Verify) cannot be immediately performed when it is not Idel, the reallocation control unit 660 replaces the target sector of the target track with a replacement sector of another track.
[0060] The reallocation control unit 660 reallocates the target sectors based on the quality of the target sectors of the target track (hereinafter sometimes referred to as "sector quality"). In other words, the reallocation control unit 660 reallocates the target data based on the quality of the target data written to the target sectors (hereinafter sometimes referred to as "data quality"). The reallocation control unit 660 confirms (or checks) the sector quality of the target sectors of the target track and reallocates the target sectors based on the sector quality of the target sectors. The reallocation control unit 660 reallocates target sectors that are determined to have poor (bad) sector quality due to damage, uneven spacing, etc. In other words, the reallocation control unit 660 reallocates target data written to target sectors that are determined to have poor (bad) data quality due to damage, uneven spacing, etc. Furthermore, if it is determined that there are multiple target sectors in the target track, the reallocation control unit 660 confirms the sector quality of each of the multiple target sectors in the target track and reallocates each of the multiple target sectors based on the sector quality of each of the multiple target sectors.
[0061] The reallocation control unit 660 determines whether the sector quality of the target sector exceeds a threshold associated with the sector quality of the target sector (hereinafter sometimes referred to as the sector quality threshold) or is below the sector quality threshold, and determines whether to reallocate the target sector based on the determination result. In other words, the reallocation control unit 660 determines whether the data quality of the target data written to the target sector exceeds a threshold associated with the data quality of the target data (hereinafter sometimes referred to as the data quality threshold) or is below the data quality threshold, and determines whether to reallocate the target data based on the determination result. For example, if the reallocation control unit 660 determines that the sector quality of the target sector is below the sector quality threshold corresponding to the target sector, it determines that the sector quality of the target sector is poor and reallocates the target sector. In other words, if the reallocation control unit 660 determines that the data quality of the target data written to the target sector is below the data quality threshold corresponding to the target data, it determines that the data quality of the target data is poor and reallocates the target data. For example, if the reallocation control unit 660 determines that the sector quality of the target sector exceeds the sector quality threshold corresponding to the target sector, it determines that the sector quality of the target sector is good and does not reallocate the target sector. In other words, if the reallocation control unit 660 determines that the data quality of the target data written to the target sector exceeds the data quality threshold corresponding to the target data, it determines that the data quality of the target data is good and does not reallocate the target data. Alternatively, if the reallocation control unit 660 determines that the sector quality of the target sector is below the sector quality threshold corresponding to the target sector, it determines that the sector quality of the target sector is good and does not reallocate the target sector. In other words, if the reallocation control unit 660 determines that the data quality of the target data written to the target sector is below the data quality threshold corresponding to the target data, it determines that the data quality of the target data is good and does not reallocate the target data. For example, if the sector quality of the target sector is determined to be higher than the sector quality threshold corresponding to the target sector, the reallocation control unit 660 may determine that the sector quality of the target sector is poor and reallocate the target sector. In other words, if the data quality of the target data written to the target sector is higher than the data quality threshold corresponding to the target data, the reallocation control unit 660 may determine that the data quality of the target data is poor and reallocate the target data.
[0062] The reallocation control unit 660 reallocates the recovery sector based on the sector quality of the read error sector (hereinafter sometimes referred to as the recovery sector or the rescue sector) that has been read through the strong read retry method. In other words, the reallocation control unit 660 reallocates the read error data (hereinafter sometimes referred to as the recovery data or the rescue data) of the read error sector that has been read through the strong read retry method based on the data quality of the recovery data.
[0063] For example, the reallocation control unit 660 reallocates the recovery sector (or rescue sector) based on the sector quality of the read error sector (hereinafter sometimes referred to as the recovery sector or rescue sector) that has been restored or rescued in a readable manner by error correction. In other words, the reallocation control unit 660 reallocates the recovery data (hereinafter sometimes referred to as the recovery data or rescue data) based on the data quality of the read error data (hereinafter sometimes referred to as the recovery data or rescue data) of the recovery sector (or rescue sector) that has been restored or rescued in a readable manner by error correction.
[0064] The reallocation control unit 660 reallocates the recovered sector (or rescue sector) based on the sector quality of the recovered sector (or rescue sector) when a read error sector detected in the initial read of the object track is recovered or rescued by a strong read retry method at the Ath (1≤A≤X)th read {at the Bth (0≤B≤Y)th read retry} during the period from the initial read (or the 0th read retry) to the Xth read (or the Yth read retry). In other words, when the reallocation control unit 660 recovers or rescues the read error data of the read error sector detected in the initial read of the object track by a strong read retry method at the Ath (1≤A≤X)th read {Bth (0≤B≤Y)th read retry} during the period from the initial read (or the 0th read retry) to the Xth read (or the Yth read retry), the recovery data (or rescue data) of the recovery sector (or rescue sector) is reallocated based on the data quality of the recovery data (or rescue data) of the recovery sector (or rescue sector).
[0065] For example, when the reallocation control unit 660 completes recovery or relief of a read error sector detected in the initial read of the target track by a strong read retry method during the initial read, the reallocation control unit 660 reallocates the recovery sector (or relief sector) based on the sector quality of the recovery sector (or relief sector). In other words, when the reallocation control unit 660 completes recovery or relief of read error data of a read error sector detected in the initial read of the target track by a strong read retry method during the initial read, the reallocation control unit 660 reallocates the recovery sector (or relief sector) based on the data quality of the recovery data (or relief data) of the recovery sector (or relief sector).
[0066] The reallocation control unit 660 reallocates the recovered sector (or the rescue sector) based on the sector quality of the recovered sector (or the rescue sector) when the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in one-week reading (or one-week reading retry) within a predetermined number of times (hereinafter sometimes referred to as the week threshold). In other words, the reallocation control unit 660 reallocates the recovered data (or the rescue data) of the recovered sector (or the rescue sector) based on the data quality of the recovered data (or the rescue data) of the recovered sector (or the rescue sector) when the read error data of the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in one-week reading (or one-week reading retry) within the week threshold.
[0067] For example, the reallocation control unit 660 reallocates the recovery sector (or relief sector) based on the sector quality of the recovery sector (or relief sector) only when the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in one week of reading (or one week of reading retry) within the week threshold from the initial read. In other words, the reallocation control unit 660 reallocates the recovery data (or relief data) of the recovery sector (or relief sector) based on the data quality of the recovery sector (or relief sector) only when the read error data of the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in one week of reading (or one week of reading retry) within the week threshold from the initial read.
[0068] In one example, the reallocation control unit 660 reallocates the recovery sector (or rescue sector) based on the sector quality of the recovery sector (or rescue sector) only when the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in a one-week read (or a one-week read retry) within 0 to 3 weeks from the initial read. In other words, the reallocation control unit 660 reallocates the recovery data (or rescue data) of the recovery sector (or rescue sector) based on the data quality of the recovery sector (or rescue sector) only when the read error data of the read error sector detected in the initial read of the target track is recovered or relieved by a strong read retry method in a one-week read (or a one-week read retry) within 0 to 3 weeks from the initial read.
[0069] The reallocation control unit 660 determines whether the sector quality of the recovery sector exceeds the sector quality threshold corresponding to the recovery sector or is below the sector quality threshold, and determines whether to reallocate the recovery sector based on the determination result. In other words, the reallocation control unit 660 determines whether the data quality of the recovery data written to the recovery sector exceeds the data quality threshold corresponding to the recovery data or is below the data quality threshold, and determines whether to reallocate the recovery data based on the determination result. For example, if the reallocation control unit 660 determines that the sector quality of the recovery sector is below the sector quality threshold corresponding to the recovery sector, it determines that the sector quality of the recovery sector is poor and reallocates the recovery sector. In other words, if the reallocation control unit 660 determines that the data quality of the recovery data written to the recovery sector is below the data quality threshold, it determines that the data quality of the recovery data written to the recovery sector is poor and reallocates the recovery data. For example, if the reallocation control unit 660 determines that the sector quality of a recovery sector exceeds the sector quality threshold corresponding to the recovery sector, it determines that the sector quality of the recovery sector is good and does not reallocate the recovery sector. In other words, if the reallocation control unit 660 determines that the data quality of the recovery data written to the recovery sector exceeds the data quality threshold corresponding to the recovery data, it determines that the data quality of the recovery data written to the recovery sector is good and does not reallocate the recovery data. For example, if the reallocation control unit 660 determines that the sector quality of the recovery sector is below the sector quality threshold corresponding to the recovery sector, it determines that the sector quality of the recovery sector is good and does not reallocate the recovery sector. In other words, if the reallocation control unit 660 determines that the data quality of the recovery data written to the recovery sector is below the data quality threshold, it determines that the data quality of the recovery data written to the recovery sector is good and does not reallocate the recovery data. For example, if the reallocation control unit 660 determines that the sector quality of a recovery sector exceeds a sector quality threshold corresponding to the recovery sector, the reallocation control unit 660 may determine that the sector quality of the recovery sector is poor and reallocate the recovery sector. In other words, if the data quality of the recovery data written to the recovery sector exceeds a data quality threshold corresponding to the recovery data, the reallocation control unit 660 may determine that the data quality of the recovery data written to the recovery sector is poor and reallocate the recovery data.
[0070] For example, the reallocation control unit 660 determines the sector quality of the target sector based on the number of error-corrected bits among all bits of the data corresponding to the target sector counted in the R / W channel 40, etc. when error correction is performed on the target sector (hereinafter sometimes referred to as the total bit correction number). For example, when performing error correction on the target sector, the reallocation control unit 660 performs a one-circle read of the target track before performing LDPC correction processing, and performs error correction on the target sector of the target track. The reallocation control unit 660 compares all bits corresponding to the data of the target sector before error correction (hereinafter sometimes referred to as all bits before correction) with all bits corresponding to the data of the target sector after error correction (hereinafter sometimes referred to as all bits after correction). Bits that change between the total bits before correction and the total bits after correction are counted as error-corrected bits, and the total bit correction number is counted. A larger total bit correction number indicates that the sector quality of the sector is poorer, and a smaller total bit correction number indicates that the sector quality of the sector is better. For example, if the total number of bit corrections corresponding to the target sector is greater than a threshold (hereinafter sometimes referred to as the bit threshold), the reallocation control unit 660 determines that the sector quality of the target sector is poor. Alternatively, if the total number of bit corrections corresponding to the target sector is less than the bit threshold, the reallocation control unit 660 determines that the sector quality of the target sector is good.
[0071] For example, when error correction is performed on the target sector, the reallocation control unit 660 determines the sector quality of the target sector based on the number of unsatisfied parity checks in the LDPC corresponding to the target sector. LDPC is composed of multiple parity check codes. When all parity checks of the LDPC corresponding to the data of the target sector are satisfied, the reallocation control unit 660 deems that all errors in the target sector have been corrected. In other words, the reallocation control unit 660 determines the sector quality of the target sector based on the number of satisfied parity checks or the number of unsatisfied parity checks among all parity checks of the LDPC corresponding to the data of the target sector. For example, when error correction is performed on the target sector, the reallocation control unit 660 performs a one-circle read of the target track and determines the sector quality of the target sector based on the number of unsatisfied parity checks corresponding to the target sector of the target track.
[0072] For example, after performing error correction on the target sector, the reallocation control unit 660 determines the sector quality of the target sector based on the metric difference (hereinafter referred to as the metric difference) between the selected path and the competing paths using the Viterbi path metric during Viterbi decoding of the target sector's data. During Viterbi decoding, paths with smaller metrics are selected. Therefore, as the metric difference increases, the likelihood of selecting an erroneous path decreases. The larger the metric difference, the better the sector quality of the target sector determined by the reallocation control unit 660; the smaller the metric difference, the worse the sector quality determined by the reallocation control unit 660. For example, if the metric difference corresponding to the target sector's data is greater than a threshold (hereinafter referred to as the metric difference threshold), the reallocation control unit 660 determines that the sector quality of the target sector is good. Alternatively, if the metric difference corresponding to the target sector's data is determined to be below the metric threshold, the reallocation control unit 660 determines that the sector quality of the target sector is poor.
[0073] For example, when error correction is performed on the target sector, the reallocation control unit 660 determines the sector quality of the target sector based on a dip in the waveform (or waveform amplitude) of the data obtained by reading the target sector. The reallocation control unit 660 has a function for detecting a dip in the waveform of the target data when the target sector is read (hereinafter sometimes referred to as a waveform dip detection function). If the reallocation control unit 660 determines that the interval during which the dip in the waveform of the target data when the target sector is read is below a threshold (hereinafter sometimes referred to as a waveform dip threshold) is greater than a predetermined interval (hereinafter sometimes referred to as a waveform dip interval threshold), the reallocation control unit 660 determines that a defect exists in the area of the disk 10 corresponding to the target sector. For example, if the reallocation control unit 660 determines that the interval during which the dip in the waveform of the target data when the target sector is read is below the waveform dip threshold is greater than the waveform dip interval threshold, the reallocation control unit 660 determines that the sector quality of the target sector is poor. For example, if the reallocation control unit 660 determines that the interval during which the dip in the waveform of the target data when the target sector is read is less than the waveform dip threshold, the reallocation control unit 660 determines that the sector quality of the target sector is good.
[0074] Figure 4 This is a schematic diagram showing an example of a method for correcting errors in units of tracks according to this embodiment.
[0075] exist Figure 4 The track Tre is shown in FIG. The track Tre may be a track written in a tile recording mode in a predetermined band area, or a track written in a normal recording mode. Figure 4In FIG, the track Tre is concentric with the disk 10, but may be in a shape other than a circle. The track Tre includes sectors Se0, Se1, Se2, Se3, Se4, Se5, Se6, Se7, Se8, Se9, Se10, Se11, Se12, Se13, Se14, and a parity sector PSe. In addition, the track Tre may include other sectors or may not include some of the sectors Se0 to Se14. Figure 4 In the example, sector Se10 is a read error sector. Figure 4 As shown, in the circumferential direction, the direction of writing and reading data is called the traveling direction. For example, the traveling direction is the direction opposite to the rotation direction of the disk 10. In addition, the traveling direction may also be the same direction as the rotation direction of the disk 10. Figure 4 In the figure, the moving direction is equivalent to the direction in which the head 15 positioned at the track Tre writes or reads in the order of sectors Se0, Se1, Se2, Se3, Se4, Se5, Se6, Se7, Se8, Se9, Se10, Se11, Se12, Se13, and Se14.
[0076] For example, the MPU 60 first writes user data to the sector Se0 in the track Tre. The MPU 60 writes user data in the direction from the sector Se0 to the sector Se14.
[0077] The MPU 60 performs an XOR operation on the plurality of user data corresponding to sectors Se0 to Se14, and calculates parity data as a result of the XOR operation on the plurality of user data corresponding to sectors Se0 to Se14.
[0078] The MPU 60 writes parity data corresponding to a plurality of data corresponding to sectors Se0 to Se14 , respectively, to the parity sector PSe located next (adjacent) in the direction of travel of the sector Se14 in which user data is last written in the track Tre.
[0079] The MPU 60 reads data from sector Se0 to sector Se14 along the traveling direction.
[0080] The MPU 60 detects the read error data of the read error sector Se10 and corrects the read error data written in the read error sector Se10 based on the parity data written in the parity sector PSe.
[0081] Figure 5 FIG. 1 is a diagram showing an example of a read process without read retry. Figure 5 A predetermined track TRn of the user data area 10a is shown.
[0082] exist Figure 5In the example shown, the MPU 60, in accordance with a command input or instructed by the host 100 or the like, causes the head 15 to seek from another track to the circumferential position CP1 of the track TRn specified by the command. In other words, in accordance with a command input or instructed by the host 100 or the like, the MPU 60 causes the head 15 to seek from another track to the sector corresponding to the circumferential position CP1 of the track TRn specified by the command. Hereinafter, the circumferential position at which the head 15 is initially positioned on the track TRn specified by the command, when the head 15 seeks from another track to the track specified by the command, in a single command input or instructed by the host 100 or the like, is sometimes referred to as a base point. The MPU 60 reads the area from the circumferential position CP1 (base point BP1) to the circumferential position CP2 of the track TRn specified by the command input or instructed by the host 100 or the like. In other words, the MPU 60 reads a plurality of sectors, from the sector corresponding to the circumferential position CP1 of the track TRn specified in the command input or instructed by the host 100 or the like to the sector corresponding to the circumferential position CP2. Hereinafter, the circumferential position at which the head 15 starts seeking from the track specified by the command to the other track by reading a predetermined area of the track specified by the command from other tracks in a single command input or instructed by the host 100 or the like is sometimes referred to as the end point. If the MPU 60 does not detect a read error sector in the area from the circumferential position CP1 (base point BP1) to the circumferential position CP2 (end point EP1) of the track TRn, it does not retry the track TRn and seeks from the circumferential position CP2 (end point EP1) of the track TRn. In other words, when MPU60 does not detect a read error sector among multiple sectors from the sector corresponding to the circumferential position CP1 (base point BP1) of track TRn to the sector corresponding to the circumferential position CP2 (end point EP1) of track TRn, it does not retry track TRn and seeks to other tracks from the sector corresponding to the circumferential position CP2 (end point EP1) of track TRn.
[0083] Figure 6 This is a diagram showing an example of a read process involving read retry. Figure 6 Corresponding to Figure 5 .
[0084] exist Figure 6In the example shown, the MPU 60, in accordance with a command input or instruction from the host 100 or the like, causes the head 15 to seek from another track to the circumferential position CP1 (base point BP1) of the track TRn specified by the command. In other words, in accordance with a command input or instruction from the host 100 or the like, the MPU 60 causes the head 15 to seek from another track to the sector corresponding to the circumferential position CP1 (base point BP1) of the track specified by the command. The MPU 60 reads the area from the circumferential position CP1 (base point BP1) to the circumferential position CP2 (end point EP1) of the track TRn specified by the command input from the host 100 or the like in the direction of travel. In other words, the MPU 60 reads multiple sectors from the sector corresponding to the circumferential position CP1 (base point BP1) to the sector corresponding to the circumferential position CP2 (end point EP1) of the track TRn specified by the command input from the host 100 or the like in the direction of travel. The MPU 60 detects a read error sector at circumferential position CP12 in the area between circumferential position CP1 (base point BP1) and circumferential position CP2 (end point EP1) of track TRn. In other words, the MPU 60 detects the sector corresponding to circumferential position CP12 as a read error sector among the sectors corresponding to circumferential position CP1 (base point BP1) and circumferential position CP2 (EP1) of track TRn. When the MPU 60 detects a read error sector at circumferential position CP12 in the area between circumferential position CP1 (base point BP1) and circumferential position CP2 (end point EP1) of track TRn, it performs error correction on the read error sector based on the parity data corresponding to the track TRn. In other words, if a sector corresponding to circumferential position CP12 is detected as a read error sector among the sectors corresponding to circumferential position CP1 (base point BP1) to circumferential position CP2 (end point EP1) of track TRn, error correction is performed on the read error sector based on the parity data corresponding to track TRn. If the error correction fails to recover or remedy the read error sector, the MPU 60 further reads from circumferential position CP2 (end point EP1) to circumferential position CP12 in the direction of travel (read retry) to perform one rotation of track TRn in the direction of travel (one rotation read retry). In other words, when MPU60 fails to recover or remedy the read error sector through error correction, in order to perform error correction on the read error sector again, it further reads the sector corresponding to the circumferential position CP2 (end point EP1) to the sector corresponding to the circumferential position CP12 in the moving direction (read retry), and reads multiple sectors of the track TR from the sector corresponding to the circumferential position CP12 to the sector corresponding to the circumferential position CP12 in the moving direction for one week (read retry for one week).When track TR is read one rotation in the direction of travel from circumferential position CP12 to circumferential position CP12 (one rotation read retry), the MPU 60 performs error correction again on the read error sector (the sector corresponding to circumferential position CP12) based on the parity data corresponding to track TRn, and corrects the read error sector of the track. In other words, when multiple sectors of track TRn from the sector corresponding to circumferential position CP12 to the sector corresponding to circumferential position CP12 are read one rotation in the direction of travel (one rotation read retry), the MPU 60 performs error correction again on the read error sector (the sector corresponding to circumferential position CP12) based on the parity data corresponding to track TRn, and corrects the read error sector of the track.
[0085] Figure 7 is a diagram showing an example of redistribution. Figure 7 Tracks TRn and TRk are shown in FIG. Figure 7 In the track TRn, there are sectors Sn1, Sn2, Sn3, Sn4, Sn5, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, Sn14 and a parity sector PSn. Sectors Sn1, Sn2, Sn3, Sn4, Sn5, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, Sn14 are arranged in the order of the description along the circumferential direction. The parity sector PSn is adjacent to the sector Sn14 on the opposite side of the sector Sn13 in the circumferential direction. Parity data calculated as a result of an XOR operation on the data of sectors Sn1 to Sn14d is written in the parity sector PSn. In the Figure 7 In FIG. 1 , sector Sn10 corresponds to the restore sector Sn10. Track TRk has a plurality of sectors.
[0086] The MPU 60 reallocates the recovery sector Sn10 based on the sector quality of the recovery sector Sn10 of the track TRn. Figure 7 In the example shown, when MPU60 reallocates the recovery sector Sn10 of track TRn, if write / read verification (Write&Verify) cannot be performed immediately when it is not Idle or not Idle, the recovery sector Sn10 is written to the replacement sector of track TRk for replacement.
[0087] Figure 8 This is a schematic diagram showing an example of table TB showing the relationship between read retry, aggressive read retry method, and reallocation. Figure 8Table TB includes a Retry Step item corresponding to the number of read retries for a predetermined area, such as a predetermined sector, a Read off-set item corresponding to the offset in the radial direction from the target radial position when reading the sector (hereinafter sometimes referred to as the read target position), a Read Retry item indicating whether a strong read retry method is performed, and a Re-Assign item indicating whether reallocation processing is performed when the predetermined sector cannot be recovered or rescued. Figure 8 In the table TB, when the Retry Step item is 0, it is equivalent to the initial reading. Figure 8 In Table TB, if the item "Read Retry" is "Yes", it indicates that a strong read retry is executed or installed. If the item "Read Retry" is "No", it indicates that a strong read retry is not executed or installed. Figure 8 In the table TB, if the item "Re-Assign" is "Yes", it means that the redistribution is executed or installed, and if the item "Re-Assign" is "No", it means that the redistribution is not executed or installed. Figure 8 In the table TB, when the Retry Step item is 0, 1, 2, or 3, the Read off-set item is 0. Figure 8 In Table TB, when the Retry Step item is 4, the Read off-set item is ±CS1. Figure 8 In Table TB, when the Retry Step item is 5, the Read off-set item is ±CS2. Figure 8 In Table TB, when the Retry Step item is 6, the Readoff-set item is ±CS3. Figure 8 In table TB, when the item of Retry Step is 0, 1, 2, or 3, the item of Re-Assign is Yes. Figure 8 The table TB may be stored 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.
[0088] When the MPU 60 detects a read error sector in the target track and the Retry Step item is 0, it uses a strong read retry method to perform error correction on the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track and completes recovery of the read error sector in the Retry Step item is 0, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0089] When the MPU 60 detects a read error sector in the target track and the Retry Step item is 0, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on a read error sector detected in the target track and completes recovery of the read error sector and the MPU 60 reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0090] When the MPU 60 detects a read error sector in the target track when the Retry Step item is 1, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track when the Retry Step item is 1 and completes recovery of the read error sector, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0091] When the MPU 60 detects a read error sector in the target track and the Retry Step item is 2, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track and completes recovery of the read error sector in the Retry Step item is 2, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0092] When the MPU 60 detects a read error sector in the target track when the Retry Step item is 3, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on a read error sector detected in the target track when the Retry Step item is 3 and completes recovery of the read error sector, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0093] When the MPU 60 detects a read error sector in the target track and the Retry Step item is 4, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track and completes recovery of the read error sector in the Retry Step item is 4, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0094] When the MPU 60 detects a read error sector in the target track when the Retry Step item is 5, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track when the Retry Step item is 5 and completes recovery of the read error sector, it reallocates the recovery sector based on the sector quality of the recovery sector corresponding to the read error sector.
[0095] When the MPU 60 detects a read error sector in the target track when the Retry Step item is 6, it performs error correction using a strong read retry method for the read error sector. When the MPU 60 performs error correction on the read error sector detected in the target track when the Retry Step item is 6 and completes recovery of the read error sector, it reallocates the recovery sector corresponding to the read error sector based on the sector quality of the recovery sector.
[0096] Under the premise that error sectors are corrected by error correction during the initial reading, the recording density of the disk 10, such as TPI (Track Per Inch), can be set without margin. In this case, a large number of sectors that cannot be recovered or rescued without error correction may be generated due to drift writing (DOW). Therefore, in such a magnetic disk device, it is necessary to perform error correction (or install error correction code) from the initial reading, when the Retry Step item is 0, or at least when the Retry Step item is 1, 2, or 3. In this way, when error correction is performed even when the Retry Step item (Retry Step) is small, data written in a poor quality sector that cannot be read due to loss, uneven spacing, etc. can also be recovered or rescued when the Retry Step is small. Therefore, it may be necessary to perform reallocation based on the sector quality of the sector regardless of the size (or number) of the Retry Step.
[0097] Figure 9 This is a flowchart showing an example of the error correction processing method involved in this embodiment.
[0098] The MPU60 reads the target track according to the command input by the host 100 or the like (B901). The MPU60 determines whether there is a read error sector in the target track (B902). When it is determined that there is no read error sector (B902: No), the MPU60 ends the processing. When it is determined that there is a read error sector (B902: Yes), the MPU60 performs a strong read retry method, such as error correction, on the read error sector based on the parity data corresponding to the target track, etc. (B903). For example, when it is determined that there is a read error sector during the initial reading of the target track, the MPU60 performs a strong read retry method, such as error correction, on the read error sector based on the parity data corresponding to the target track, etc. The MPU60 determines whether recovery of the read error sector has been completed (B904). If the MPU 60 determines that the read error sector cannot be recovered (B904: No), it performs a one-way read of the target track (or a one-way read retry) (B905) and proceeds to the process of B903. If the MPU 60 determines that the read error sector has been recovered through error correction (B904: Yes), it ends the process.
[0099] Figure 10 This is a flowchart showing an example of a reallocation processing method according to this embodiment.
[0100] The MPU 60 determines whether there is a recovery sector (or a relief sector) that has been recovered or rescued by a strong read retry method, such as error correction (B1001). If it is determined that there is a recovery sector (B1001: Yes), the MPU 60 confirms the sector quality of the recovery sector (B1002) and determines whether the sector quality of the recovery sector is poor (bad) or good (B1003). If it is determined that the sector quality of the recovery sector is good (B1003: No), the MPU 60 ends the processing. If it is determined that the sector quality of the recovery sector is poor (bad) (B1003: Yes), the MPU 60 reallocates the recovery sector (B1004) and ends the processing. That is, the MPU 60 can reallocate the recovery sector of the target track from the initial reading of the target track.
[0101] According to this embodiment, when a read error sector is detected in a track specified by a command input from the host 100, etc., the magnetic disk device 1 performs a strong read retry method, such as error correction, on the read error sector starting from the initial read of the read error sector. When the read error sector is recovered, the magnetic disk device 1 confirms the sector quality of the recovered read error sector (recovery sector). The magnetic disk device 1 determines whether the sector quality of the recovery sector is poor or good. When the sector quality of the recovery sector is determined to be poor (bad), the magnetic disk device 1 reallocates the recovery sector. The magnetic disk device 1 can reallocate the read error sector (recovery sector) in several read retries starting from the initial read. When a sector that cannot be recovered without error correction is generated due to DOW, etc., the magnetic disk device 1 corrects the read error sector through error correction starting from the initial read. Therefore, the magnetic disk device 1 can increase the TPI of the disk 10. Therefore, the magnetic disk device 1 can improve the recording density.
[0102] Next, a magnetic disk device according to a modified example will be described. In the modified example, the same reference numerals are used to denote the same components as those in the aforementioned embodiment, and detailed description thereof will be omitted.
[0103] (Variation 1)
[0104] The parity sector generation method of the magnetic disk device 1 according to the first modification is different from that of the magnetic disk device 1 according to the first embodiment.
[0105] The MPU60 reallocates the target sector based on the sector quality of the target sector of the target track. When the MPU60 reallocates the target sector of the target track, if it is not in the Idle state and cannot immediately perform write / read verification (Write & read Verify), the target sector is replaced by a replacement sector of another track. When the reallocation replaces the target sector with the replacement sector, the MPU60 calculates parity data as the result of the XOR operation corresponding to each sector of the target track other than the target sector and the replacement sector. That is, when the target sector is replaced with the replacement sector by reallocation, the MPU60 generates a parity sector based on the XOR operation corresponding to each sector of the target track other than the target sector and the replacement sector. In other words, when the target sector is replaced with the replacement sector by reallocation, the MPU60 generates a parity sector based on the result of the XOR operation corresponding to each sector of the target track other than the target sector and the replacement sector across multiple tracks.
[0106] For example, the MPU 60 reallocates the recovery sector based on the sector quality of the recovery sector of the target track. When the MPU 60 reallocates the recovery sector of the target track, if write / read verification cannot be performed immediately, such as when the system is not idle, the recovery sector is replaced with a replacement sector of another track. When the recovery sector is replaced with the replacement sector by reallocation, the MPU 60 calculates parity data based on the result of an XOR operation corresponding to each sector of the target track other than the recovery sector and the replacement sector. That is, when the recovery sector is replaced with the replacement sector by reallocation, the MPU 60 generates a parity sector based on the XOR operation corresponding to each sector of the target track other than the recovery sector and the replacement sector. In other words, when the recovery sector is replaced with the replacement sector by reallocation, the MPU 60 generates a parity sector based on the result of an XOR operation corresponding to each sector of the target track other than the recovery sector and the replacement sector across multiple tracks.
[0107] Figure 11 : is a schematic diagram showing an example of a parity sector generation method according to Modification Example 1. Figure 11 Tracks TRn and TRk are shown in FIG. Figure 11 In , sectors Sn3 and Sn5 are equivalent to recovery sectors Sn3 and Sn5 respectively. Figure 11 In the example, the recovery sectors Sn3 and Sn5 are replaced by replacement sectors Sn3 and Sn5 written to the track TRk, respectively.
[0108] exist Figure 11In the example shown, the MPU 60 reads sectors Sn1, Sn2, Sn4, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, and Sn14 of track TRn in the order listed, and reads replacement sectors Sn3 and Sn5 of track TRk in the order listed. The MPU 60 performs an XOR operation on sectors Sn1, Sn2, Sn4, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, and Sn14 of track TRn, and performs an XOR operation on replacement sectors Sn3 and Sn5 of track TRk. The MPU 60 calculates the parity data to be written to the parity sector PSn based on the results of the XOR operation on sectors Sn1, Sn2, Sn4, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, and Sn14 of track TRn and the results of the XOR operation on the replacement sectors Sn3 and Sn5 of track TRk. In other words, the MPU 60 reads each sector of track TRn except for the restored sectors Sn3 and Sn5 and reads the replacement sectors Sn and Sn5 of track TRk. The MPU 60 performs an XOR operation on each sector of track TRn except for the restored sectors Sn3 and Sn5 and performs an XOR operation on the replacement sectors Sn3 and Sn5 of track TRk. The MPU 60 generates a parity sector PSn based on the results of XOR operations on each sector of the track TRn other than the restoration sectors Sn3 and Sn5 and the results of XOR operations on the replacement sectors Sn3 and Sn5 of the track TRk.
[0109] Figure 12 This is a flowchart showing an example of a parity sector generation method according to Modification 1.
[0110] MPU60 reallocates the object sector based on the sector quality of the object sector of the object track (B1201). MPU60 determines whether write / read verification can be performed immediately (B1202). For example, MPU60 determines whether write / read verification can be performed immediately when reallocating the object sector of the object track, such as when it is not Idel. If it is determined that write / read verification can be performed immediately (B1202: No), MPU60 ends. If it is determined that write / read verification cannot be performed immediately (B1202: Yes), MPU60 replaces the object sector of the object track with a replacement sector of another track (B1203). MPU60 generates a parity sector based on the result of the XOR operation across multiple tracks (B1204), and ends the processing. For example, MPU60 calculates parity data as the result of the XOR operation corresponding to each sector of the object track other than the object sector and the replacement sector of the other track, and ends the processing.
[0111] According to Modification 1, the magnetic disk device 1 reallocates the target sector based on the sector quality of the target track. If the magnetic disk device 1 cannot immediately perform write / read verification on the target sector of the target track during reallocation, such as when the target sector is not idle, the target sector of the target track is replaced with a replacement sector of another track. When the reallocation replaces the target sector with the replacement sector, the MPU 60 generates a parity sector based on the result of an XOR operation between the replacement sector and each sector of the target track other than the target sector across multiple tracks. Therefore, the magnetic disk device 1 can efficiently generate parity sectors.
[0112] (Variation 2)
[0113] The parity sector generation method of the magnetic disk device 1 according to the second modification is different from that of the magnetic disk device 1 according to the first embodiment and the first modification.
[0114] MPU60 reallocates the object sector based on the sector quality of the object sector of the object track. When MPU60 is reallocating the object sector of the object track and cannot immediately perform write / read verification (Write & read Verify) when not in idle state, etc., it replaces the object sector with a replacement sector of another track. When MPU60 is reallocating the object sector of the object track, it performs write / read verification on the object sector when idle state, etc. When performing write / read verification of the object sector, MPU60 determines whether the object sector is a permanently unused area or sector (hereinafter sometimes also referred to as a permanent slice (Slip)). When it is determined that the object sector is a permanent slice, MPU60 calculates parity data as the result of the XOR operation corresponding to each sector of the object track other than the object sector. In other words, when it is determined that the object sector is a permanent slice, MPU60 generates a parity sector based on the result of the XOR operation corresponding to each sector of the object track other than the object sector.
[0115] For example, MPU60 reallocates the recovery sector based on the sector quality of the recovery sector of the target track. When MPU60 reallocates the recovery sector of the target track, if write / read verification (Write & read Verify) cannot be performed immediately when not in Idle mode, etc., the recovery sector is replaced with a replacement sector of another track. When MPU60 reallocates the recovery sector of the target track, it performs write / read verification on the recovery sector when in Idle mode, etc. When write / read verification is performed on the recovery sector, MPU60 determines whether the recovery sector is a permanent slice. When it is determined that the recovery sector is a permanent slice, MPU60 calculates parity data as the result of the XOR operation corresponding to each sector of the target track other than the recovery sector. In other words, when it is determined that the recovery sector is a permanent slice, MPU60 generates a parity sector based on the result of the XOR operation corresponding to each sector of the target track other than the recovery sector.
[0116] Figure 13 : is a schematic diagram showing an example of a parity sector generation method according to Modification Example 2. Figure 13 The track TRn is shown in FIG. Figure 13 In , sectors Sn3 and Sn5 are equivalent to recovery sectors Sn3 and Sn5 respectively. Figure 13 In the example, the recovery sectors Sn3 and Sn5 are replaced by replacement sectors written to other tracks.
[0117] exist Figure 13 In the example shown, when reallocating recovery sectors Sn3 and Sn5 of track TRn, the MPU 60 performs a write / read verification on recovery sectors Sn3 and Sn5 during Idle mode. When performing a write / read verification on recovery sectors Sn3 and Sn5, the MPU 60 determines whether recovery sectors Sn3 and Sn5 are permanent slices. If recovery sectors Sn3 and Sn5 are determined to be permanent slices, the MPU 60 reads sectors Sn1, Sn2, Sn4, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, and Sn14 of track TRn in the order listed and performs an XOR operation. The MPU 60 calculates parity data to be written to the parity sector PSn based on the results of the XOR operation on sectors Sn1, Sn2, Sn4, Sn6, Sn7, Sn8, Sn9, Sn10, Sn11, Sn12, Sn13, and Sn14 of track TRn. In other words, the MPU 60 reads and performs the XOR operation on each sector of track TRn except for the recovery sectors Sn3 and Sn5. The MPU 60 generates the parity sector PSn based on the results of the XOR operation on each sector of track TRn except for the recovery sectors Sn3 and Sn5.
[0118] Figure 14 This is a flowchart showing an example of a parity sector generation method according to Modification 2.
[0119] The MPU 60 reallocates the target sector based on the sector quality of the target sector of the target track (B1201). The MPU 60 replaces the target sector with a replacement sector (B1401) and performs write / read verification of the target sector (B1402). During the write / read verification, the MPU 60 determines whether the target sector is a permanent slice (B1403). If the target sector is not a permanent slice (B1403: No), the MPU 60 terminates the process. If the target sector is a permanent slice (B1403: Yes), the MPU 60 generates a parity sector based on each sector of the target track other than the target sector (B1404), and terminates the process.
[0120] According to variant example 2, the magnetic disk device 1 reallocates the object sector based on the sector quality of the object sector of the object track. When the magnetic disk device 1 reallocates the object sector of the object track, if write / read verification cannot be performed immediately, such as when it is not idle, the object sector of the object track is replaced by a replacement sector of another track. When the MPU 60 reallocates the object sector of the object track, if it is idle, etc., the object sector is written / read verified. When performing write / read verification on the object sector, the MPU 60 determines whether the object sector is a permanent slice. When it is determined that the object sector is a permanent slice, the MPU 60 generates a parity sector based on the result of the XOR operation corresponding to each sector of the object track other than the object sector. Therefore, the magnetic disk device 1 efficiently generates the parity sector.
[0121] (Second embodiment)
[0122] The magnetic disk device 1 according to the second embodiment differs from the magnetic disk devices 1 according to the first embodiment and the first modification in the error correction processing method.
[0123] The magnetic disk device 1 of the second embodiment writes data to the disk 10 using a long-distance (or large-capacity) sector format, such as a 4K sector format or larger. For example, the magnetic disk device 1 of the second embodiment writes data using the 64K sector format of the disk 10. Hereinafter, sectors with a capacity of 4K or larger may also be referred to as long-distance sectors or large-capacity sectors.
[0124] The MPU 60 performs an XOR operation on the data of each long-distance sector of the target track, and calculates parity data (hereinafter sometimes referred to as long-distance parity data) as the result of the XOR operation corresponding to these long-distance sectors. In other words, the MPU 60 performs an XOR operation on the data of each long-distance sector of a predetermined track, and based on the result of the XOR operation corresponding to these long-distance sectors, generates a parity sector corresponding to the track (hereinafter sometimes referred to as long-distance parity sector).
[0125] The MPU 60 reallocates the target long-distance sectors based on the sector quality (hereinafter sometimes referred to as the long-distance sector quality) of the restored target long-distance sectors (hereinafter sometimes referred to as the restored long-distance sectors). In other words, the reallocation control unit 660 reallocates the target long-distance data based on the quality (hereinafter sometimes referred to as the long-distance data quality) of the data written to the target long-distance sectors (hereinafter sometimes referred to as the target long-distance data).
[0126] For example, when performing error correction on a target long-distance sector of a target track, the MPU 60 performs error correction on the target long-distance sector by reading a single lap of the target track. The MPU 60 compares all bits corresponding to the data of the target long-distance sector before the LDPC correction process is performed (hereinafter sometimes referred to as all bits before LDPC correction) with all bits corresponding to the data of the target long-distance sector after the LDPC correction process is performed (hereinafter sometimes referred to as all bits after LDPC correction). Bits that change between the all bits before LDPC correction and the all bits after LDPC correction are counted as bits that have undergone error correction, and the total number of bit corrections is counted.
[0127] For example, when error correction has been performed on the target long-distance sector of the target track, the reallocation control unit 660 determines the long-distance sector quality of the target long-distance sector based on the fact that the LDPC corresponding to the target long-distance sector does not satisfy the parity check. LDPC is composed of multiple parity-check codes. The reallocation control unit 660 deems that all errors in the target long-distance sector have been corrected if all parity checks of the LDPC corresponding to the target long-distance data of the target long-distance sector are satisfied. In other words, the reallocation control unit 660 determines the long-distance sector quality of the target long-distance sector based on the number of satisfied parity checks or the number of unsatisfied parity checks among all parity checks of the LDPC corresponding to the target long-distance data of the target long-distance sector. For example, when error correction has been performed on the target long-distance sector of the target track, the reallocation control unit 660 performs a one-circle read of the target track and determines the long-distance sector quality of the target long-distance sector based on the number of unsatisfied parity checks corresponding to the target long-distance sector before the LDPC correction process.
[0128] For example, when error correction has been performed on the target long-distance sector, the reallocation control unit 660 determines the long-distance sector quality of the target long-distance sector based on the metric difference of the Viterbi path metric during Viterbi decoding of the target long-distance sector data. During Viterbi decoding, paths with smaller metrics are selected. Therefore, as the metric difference increases, the likelihood of selecting an incorrect path decreases. The larger the metric difference, the better the long-distance sector quality of the target long-distance sector is determined by the reallocation control unit 660. The smaller the metric difference, the worse the long-distance sector quality is determined by the reallocation control unit 660. For example, if the metric difference corresponding to the target long-distance sector data is greater than a metric difference threshold, the reallocation control unit 660 determines that the long-distance sector quality of the target long-distance sector is good. Alternatively, if the metric difference corresponding to the target long-distance sector data is less than the metric threshold, the reallocation control unit 660 determines that the long-distance sector quality of the target long-distance sector is poor.
[0129] For example, when error correction is performed on the target long-distance sector, the reallocation control unit 660 determines the long-distance sector quality of the target long-distance sector based on the dip in the waveform (or waveform amplitude) of the target long-distance data obtained by reading the target long-distance sector. If the reallocation control unit 660 determines that the interval below the waveform dip threshold of the target long-distance data when the target long-distance sector is read is greater than the waveform dip interval threshold, it determines that a defect exists in the area of the disk 10 corresponding to the target long-distance sector. For example, if the reallocation control unit 660 determines that the interval below the waveform dip threshold of the target long-distance data when the target long-distance sector is read is greater than the waveform dip interval threshold, it determines that the long-distance sector quality of the target long-distance sector is poor. For example, if the interval below the waveform dip threshold of the target long-distance data when the target long-distance sector is read is less than the waveform dip interval threshold, it determines that the long-distance sector quality of the target long-distance sector is good.
[0130] According to the second embodiment, when the magnetic disk device 1 detects a target long-distance sector in a track specified by a command input from the host 100, etc., it performs error correction on the target long-distance sector starting from the initial reading of the target long-distance sector. When the recovery of the target long-distance sector is completed, the magnetic disk device 1 confirms the long-distance sector quality of the recovered target long-distance sector. The magnetic disk device 1 redistributes the target long-distance data based on the long-distance sector quality of the recovered target long-distance sector. When a sector that cannot be recovered without error correction is generated due to DOW, etc., the magnetic disk device 1 corrects the target long-distance sector through error correction starting from the initial reading. Therefore, the magnetic disk device 1 can increase the TPI of the disk 10. Therefore, the magnetic disk device 1 can improve the recording density.
[0131] 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 a variety of other ways, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included within the scope and spirit of the invention and are included within the invention described 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, from the time of the first reading of the first track of the disk for the first time, performs error correction on a first sector that cannot be read on the first track based on first parity data corresponding to the first track; When the first sector can be read after the error correction is performed, the controller reallocates the first sector based on the quality of the first sector. The controller starts reading the first track from the first position in the circumferential direction of the first track. If the first sector cannot be read at the second position in the circumferential direction of the first track, the controller reads the first track for one circle and performs the error correction on the first sector.
2. The magnetic disk device according to claim 1, The controller reallocates the first sector based on the quality of the first sector when the error correction is performed and the first sector can be read during the period from the initial reading of the first track starting from the first position and performing one round of reading to the third reading of the first track starting from the first position and performing three rounds of reading.
3. The magnetic disk device according to claim 1, The controller checks the quality of the first sector based on the number of all bits in the first data of the first sector corrected by the error correction.
4. The magnetic disk device according to claim 1, The controller checks the quality of the first sector based on the number of unsatisfied parity checks when LDPC is performed on first data of the first sector.
5. The magnetic disk device according to claim 1, The controller checks the quality of the first sector based on a metric difference between a selected path and a contention path in a Viterbi decoding process on first data of the first sector.
6. The magnetic disk device according to claim 1, The controller checks the quality of the first sector based on a drop in the waveform of the first data of the first sector.
7. According to any one of claims 1 to 6, the controller generates the first parity data based on all sectors other than the first sector of the first track and the second sector when the first sector has been reallocated as the second sector of the second track different from the first track.
8. The magnetic disk device according to claim 7, The controller reads all sectors other than the first sector of the first track, reads the second sector of the second track, and generates the first parity data based on all sectors other than the first sector of the first track and the second sector.
9. According to any one of claims 1 to 6, the controller generates the first parity data based on all sectors other than the first sector of the first track when the first sector is reallocated as the second sector of the second track different from the first track and it is determined that the first sector is not used.
10. The magnetic disk device according to claim 9, The controller reads all sectors of the first track except the first sector, and generates the first parity data based on all sectors of the first track except the first sector.
11. The magnetic disk device according to claim 1 corrects errors of a third sector different from the first sector that cannot be read on the first track based on the first parity data, and reallocates the third sector based on the quality of the third sector when the third sector can be read after error correction.
12. An error correction method, comprising: a redistribution method applied to a magnetic disk device having a disk and a head, wherein the head writes data to the disk and reads data from the disk; the error correction method comprising: performing error correction on a first sector that cannot be read on the first track based on first parity data corresponding to the first track from the first reading of the first track of the disk for one rotation; When the first sector can be read by performing the error correction, reallocating the first sector based on the quality of the first sector; starting reading of the first track from a first position in a circumferential direction of the first track; as well as When the first sector cannot be read at the second position in the circumferential direction of the first track, the first track is read for one rotation and the error correction is performed on the first sector.
Citation Information
Patent Citations
Method for forming code for error correction
JP1993282802A
Control device, storage device, and computer-readable recording medium having stored therein control program
US20140289493A1
Disk, recording device, reproducing device, recording method and reproducing method including calculation, storage and utilization of parity information
US5745453A