Magnetic disk device and write processing method

文档序号:880245 发布日期:2021-03-19 浏览:10次 中文

阅读说明:本技术 磁盘装置和写入处理方法 (Magnetic disk device and write processing method ) 是由 河边享之 原武生 前东信宏 于 2020-01-17 设计创作,主要内容包括:磁盘装置及写入处理方法。磁盘装置具备:具有第1磁道的盘,第1磁道包含在半径方向的第1方向上以第1定位误差定位的第1扇区、在第1方向上以比第1定位误差小的第2定位误差定位的第2扇区及第1奇偶校验扇区;对盘写数据从盘读数据的头;控制器,在对与第1磁道在第1方向上相邻的第2磁道写入时,与第1扇区在第1方向上相邻的第2磁道的第3扇区中超过了根据第1扇区的第1定位误差决定的向与第1方向相反的第2方向的定位误差的第1上限值的情况下也继续向第3扇区的写处理;在与第2扇区在第1方向上相邻的第2磁道的第4扇区中超过了根据第2扇区的第2定位误差决定的向第2方向的定位误差的第2上限值的情况下停止向第4扇区的写处理。(A magnetic disk device and a write processing method. A magnetic disk device is provided with: a disk having a1 st track, the 1 st track including a1 st sector positioned with a1 st positioning error in a1 st direction in a radial direction, a2 nd sector positioned with a2 nd positioning error smaller than the 1 st positioning error in the 1 st direction, and a1 st parity sector; a head for writing data to the disk and reading data from the disk; a controller which continues a write process to the 3 rd sector even when a3 rd sector of a2 nd track adjacent to the 1 st sector in the 1 st direction exceeds a1 st upper limit value of a positioning error in the 2 nd direction opposite to the 1 st direction determined based on the 1 st positioning error of the 1 st sector when writing to the 2 nd track adjacent to the 1 st track in the 1 st direction; when the 2 nd upper limit value of the positioning error in the 2 nd direction determined from the 2 nd positioning error of the 2 nd sector is exceeded in the 4 th sector of the 2 nd track adjacent to the 2 nd sector in the 1 st direction, the writing process to the 4 th sector is stopped.)

1. A magnetic disk device is provided with:

a disk having a1 st track, the 1 st track comprising: a1 st sector located with a1 st positioning error in a1 st direction in a radial direction, a2 nd sector located with a2 nd positioning error smaller than the 1 st positioning error in the 1 st direction, and a1 st parity sector;

a head which writes data to the disk and reads data from the disk; and

a controller that continues a write process to a2 nd sector of a2 nd track adjacent to the 1 st track in the 1 st direction even when a1 st upper limit value of a positioning error in a2 nd direction opposite to the 1 st direction determined based on the 1 st positioning error of the 1 st sector is exceeded in a3 rd sector of the 2 nd track adjacent to the 1 st sector in the 1 st direction when writing to the 2 nd track; and stopping the write processing to the 4 th sector when a2 nd upper limit value of a positioning error in the 2 nd direction determined based on the 2 nd positioning error of the 2 nd sector is exceeded in a4 th sector of the 2 nd track adjacent to the 2 nd sector in the 1 st direction.

2. The magnetic disk apparatus according to claim 1,

the controller performs error correction on the 1 st sector based on the 1 st parity sector if a read error occurs in the 1 st sector.

3. The magnetic disk apparatus according to claim 2,

the controller sets numbers in descending order of priority according to the degree of possibility of error correction at the time of reading, which is determined by the positioning error at the time of writing to each sector of the 1 st track, and controls the writing stop processing when the upper limit value of the positioning error of each sector is exceeded at the time of performing the writing operation to each sector of the 2 nd track based on the numbers.

4. The magnetic disk device according to claim 3,

the priority of the 1 st sector is higher than the priority of the 2 nd sector.

5. The magnetic disk device according to claim 3,

the controller has a table containing the number of each sector of the 1 st track.

6. The magnetic disk device according to claim 3,

the controller stops the write process to the 4 th sector and executes a retry process of writing again to the 4 th sector when the 2 nd upper limit value is exceeded in the 4 th sector.

7. The magnetic disk apparatus according to claim 6,

the controller executes the retry process to at least 1 sector of the 2 nd track adjacent to at least 1 sector of the 1 st track other than the sector of the 1 st track in which the number of error-correctable 1 st values determined in the order of priority from high to low is allowed.

8. The magnetic disk apparatus according to claim 4,

the controller increases the priority of the 1 st sector when performing a seek to the 2 nd track and writing to the 3 rd sector.

9. The magnetic disk apparatus according to claim 4,

the controller increases the priority of the 2 nd sector if the 1 st upper limit value is not exceeded when the 3 rd sector is written.

10. The magnetic disk apparatus according to claim 4,

the controller increases the priority of the 1 st sector and the priority of the 5 th sector of the 1 st track adjacent to the 6 th sector in the 2 nd direction when a difference value between a1 st location position as the radial target of the 3 rd sector and a2 nd location position as the radial target of the 6 th sector of the 2 nd sector adjacent to the 3 rd sector in the circumferential direction is large when the 2 nd track is written based on the 1 st path in which the 1 st track is written.

11. A write processing method is a write processing method applied to a magnetic disk device, the magnetic disk device includes a disk having a1 st track, the 1 st track includes: a1 st sector located with a1 st positioning error in a1 st direction in a radial direction, a2 nd sector located with a2 nd positioning error smaller than the 1 st positioning error in the 1 st direction, and a1 st parity sector, in the write processing method,

when writing a2 nd track adjacent to the 1 st track in the 1 st direction, if a1 st upper limit value of a positioning error in a2 nd direction opposite to the 1 st direction determined based on the 1 st positioning error of the 1 st sector is exceeded in a3 rd sector of the 2 nd track adjacent to the 1 st sector in the 1 st direction, the writing process to the 3 rd sector is continued,

and stopping the writing process to the 4 th sector when a2 nd upper limit value of a positioning error in the 2 nd direction determined based on the 2 nd positioning error of the 2 nd sector is exceeded in a4 th sector of the 2 nd track adjacent to the 2 nd sector in the 1 st direction.

Technical Field

Embodiments of the present invention relate to a magnetic disk device and a write processing method.

Background

The magnetic disk device generates parity data corresponding to 1-cycle data of a predetermined track of the disk, and writes the parity data to a predetermined area of the disk. When data written in a predetermined sector of a predetermined track cannot be read, the magnetic disk device performs error correction on the data in the unreadable sector based on the parity data. In a predetermined track, the number of sectors that can be error-corrected based on parity data is limited.

Disclosure of Invention

Embodiments of the present invention provide a magnetic disk device and a write processing method capable of improving write performance. The magnetic disk device of the present embodiment includes: a disk having a1 st track, the 1 st track comprising: a1 st sector located with a1 st positioning error in a1 st direction in a radial direction, a2 nd sector located with a2 nd positioning error smaller than the 1 st positioning error in the 1 st direction, and a1 st parity sector; a head which writes data to the disk and reads data from the disk; a controller that continues a write process to a2 nd sector of a2 nd track adjacent to the 1 st track in the 1 st direction even when a1 st upper limit value of a positioning error in a2 nd direction opposite to the 1 st direction determined based on the 1 st positioning error of the 1 st sector is exceeded in a3 rd sector of the 2 nd track adjacent to the 1 st sector in the 1 st direction when writing to the 2 nd track; and stopping the write processing to the 4 th sector when a2 nd upper limit value of a positioning error in the 2 nd direction determined based on the 2 nd positioning error of the 2 nd sector is exceeded in a4 th sector of the 2 nd track adjacent to the 2 nd sector in the 1 st direction.

Drawings

Fig. 1 is a block diagram showing a configuration of a magnetic disk device according to a first embodiment.

Fig. 2 is a schematic diagram showing an example of the arrangement of the head with respect to the disk according to embodiment 1.

Fig. 3 is a schematic diagram of an example of a tile recording area in which data is written.

Fig. 4 is a schematic diagram showing an example of DDOL.

Fig. 5 is a schematic diagram showing an example of an error correction (error correction) method in track units according to embodiment 1.

Fig. 6A is a schematic diagram showing an example of a method for setting a sector to be corrected according to embodiment 1.

Fig. 6B is a schematic diagram showing an example of a table of priority numbers set for each sector of a predetermined track according to embodiment 1.

Fig. 7 is a block diagram showing an example of a head positioning control system SY in the write processing according to embodiment 1.

Fig. 8 is a schematic diagram showing an example of processing of the checker (checker) shown in fig. 7.

Fig. 9 is a flowchart showing an example of the write processing method according to embodiment 1.

Fig. 10 is a flowchart showing an example of the write processing method according to embodiment 1.

Fig. 11 is a flowchart showing an example of a table generating method according to embodiment 1.

Fig. 12A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 1.

Fig. 12B is a schematic diagram showing an example of a table of priority numbers set for each sector of a predetermined track in modification 1.

Fig. 13 is a schematic diagram showing an example of the processing of the checker shown in modification 1.

Fig. 14A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 2.

Fig. 14B is a schematic diagram showing an example of a table of priority numbers set for each sector of a predetermined track in modification 2.

Fig. 15 is a schematic diagram showing an example of ATC control.

Fig. 16A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 3.

Fig. 16B is a schematic diagram showing an example of a table of priority numbers set to several sectors of a predetermined track in modification 3.

Fig. 17 is a schematic diagram showing an example of processing of the checker (checker) shown in fig. 7 of modification 3.

Detailed Description

Hereinafter, embodiments will be described with reference to the drawings. The drawings are only examples, and do not limit the scope of the invention.

(embodiment 1)

Fig. 1 is a block diagram showing a configuration of a magnetic disk device 1 according to embodiment 1.

The magnetic disk device 1 includes a Head Disk Assembly (HDA), a driver IC20, a head amplifier integrated circuit (hereinafter, also referred to as a head amplifier IC or a preamplifier) 30, a volatile memory 70, a nonvolatile memory 80, a buffer memory (buffer) 90, and a system controller 130 which is a single-chip integrated circuit, which will be described later. The magnetic disk device 1 is connected to a host system (host) 100.

The HDA includes a magnetic disk (hereinafter referred to as a disk) 10, a spindle motor (SPM)12, an arm 13 on which a head 15 is mounted, and a Voice Coil Motor (VCM) 14. The disk 10 is mounted to a spindle motor 12 and is rotated by driving of the spindle motor 12. The arm 13 and the VCM14 constitute an actuator. The actuator controls the movement of the head 15 mounted on the arm 13 to a predetermined position of the disk 10 by the driving of the VCM 14. The disk 10 and the head 15 may be provided in more than two numbers. Hereinafter, data written to each unit of the magnetic disk device 1 and an external device such as the disk 10 may be referred to as write data, and data read from each unit of the magnetic disk device 1 and an external device such as the disk 10 may be referred to as read data. The write data may be referred to as data only, the read data may be referred to as data only, and the write data and the read data may be collectively referred to as data.

In the disc 10, a Shingled Magnetic Recording (SMR) area 10s and a media cache (media cache) area 10m are allocated to a Recording area thereof. Hereinafter, a direction along the circumference of the disk 10 is referred to as a circumferential direction, and a direction intersecting the circumferential direction is referred to as a radial direction. The predetermined position of the disk 10 in the predetermined circumferential direction is referred to as a circumferential position, and the predetermined position of the disk 10 in the predetermined radial direction is referred to as a radial position. In addition, the radial position and the circumferential position may be collectively referred to as a position.

