Magnetic disk device and read / write processing method
By recording the user sector and parity sector to the replacement area when the track write fails, the problem of restricted track density improvement in the disk device is solved, and a higher data write success rate and track density are achieved.
Patent Information
- Application Number
- CN202210092652.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-02
- Filing Date
- 2022-01-26
- Publication Date
- 2025-09-05
- Estimated Expiration
- 2042-01-26
AI Technical Summary
In the tile recording type, the track density increase is limited, especially when the parity sector writes fail, resulting in data writing failure and track density decrease.
When the track cannot be written to the user sector, the user sector is recorded to the substitute area, and when the parity sector is written to the non-user data area, the parity sector is recorded to the non-user data area, and the parity sector replacement processing is used to improve the write success rate.
Improves track density and data writing success rate, ensuring that there is a backup area for data recording when writing fails, and avoids the reduction of track density.
Smart Images

Figure CN115440256B_ABST
Abstract
Description
[0001] This application claims the priority of Japanese Patent Application No. 2021-092909 (filing date: June 2, 2021), 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 a read / write processing method. Background Art
[0003] In recent years, magnetic disk devices with technologies that achieve high recording density have been developed. Among these devices, there are those that use Shingled Write Magnetic Recording (SMR) or Shingled Write Recording (SWR), which allows for overlapping writes of multiple tracks in the radial direction of the disk.
[0004] A magnetic disk drive includes a track containing a parity sector. This parity sector is obtained by performing an exclusive OR (XOR) operation on each sector of a predetermined track. When an error is detected in a predetermined sector of the track, the magnetic disk drive performs error correction processing (hereinafter sometimes referred to as track ECC processing) by correcting the error using an error correction code (ECC) based on the parity sector corresponding to the track. In a shingle-recording magnetic disk drive, implementing track ECC can improve track density. Summary of the Invention
[0005] An object of the present invention is to provide a magnetic disk device and a read / write processing method capable of improving the track density.
[0006] 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 writes a second track overlapping with the first track in the radial direction of the disk, executes a first replacement process of recording the first user sector to the first area when a first user sector that can be used by the user cannot be written in the first track, and executes a second replacement process different from the first replacement process of recording the first parity sector to the second area when a first parity sector obtained by performing an XOR operation cannot be written in the first track. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 This is a block diagram showing the configuration of a magnetic disk device according to an embodiment.
[0008] Figure 2 It is a schematic diagram showing an example of a disk according to the embodiment.
[0009] Figure 3 This is a schematic diagram showing an example of tile recording processing.
[0010] Figure 4 This is a schematic diagram showing an example of normal recording processing.
[0011] Figure 5 FIG. 1 is a schematic diagram showing an example of a plurality of tracks on which tile recording is performed in a band area when a sector slip process is not performed.
[0012] Figure 6 FIG. 1 is a schematic diagram showing an example of a plurality of tracks on which tile recording is performed in a band area when a sector slip process is performed.
[0013] Figure 7 It is a schematic diagram showing an example of parity sector replacement processing according to the embodiment.
[0014] Figure 8 It is a schematic diagram showing an example of parity sector replacement processing according to the embodiment.
[0015] Figure 9 This is a flowchart showing an example of a write processing method according to the embodiment.
[0016] Figure 10 This is a flowchart showing an example of a read processing method according to the embodiment.
[0017] Description of labels
[0018] 1 Magnetic disk device, 10 Magnetic disk, 10a User data area, 10b Media cache, 10c System area, 12 Spindle motor (SPM), 13 Arm, 14 Voice coil motor (VCM), 15 Head, 15 W write head, 15 R read head, 20 Driver IC, 30 Head amplifier IC, 40 Read / write (R / W) channel, 50 Hard disk controller (HDC), 60 Microprocessor (MPU), 70 Volatile memory, 80 Non-volatile memory, 90 Buffer memory, 100 Host system (Host), 130 System controller DETAILED DESCRIPTION
[0019] 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.
[0020] (Implementation Method)
[0021] Figure 1 It is a block diagram showing the configuration of the magnetic disk device 1 according to the embodiment.
[0022] The magnetic disk drive 1 includes a head disk assembly (HDA) (described later), a driver IC 20, a head amplifier integrated circuit (hereinafter 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. Furthermore, the magnetic disk drive 1 is connected to a host system (hereinafter referred to as a host) 100.
[0023] The HAD includes a magnetic disk (hereafter referred to as a disk) 10, a spindle motor (hereafter referred to as an SPM) 12, an arm 13 carrying a head 15, and a voice coil motor (hereafter referred to as a VCM) 14. The disk 10 is mounted on the SPM 12 and rotated by the SPM 12. The arm 13 and the VCM 14 constitute an actuator. 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. The number of disks 10 and heads 15 can also be more than two.
[0024] The disk 10 has a data-writable area divided into a user data area 10a accessible to the user, a media cache (sometimes also referred to as a media cache area) 10b that temporarily stores data (or commands) transmitted from a host, etc., before writing them to a predetermined area within the user data area 10a, and a system area 10c where information required for system management is stored. The media cache 10b may not be located on the disk 10. Hereinafter, the direction from the inner circumference toward the outer circumference of the disk 10, or from the outer circumference toward the inner circumference, is referred to as the radial direction. Within the radial direction, the direction from the inner circumference toward the outer circumference is referred to as the outer direction (outer direction), and the direction from the outer circumference toward the inner circumference is referred to as the inner direction (inner direction). The direction perpendicular to the radial direction of the disk 10 is referred to as the circumferential direction. 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 is sometimes referred to as a radial position, and a predetermined position in the circumferential direction of the disk 10 is sometimes referred to as a circumferential position. Radial positions and circumferential positions are sometimes referred to simply as positions. The term "track" can mean one of the plurality of recording areas divided radially on the disk 10, data written to one of the plurality of recording areas divided radially on the disk 10, the path of the head 15 at a predetermined radial position, data extending circumferentially on the disk 10, data written along one circumference of a track at a predetermined radial position, data written on a predetermined track on the disk 10, a portion of data written on a predetermined track on the disk 10, or other various meanings. The term "sector" can mean one of the plurality of recording areas divided circumferentially on the disk 10, data written to one of the plurality of recording areas divided circumferentially on the disk 10, data written at a predetermined circumferential position at a predetermined radial position on the disk 10, data written to a predetermined sector of a predetermined track on the disk 10, or other various meanings. The "radial width of a track" is sometimes referred to as "track width." The "path passing through the center of the track width at a predetermined track" is referred to as the "track center." Data written to the user data area 10a and usable by the user is sometimes referred to as user data. The sector where user data is written is sometimes referred to as a user sector. LBAs (Logical Block Addresses) are set for user sectors.
[0025] The head 15 mainly includes a slider, and includes a write head 15W and a read head 15R attached to the slider. The write head 15W writes data to the disk 10, and the read head 15R reads the data written on the disk 10.
[0026] In addition, the "write head 15W" is sometimes referred to simply as "head 15," the "read head 15R" is sometimes referred to simply as "head 15," and sometimes the "write head 15W and read head 15R" are collectively referred to as "head 15." The "center portion of the head 15" is sometimes referred to as "head 15," the "center portion of the write head 15W" is sometimes referred to as "write head 15W," and the "center portion of the read head 15R" is sometimes referred to as "read head 15R." The "center portion of the write head 15W" is sometimes referred to simply as "head 15," and the "center portion of the read head 15R" is sometimes referred to simply as "head 15." "Positioning the center portion of the head 15 at the center of the predetermined track" is sometimes expressed as "positioning the head 15 at a predetermined track," "arranging the head 15 at a predetermined track," or "locating the head 15 at a predetermined track."
[0027] Figure 2 Schematic diagram showing an example of the disk 10 involved in this embodiment. Figure 2 As shown, in the circumferential direction, the direction in which the disk 10 rotates is referred to as the rotation direction. Figure 2 In the example shown, the direction of rotation is indicated by counterclockwise, but the opposite direction (clockwise) is also possible. Figure 2 The disc 10 is divided into an inner peripheral region IR located inward, an outer peripheral region OR located outward, and a middle peripheral region MR located between the inner peripheral region IR and the outer peripheral region OR.
[0028] exist Figure 2 In the example shown, the disk 10 includes a user data area 10a, a media cache 10b, and a system area 10c. Figure 2 In FIG, the user data area 10a, the media cache 10b, and the system area 10c are arranged in the outward direction as shown in the description. Figure 2 In the example, the media cache 10b is arranged adjacent to the outside of the user data area 10a. In other words, the media cache 10b is arranged between the user data area 10a and the system area 10c. Here, "adjacent" includes data, objects, areas, and spaces that are arranged in a close proximity, but also includes arranging them with a predetermined gap. Figure 2 In the embodiment, the system area 10c is arranged adjacent to the outside direction of the media cache 10b. In addition, the arrangement order of the user data area 10a, the media cache 10b and the system area 10c is not limited to Figure 2 The order shown can be any order. In addition, when the disk 10 is provided with a media cache 10b, the system area 10c can be arranged adjacent to the user data area 10a in the outer direction.
[0029] exist Figure 2In the example shown, the user data area 10a is arranged from the inner peripheral area IR to the outer peripheral area OR in the radial direction. Figure 2 In the example shown, the media cache 10b is arranged in the outer peripheral area OR in the radial direction. Alternatively, the media cache 10b may be located in the inner peripheral area IR or the middle peripheral area MR. Alternatively, the media cache 10b may be dispersedly located in the outer peripheral area OR, the middle peripheral area MR, and the inner peripheral area IR. Figure 2 In the example shown, the system zone 10c is radially arranged in the outer region OR. In other words, the system zone 10c extends from a predetermined position in the outer region OR to the outermost periphery of the disk 10. Alternatively, the system zone 10c may be arranged in the middle region MR or the inner region IR.
[0030] In the user data area 10a of the disk 10, data can be written in the shingle recording (SMR or SWR) format, which is a method of writing the next track to be written overlapping a portion of the radial direction of the predetermined track. In addition, in the user data area 10a, data can also be written in the conventional recording (CMR) format, which is a method of writing data to a track adjacent to the predetermined track in the radial direction (hereinafter sometimes also referred to as an adjacent track) with a predetermined interval (gap) in the radial direction from the predetermined track or writing data randomly. Hereinafter, "writing data in the shingle recording format" may sometimes be referred to as "shingle recording", "performing shingle recording processing", or simply "writing". A write process other than "normal recording processing" may sometimes be referred to as "shingle recording processing". In addition, "writing data in the normal recording format" may sometimes be referred to as "normal recording", "performing normal recording processing", or simply "writing".
[0031] like Figure 2 As shown, by driving the VCM 14 , the head 15 rotates about the rotation axis relative to the disk 10 and moves from the inner direction to the outer direction to be positioned at a predetermined position, or moves from the outer direction to the inner direction to be positioned at a predetermined position.
[0032] 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).
[0033] 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 response to the signal output from the R / W channel 40.
[0034] 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).
[0035] 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).
[0036] The buffer memory 90 is a semiconductor memory that temporarily records data exchanged between the magnetic disk drive 1 and the host computer 100. Alternatively, the buffer memory 90 may be integrally formed with the volatile memory 70. Examples of the buffer memory 90 include DRAM, SRAM (Static Random Access Memory), SDRAM, FeRAM (Ferroelectric Random Access Memory), and MRAM (Magnetoresistive Random Access Memory).
[0037] The system controller (controller) 130 is implemented, for example, using a large-scale integrated circuit (LSI) known as a system-on-a-chip (SoC), in which multiple components are integrated into a single chip. The system controller 130 includes a read / write (R / W) channel 40, a hard disk controller (HDC) 50, and a microprocessor (MPU) 60. The system controller 130 is electrically connected to, for example, a driver IC 20, a head amplifier IC 30, a volatile memory 70, a nonvolatile memory 80, a buffer memory 90, and a host system 100.
[0038] The R / W channel 40 performs signal processing for data transferred from the disk 10 to the host 100 (hereinafter sometimes referred to as read data) and data transferred from the host 100 (hereinafter sometimes referred to as write data) based on instructions from the MPU 60, described later. The R / W channel 40 includes circuitry or functions for modulating write data. It also includes circuitry or functions for measuring and demodulating the signal quality of read data. The R / W channel 40 is electrically connected to, for example, the head amplifier IC 30, the HDC 50, and the MPU 60.
[0039] 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.
[0040] The MPU 60 is a main controller that controls various components of the magnetic disk drive 1. The MPU 60 controls the VCM 14 via the driver IC 20, performing servo control to position the head 15. The MPU 60 controls the SPM 12 via the driver IC 20 to rotate the disk 10. The MPU 60 controls the write operation to the disk 10 and selects the storage destination for data transferred from the host 100, such as write data. The MPU 60 controls the read operation to read data from the disk 10 and controls the processing of data transferred from the disk 10 to the host 100, such as read data. Furthermore, the MPU 60 manages the area where data is recorded. The MPU 60 is connected to various components of the magnetic disk drive 1. For example, the MPU 60 is electrically connected to the driver IC 20, the R / W channel 40, and the HDC 50.
[0041] The MPU 60 includes a read / write control unit 610, a user sector management unit 620, a parity sector management unit 630, and an error correction unit 640. The MPU 60 executes the processing of each unit, such as the read / write control unit 610, the user sector management unit 620, the parity sector management unit 630, and the error correction unit 640, in firmware. Alternatively, the MPU 60 may include each unit, such as the read / write control unit 610, the user sector management unit 620, the parity sector management unit 630, and the error correction unit 640, as a circuit. The read / write control unit 610, the user sector management unit 620, the parity sector management unit 630, and the error correction unit 640 may also be included in the R / W channel 40 or the HDC 50.
[0042] The read / write control unit 610 controls the reading process of data from the disk 10 and the writing process of data to the disk 10 in accordance with commands from the host computer 100. The read / write control unit 610 controls the VCM 14 via the driver IC 20 to position the head 15 at a predetermined position on the disk 10 and perform the reading process or the writing process. Hereinafter, the term "access" may be used to include recording or writing data to a predetermined area (or writing process), reading or reading data from a predetermined area (or reading process), and moving the head 15 to a predetermined area.
[0043] The read / write control unit 610 performs shingle recording of data for each predetermined area of the disk 10 in accordance with commands from the host 100. The unit of area for shingle recording of data is sometimes referred to as a band (or band area). The read / write control unit 610 performs shingle recording of multiple tracks in an ordered manner in the band area. Furthermore, the read / write control unit 610 may also perform normal data recording in predetermined areas of the disk 10 in accordance with commands from the host 100.
[0044] When a write failure (Write Fault) occurs when writing data (or tile recording) to a predetermined area, such as a predetermined sector, the read / write control unit 610 performs a write retry to rewrite the data that failed to be written due to the write failure to the same sector. Terms such as "same", "identical", "consistent", and "equivalent" naturally include the meaning of being completely identical, but also include the meaning of being different to the extent that can be considered to be substantially the same. When a write failure occurs when writing data (or tile recording) to a predetermined area, such as a predetermined sector, the read / write control unit 610 determines whether the number of write retries performed (hereinafter sometimes referred to as the number of write retries) exceeds the upper limit value of the number of write retries that can be performed (hereinafter sometimes referred to as the write retry upper limit value) or is below the write retry upper limit value. When it is determined that the number of write retries is below the write retry upper limit value, the read / write control unit 610 performs a write retry.
[0045] In shingle recording, the upper limit of the number of write retries that can be performed (hereinafter sometimes referred to as the write retry upper limit) can be set to a small value based on track density design. For example, in shingle recording, the write retry upper limit is 1. For example, in shingle recording, the write retry upper limit is set to a number or less.
[0046] Figure 3 is a diagram showing an example of tile recording processing. Figure 3The direction of travel is shown in . The direction in which the head 15 writes and reads data in an orderly manner with respect to the disk 10 in the circumferential direction, that is, the direction in which the head 15 travels relative to the disk 10 in the circumferential direction is sometimes referred to as the direction of travel. For example, the direction of travel is the opposite direction to the direction of rotation of the disk 10. In addition, the direction of travel may also be the same direction as the direction of rotation of the disk 10. In the circumferential direction, the direction of travel is sometimes referred to as the rear direction or rear. In the circumferential direction, the direction opposite to the rear direction is sometimes referred to as the front direction or front. Figure 3 The forward direction is shown in . Sometimes the direction of continuous tile recording of multiple tracks in the radial direction, that is, the direction in which the next track to be written overlaps the previous track in the radial direction, is called the forward direction. Figure 3 In the radial direction, the inner direction is set as the forward direction, but the outer direction can also be set as the forward direction.
[0047] exist Figure 3 The band area BAe is shown in FIG. Figure 3 In the band area BAe, multiple tracks STR1, STR2, and STR3 are continuously written in the forward direction in the order of recording. Hereinafter, in tile recording, the area where data is written by the write head 15W is sometimes referred to as a write track, and the remaining area other than the area where other write tracks are written in the predetermined track is referred to as a read track. Figure 3 The track center STC1 of track STR1 when no overlapping writing is performed on other tracks, the track center STC2 of track STR2 when no overlapping writing is performed on other tracks, and the track center STC3 of track STR3 when no overlapping writing is performed on other tracks are shown in FIG. Figure 3 In the example shown, tracks STR1, STR2, and STR3 are written with a track pitch STP. The track center STC1 of track STR1 and the track center STC2 of track STR2 are spaced apart by the track pitch STP. The track center STC2 of track STR2 and the track center STC3 of track STR3 are spaced apart by the track pitch STP. Tracks STR1 to STR3 can also be written with different track pitches. Figure 3 In the embodiment, the radial width of the area in track STR1 where track STR2 is not overlapped and the radial width of the area in track STR2 where track STR3 is not overlapped are the same. In addition, the radial width of the area in track STR1 where track STR2 is not overlapped and the radial width of the area in track STR2 where track STR3 is not overlapped may also be different. Figure 3In the figure, for the sake of convenience, each track is shown as a rectangular shape extending in the circumferential direction with a predetermined track width, but in reality, it is curved along the circumferential direction. In addition, each track can also be a wave shape that varies in the radial direction while extending in the circumferential direction. In addition, in Figure 3 In the example, overlapping writing of three tracks is performed, but overlapping writing of less than three or more than three tracks can also be performed.
[0048] exist Figure 3 In the example shown, the MPU 60 performs tile recording on tracks STR1 to STR3 in a sequential manner at a track pitch STP in the inward direction within the band area BAe. Alternatively, the MPU 60 may also perform tile recording on tracks STR1 to STR3 in a sequential manner at a track pitch STP in the outward direction. The MPU 60 writes to track STR2 at a track pitch STP in the inward direction of track STR1, and then overlaps track STR2 on a portion of the inward direction of track STR1. The MPU 60 writes to track STR3 at a track pitch STP in the inward direction of track STR2, and then overlaps track STR3 on a portion of the inward direction of track STR2.
[0049] Figure 4 This is a diagram showing an example of normal recording processing. Figure 4 Tracks CTR1, CTR2, and CTR3 are shown in FIG. Figure 4 For example, the track widths of tracks CTR1, CTR2, and CTR3 are the same. In addition, the track widths of tracks CTR1 to CTR3 may be different. Figure 4 1 shows the track center CTC1 of the track CTR1, the track center CTC2 of the track CTR2, and the track center CTC3 of the track CTR3. Figure 4 In the example shown, tracks CTR1, CTR2, and CTR3 are written with a track pitch CTP. The track center CTC1 of track CTR1 and the track center CTC2 of track CTR2 are spaced apart by the track pitch CTP. The track center CTC2 of track CTR2 and the track center CTC3 of track CTR3 are spaced apart by the track pitch CTP. Tracks CTR1 and CTR2 are separated by a gap GP. Tracks CTR2 and CTR3 are separated by a gap GP. In addition, tracks CTR1 to CTR3 can also be written with different track pitches. Figure 4 In the figure, for the sake of convenience, each track is shown as a rectangular shape extending in the circumferential direction with a predetermined track width, but in reality it is curved along the circumferential direction. In addition, each track can also be a wave shape that varies in the radial direction while extending in the circumferential direction.
[0050] exist Figure 4 In the illustrated example, the MPU 60 positions the head 15 at the track center CTC1 in a predetermined area of the disk 10, such as the user data area 10a, and performs normal recording on track CTR1 or a predetermined sector of track CTR1. In the user data area 10a, the MPU 60 positions the head 15 at the track center CTC2, which is located inward from the track center CTC1 of track CTR1 by the track pitch CTP, and performs normal recording on track CTR2 or a predetermined sector of track CTR2. In the user data area 10a, the MPU 60 positions the head 15 at the track center CTC3, which is located inward from the track center CTC2 of track CTR2 by the track pitch CTP, and performs normal recording on track CTR3 or a predetermined sector of track CTR3. In a predetermined area of the disk 10, such as the user data area 10a, the MPU 60 can normally record tracks CTR1, CTR2, and CTR3 in an orderly manner, or can normally record predetermined sectors of track CTR1, predetermined sectors of track CTR2, and predetermined sectors of track CTR3 in a random manner.
[0051] The user sector management unit 620 manages predetermined sectors, such as user sectors, of the disk 10. The user sector management unit 620 manages the LBAs corresponding to the predetermined user sectors of the disk 10 and the data, such as user data, written to the predetermined user sectors. Furthermore, the user sector management unit 620 may store the relationship between the predetermined user sectors, the LBAs corresponding to the predetermined user sectors, and the user data written to the predetermined user sectors as a table on the disk 10, the volatile memory 70, the non-volatile memory 80, the buffer memory 90, and the like.
[0052] The user sector management unit 620 writes predetermined user data to predetermined user sectors corresponding to predetermined LBAs in accordance with commands from the host 100, etc. The user sector management unit 620 performs tile recording of user data in LBA order to a plurality of user sectors corresponding to a plurality of consecutive LBAs arranged across a plurality of tracks in the band area in accordance with commands from the host 100, etc.
[0053] When the user sector management unit 620 is performing tile recording of user data on a predetermined track of a band area, if a write failure occurs in a predetermined user sector (hereinafter sometimes also referred to as a fault sector) of the predetermined track and it becomes impossible to write to the fault sector, the user sector management unit 620 performs replacement processing (hereinafter sometimes also referred to as user sector replacement processing) on the tile recording of the user data to be written to the fault sector (hereinafter sometimes also referred to as fault write data) and the user data following the fault write data on a user data area 10a different from the fault sector.
[0054] When the user sector management unit 620 is performing tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data and the user data following the fault write data are tiled (or tile recording is restarted) from a user sector (hereinafter sometimes also referred to as a circumferential sector) arranged after the fault sector. In other words, when the user sector management unit 620 is performing tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data and the user data following the fault write data are tiled (or tile recording is restarted) from a circumferential sector shifted backward from the fault sector to a user sector following the circumferential sector.
[0055] When the user sector management unit 620 performs tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data is performed from a circumferential sector corresponding to an LBA incremented by a predetermined value corresponding to the fault sector and then tile recording of user data following the fault write data (or restarts tile recording). In other words, when the user sector management unit 620 performs tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data is performed from a circumferential sector corresponding to an LBA incremented by a predetermined value corresponding to the fault sector and then then tile recording of user data following the fault write data (or restarts tile recording).
[0056] When the user sector management unit 620 is performing tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data and the user data following the fault write data are tiled (or tile recording is restarted) from a user sector adjacent to the fault sector (hereinafter sometimes also referred to as a circumferentially adjacent sector). In other words, when the user sector management unit 620 is performing tile recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data and the user data following the fault write data are tiled (or tile recording is restarted) from a circumferentially adjacent sector that is offset by one sector backward from the fault sector to a user sector following the circumferentially adjacent sector.
[0057] When the user sector management unit 620 performs shingle recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data is performed from the circumferentially adjacent sector corresponding to the LBA after the LBA corresponding to the fault sector is incremented by 1, and the user data following the fault write data is shingled (or shingle recording is restarted). In other words, when the user sector management unit 620 performs shingle recording of user data on a predetermined track of a band area, if a write failure occurs in a fault sector of the predetermined track and it becomes impossible to write to the fault sector, the fault write data is performed from the circumferentially adjacent sector corresponding to the LBA after the LBA of the fault sector is incremented by 1, and the user sector following the circumferentially adjacent sector is shingled (or shingle recording is restarted).
[0058] When tile recording of user data in a band area is performed, if a write failure occurs in a predetermined fault sector of the band area, the user sector management unit 620 determines whether the number of write retries exceeds or falls below the write retry upper limit.
[0059] If the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling (or restarts shingling) of the fault write data to be written to the fault sector and the user data following the fault write data, starting from the circumferential sector arranged after the fault sector. In other words, if the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling of the fault write data and the user data following the fault write data, starting from the circumferential sector shifted backward from the fault sector to the user sector following the circumferential sector.
[0060] If the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling of the fault write data and the user data following the fault write data from the circumferential sector corresponding to the LBA incremented by a predetermined value corresponding to the fault sector. In other words, if the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling of the fault write data and the user data following the fault write data from the circumferential sector corresponding to the LBA incremented by a predetermined value to the user sector following the circumferential sector.
[0061] If the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling recording (or restarts shingling recording) of the fault write data and the user data following the fault write data from a circumferentially adjacent sector immediately following one of the fault sectors. In other words, if the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling recording of the fault write data and the user data following the fault write data from a circumferentially adjacent sector shifted backward by one sector from the fault sector to a user sector following the circumferentially adjacent sector.
[0062] If the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling of the fault write data and the user data following the fault write data from the circumferentially adjacent sectors corresponding to the LBA incremented by 1 corresponding to the fault sector. In other words, if the user sector management unit 620 determines that the number of write retries exceeds the write retry upper limit, it performs shingling of the fault write data and the user data following the fault write data from the circumferentially adjacent sectors corresponding to the LBA incremented by 1 corresponding to the fault sector. Then, it performs shingling of the user data following the fault write data from the circumferentially adjacent sectors corresponding to the LBA incremented by 1 corresponding to the fault sector.
[0063] Hereinafter, when a write failure occurs in a fault sector and the fault sector cannot be written, the fault write data and then the user data of the fault write data are written to a circumferentially adjacent sector that is offset backward from the fault sector, for example, by 1 sector, and then the user sector of the circumferentially adjacent sector is called a sector slip or sector slip processing.
[0064] The parity sector management unit 630 manages the predetermined parity sectors (or parity data) of the disk 10. The parity sector management unit 630 calculates the parity sector by performing an exclusive OR (XOR) operation, writes the calculated parity sector to a predetermined area of the disk 10, such as an area where LBAs are not set (hereinafter sometimes referred to as an unset LBA area), and manages the parity sector. The parity sector includes, for example, a parity bit and a parity check code. In addition, the parity sector management unit 630 may also record the relationship between the predetermined parity sectors and the unset LBA area corresponding to the predetermined parity sectors as a table on the disk 10, the volatile memory 70, the non-volatile memory 80, the buffer memory 90, etc.
[0065] The parity sector management unit 630 calculates a parity sector by performing an XOR operation on all sectors of a predetermined track and writes the calculated parity sector to a predetermined sector of the track (hereinafter sometimes referred to as a parity write sector). No LBA is assigned to the parity write sector. Alternatively, the parity sector management unit 630 may calculate a parity sector by performing an XOR operation on a portion of sectors of a predetermined track and write the calculated parity sector to the parity write sector of the track.
[0066] The parity sector management unit 630 calculates the parity sector by performing an XOR operation on the user data written in all sectors other than the fault sector (hereinafter sometimes also referred to as valid sectors) in a predetermined track, and writes the calculated parity sector to the parity write sector of the track.
[0067] When the parity sector management unit 630 is recording user data in a band area, if a write failure occurs in a parity write sector (hereinafter sometimes referred to as a fault parity write sector) of a predetermined track of the band area and the fault parity write sector cannot be written, the parity sector management unit 630 performs a replacement process (hereinafter sometimes referred to as a parity sector replacement process) of recording (or retreating) the parity sector (hereinafter sometimes referred to as a fault parity sector) to be written to the fault parity write sector in an area other than the user data area 10a different from the fault parity write sector (hereinafter sometimes referred to as a non-user data area or a replacement area). The replacement area does not have an LBA set. The parity sector replacement process and the aforementioned user sector replacement process are different replacement processes. Hereinafter, the parity sector replacement process and the user sector replacement process are sometimes referred to as replacement processes. The replacement process includes a process of recording the predetermined data in an area different from the area scheduled to be written. The non-user data area (or replacement area) includes, for example, the media cache 10b, the system area 10c, and the nonvolatile memory 80 of the disk 10. Furthermore, if a write failure occurs in a parity write sector of a predetermined track in a band area, making it impossible to write to the fault parity write sector, a method is also conceivable in which writing is not performed on adjacent tracks in the forward direction of the predetermined track. However, there is a possibility that one track of the user data area 10a will be lost.
[0068] When the parity sector management unit 630 is recording user data in tiles on a predetermined track of a band area, if a write failure occurs in a fault parity write sector of the predetermined track of the band area and it becomes impossible to write to the fault parity write sector, the fault parity sector is recorded (or retreated) to an alternative area, such as the system area 10c of the disk 10 (a specific area for recording parity sectors (hereinafter sometimes also referred to as a parity recording area)).
[0069] When the parity sector management unit 630 records user data in a predetermined track of a band area, if a write failure occurs in a predetermined fault parity write sector of the band area, it determines whether the number of write retries exceeds the write retry upper limit value or is below the write retry upper limit value.
[0070] When the parity sector management unit 630 determines that the number of write retries exceeds the write retry upper limit, it records (or saves) the fault parity sector to a replacement area, for example, (the parity recording area of) the system area 10 c of the disk 10 .
[0071] The error correction unit 640 recovers (corrects, relieves or corrects) data that cannot be read (hereinafter sometimes also referred to as read error data or error data) or sectors that cannot be read (hereinafter sometimes also referred to as read error sectors or error sectors). The error correction unit 640 performs read retries to read the error data or error sectors multiple times. In addition, the error correction unit 640 performs processing based on the error correction code (Error Correction Code) to correct errors (errors) in data or sectors (hereinafter sometimes also referred to as ECC processing or error correction processing). The error correction unit 640 performs ECC processing (hereinafter sometimes also referred to as sector ECC processing) on the error sector based on the ECC corresponding to the error data or error sector of the predetermined track (hereinafter sometimes also referred to as sector ECC). The error correction unit 640 performs ECC processing (hereinafter sometimes also referred to as track ECC processing) on the error sector based on the ECC corresponding to the error data or error sector of the predetermined track (hereinafter sometimes also referred to as track ECC). For example, the error correction unit 640 performs track ECC processing on an error sector of a predetermined track based on the parity data or parity sector corresponding to the predetermined track. Furthermore, the error correction unit 640 may also record information associated with the error sector (hereinafter sometimes referred to as error sector information) as a table in a predetermined recording area, such as the disk 10, the volatile memory 70, or the non-volatile memory 80.
[0072] When the error correction unit 640 performs track ECC processing on a predetermined error sector in a predetermined track, it determines whether parity replacement processing has been performed on the track or whether parity replacement processing has not been performed. If the error correction unit 640 determines that parity replacement processing has been performed on the predetermined track, it reads the parity sector corresponding to the track from the replacement area and performs track ECC processing on the error sector in the track based on the parity sector.
[0073] Figure 5 1 is a schematic diagram showing an example of a plurality of tracks TRk and TRk+1 on which tile recording is performed in the band area BA0 when the sector slip process is not performed. Figure 5. In the band area BA0, tile recording of tracks TRk and TRk+1 is performed in the forward direction in the order of the records. In addition, tile recording of more than three tracks can also be performed in the forward direction in the band area BA0. Track TRk includes user sectors Sc00, Sc01, Sc02, Sc03, ..., Sc0n and a parity write sector Ps0. In track TRk, user sectors Sc00, Sc01, Sc02, Sc03, ..., Sc0n and a parity write sector Ps0 are arranged continuously in the forward direction in the order of the records. The parity write sector Ps0 is adjacent to the last user sector Sc0n among all the user sectors in track TRk. User sector Sc00 is set with LBA LA0, user sector Sc01 is set with LBA LA1, user sector Sc02 is set with LBA LA2, user sector Sc03 is set with LBA LA3, and user sector Sc0n is set with LBA LAn. Figure 5 The user data DAT0, DAT1, DAT2, DAT3, ..., DATn written in the track TRk are shown in FIG. Figure 5 , the parity sector P0 written in the parity write sector Ps0 of the track TRk is shown. The track TRk+1 includes user sectors Sc10, Sc11, Sc12, Sc13, ..., Sc1n and the parity write sector Ps1. In the track TRk, the user sectors Sc10, Sc11, Sc12, Sc13, ..., Sc1n and the parity write sector Ps1 are arranged continuously in the direction of travel in the order of the records. The parity write sector Ps1 is adjacent to the last user sector Sc1n in the track TRk+1. The user sector Sc10 is set with LBA LAn+1, the user sector Sc11 is set with LBA LAn+2, the user sector Sc12 is set with LBA LAn+3, the user sector Sc13 is set with LBA LAn+3, and the user sector Sc1n is set with LBA LAn+m. In Figure 5 The user data DATn+1, DATn+2, DATn+3, ..., DATn+m written in the track TRk+1 are shown in FIG. Figure 5 2 shows the parity sector P1 written in the parity write sector Ps1 of the track TRk+1.
[0074] The MPU 60 performs tile recording of DAT0 to DATn on user sectors Sc00 to Sc0n in track TRk, and writes the parity sector P0 obtained by performing an XOR operation on DAT0 to DATn into the parity write sector Ps0. The MPU 60 performs tile recording of DATn+1 to DATn+m on user sectors Sc10 to Sc1n in track TRk+1, and writes the parity sector P1 obtained by performing an XOR operation on DATn+1 to DATn+m into the parity write sector Ps1.
[0075] Figure 6 1 is a schematic diagram showing an example of a plurality of tracks TRk and TRk+1 on which tile recording is performed in the band area BA0 when the sector slip process is executed. Figure 6 and Figure 5 Corresponding. Figure 6 In , the user sector Sc02 is equivalent to the Fault sector. Figure 6 FIG shows the user data DATn-1 written in the track TRk and the user data DATn+m-1 written in the track TRk+1. Figure 6 , the parity sector P2 written in the parity write sector Ps0 of the track TRk and the parity sector P3 written in the parity write sector Ps1 of the track TRk+1 are shown. Figure 6 The number of write retries exceeds the upper limit of the write retry value.
[0076] exist Figure 6 In the example shown, when the MPU 60 performs tile recording on track TRk, if a write failure occurs in user sector Sc02 and writing to the fault sector becomes impossible, the MPU 60 tile-records DAT2 to user sector Sc03, tile-records DATn-1 to user sector Sc0n, and writes parity sector P2, obtained by performing an XOR operation on DAT0 to DATn-1, to parity write sector Ps0. The MPU 60 performs tile recording on user sectors Sc10 to Sc1n on track TRk+1, respectively, of DATn to DATn+m-1, and writes parity sector P3, obtained by performing an XOR operation on DATn to DATn+m-1, to parity write sector Ps1.
[0077] Figure 7 This is a schematic diagram showing an example of parity sector replacement processing according to this embodiment. Figure 7 and Figure 5 Corresponding. Figure 7 In the , parity write sector Ps0 is equivalent to the Fault parity write sector. Figure 7 The media cache 10b and the system area 10c of the disk 10 are shown as replacement areas. Figure 7 The number of write retries exceeds the upper limit of the write retry value.
[0078] exist Figure 7 In the example shown, when a write failure occurs in the parity write sector Ps0 of the track TRk and the parity write sector cannot be written, the MPU60 records the parity sector P0 in the media cache 10b or the system area 10c (parity recording area).
[0079] exist Figure 7 In the example shown, when MPU60 performs track ECC processing on the erroneous sector of track TRk, it reads the parity sector P0 from the media cache 10b or the system area 10c (parity recording area), and performs track ECC processing on the erroneous sector of track TRk based on the parity sector P0.
[0080] Figure 8 This is a schematic diagram showing an example of parity sector replacement processing according to this embodiment. Figure 8 and Figure 7 Corresponding. Figure 8 In FIG, a nonvolatile memory 80 is shown as an alternative area. Figure 8 The number of write retries exceeds the upper limit of the write retry value.
[0081] exist Figure 8 In the example shown, when a write failure occurs in the parity write sector Ps0 of the track TRk and writing to the parity write sector becomes impossible, the MPU 60 records the parity sector P0 in the nonvolatile memory 80 (in the parity recording area).
[0082] exist Figure 8 In the example shown, when MPU60 performs track ECC processing on the erroneous sector of track TRk, it reads the parity sector P0 from the non-volatile memory 80 (parity recording area) and performs track ECC processing on the erroneous sector of track TRk based on the parity sector P0.
[0083] Figure 9 This is a flowchart showing an example of a write processing method according to this embodiment.
[0084] MPU60 writes data to a predetermined sector of a predetermined track (B901). For example, MPU60 records data to a predetermined sector of a predetermined track of a predetermined band area. MPU60 determines whether a write failure has occurred in the predetermined sector (B902). When it is determined that no write failure has occurred in the predetermined sector (B902: No), MPU60 ends the processing. When it is determined that a write failure has occurred in the predetermined sector (B902: Yes), MPU60 determines whether the number of write retries corresponding to the track exceeds the write retry upper limit value or is below the write retry upper limit value (B903). When it is determined that the number of write retries corresponding to the track is below the write retry upper limit value (B903: No), MPU60 enters the processing of B901. When it is determined that the number of write retries corresponding to the track exceeds the write retry upper limit value (B903: Yes), MPU60 determines whether the predetermined sector is a parity write sector (B904). In other words, when it is determined that the number of write retries corresponding to the track exceeds the write retry upper limit, the MPU 60 determines whether the predetermined sector is a parity write sector or a user sector. If it is determined that the predetermined sector is a parity write sector (B904: Yes), the MPU 60 performs parity sector replacement processing (B905) and ends the processing. For example, when it is determined that the predetermined sector is a parity write sector, the MPU 60 records the predetermined fault parity sector in a replacement area, such as (the parity recording area of) the system area 10c, and ends the processing. If it is determined that the predetermined sector is not a parity write sector, that is, it is a user sector (B904: No), the MPU 60 performs user sector replacement processing (B906) and ends the processing. For example, when it is determined that the predetermined sector is a user sector, the MPU 60 performs tile recording of the fault write data and the user data following the fault write data from the circumferentially adjacent sectors of the fault sector and ends the processing.
[0085] Figure 10 This is a flowchart showing an example of a read processing method according to this embodiment.
[0086] The MPU 60 reads a predetermined sector of a predetermined track (B1001). The MPU 60 determines whether the predetermined sector is an error sector (B1002). If it is determined that the predetermined sector is not an error sector (B1002: No), the MPU 60 enters processing B1001. If it is determined that the predetermined sector is an error sector (B1002: Yes), the MPU 60 determines whether a parity sector replacement process has been performed in the track or not (B1003). In other words, if it is determined that the predetermined sector is an error sector, the MPU 60 determines whether the parity sector corresponding to the track is recorded in the replacement area or not. If it is determined that parity sector replacement processing has been performed (B1003: Yes), the MPU 60 obtains the parity sector corresponding to the track from the replacement area, for example, (the parity recording area of) the system area 10c (B1004), and proceeds to the process of B1006. If it is determined that parity sector replacement processing has not been performed (B1003: No), the MPU 60 obtains the parity sector from the parity write sector of the track in the user data area (B1005), performs track ECC processing on the error sector of the track based on the obtained parity sector (B1006), and ends the process.
[0087] According to an embodiment, the disk device 1 performs shingled recording of multiple tracks on a predetermined band area. When a write failure occurs in a predetermined sector of a predetermined track of the band area, the disk device 1 performs different replacement processing depending on whether the predetermined sector is a user sector or a parity write sector. When a write failure occurs in a fault sector (user sector) of a predetermined track of the band area, and the number of write retries corresponding to the track exceeds the write retry upper limit, the disk device 1 performs shingled recording of the fault write data and the user data following the fault data from circumferentially adjacent sectors of the fault sector (performs slip sector processing). When a write failure occurs in a fault parity write sector (parity write sector) of a predetermined track of the band area, and the number of write retries corresponding to the track exceeds the write retry upper limit, the disk device 1 records the predetermined fault parity sector corresponding to the track to a replacement area, such as (the parity recording area of) the system area 10c. The disk device 1 can maintain parity sectors corresponding to all tracks of the predetermined band area. Therefore, the magnetic disk device 1 can perform track ECC processing on all tracks of a predetermined band area. Therefore, the magnetic disk device 1 can increase the track density.
[0088] Furthermore, the configuration of the aforementioned embodiment is applicable not only to a magnetic disk device 1 of a shingle recording type but also to a magnetic disk device 1 of a normal recording type.
[0089] 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 writes a second track overlapping with a first track in a radial direction of the disk, executes a first replacement process of recording the first user sector to a first area when a first user sector that can be used by a user cannot be written in the first track, and executes a second replacement process different from the first replacement process of recording the first parity sector to a second area when a first parity sector obtained by performing an XOR operation cannot be written in the first track.
2. The magnetic disk device according to claim 1, The controller performs the first replacement process when the controller cannot write to the first user sector in the first track and the number of write retries performed to rewrite data in the first track exceeds the upper limit value that can perform the write retries. The controller performs the second replacement process when the controller cannot write to the first parity sector in the first track and the number of write retries exceeds the upper limit value.
3. The magnetic disk device according to claim 1 or 2, The first area is an area where LBA is set, and the second area is an area where LBA is not set.
4. The magnetic disk device according to claim 1 or 2, The first replacement process is a process of restarting a write process from a second user sector of the first track that is adjacent to the first user sector in a first direction, the first direction being a direction of writing data in a circumferential direction of the disk.
5. The magnetic disk device according to claim 1 or 2, The first replacement process is a process of restarting a write process from a second user sector corresponding to a second LBA following a first LBA corresponding to the first user sector in the first track.
6. The magnetic disk device according to claim 1 or 2, The first area corresponds to a user data area of the disk that can be used by the user. The second area corresponds to a media cache of the disk where data to be written to the user data area is temporarily written, or a system area of the disk where information required for system management is written.
7. The magnetic disk device according to claim 1 or 2, With non-volatile memory, The first area corresponds to the user data area of the disk that can be used by the user. The second area corresponds to the nonvolatile memory.
8. The magnetic disk device according to claim 1 or 2, The controller corrects errors of an unreadable third user sector in the first track based on the first parity sector read from the second area.
9. A magnetic disk device comprising: plate; a head that writes data to and reads data from the disk; and A controller that records the first user sector in a first area that can be used by the user when writing to the first user sector of the first track of the disk that can be used by the user cannot be performed and the number of write retries for rewriting data in the first track exceeds an upper limit value for which the write retries can be performed, and that records the first parity sector in a second area that is different from the first area when writing to the first parity sector obtained by performing an XOR operation in the first track cannot be performed and the number of write retries exceeds the upper limit value.
10. The magnetic disk device according to claim 9, When the controller cannot write to the first user sector, the controller writes the first user sector to a second user sector corresponding to a second LBA following the first LBA of the first user sector.
11. The magnetic disk device according to claim 9 or 10, The first area is an area where LBA is set, and the second area is an area where LBA is not set.
12. A read / write processing method, applied to a magnetic disk device, the magnetic disk device comprising a disk and a head, the head writing data to the disk and reading data from the disk, the read / write processing method comprising: Writing the second track is performed so as to overlap with the first track in the radial direction of the disk. When a first user sector usable by a user cannot be written in the first track, a first replacement process is performed to record the first user sector in the first area. When the first parity sector obtained by performing the XOR operation cannot be written in the first track, a second replacement process different from the first replacement process is performed to record the first parity sector in a second area.
Citation Information
Patent Citations
Method for detecting deterioration of magneto-optical disk
JP1993120815A