The tile recording area 10s is recorded with user data and the like requested to be written from the host 100. The medium buffer area 10m can be used as a buffer for the tile recording area 10 s. In the tile recording region 10s, a track to be written next is written overlapping a part of the track. Therefore, the Track density (Track Per Inc: TPI) of the shingled recording area 10s is higher than that of the recording area which is not written with overlap. In the tile recording region 10s, a plurality of track groups each including a plurality of tracks successively written in one direction in the radial direction are arranged with a space (gap) therebetween. Hereinafter, a track group including a plurality of tracks successively written in one radial direction in an overlapping manner is referred to as a band region. The band region includes at least 1 track in which radially adjacent tracks (hereinafter, also referred to as adjacent tracks) are partially written in an overlapping manner, and a track (hereinafter, also referred to as final track) in which the overlapping writing is performed last. Here, "adjacent" means that data, objects, regions, spaces, and the like are arranged next to each other, and includes arrangement with a predetermined interval therebetween. Since the final track is partially written without being overlapped with another track, the radial width of the track (hereinafter, also referred to as the track width) is wider than the track partially written with being overlapped. In the tile recording area 10s, data may be written in a normal recording pattern other than the tile recording pattern. The media cache area 10m may be used as an area for writing information necessary for system management, for example. In addition, neither the shingled recording type nor the normal recording type may include the medium buffer area 10 m. Hereinafter, "track" is used in various meanings such as "1 area out of a plurality of areas obtained by dividing in the radial direction of the disk 10", "1-cycle data written in the circumferential direction of the disk 10", "1-cycle path in the circumferential direction of the disk 10", and the like. The track comprises a plurality of sectors. The "sector" is used in various other meanings, such as "1 area out of a plurality of areas obtained by dividing a track in the circumferential direction", "data written in 1 area out of a plurality of areas obtained by dividing a track in the circumferential direction", and the like. A sector adjacent to a predetermined sector in the radial direction is also sometimes referred to as an "adjacent sector". The radial width of the track is referred to as a track width. The center position of the track width at a predetermined circumferential position of a predetermined track may be referred to as a track center, and a path passing through the center of the track width at the predetermined track may be referred to as a track center. The "written track" is referred to as a "written track". The "region of written tracks remaining after the region where adjacent tracks are written with overlapping" is sometimes referred to as a "read track". In addition, the "write track" may be simply referred to as a "track", the "read track" may be simply referred to as a "track", and the "write track" and the "read track" may be collectively referred to as a "track". The "width in the radial direction of the write track" is sometimes referred to as "write track width", and the "width in the radial direction of the read track" is sometimes referred to as "read track width". The "write track width" and the "read track width" are also sometimes collectively referred to as "track width".

The head 15 is a slider as a main body, 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. For example, the write head 15W writes 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 a predetermined track of the disk 10.

Fig. 2 is a schematic diagram showing an example of the arrangement of the head 15 with respect to the disk 10 according to the present embodiment. As shown in fig. 2, a direction toward the outer periphery of the disk 10 in the radial direction is referred to as an outward direction (outer side), and a direction opposite to the outward direction is referred to as an inward direction (inner side). As shown in fig. 2, a direction of rotation to the right (clockwise) with respect to the disk 10 in the circumferential direction is referred to as a right direction, and a direction opposite to the direction of rotation to the right (counterclockwise) is referred to as a left direction. In the circumferential direction, the direction of rotation of the disk 10 is referred to as a rotation direction. In the example shown in fig. 2, the rotation direction is indicated in the left direction (counterclockwise direction), but may be the opposite direction (right direction or clockwise direction).

The head 15 is moved to a predetermined position in an outward direction from an inward direction or in an inward direction from an outward direction with respect to the disk 10 by the driving of the VCM 14.

The disk 10 has a parity area PA. The parity area PA extends from the inner circumference to the outer circumference of the disk 10. The parity area PA has a plurality of parity sectors. For example, the plurality of parity sectors each have a plurality of parity data. The plurality of parity data correspond to a plurality of tracks written to the disk 10, respectively. Therefore, the parity areas PA may be continuously provided in the radial direction of the disk 10 as shown in the drawing, or may be provided in a dispersed manner. Hereinafter, "parity data written to a parity sector" and "parity data" may be referred to as "parity sector" in some cases. The disk 10 also has a plurality of servo regions, not shown, for example. The plurality of servo regions extend radially in the radial direction, for example, and are arranged discretely at predetermined intervals in the circumferential direction. The servo region has a plurality of servo sectors. In the tile recording area 10s of the disk 10, user data and the like are written to areas other than the parity area PA and the servo area. For example, a sector includes a servo sector and a data portion following the servo sector.

Fig. 3 is a schematic diagram showing an example of the tile recording area 10s to which data is written. Fig. 3 shows only the constitution necessary for explanation. As shown in fig. 3, the direction in which data is sequentially (Sequential) read and written in the radial direction is referred to as the forward direction (forward direction). The forward direction corresponds to, for example, a direction in which other tracks are successively written to overlap a predetermined track. In fig. 3, the forward direction is the inward direction. The forward direction may be an outward direction. As shown in fig. 3, in the circumferential direction, the direction of reading/writing is referred to as a read/write direction. The read/write direction corresponds to the direction of travel of the head 15 relative to the disk 10. In fig. 3, the read/write direction is the right direction. Further, the read/write direction may also be the left direction.

In the example shown in fig. 3, the tile recording area 10s contains a band area TGn. In fig. 3, for convenience of explanation, each track in the band region TGn linearly extends. In practice, each track in the band region TGn is in the shape of a concentric circle curved along the shape of the disk 10. That is, in reality, the end portion in the left direction and the end portion in the right direction of each track in the band region TGn coincide. In addition, each track in the band region TGn actually generates a shift or the like due to an influence of disturbance, other configuration, or the like. Further, the tile recording area 10s may include two or more band areas.

In the example shown in FIG. 3, the band region TGn includes the write tracks WTnn, WTnn +1, WTnn +2, WTnn +3, and WTnn + 4. The write tracks WTN and WTN +1 partially overlap each other. The write tracks WTnn +1 and WTnn +2 partially overlap each other. The write tracks WTnn +2 and WTnn +3 partially overlap each other. The write tracks WTn +3 and WTn +4 partially overlap each other. In the band region TGn, the writing tracks WTnn to WTnn +4 are written in the order of overlapping in the radial direction. The band region TGn is set to include 5 tracks, but may include a number of tracks smaller than 5, or may include a number of tracks larger than 5.

The write track WTN has a track edge EnA and a track edge EnB. In the example shown in fig. 3, the track edge EnA is the end in the outer direction of the write track WTn, and the track edge EnB is the end in the inner direction (forward direction) of the write track WTn. The write track WTn +1 has a track edge En +1A and a track edge En + 1B. In the example shown in fig. 3, the track edge En +1A is an end portion in the outer direction of the writing track WTn +1, and the track edge En +1B is an end portion in the inner direction (forward direction) of the writing track WTn + 1. The write track WTn +2 has a track edge En +2A and a track edge En + 2B. In the example shown in fig. 3, the track edge En +2A is an end portion in the outer direction of the writing track WTn +2, and the track edge En +2B is an end portion in the inner direction (forward direction) of the writing track WTn + 2. The write track WTn +3 has a track edge En +3A and a track edge En + 3B. In the example shown in fig. 3, the track edge En +3A is an end portion in the outer direction of the writing track WTn +3, and the track edge En +3B is an end portion in the inner direction (forward direction) of the writing track WTn + 3. The writing track (final track) WTn +4 has a track edge En +4A and a track edge En + 4B. In the example shown in fig. 3, the track edge En +4A is an end portion in the outer direction of the writing track WTn +4, and the track edge En +4B is an end portion in the inner direction (forward direction) of the writing track WTn + 4.

The write track width WWn of the write track WTN is the length in the radial direction between the track edge EnA and the EnB. The write track width WWn +1 of the write track WTnn +1 is the length in the radial direction between the track edges En +1A and En + 1B. The write track width WWn +2 of the write track WTnn +2 is the length in the radial direction between the track edges En +2A and En + 2B. The write track width WWn +3 of the write track WTnn +3 is the length in the radial direction between the track edges En +3A and En + 3B. The write track width WWn +4 of the write track WTnn +4 is the length in the radial direction between the track edges En +4A and En + 4B. The write track widths WWn through WWn +4 are, for example, the same. Further, the write track widths WWn through WWn +4 may also be different.

The read track RTn is a remaining area obtained by removing a part of the write track WTn on which the write track WTn +1 is written in an overlapping manner. The read track RTn +1 is a remaining area obtained by removing a part of the write track WTn +1 on which the write track WTn +2 is written in an overlapping manner. The read track RTn +2 is a remaining area obtained by removing a part of the write track WTn +2 on which the write track WTn +3 is written in an overlapping manner. The read track RTn +3 is a remaining area obtained by removing a part of the write track WTn +3 on which the write track WTn +4 is written in an overlapping manner. The read track RTn +4 corresponds to the write track WTn + 4. The read track RTn +4 corresponds to the final track in the band region TGn.

The read track width RWn of the read track RTn is the length in the radial direction between the track edge EnA and En + 1A. The read track width RWn +1 of the read track RTn +1 is the length in the radial direction between the track edges En +1A and En + 2A. The read track width RWn +2 of the read track RTn +2 is the length in the radial direction between the track edges En +2A and En + 3A. The read track width RWn +3 of the read track RTn +3 is the length in the radial direction between the track edges En +3A and En + 4A. The read track width RWn +4 of the read track RTn +4 is the length in the radial direction between the track edges En +4A and En + 4B. That is, the read track width RWn +4 is the same as the write track width WWn + 4.

The driver IC20 controls the driving of the SPM12 and the VCM14 under the control of the system controller 130 (specifically, an MPU60 described later).

The head amplifier IC (preamplifier) 30 includes a read amplifier and a write driver. The read amplifier amplifies a read signal read from the disk 10 and outputs the amplified signal to the system controller 130 (specifically, a read/write (R/W) channel 40 described later). The write driver outputs a write current corresponding to write data output from the R/W channel 40 to the head 15.

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

The nonvolatile memory 80 is a semiconductor memory that records stored data even when power supply is cut off. The nonvolatile Memory 80 is, for example, a R-type or NAND-type Flash ROM (FROM).

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

The System controller (controller) 130 is implemented, for example, by using a large scale integrated circuit (LSI) called a System-on-a-Chip (SoC) in which a plurality of elements 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 R/W channel 40, HDC50, and MPU60 are each electrically connected to each other. The system controller 130 is electrically connected to, for example, a driver IC20, a head amplifier IC30, a volatile memory 70, a nonvolatile memory 80, a buffer memory 90, and the host system 100.

The R/W channel 40 performs signal processing of read data transferred from the disc 10 to the host 100 and write data transferred from the host 100 in response to an instruction from an MPU60 described later. The R/W channel 40 has a circuit or function for measuring the signal quality of read data. The R/W channel 40 is electrically connected to, for example, a head amplifier IC30, HDC50, and MPU 60.

The HDC50 controls data transfer between the host 100 and the R/W channel 40 in accordance with an instruction from an MPU60 described later. The HDC50 is electrically connected to the R/W channel 40, MPU60, volatile memory 70, nonvolatile memory 80, and buffer memory 90, for example.

The MPU60 is a main controller that controls each unit of the magnetic disk apparatus 1. The MPU60 controls the VCM14 via the driver IC20, and executes servo control for positioning the head 15. The MPU60 controls the SPM12 via the driver IC20 to rotate the disk 10. The MPU60 controls the write operation of data to the disk 10, and selects a storage destination of write data transferred from the host 100. Further, the MPU60 controls the reading operation of data from the disk 10, and controls the processing of read data transferred from the disk 10 to the host 100. The MPU60 is connected to each unit of the magnetic disk device 1. The MPU60 is electrically connected to, for example, the driver IC20, the R/W channel 40, and the HDC 50.

The MPU60 includes a read/write control unit 610, a parity data management unit 620, an error correction control unit 630, and the like. The MPU60 executes the processing of the above-described units, for example, the read/write control unit 610, the parity data management unit 620, and the error correction control unit 630, on firmware. The MPU60 may also include the above-described components, for example, the read/write control unit 610, the parity data management unit 620, and the error correction control unit 630 as circuits.

The read/write control unit 610 controls the read processing and write processing of data in accordance with a command from the host 100 or the like. The read/write control section 610 controls the VCM14 via the driver IC20 to position the head 15 at a predetermined position on the disk 10 and read or write data. For example, the read/write control unit 610 performs seek (seek) based on position information of the head 15 obtained by reading data of a servo sector provided on the disk 10, positions the head 15 at a radial position (hereinafter, also referred to as a target position) which is a target of a predetermined track, and writes data at or reads data from a predetermined circumferential position. In other words, the read/write control unit 610 performs seek to position the head 15 on a target track (hereinafter, also referred to as a target track), and writes data to or reads data from a predetermined sector of the target track. The read/write control unit 610 writes a predetermined track by positioning the head 15 at each of a plurality of target positions corresponding to a plurality of circumferential positions arranged concentrically with the disk 10. Hereinafter, the path of the head 15 indicated by each target position at each circumferential position of a predetermined track is referred to as a target path. In the case of performing the shingle recording, the read/write control section 610 sequentially writes data from a predetermined sector of a predetermined band region. In the case of reading a predetermined band region, the read/write control section 610 sequentially reads data from a predetermined sector of the band region. Hereinafter, the "positioning or arranging the center portion of the head 15 (the write head 15W or the read head 15R) at a predetermined position" may be simply referred to as "positioning or arranging the head 15 (the write head 15W or the read head 15R) at a predetermined position". In addition, "positioning or disposing the head 15 (write head 15W or read head 15R) at a predetermined position" may be simply referred to as "positioning" or "disposing". The read/write control unit 610 may write data in a normal recording pattern in which data is written in other tracks at predetermined intervals in the radial direction from adjacent tracks, instead of in a shingled recording pattern in which data is written in other tracks overlapping in the radial direction from adjacent tracks.

The read/write control unit 610 controls the write process based on an error (hereinafter referred to as an offset or a positioning error) between the target position and an actual radial position (hereinafter referred to as an actual position) of the head 15. For example, the read/write control unit 610 sets a threshold value (hereinafter, referred to as DOL (Drift-Off Level)) of an offset amount (hereinafter, referred to as a current offset amount) corresponding to a track (hereinafter, referred to as a current track) that is currently to be written and is adjacent to a previous track in a radial direction (a forward direction) (hereinafter, referred to as a current track) based on an offset amount (hereinafter, referred to as a previous offset amount) corresponding to a previous, for example, previous track (hereinafter, referred to as a previous track). Hereinafter, DOL in the opposite direction to the forward direction may be simply referred to as "DOL". Note that the forward DOL may be referred to as "DOL". In other words, the read/write control unit 610 sets DOLs for the respective sectors of the current track based on the previous offsets for the respective sectors (adjacent sectors) of the previous track. When the offset amount corresponding to the current track at the predetermined circumferential position of the current track exceeds DOL (or is large), the read/write control unit 610 interrupts (stops or prohibits) the write process, waits for rotation, and starts the write process again from the predetermined circumferential position. In other words, when the current offset amount in a predetermined sector of the current track exceeds the DOL of the sector, the read/write control unit 610 interrupts the write process to the sector, waits for rotation, and starts the write process again from the sector. The "processing of stopping the writing processing to a predetermined circumferential position when the amount of displacement at the circumferential position exceeds the DOL of the circumferential position and starting the writing processing again from the circumferential position while waiting for rotation" may be referred to as "retry (retry) processing". In this way, a function of controlling the write process based on the previous offset and the current offset may be referred to as a DDOL (Dynamic Drift-Off Level) function or a DDOL.

Fig. 4 is a schematic diagram showing an example of DDOL.

In the example shown in FIG. 4, the band region TGm shows a written track WTM, a written track WTM +1, and a written track WTM + 2. In the band region TGm, the written tracks WTm to WTm +2 are written overlapping in this order in the forward direction. Fig. 4 shows a target path TWTm in the written track WTm and a path (hereinafter, referred to as an actual path) SWTm of the head 15 indicated by each actual position in each circumferential position. The head 15 is positioned on the actual path SWTm and writes to the write track WTm. The written track WTm has a track edge EmA. The track edge EmA is an end portion in the outer direction of the write track WTM. The target path TWTm +1 and the actual path SWTm +1 in the written track WTm +1 are shown in fig. 4. The head 15 is positioned on the actual path SWTm +1, and writes to the write track WTm + 1. The written track WTM +1 has a track edge Em + 1A. The track edge Em +1A is an end portion of the write track WTm +1 in the outer direction. The read track RTm is disposed between the track edges EmA and Em + 1A. The target path TWTm +2 and the actual path SWTm +2 in the written track WTm +2 are shown in fig. 4. The head 15 is positioned on the actual path SWTm +2 and writes to the write track WTm + 2. The written track WTM +2 has a track edge Em + 2A. The track edge Em +2A is an end portion in the outer direction of the write track WTm + 1. The read track RTm +1 is disposed between track edges Em +1A and Em + 2A. The read track width RWc is the length in the radial direction of the read track RTm +1 at circumferential position P0. The read track width RWc is, for example, a lower limit of a read track width that enables reading of the read track RTm + 1. In fig. 4, the target paths TWTm, TWTm +1, and TWTm +2 are paths concentric with the disk 10, for example.

The read/write control unit 610 positions the head 15, for example, the write head 15W so as to follow the target path TWTm, and writes to the write track WTm. Actually, when writing to the write track WTm, the write head 15W travels on the actual path SWTm. Therefore, the read/write control unit 610 writes the write track WTm based on the actual path SWTm.

The read/write control unit 610 positions the write head 15W so as to follow the target path TWTm +1 and writes to the write track WTm + 1. In practice, when writing is performed on the write track WTm +1, the write head 15W travels on the actual path SWTm + 1. Therefore, the read/write control unit 610 writes the write track WTm +1 based on the actual path SWTm + 1. When writing on the write track WTm +1, the read/write control portion 610 shifts and writes in the forward direction by the shift amount Dm +1 at the circumferential position P0.

The read/write control unit 610 positions the head 15, for example, the write head 15W so as to follow the target path TWTm +2, and writes to the write track WTm + 2. In practice, when writing is performed on the write track WTm +2, the write head 15W travels on the actual path SWTm + 2. Therefore, the read/write control unit 610 writes the write track WTm +2 based on the actual path SWTm + 2. When writing on the write track WTm +2, the read/write control unit 610 shifts and writes in the opposite direction (outward direction) from the forward direction by the shift amount Dm +2 at the circumferential position P0.

The read/write control unit 610 sets DOL at the circumferential position P0 of the write track WTm +2 based on the offset Dm +1 of the circumferential position P0 of the write track WTm +1, for example. When the offset Dm +2 exceeds DOL at the circumferential position P0 of the write track WTm +2, the read/write control unit 610 interrupts (or stops) the write process, and resumes the write process from the circumferential position P0 of the write track WTm +2 while waiting for the disk 10 to rotate.

The parity data management unit 620 manages an XOR operation value (hereinafter, referred to as parity data OR an operation value) obtained by Exclusive OR (XOR) operation. For example, the parity data management unit 620 performs an XOR operation on data transferred from the host 100 or data read from the disk 10, and acquires parity data as a result of the XOR operation. The parity data management section 620 writes the parity data to a predetermined sector of a predetermined track of the disk 10, for example, a parity sector (parity area PA), via the read/write control section 610. In one example, the parity data management unit 620 performs an XOR operation on all the sectors of data read from or written to a predetermined track, and writes parity data obtained as a result of the XOR operation on all the sectors of data to the parity sector of the track. The parity data management unit 620 writes parity data as a parity sector in a sector other than the servo sector, which is one (japanese language: immediately before) preceding a sector (hereinafter, also referred to as a start sector) in which a write process of data to be written is started on a predetermined track over 1 cycle of the track. In other words, the parity data management unit 620 writes parity data as a parity sector in a sector other than the servo sector, which is one (hereinafter, also referred to as an end sector) subsequent to a sector (hereinafter, also referred to as an end sector) in which a write process of data to be written ends on a predetermined track over 1 cycle of the track. The parity data management unit 620 writes the respective parity data corresponding to the respective tracks of the disk 10 into the respective parity sectors corresponding to the respective tracks. The parity data management unit 620 may manage whether the parity data is valid or invalid using a table or the like. The parity data management unit 620 may perform an XOR operation on the data of each of several sectors in all the sectors of the predetermined track, and record the parity data obtained as a result of the XOR operation on the data of several sectors in a predetermined recording area, for example, the shingle recording area 10s, the media cache 10m, the volatile memory 70, the nonvolatile memory 80, or the cache memory 90.

The error correction control unit 630 detects data (hereinafter, referred to as read error data) written in a sector (hereinafter, referred to as a read error sector) which cannot be read or cannot be read even if read for a predetermined number of times or more at the time of read processing, and corrects (hereinafter, referred to as error correction or correction) errors in the detected read error data. Hereinafter, the "read error data written in the read error sector" and the "read error data" may be referred to as "read error sector". The error correction control section 630 performs error correction in units of tracks, for example. When a read-error sector is detected on a predetermined track, the error correction control unit 630 corrects the detected read-error sector based on parity data (parity sector) corresponding to the track. The process of performing Error Correction of a read Error sector based on parity data (parity sector) is also sometimes referred to as Track ECC (Track Error Correction Code). The error correction control unit 630 can perform error correction of a predetermined number of read error sectors (hereinafter, also referred to as a correction sector number) among a plurality of read error sectors generated on a predetermined track based on parity data corresponding to the track. In one example, the error correction control unit 630 can perform error correction of 5 (the number of corrected sectors is 5) read error sectors based on parity data corresponding to a predetermined track. The error correction control unit 630 may be configured to perform error correction of a number of read error sectors less than 5 (the number of corrected sectors is less than 5) based on parity data corresponding to a predetermined track, or may be configured to perform error correction of a number of read error sectors greater than or equal to 6 (the number of corrected sectors is greater than or equal to 6). Further, the error correction control section 630 may perform error correction based on the error correction symbol.

The error correction control unit 630 sets (or determines) a priority order (hereinafter, also referred to as a priority number) for performing error correction on a plurality of sectors, for example, all sectors of a predetermined track. The higher the priority of error correction (hereinafter, also referred to as "correction target priority"), the smaller the priority number. The error correction control unit 630 sets a priority number for each sector of the previous track based on each offset amount of each sector of the previous track or each DOL of each sector of the current track. For example, the error correction control unit 630 sets a priority number for each sector of the previous track in the order of the forward offset amount from large to small. For example, the error correction control unit 630 sets a priority number for each sector of the previous track in the order of the DOL from small to large on the sector of the current track adjacent in the forward direction. The error correction control unit 630 associates each sector of the previous track with the priority number set for each sector of the previous track, and records the associated sector as a table in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, or the nonvolatile memory 80. The error correction control unit 630 sets at least 1 sector of the previous track whose priority number is sequentially from the smallest (or younger) number to a predetermined priority number as a sector (hereinafter, also referred to as a correction target sector) for which error correction is performed when a read error occurs, based on the DOL of each sector of the current track and an estimated value of the maximum offset amount (hereinafter, also referred to as a maximum offset estimated value) of the current track to the previous track side, that is, to the opposite direction to the forward direction. The maximum offset estimation value is, for example, constant in a predetermined track. The maximum offset estimation value may be changed on a predetermined track by sector basis. The error correction control unit 630 may measure or calculate the maximum offset estimation value corresponding to each track of each head 15 and each disk 10 by an experiment or the like, and record the measured or calculated maximum offset estimation value corresponding to each track of each head 15 and each disk 10 in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, the nonvolatile memory 80, or the like. For example, the error correction control unit 630 sets, as the correction target sector, at least 1 sector of the previous track from the sector having the smallest priority number to the number of correction sectors, among at least 1 sectors of the previous tracks corresponding to at least 1 sector of the current track having a DOL smaller than the maximum deviation estimate value. The error correction control unit 630 may record at least 1 correction target sector as a table in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, or the nonvolatile memory 80. The error correction control unit 630 sets at least 1 sector of the current track adjacent to at least 1 correction target sector in the forward direction as a correction target related sector. When writing data into a predetermined correction target related sector, the error correction control unit 630 suppresses or stops "a process (retry process) of interrupting the writing process (stop or inhibit) to the correction target related sector and restarting the writing process from the correction target related sector while waiting for rotation" when the amount of shift in the correction target related sector exceeds the DOL corresponding to the correction target related sector ". In other words, when writing data into a predetermined sector related to correction target, the error correction control unit 630 continues the writing process even if the offset amount of the sector related to correction target exceeds the DOL of the sector related to correction target. When it is determined that the predetermined sector to be corrected is a sector in which a read error has occurred, the error correction control unit 630 performs error correction on the sector to be corrected determined to be the sector in which the read error has occurred. The error correction control unit 630 sets at least 1 sector other than the correction target sector of the previous track as a sector (hereinafter, also referred to as a non-target sector) for which the retry process is executed when the offset amount exceeds the DOL. In addition, at least 1 sector of the previous track other than the correction target sector of the previous track and equal to or less than the maximum deviation estimation value may be set as the non-target sector. The error correction control unit 630 sets at least 1 sector of the current track adjacent to at least 1 non-target sector in the forward direction as a non-target associated sector. The error correction control unit 630 may record at least 1 non-target sector as a table in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, or the nonvolatile memory 80. When data is written into at least 1 non-target-related sector, if the offset of a predetermined non-target-related sector exceeds the DOL of the non-target-related sector, the error correction control unit 630 interrupts the write process into the non-target-related sector and executes a retry process of restarting the write process from the non-target-related sector while waiting for rotation.

Fig. 5 is a schematic diagram showing an example of the error correction method in units of tracks according to the present embodiment.

The track TRn is shown in fig. 5. The track TRn may be 1 writing track or reading track of a predetermined band region, or may be a track written in a normal recording pattern. For example, the track TRn may be the write track WTN shown in FIG. 3, or the read track RTn shown in FIG. 3. In fig. 5, the track TRn and the disk 10 are concentric, but may have a shape other than a circle. The track TRn includes sectors Sn0, Sn1, Sn2, Sn3, Sn4, Sn5, Sn6, Sn7, Sn8, Sn9, …, Snn, and a parity sector PSn. In fig. 5, sector Sn0 corresponds to the start sector, and sector Snn corresponds to the end sector. Further, the track TRn may include other sectors, or may include several sectors from the sector Sn0 to the sector Snn. In fig. 5, sector Sn8 is a read error sector.

For example, in the track TRn, the read/write control unit 610 first writes user data into the sector Sn 0. The read/write control section 610 writes user data in the read/write direction from the sector Sn0 to the sector Snn.

The parity data management unit 620 performs an XOR operation on the plurality of user data corresponding to the sectors Sn0 to Snn, respectively, and calculates parity data as a result of the XOR operation on the plurality of user data corresponding to the sectors Sn0 to Snn, respectively.

The parity data management unit 620 writes parity data corresponding to the sectors Sn0 to Snn in the track TRn to the next (adjacent) parity sector PSn located in the read/write direction of the sector Snn in which user data was last written.

Read/write control section 610 reads from sector Sn0 to sector Snn in the read/write direction.

The error correction control unit 630 detects the read error data in the read error sector Sn8, and corrects the read error data written in the read error sector Sn8 based on the parity data written in the parity sector PSn.

Fig. 6A is a schematic diagram showing an example of a method of setting a correction target sector according to the present embodiment. Fig. 6B is a schematic diagram showing an example of table TB1 of priority numbers set for each sector of a predetermined track according to the present embodiment. In FIG. 6A, track TR0 and track TR1 are shown. Fig. 6A shows a state in which after writing to the track TR0, the writing process of the track TR1 adjacent in the forward direction to the track TR0 is started. That is, if the track TR1 is set as the current track, the track TR0 corresponds to the previous track. The track TR0 has sectors Sc00, Sc01, Sc02, Sc03, Sc04, Sc05, Sc06, Sc07, Sc08, Sc09, …, and parity sectors Pc 0. The track TR1 may have a plurality of sectors in addition to the sectors Sc00 to Sc09 and the parity sector Pc0, or may not have several sectors in the sectors Sc00 to Sc 09. In FIG. 6A, sectors Sc00 through Sc09 are arranged consecutively toward the read/write direction. That is, the sector Sc00 is adjacent to the sector Sc01 in the read/write direction, the sector Sc01 is adjacent to the sector Sc02 in the read/write direction, the sector Sc02 is adjacent to the sector Sc03 in the read/write direction, the sector Sc03 is adjacent to the sector Sc04 in the read/write direction, the sector Sc04 is adjacent to the sector Sc05 in the read/write direction, the sector Sc05 is adjacent to the sector Sc06 in the read/write direction, the sector Sc06 is adjacent to the sector Sc07 in the read/write direction, the sector Sc07 is adjacent to the sector Sc08 in the read/write direction, and the sector Sc08 is adjacent to the sector Sc09 in the read/write direction. Fig. 6A shows a target path (track center) TRC0 when the track TR0 is to be written and an actual path SP0 when the track TR0 is written. In fig. 6A, the target path TRC0 is, for example, a path concentric with the disk 10. The actual path SP0 extends in the circumferential direction and is shifted in the radial direction from the target path TRC 0. The actual path SP0 corresponds to a path passing through the center of the sector Sc00 to Sc 09. The track TR1 has sectors Sc10, Sc11, Sc12, Sc13, Sc14, Sc15, Sc16, Sc17, Sc18, and Sc 19. Further, the track TR1 may have a plurality of sectors in addition to the sectors Sc10 to Sc19, or may not have several sectors within the sectors Sc10 to Sc 19. In FIG. 6A, sectors Sc10 through Sc19 are arranged consecutively toward the read/write direction. That is, the sector Sc10 is adjacent to the sector Sc11 in the read/write direction, the sector Sc11 is adjacent to the sector Sc12 in the read/write direction, the sector Sc12 is adjacent to the sector Sc13 in the read/write direction, the sector Sc13 is adjacent to the sector Sc14 in the read/write direction, the sector Sc14 is adjacent to the sector Sc15 in the read/write direction, the sector Sc15 is adjacent to the sector Sc16 in the read/write direction, the sector Sc16 is adjacent to the sector Sc17 in the read/write direction, the sector Sc17 is adjacent to the sector Sc18 in the read/write direction, and the sector Sc18 is adjacent to the sector Sc19 in the read/write direction. In fig. 6A, a sector Sc10 is adjacent to a sector Sc00 in the forward direction, a sector Sc11 is adjacent to a sector Sc01 in the forward direction, a sector Sc12 is adjacent to a sector Sc02 in the forward direction, a sector Sc13 is adjacent to a sector Sc03 in the forward direction, a sector Sc14 is adjacent to a sector Sc04 in the forward direction, a sector Sc15 is adjacent to a sector Sc05 in the forward direction, a sector Sc16 is adjacent to a sector Sc06 in the forward direction, a sector Sc17 is adjacent to a sector Sc07 in the forward direction, a sector Sc18 is adjacent to a sector Sc08 in the forward direction, and a sector Sc19 is adjacent to a sector Sc09 in the forward direction. In FIG. 6A, the target path (track center) TRC1 of track TR1 is shown. In fig. 6A, the target path TRC1 is, for example, a path concentric with the disk 10. In fig. 6A, for convenience of explanation, the sectors Sc10 to Sc19 are arranged along the target path TRC1, but actually the sectors Sc10 to Sc19 can be arranged offset from the target path TRC1 when writing is performed on the track TR 1. The maximum deviation estimated value OT1 of the track TR1 is shown in fig. 6A. FIG. 6A shows DOL DL10 for sector Sc10, DOL DL11 for sector Sc11, DOL DL12 for sector Sc12, DOL DL13 for sector Sc13, DOL DL14 for sector Sc14, DOL DL15 for sector Sc15, DOL DL16 for sector Sc16, DOL DL17 for sector Sc17, DOL DL18 for sector Sc18, and DOL DL19 for sector Sc 19. In FIG. 6A, DL14 > DL15 > DL13 > DL10 > DL16 > DL11 > DL19 > DL12 > DL17 > DL 18. Fig. 6B shows table TB1 including sector numbers of sectors of previous tracks and priority numbers corresponding to the sector numbers of the sectors of the previous tracks. The sector numbers are the same in sectors arranged in the radial direction, for example.

In the example shown in fig. 6A, when (or before) writing the track TR1 in the forward direction of the track TR0 after writing the track TR0, the error correction control section 630 sets priority numbers to the sectors Sc00 to Sc09 respectively adjacent to the sectors Sc10 to Sc19 in the direction opposite to the forward direction, based on the respective offsets of the sectors, for example, the sectors Sc00 to Sc09, of the track TR 0. Further, the error correction control unit 630 may set priority numbers to the sectors Sc00 to Sc09 adjacent to the sectors Sc10 to Sc19 in the opposite direction to the forward direction, based on the respective sectors of the track TR1, for example, the respective DOLs of the sectors Sc10 to Sc19, for example, DOL DL10 to DL19, when (or before) the track TR1 is written in the forward direction of the track TR0 after the writing to the track TR 0. The error correction controller 630 sets a priority number 0 for the sector Sc08, a priority number 1 for the sector Sc07, a priority number 2 for the sector Sc02, a priority number 3 for the sector Sc09, a priority number 4 for the sector Sc01, a priority number 5 for the sector Sc06, a priority number 6 for the sector Sc00, a priority number 7 for the sector Sc03, a priority number 8 for the sector Sc05, and a priority number 9 for the sector Sc 04. As shown in fig. 6B, the error correction controller 630 associates the sectors Sc00 to Sc09 with the priority numbers set for the sectors Sc00 to Sc09, and records the sectors Sc, Sc09 and the priority numbers in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, the nonvolatile memory 80, or the like as the table TB 1. The error correction control unit 630 sets the correction sector number, for example, 5 sectors Sc10, and Sc10 as the correction target sector in the order of the priority number from small to large in the sectors Sc10, and Sc10 corresponding to the sectors Sc10, and the sectors Sc19 respectively corresponding to DOL DL10, DL11, DL12, DL13, DL16, DL17, DL18, and DL19 that are smaller than the maximum deviation estimate value OT 1. The error correction controller 630 sets, as correction target related sectors, sectors Sc18, Sc17, Sc12, Sc19, and Sc11 respectively adjacent to the correction target sectors Sc08, Sc07, Sc02, Sc09, and Sc01 in the forward direction.

When the writing process of the track TR1 is started, the error correction controller 630 continues the writing process to the correction target related sector Sc18, Sc17, Sc12, Sc19, or Sc11 even if the offset amount of the correction target related sector Sc18, Sc17, Sc12, Sc19, or Sc11 exceeds the DOL DL18, DL17, DL12, DL19, or DL11 of the correction target related sector Sc18, Sc17, Sc12, Sc19, or Sc 11. When determining that at least 1 sector of the correction target sectors Sc08, Sc07, Sc02, Sc09, and Sc01 is a sector in which a read error occurs, the error correction control unit 630 performs error correction on at least 1 sector determined to be a sector in which a read error occurs, based on the parity sector Pc 0.

When the write processing of the track TR1 is started, if the offset amount of the non-object-related sector Sc10, Sc13, Sc14, Sc15, or Sc16 exceeds the DOL DL10, DL13, DL14, DL15, or DL16 of the non-object-related sector Sc10, Sc13, Sc14, Sc15, or Sc16, the error correction controller 630 interrupts the write processing to the non-object-related sector Sc10, Sc13, Sc14, Sc15, or Sc16 and executes: retry processing of the write processing is resumed from the non-object-associated sector Sc10, Sc13, Sc14, Sc15, or Sc16 while waiting for rotation.

As described above, by setting the sector of the previous track adjacent to the sector of the current track having a small DOL in the opposite direction to the forward direction as the target of error correction, the retry process is suppressed in the sector of the current track having a small DOL, and the frequency of occurrence of the retry process can be reduced. Further, by reducing the frequency of occurrence of the retry process, it is possible to write the track smoothly without interruption by continuously writing to each sector. Therefore, the writing performance can be improved.

Fig. 7 is a block diagram showing an example of the positioning control system SY of the head 15 in the write processing according to the present embodiment.

The magnetic disk apparatus 1 has a positioning control system (hereinafter, referred to as a write control system) SY of the head 15 at the time of write processing. The write control system SY has: converter a1, controller a2, actuator A3, memory a4, operational comparator a5, logical and circuit a6, Checker (Checker) a7, table B1, logical and circuit A8, counter a9, operational comparator a10, operators CL1, CL2, and CL 3. The converter a1, the controller a2, the memory a4, the operation comparator a5, the logic and circuit a6, the Checker (Checker) a7, the table B1, the logic and circuit A8, the counter a9, the operation comparator a10, the operation CL1, the operation CL2, and the operation CL3 are included in the system controller 130, the media cache 10m, the volatile memory 70, the nonvolatile memory 80, and the cache memory 90, for example. The actuator a3 is constituted by, for example, the arm 13 and the VCM 14. Memory a4 is contained, for example, in volatile memory 70, non-volatile memory 80, or cache memory 90. Table B1 may correspond to table TB1, for example. The operator CL1, the controller a2, and the actuator A3 constitute a feedback system.

In FIG. 7, a predetermined sector (hereinafter, sometimes referred to as a current sector) (C, S) to be written on the current track (track number C), a sector number S corresponding to the current sector, a target position X of the current sector (C, S), the offset X1(C, S) of the current sector, the offset X0(C-1, S) of a predetermined sector (hereinafter, sometimes referred to as a preceding sector) of a preceding track (track number C-1) adjacent to the current sector (C, S) in the opposite direction to the forward direction (C-1, S), and a set (set) X0(C-1, [0, 1, 2,.. Ns., Ns-1]) of the offsets of all sectors (sector number Ns) of the track C-1 are all processed as signals (or information) in the write control system SY. Further, a reference DOL (hereinafter, also referred to as a reference DOL) D0 of all sectors, DOL D1(C, S) of the current sector (C, S) corrected by an offset X0(C-1, S), a flag F0 indicating that DOL is exceeded in the current sector (C, S), a flag F1 indicating that the write inhibit function based on the correction of Track ECC is disabled, a flag F2 indicating that writing is inhibited, and a flag F3 indicating a correction target sector, the flag F4 indicating that the DOL is exceeded in the current sector (C, S), the number N of correction target sectors, the upper limit value N0 of the number of correction target sectors, the write error (offset) e of the current sector, the write drive amount U of the current sector, and the actual position Y of the head 15 in the current sector are processed as signals (or information) in the write control system SY, respectively. As for the sector number S, sectors adjacent in the radial direction can be the same number as each other. The offset X0(C-1, S) corresponds to the offset X1(C-1, S) (not shown) of the preceding sector (C-1, S). The offset X0(C-1, [0, 1, 2,.. multidot.n., Ns-1]) of all sectors of the track C-1 corresponds to the offset X1(C-1, [0, 1, 2,. multidot.n., Ns-1]) of all sectors of the previous track C-1 (not shown). The offset X1(C, S) corresponds to the position error signal of the current sector.

The converter a1 converts a physical position (hereinafter referred to as a physical position) corresponding to a logical position (hereinafter referred to as a logical position) of the disc 10 designated by a higher-level device such as the host 100 into a radial position of the disc 10. The logical position may be, for example, a Logical Block Address (LBA), and the physical position may be, for example, a servo information sequence indicating the physical position of the disk 10. The converter a1 converts a combination (C, S) of a track C among a plurality of concentric tracks of the disk 10 where the head 15 is positioned based on a servo information sequence (C: track or cylinder, S: sector) corresponding to the LBA designated from the host 100 and a sector number S corresponding to the current sector among a plurality of sectors of the track C into a target position X of the sector number S corresponding to the current sector, for example.

Controller A2 controls actuator A3. The controller a2 generates a drive amount U of the head 15 (hereinafter referred to as a write drive amount) during the write process by the actuator A3, for example, based on the write error e, which is a difference value between the target position X and the actual position Y. Further, the controller a2 may generate the write drive amount U based on a value other than the write error e.

The actuator A3 is driven according to the output of the controller a 2. The actuator a3 is driven based on, for example, the write drive amount U, and moves the head 15 to the actual position Y in the current sector.

The memory a4 stores position error signals (offsets) X1(C-1, S) (not shown) of the respective sectors (C-1, S) when writing is performed on the previous track C-1, and outputs a set X0(C-1, [0, 1, 2,.. Ns-1]) of offsets of all the sectors of the previous track C-1 or an offset X0(C-1, S) of the previous sector (C-1, S) for the servo information sequence (C, S) corresponding to the LBA designated by the host 100. When the sector (C, S) is written, the offset X1(C, S) is newly stored.

The operation comparator a5 compares DOL D1(C, S) of the current sector with the offset X1(C, S) of the current sector, and generates a flag F0 when the offset X1(C, S) exceeds DOL D1(C, S).

The and logic circuit a6 generates a flag F2 when the flags F0 and F1 are input.

The checker a7 sets priority numbers for the sector numbers in descending order of the offset X0(C-1, [0, 1, 2,. multidot.,. Ns-1]) of all the sectors of the previous track C-1 (or in ascending order of DOL D1(C, [0, 1, 2,. multidot.,. Ns-1]) of all the sectors of the current track C), and generates a table B1 in which the respective sector numbers of the respective sectors of the previous track and the respective priority numbers corresponding to the respective sector numbers of the respective sectors of the previous track C-1 are associated with each other. The checker a7 compares the sector number S of the current sector (C, S) with the table B1, and generates the flag F3 in the case where the previous sector (C-1, S) is the correction target sector.

The and logic circuit A8 generates a flag F4 when the flags F0 and F3 are input.

The counter a9 counts the number N of correction target sectors on the previous track C-1.

The operation comparator a10 compares the number N of correction target sectors on the previous track C-1 with the upper limit N0 of the number of correction target sectors, and generates a flag F1 when the number N of correction target sectors exceeds the upper limit N0 of the number of correction target sectors.

When a logical position, for example, LBA, of the disk 10 to which data is written is designated by a host apparatus, for example, the host 100, the write control system SY converts the LBA into a physical position (C, S) in advance, outputs the current sector (C, S) to the converter a1 and the memory a4, and outputs the sector number S of the current sector to the checker a 7. Converter a1 is input to location (C, S). The converter a1 converts the position (C, S) into the target position X, and outputs the position to the operators CL1 and CL 2. The arithmetic unit CL1 receives the target position X and the actual position Y. The arithmetic unit CL1 calculates a write error e from the difference between the target position X and the actual position Y, and outputs the calculated write error e to the controller a 2. The controller a2 is inputted with a write error e. The controller a2 outputs the write drive amount U to the actuator A3. The write drive amount U is input to the actuator a 3. The actuator a3 is driven in accordance with the write drive amount U, and moves the head 15, for example, the write head 15W, to the actual position Y corresponding to the write drive amount U. The actuator a3 outputs the actual position Y to the calculators CL1 and CL 2.

The arithmetic unit CL2 receives the target position X and the actual position Y. The arithmetic unit CL2 calculates a shift amount X1(C, S) from the difference between the target position X and the actual position Y, and outputs the calculated shift amount X1(C, S) to the arithmetic comparator a 5. The memory a4 is entered with the current sector (C, S). The memory a4 outputs a set X0(C-1, [0, 1, 2., Ns-1]) of offsets of all sectors (C-1, [0, 1, 2., Ns-1]) on the preceding track C-1 adjacent to the current track C in the direction opposite to the forward direction to the checker a 7. The memory a4 outputs an offset X0(C-1, S) of a preceding sector adjacent to the current sector (C, S) in the opposite direction to the forward direction to the arithmetic unit CL 3. The offset X0(C-1, S) and the reference DOL D0 are input to the arithmetic unit CL 3. The arithmetic unit CL3 outputs DOL D1(C, S) corresponding to the current sector obtained by adding the offset X0(C-1, S) to the reference DOL D0 to the arithmetic comparator a 5. The operational comparator a5 is inputted with the offset X1(C, S) and DOL D1(C, S) of the current sector. The operational comparator a5 compares the offset X1(C, S) with DOL D1(C, S) of the current sector, and outputs flag F0 to the logical and circuits a6 and A8 when the offset X1(C, S) exceeds DOL D1(C, S) of the current sector.

Checker a7 is input with a sector number S and a set X0(C-1, [0, 1, 2., Ns-1]) of offsets of all sectors (C-1, [0, 1, 2., Ns-1) on track C-1. The checker a7 outputs the flag F3 to the logical and circuit A8 in the case where the preceding sector (C-1, S) is the correction target sector according to the table B1. The and logic circuit A8 is inputted with flags F0 and F3. The and logic circuit A8 outputs a flag F4 to the counter a9 when the flags F0 and F3 are input. The counter a9 is input with the flag F4. The counter a9 counts the number N of sectors to be corrected, and outputs the number N of sectors to be corrected to the operational comparator a 10. The operation comparator a10 receives the number N of correction target sectors and the upper limit N0 of the number of correction target sectors. The operation comparator a10 compares the number N of correction target sectors with the upper limit N0 of the number of correction target sectors, and outputs a flag F1 to the logical and circuit a6 when the number N of correction target sectors is greater than the upper limit N0 of the number of correction target sectors. The and logic circuit a6 is inputted with flags F0 and F1. The and logic circuit a6 outputs the flag F2 when the flags F0 and F1 are input.

Fig. 8 is a schematic diagram showing an example of the processing of the checker a7 shown in fig. 7. In fig. 8, table B1 includes table B11 and table B12. Table B11 has a sector number S (S ═ 0, 1, 2.. times.ns-1) of all sectors (the number of sectors Ns) included in the previous track C-1, and an offset X0(C-1, S) of the previous sector corresponding thereto. In Table B11, sector number Ns-1 is greater than sector number 102. Table B12 has a priority number Np (Np 0, 1, 2.., PNn-1) and a sector number S. The number PNn of priority numbers is generally equal to the total number Ns of sectors. In Table B12, the priority number PNk-1 is larger than the priority number 3, the priority number PNk is larger than the priority number PNk-1, and the priority number PNn-1 is larger than the priority number PNk.

Checker a7 is inputted with a sector number S and a set X0(C-1, [0, 1, 2., Ns-1]) of offsets of all sectors (C-1, [0, 1, 2., Ns-1) on the preceding track C-1, and generates table B11. Checker A7 rearranges the sector numbers S in table B11 in order of the offsets X0(C-1, S) from large to small. The checker a7 sets the priority number Np to the sector number S in the table B12 in descending order of the offset amount X0(C-1, S). Alternatively, the checker a7 generates DOL D1(C, S) of the current sector (C, S) based on the sector number S and the offset X0(C-1, S) of the previous sector, and records the sector number S, the offset X0(C-1, S), and the DOL D1(C, S) of the current sector (C, S) in association with each other in the table B11. Checker a7 rearranges the sector numbers S in table B11 in order of the DOL D1(C, S) of the current sector (C, S) from small to large. The checker a7 may set the priority number Np to the sector number S in the table B12 in descending order of DOL D1(C, S) of the current sector (C, S).

Fig. 9 is a flowchart showing an example of the write processing method according to the present embodiment.

The MPU60 sets a priority number for each sector of the previous track based on each offset of each sector of the previous track or each DOL of each sector of the current track (B901). The MPU60 sets, as a correction target sector, at least 1 sector of the previous tracks from the number with the lowest priority number to the predetermined priority number in order, based on the maximum deviation estimate value between the DOLs of the sectors of the current track and the current track (B902). For example, the MPU60 sets, as the correction target sector, at least 1 sector of the previous tracks from the number with the lowest priority number to the number of correction sectors, based on the maximum deviation estimate value between the DOLs of the sectors of the current track and the current track. The MPU60 determines whether the offset of the current sector is greater than or equal to DOL of the current sector (B903). When determining that the offset amount of the current sector is equal to or smaller than DOL of the current sector (no in B903), the MPU60 ends the process. If it is determined that the offset of the current sector is larger than the DOL of the current sector (yes at B903), the MPU60 determines whether the previous sector adjacent to the current sector in the direction opposite to the forward direction is the correction target sector or not (B904). If it is determined that the previous sector is not the correction target sector, for example, a non-target sector (no in B904), the MPU60 executes retry processing for the current sector (B905), and the processing ends. If it is determined that the previous sector is the correction target sector (yes in B904), the MPU60 suppresses the retry process (or interruption of the write process) of the current sector and continues the write process to the current sector (B905).

Fig. 10 is a flowchart showing an example of the write processing method according to the present embodiment.

The system controller 130 calculates the offset X1(C, S) of the current sector, and acquires the offset X0(C-1, S) of the previous sector from the memory a4 (B1001). The system controller 130 generates flag F0(B1002) when the offset X (C, S) of the current sector is larger than DOL D1(C, S) of the current sector (C, S) obtained by adding the offset X0(C-1, S) of the previous sector to the reference DOL DO. The system controller 130 confirms the sector number S and generates the flag F3 (B1003). In the case where the flag F3 is generated (or validated), the system controller 130 generates a flag F4 (B1004). In the case where the flag F4 is generated (or validated), the system controller 130 counts the number N of correction target sectors (B1005). In other words, the system controller 130 increases the number N of correction target sectors by a predetermined value, for example, 1, when the flag F4 is generated. When the number N of correction target sectors is larger than the upper limit N0 of the number of correction target sectors, the system controller 130 generates a flag F1, and invalidates the write inhibit function on the premise of correction by Track ECC (B1006). When the flags F1 and F0 are generated (or validated), the system controller 130 generates a flag F2(B1007), and the process ends. In other words, the system controller 130 executes the retry process in a case where the flags F1 and F0 are input.

Fig. 11 is a flowchart showing an example of the method of generating the table B1 according to the present embodiment.

The system controller 130 determines whether to generate a table B1 of the current track (cylinder) (B1101) or not. If it is determined that the table B1 of the current track has not been generated (no in B1101), the system controller 130 acquires the offset amounts of all the sectors included in the previous track (cylinder) that has been written from a predetermined recording area, for example, the memory a4 (B1102). The system controller 130 sets a priority number to each sector of the previous track in the order of the offset amount from large to small, reorders the sector numbers of the previous track in the order of the offset amount from large to small, sets at least 1 sector of the previous track from the number with the lowest priority number to the number of correction sectors as a correction target sector, generates a table B1(B1103), and proceeds to the processing of B1104. For example, the system controller 130 may set a priority number to each sector of the previous track in the order of the DOL of the sector of the current track adjacent in the forward direction from small to large, rearrange the sector numbers of the previous track in the order of the DOL of the sector of the current track adjacent in the forward direction from small to large, set at least 1 sector of the previous track from the number with the lowest priority number to the number of correction sectors as the correction target sector, and generate the table B1. The system controller 130 compares the current sector number S with the table B1, generates a flag F3 when the previous sector (C-1, S) is the correction target sector (B1104), and ends the process.

According to the present embodiment, the magnetic disk device 1 sets the priority number for each sector of the previous track based on each offset amount of each sector of the previous track or each DOL of each sector of the current track. The magnetic disk device 1 sets at least 1 sector of the previous tracks from the number with the lowest priority number to the number of corrected sectors as the sector to be corrected, based on the maximum deviation estimation value between the current track and each DOL of each sector of the current track. When it is determined that the offset amount of the current sector is larger than the DOL of the current sector and the previous sector is the correction target sector, the magnetic disk apparatus 1 suppresses the retry process (or the interruption of the write process) and continues the write process. The magnetic disk apparatus 1 can reduce the frequency of occurrence of retry processing by suppressing retry processing in a sector of a current track having a small DOL, by setting a sector of a previous track adjacent to a sector of the current track having a small DOL in a direction opposite to a forward direction as a priority target of error correction. Therefore, the magnetic disk apparatus 1 can improve the writing performance.

Next, a magnetic disk device according to a modification of embodiment 1 will be described. In the modification, the same reference numerals are given to the same portions as those of the embodiment 1, and detailed description thereof is omitted.

(modification 1)

The magnetic disk apparatus 1 of modification 1 is different from the magnetic disk apparatus 1 of embodiment 1 in that the priority number is changed when the current track is searched.

The MPU60 changes the priority numbers of the sectors of a predetermined number of previous tracks including the sector of the previous track corresponding to the sector of the current track in which the seek position has been performed on the current track, and sets the sector to be corrected based on the priority numbers of the sectors of the previous tracks after the change. For example, when the MPU60 starts the write process from the start sector of the current track by seeking the current track, the priority number of the sector of the previous track corresponding to the start sector is set to be smaller. In other words, when the MPU60 starts the write process from the start sector of the current track by seeking the current track, the priority (priority to be corrected) of the sector of the previous track corresponding to the start sector is increased. In one example, when the MPU60 starts the write process from the start sector of the current track by seeking the current track, the MPU60 changes the priority numbers of several sectors of the previous track including the sector of the previous track corresponding to the start sector based on the maximum offset estimation value of the current track, and changes the correction target sectors of the several sectors.

Fig. 12A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 1. Fig. 12B is a schematic diagram showing an example of table TB2 of priority numbers set for each sector of a predetermined track in modification 1. Fig. 12A shows a state in which, after writing on the track TR0, for example, a seek operation is performed by seeking another track separated in the radial direction by a read request from the host, and then the seek operation is performed to start a write process of the track TR1 adjacent in the forward direction to the track TR 0. In fig. 12A, a seek is performed to start a write process of the track TR1 with the sector Sc10 as a start sector. Fig. 12A shows the maximum deviation estimated value OT2 of the track TR 1. The maximum skew estimation value OT2 is larger in the sector Sc10 and the sector Sc11 than in the opposite direction to the forward direction, that is, the other sectors Sc13 to Sc19 on the track TR0 side. FIG. 12B shows Table TB2, Table TB2 contains: the sector number of each sector of the previous track, the priority number (hereinafter, also referred to as DDOL priority number) corresponding to the sector number of each sector of the previous track when the track TR1 is written by the DDOL function shown in fig. 6B, and the priority number (hereinafter, also referred to as SEEK priority number) corresponding to the sector number of the previous track when the track TR1 is written by the DDOL function by seeking the current track. In the DDOL priority number and the SEEK priority number, the priority (priority of correction target) becomes higher in the order of the numbers from small to large.

In the example shown in fig. 12A, the MPU60 selects the SEEK priority number generated based on the maximum offset estimation value OT2 when writing to the track TR0, for example, when performing a SEEK operation to another track separated in the radial direction by a read request from the host and then performing a SEEK operation to the track TR1 to start a write process from the sector Sc 10. The selection of which of the DDOL priority number and the SEEK priority number is determined by the SEEK distance to the track TR1 where the writing process is started. As shown in fig. 12B, the MPU60 selectively records any one of the sectors Sc00 to Sc09, DDOL priority numbers set for the sectors Sc00 to Sc09, and SEEK priority numbers set for the sectors Sc00 to Sc09 in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, the nonvolatile memory 80, or the like, as the table TB 2. The MPU60 sets, as a correction target sector, a number of correction sectors, for example, 5 sectors Sc16, and Sc16, which are sequentially from the number with the smallest SEEK priority number in the sectors Sc16, and Sc16, which are sectors Sc16, DL 86874 11, DL 874 7, DL13, DL16, and DL16 corresponding to the sectors Sc16, which are smaller than the maximum shift estimate value OT2, respectively. The MPU60 sets, as correction target related sectors, sectors Sc18, Sc17, Sc11, Sc10, and Sc12 respectively adjacent to the correction target sectors Sc08, Sc07, Sc01, Sc00, and Sc02 in the forward direction.

When the MPU60 starts the writing process of the track TR1, even if the offset amount of the correction target related sector Sc18, Sc17, Sc11, Sc10, or Sc12 exceeds DOL DL18, DL17, DL11, DL10, or DL12 of the correction target related sector Sc18, Sc17, Sc11, Sc10, or Sc12, the writing process to the correction target related sector Sc18, Sc17, Sc11, Sc10, or Sc12 is continued.

When the MPU60 starts the write process for the track TR1, if the offset of the non-object-related sector Sc13, Sc14, Sc15, Sc16, or Sc19 exceeds DOL DL13, DL14, DL15, DL16, or DL19 of the non-object-related sector Sc13, Sc14, Sc15, Sc16, or Sc19, the MPU60 interrupts the write process to the non-object-related sector Sc13, Sc14, 15, Sc16, or Sc19, and executes: a retry process of performing rotation waiting to restart the write process from the non-object-associated sector Sc13, Sc14, Sc15, Sc16, or Sc19 is performed.

Fig. 13 is a schematic diagram showing an example of the processing of the checker a7 shown in fig. 7 in modification 1. In fig. 13, table B1 includes table B13. Table B13 has: sector number S (S0, 1, 2.., Ns-1), offset X0(C-1, S) of the previous sector, and priority number Np (Np 0, 1, 2.., PNn-1). Generally, the number of sector numbers Ns is equal to the number of priority numbers PNn. In Table B13, the priority number PNk-2 is larger than the priority number PNk-3, the priority number PNk-1 is larger than the priority number PNk-2, and the priority number 241 is larger than the priority number PNk. The priority number PNk +1 is larger than the priority number PNk. In fig. 13, the writing process is started from a sector having a small sector number on the track TR 1.

The checker a7 is inputted with a sector number S and a set X0(C-1, [0, 1, 2,.. multidot.,. Ns-1]) of offsets of all sectors (the number of sectors Ns) of the preceding track C-1, and generates table B13. Checker A7 rearranges the sector numbers S in table B13 in order of the offsets X0(C-1, S) from large to small. The checker a7 sets the priority number Np to the sector number S in the table B13 in descending order of the offset amount X0(C-1, S). When performing a seek and writing to the current track, the checker a7 decreases the priority number of the previous sector (C-1, S) whose sector number S is smaller. In this case, the checker a7 sets the priority number to be smaller and then shifts the priority bit of the previous sector corresponding to the number of the previous sector backward, thereby increasing the priority number.

According to modification 1, the magnetic disk device 1 changes the priority number of a predetermined number of sectors including the sector of the previous track corresponding to the sector of the current track located by seeking the current track, and sets the sector to be corrected based on the priority numbers of the sectors of the previous tracks after the change. Therefore, the magnetic disk apparatus 1 can improve the writing performance.

(modification 2)

The magnetic disk apparatus 1 of modification 2 differs from the magnetic disk apparatus 1 of embodiment 1 and modification 1 in that the priority number is changed when the current track writing process is started.

When the write processing of the current track is started, the MPU60 changes the priority number of at least 1 sector (hereinafter, also referred to as an unwritten sector) of the previous track adjacent to at least 1 sector (hereinafter, also referred to as an unwritten sector) of the current track that has not been written in the opposite direction to the forward direction. When writing is being performed on the current track, the MPU60 sets, as the correction target sector, the unwritten adjacent sectors from the number with the lowest priority number to the number of correction sectors in order based on the DOLs of the unwritten sectors of the current track. The MPU60 determines that the previous sector is the current sector to be corrected when writing is being performed on the current track, and increases the priority of correction target for the previous sector when the write inhibit operation is not performed because the offset amount is small.

Fig. 14A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 2. Fig. 14B is a schematic diagram showing an example of table TB3 of priority numbers set for each sector of a predetermined track in modification 2. In fig. 14A, a track TR0 and a track TR1 are shown. Fig. 14A shows a state in which, after writing to the track TR0, writing to the track TR1 adjacent to the track TR0 in the forward direction is being performed. In FIG. 14A, the writing process of the track TR1 is performed with the sector Sc10 as a start sector. Fig. 14A shows a target path (track center) TRC1 when writing is to be performed on the track TR1 and an actual path SP1 when writing is performed on the track TR 1. The actual path SP1 extends in the circumferential direction and varies in the radial direction with respect to the target path TRC 1. The actual path SP1 corresponds to a path passing through the center of the sector Sc10 to Sc 19. Fig. 14B shows a table TB3 containing the sector numbers of the sectors of the previous tracks and the priority numbers corresponding to the sector numbers of the sectors of the previous tracks. In fig. 14B, the sector number of the sector in which writing is performed on the current track is shown in the vertical direction of the priority number in table TB 3. In table TB3 of fig. 14B | (double circle) indicates a predetermined sector of the previous track corresponding to a predetermined sector of the current track to which data is normally written because the skew is lower than DOL, good (circle) indicates a predetermined sector of the previous track corresponding to a predetermined sector of the current track to which the write inhibit is suppressed because the skew exceeds DOL but is a correction target associated sector, and x (cross) indicates a predetermined sector of the previous track corresponding to a predetermined sector of the current track to which the skew exceeds DOL and which is write inhibited and retried because it is not a correction target associated sector. In fig. 14B, sectors before the sectors (before the current sector) of the priority numbers 0 to 4 are correction target sectors. That is, in fig. 14B, sectors of the sectors Sc08, Sc07, Sc02, Sc09, and Sc01 are correction target sectors.

In the example shown in fig. 14A, when writing is being performed on the track TR1 in the forward direction of the track TR0 after writing on the track TR0, the MPU60 changes the priority number of the unwritten adjacent sector in the sectors Sc00 to Sc09 based on the DOL of the unwritten sectors in the track TR1, for example, the sectors Sc10 to Sc 19.

The MPU60 writes data to the sector Sc10 according to the actual path SP 1. Since the priority number of the sector Sc10 is 6, it is not a correction target associated sector. Since the actual path SP1 is more forward than DOL DL10 in the sector Sc10, the MPU60 normally writes data to the sector Sc 10. In table TB3 of fig. 14B, the MPU60 makes the sector Sc00 very excellent (double circle). Since the sector Sc00 of priority number 6 is normally written, the sector with priority number 7 or more, that is, the sector Sc03 has priority number 7 changed to priority number 6, the sector Sc05 has priority number 8 changed to priority number 7, and the sector Sc04 has priority number 9 changed to priority number 8.

The MPU60 writes data to sector Sc11 following sector Sc10 by the actual path SP 1. Since the sector Sc10 has the priority number 4, it is a correction target related sector. Since the actual path SP1 is more forward than DOL DL11 in the sector Sc11, the MPU60 normally writes data to the sector Sc 11. In table TB3 of fig. 14B, the MPU60 makes the sector Sc01 very excellent (double circle). Since the sector Sc11 of priority number 4 is normally written, the sector having priority number 5 or more, that is, the sector Sc06 has priority number 5 changed to priority number 4, the sector Sc03 has priority number 6 changed to priority number 5, the sector Sc05 has priority number 7 changed to priority number 6, and the sector Sc04 has priority number 8 changed to priority number 7. At this time, since the number N of sectors to be corrected is not incremented, the preceding sector of Sc06 whose priority order becomes 4 newly becomes a sector related to correction.

The MPU60 writes data to sector Sc12 following sector Sc11 by the actual path SP 1. Since the priority number of the sector Sc12 is 2, the preceding sector is the object of error correction. The MPU60 executed the write inhibit process in the sector Sc12 with the actual path SP1 being in the opposite direction to the forward direction as compared with the DOL DL12, but since the priority number of the sector Sc12 was 2, data was normally written in the sector Sc12 without performing a retry operation. In table TB3 of fig. 14B, the MPU60 makes sector Sc02 o (circle). Since the sector Sc11 of the priority number 2 is normally written, the sector having the priority number 3 or more, that is, the sector Sc09 has the priority number 3 changed to the priority number 2, the sector Sc06 has the priority number 4 changed to the priority number 3, the sector Sc03 has the priority number 5 changed to the priority number 4, the sector Sc05 has the priority number 6 changed to the priority number 5, and the sector Sc04 has the priority number 7 changed to the priority number 6. Since the write processing to the correction target related sector Sc12 corresponding to the correction target sector Sc02 is normally completed, the MPU60 sets the sector Sc03 having the smaller priority number following the sector Sc06 as the correction target sector. At this time, the number N of sectors to be corrected is incremented by 1, so that the remaining number of sectors to be corrected becomes 4, and sectors having priority orders 0 to 3 become sectors to be corrected. The sector Sc06 with the priority rank changed to 3 newly becomes a correction target associated sector, but the sector Sc03 with the priority rank changed to 4 does not newly become a correction target associated sector.

The MPU60 writes data to sector Sc13 following sector Sc12 by the actual path SP 1. In the sector Sc13, the actual path SP1 is located on the opposite side in the forward direction from DOL DL13, and therefore the MPU60 writes to the sector Sc13 on the opposite side in the forward direction from DOL DL 13. The priority number of Sc03 is 4, Sc13 does not become a sector related to correction, and the MPU60 stops the write operation to the sector Sc13 and executes retry processing. In table TB3 of fig. 14B, the MPU60 sets sector Sc03 to x (cross), and since the write process of sector Sc03 of priority number 4 is completed, changes priority number 5 of sector Sc05 to priority number 4, changes priority number 6 of sector Sc04 to priority number 5, and reduces the number of correction sectors by 1, thereby maintaining correction target sectors Sc08, Sc07, Sc09, and Sc 06.

The MPU60 writes data to sector Sc14 following sector Sc13 by the actual path SP 1. Since the actual path SP1 is more forward than DOL DL14 in the sector Sc14, the MPU60 normally writes data to the sector Sc 14. In table TB3 of fig. 14B, the MPU60 makes the sector Sc04 very excellent (double circle). The MPU60 maintains correction target sectors Sc08, Sc07, Sc09, and Sc 06.

The MPU60 writes data to sector Sc15 following sector Sc14 by the actual path SP 1. Since the actual path SP1 is more forward than DOL DL15 in the sector Sc15, the MPU60 normally writes data to the sector Sc 15. In table TB3 of fig. 14B, the MPU60 makes the sector Sc05 very excellent (double circle). The MPU60 maintains correction target sectors Sc08, Sc07, Sc09, and Sc 06.

The MPU60 writes data to sector Sc16 following sector Sc15 by the actual path SP 1. Since the actual path SP1 is more forward than DOL DL16 in the sector Sc16, the MPU60 normally writes data to the sector Sc 16. In table TB3 of fig. 14B, the MPU60 makes the sector Sc06 very excellent (double circle). The MPU60 maintains correction target sectors Sc08, Sc07, and Sc 09.

The MPU60 writes data to sector Sc17 following sector Sc16 by the actual path SP 1. Since the actual path SP1 is more forward than DOL DL17 in the sector Sc17, the MPU60 normally writes data to the sector Sc 17. In table TB3 of fig. 14B, the MPU60 makes the sector Sc07 very excellent (double circle). The MPU60 maintains correction target sectors Sc08 and Sc 09.

The MPU60 writes data to sector Sc18 following sector Sc17 by the actual path SP 1. Since the actual path SP1 is on the opposite side in the forward direction from DOL DL18 in the sector Sc18, the MPU60 executes write processing to normally write data to the sector Sc18 because the sector Sc08 is a correction target sector. The MPU60 has sectors Sc08 of good quality (circles) in table TB3 of fig. 14B. The MPU60 reduces the number of correction sectors by 1 and maintains the correction target sector Sc 09.

The MPU60 writes data to sector Sc19 following sector Sc18 by the actual path SP 1. Since the actual path SP1 is more forward than DOL DL19 in the sector Sc19, the MPU60 normally writes data to the sector Sc 19. The MPU60 reduces the number of correction sectors by 1 by good (circle) for the sectors Sc09 in the table TB3 of fig. 14B.

According to modification 2, the magnetic disk apparatus 1 changes the priority number of at least 1 unwritten adjacent sector when the MPU60 is writing the current track. When writing is being performed on the current track, the MPU60 sets, as the correction target sector, the unwritten adjacent sector whose priority number is sequentially from the smallest number to the number of correction sectors, based on the DOLs of the unwritten sectors of the current track. When write inhibit suppression assuming error correction of the previous sector is performed while writing is being performed on the current track, the MPU60 reduces the number of correction sectors in accordance with the number of times write inhibit suppression is performed. When write inhibit suppression is not performed on the correction target associated sector, a young priority number is assigned to the unwritten sector, so that the probability of retry processing when writing to a sector having a lower priority level and not being a correction target associated sector is reduced in the initial state. Therefore, the magnetic disk apparatus 1 can improve the writing performance.

(modification 3)

The magnetic disk device 1 of modification 3 is different from the magnetic disk device 1 of embodiment 1, modification 1, and modification 2 in that ATC (Adaptive Track Center: Automatic Track width Control) Control is executed.

The MPU60 generates a path of the current Track (hereinafter, also referred to as an adjustment path) based on the actual path corresponding to the previous Track, and performs Control of the head 15 (for example, the write head 15W) based on the adjustment path of the current Track (hereinafter, also referred to as ATC (Adaptive Track Center or Automatic Track width Control).

The MPU60 reduces the priority number of at least 1 sector of the previous track corresponding to at least 1 sector of the current track whose maximum deviation estimation value contains the high-frequency component. For example, the MPU60 increases the priority of correction targets in at least 1 sector of the previous track corresponding to at least 1 sector of the current track whose maximum deviation estimation value includes the high-frequency component. In one example, when the difference value of the maximum offset estimation values of 2 sectors adjacent to each other in the circumferential direction of the current track is large, the MPU60 decreases the priority numbers of the 2 sectors of the previous track corresponding to the 2 sectors, respectively. In addition, in an example, when the difference value between the target positions of 2 sectors adjacent to each other in the circumferential direction of the current track is large, the MPU60 decreases the priority number of 2 sectors of the previous track corresponding to each of the 2 sectors.

Fig. 15 is a schematic diagram showing an example of ATC control. In the example shown in FIG. 15, stripe region TGj contains write tracks WTj-1, WTj, and WTj + 1. In the band region TGj, the write tracks WTj-1 to WTj +1 are written to overlap in this order in the forward direction. The written track WTj-1 has a track edge Ej-1A. In the example shown in FIG. 15, the track edge Ej-1A is the end of the write track WTj-1 in the outer direction. FIG. 15 shows the target path WTTj-1 for the write track WTj-1. The write track WTj has a track edge EjA. In the example shown in fig. 15, the track edge EjA is the end of the write track WTj in the outer direction. FIG. 15 shows the target path WTTj for the write track WTj. The write track WTj +1 has a track edge Ej + 1A. In the example shown in fig. 15, the track edge Ej +1A is the end in the outer direction of the write track WTj + 1. FIG. 15 shows target path WTTj +1 for write track WTj + 1.

The MPU60 performs positioning control of the write head 15W so as to follow the initial path TWTj-1 when writing to the write track WTj-1. The initial path TWTj-1 corresponds to the target path WTj-1. In practice, where the write track WTj-1 is being written, the write head 15W travels over an actual path SWTj-1 that contains a write error. The MPU60 acquires write path information of the head 15, for example, the write head 15W, during write processing corresponding to the actual path SWTj-1, and records the acquired write path information in a predetermined recording area, for example, the disk 10, the volatile memory 70, the nonvolatile memory 80, the cache memory 90, and the like.

The MPU60 generates an adjustment path TWTj for writing the write track WTj based on the write path information corresponding to the actual path SWTj-1, and performs positioning control of the write head 15W so as to follow the adjustment path TWTj. In fact, in the case of writing to the write track WTj, the write head 15W travels on the actual path SWTj. The MPU60 acquires write path information corresponding to the actual path SWTj, and records the acquired write path information in a predetermined recording area, for example, the disk 10, the volatile memory 70, the nonvolatile memory 80, the cache memory 90, or the like.

The MPU60 generates an adjustment path TWTj +1 for writing the write track WTj +1 based on the write path information corresponding to the actual path SWTj, and performs positioning control of the write head 15W so as to follow the adjustment path TWTj + 1. In fact, in the case of writing to the write track WTj +1, the write head 15W travels on the actual path SWTj + 1. The MPU60 acquires write path information corresponding to the actual path SWTj +1, and records the acquired write path information in a predetermined recording area, for example, the disc 10, the volatile memory 70, the nonvolatile memory 80, the cache memory 90, or the like.

Fig. 16A is a schematic diagram showing an example of a method of setting a correction target sector according to modification 3. Fig. 16B is a schematic diagram showing an example of table TB4 of priority numbers set for several sectors of a predetermined track in modification 3. Fig. 16A shows a track TR0 and a track TR 1. Fig. 16A shows a state in which after writing to the track TR0, the writing process to the track TR1 adjacent in the forward direction to the track TR0 is started. Fig. 16A shows an actual path SP2 when writing the track TR 0. The actual path SP2 extends in the circumferential direction and is shifted in the radial direction from the target path TRC 0. Fig. 16A shows a target path (track center) TRC1 of the track TR1 and an adjusted path ATRC1 adjusted by ATC control. The adjustment path ATRC1 extends in the circumferential direction and is shifted in the radial direction with respect to the target path TRC 1. In FIG. 16A, track TR1 is written to by adjustment path ATRC 1. Fig. 16A shows the maximum deviation estimated value OT3 of the track TR 1. The maximum deviation estimate OT3 extends in the circumferential direction while varying in the radial direction according to the adjustment path ATRC 1. The maximum offset estimation value OT3 greatly changes in the radial direction in the sectors Sc14 to Sc 17. The case where the maximum deviation estimate OT3 varies greatly in the radial direction between a small number of sectors is also sometimes referred to as a high-frequency component. Fig. 16B shows a table TB4 containing sector numbers of several sectors of the previous track and priority numbers corresponding to the sector numbers of several sectors of the previous track.

In the example shown in fig. 16A, when the MPU60 writes to the track TR1 adjacent in the forward direction to the track TR0 after writing to the track TR0 (or before writing), small priority numbers are set to the sectors of the track TR1 containing a high-frequency component, for example, the sectors Sc04 to Sc07 adjacent in the direction opposite to the forward direction, respectively, the sectors Sc14 to Sc 17. The MPU60 sets a priority number of 0 for the sector Sc05, a priority number of 1 for the sector Sc07, a priority number of 2 for the sector Sc04, and a priority number of 3 for the sector Sc 06. As shown in fig. 16B, the MPU60 records the sectors Sc04 to Sc07 and the priority numbers set for the sectors Sc04 to Sc07 in a predetermined recording area, for example, the media buffer area 10m, the volatile memory 70, the nonvolatile memory 80, or the like, in association with each other as a table TB 4. The MPU60 sets, as correction target sectors, a plurality of correction sectors, for example, 5 sectors Sc04 to Sc07 in order from the number of the lowest priority number in the sectors Sc04 to Sc07 of the preceding tracks adjacent to the sectors Sc14 to Sc17 in the opposite direction to the forward direction. The MPU60 sets sectors Sc14 to Sc17 respectively adjacent to the correction target sectors Sc04 to Sc07 in the forward direction as correction target associated sectors.

Fig. 17 is a schematic diagram showing an example of the processing of the checker a7 shown in fig. 7 in modification 3. In fig. 17, table B1 includes table B14, table B15, and table B16. Table B14 has: the sector number S (S ═ 0, 1, 2,.. multidot.ns, Ns-1) of all sectors (the number of sectors Ns) included in the previous track C-1, the offset X0(C-1, S) of the previous sector corresponding thereto, the difference value Δ X0(S) between the offset X0(C-1, S-1) of the sector (C-1, S-1) adjacent to the left side in the circumferential direction of the previous sector (C-1, S), and the absolute value | Δ X0(S) | of the difference value Δ X0 (S). In Table B14, sector number Ns-2 is smaller than sector number Ns-1 and larger than sector number 103. Table B15 has a sector number S and an absolute value | Δ X0(S) | of the differential value Δ X0 (S). Table B16 has a priority number Np (Np 0, 1, 2.., PNn-1) and a sector number S. The number PNn of priority numbers is generally equal to the total number Ns of sectors. In Table B15, priority number PNn-2 is smaller than priority number PNn-1 and larger than priority number PNk.

The checker a7 is inputted with a sector number S and a set X0(C-1, [0, 1, 2., Ns-1]) of offsets of all sectors (C-1, [0, 1, 2., Ns-1) on the preceding track C-1, and generates a table B14. The checker a7 reorders the sector numbers S in table B14 in order of decreasing absolute value | Δ X0(S) | of the difference value Δ X0(S) to generate table B15. The checker a7 sets the priority number Np to the sector number S in table B15 in descending order of the absolute value | Δ X0(S) | of the difference value Δ X0 (S). The checker a7 sets, as the correction target sector, the sector of the track immediately preceding the sector number corresponding to the priority number up to the correction sector number in the descending order of the priority number Np.

According to modification 3, the magnetic disk apparatus 1 executes ATC control. The magnetic disk device 1 reduces the priority number of at least 1 sector of the previous track corresponding to at least 1 sector of the current track whose maximum offset estimation value contains the high-frequency component. Therefore, for a sector that cannot follow the high frequency track of the previous track generated by the ATC control due to the frequency tracking limitation of the head positioning mechanism and exceeds the DOL, the previous sector is preferentially set as the correction target, and it is possible to suppress: the write inhibit is executed, and a retry operation for executing the write-once process is executed while a spin wait is performed. This enables the magnetic disk apparatus 1 to improve writing performance.

Although the above-described example 1, modification 2, and modification 3 show examples in which the configurations of the example 1, modification 2, and modification 3 are applied to the magnetic disk device of the shingle recording type, the configurations of the example 1, modification 2, and modification 3 can also be applied to the magnetic disk device 1 of the normal recording type.

Although the embodiments have been described above, these embodiments are merely provided as examples and are not intended to limit the scope of the present invention. These novel embodiments can be implemented in other various forms, and various omissions, substitutions, and changes can be made without departing from the spirit of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the scope equivalent thereto.

42页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种光盘存储追加刻录方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类