Disc apparatus and method
By recording off-track sector information in the disk device and retrying reads only on off-track sectors, the problem of low data reading efficiency caused by the head deviating from the target track is solved, achieving efficient data reading and error correction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- KK TOSHIBA
- Filing Date
- 2022-06-09
- Publication Date
- 2026-06-26
AI Technical Summary
In disk drives, when the read/write head deviates from the target track (off-track), unexpected data is read. Current technology requires repeated reads and error correction, which is inefficient.
By performing initial reading and error correction during each disk rotation, and recording information about off-track sectors, the system only retryes reading off-track sectors, thus avoiding repeated operations on sectors that are already on track and have been successfully corrected.
It improves the efficiency of data reading, reduces the computing resources and time used for error correction, and ensures that data can still be read efficiently even when the data is off track.
Smart Images

Figure CN116844582B_ABST
Abstract
Description
[0001] This application enjoys priority based on Japanese Patent Application No. 2022-046432 (filed on March 23, 2022). This application incorporates the entire contents of that basic application by reference. Technical Field
[0002] This embodiment relates to a disk device and a method. Background Technology
[0003] In a disk drive, during the process of controlling the positioning of the read / write head, the head may sometimes deviate from the target track for various reasons. This deviation is called off-tracking.
[0004] When a track deviation occurs while data is being read from a track, sometimes the data read is completely different from what was expected. Therefore, data that can be read using the head in a deviated state cannot be obtained. Summary of the Invention
[0005] One implementation involves providing a disk device and method that can efficiently read data even in the event of a deviation.
[0006] According to one embodiment, a disk drive includes a disk, a motor, read / write heads, and a controller. The disk has tracks having a plurality of first sectors. The motor rotates the disk. During one revolution of the disk, the controller performs a first read operation, including first error correction, on a sector-by-sector basis, on each of the second sectors of one or more second sectors that are the read targets among the plurality of first sectors. Then, the controller performs a second read operation, including the first error correction, on each of the third sectors of one or more third sectors among the one or more second sectors. The one or more third sectors include second sectors conforming to a fourth sector but exclude second sectors conforming to a fifth sector, where the fourth sector is the sector where the read / write head performed the first read operation in an off-track state, and the fifth sector is the sector where the read / write head performed the first read operation in an on-track state and the first error correction was successful. Attached Figure Description
[0007] Figure 1 This is a schematic diagram illustrating an example of the configuration of the disk device according to the first embodiment.
[0008] Figure 2 This is a schematic diagram illustrating an example of the configuration of the disk in the first embodiment.
[0009] Figure 3 This is a schematic diagram illustrating an example of the configuration of a magnetic track in the first embodiment.
[0010] Figure 4This diagram illustrates an example of information stored in a register according to the first embodiment.
[0011] Figure 5 This is a flowchart illustrating an example of the reading steps (sequence) for a target track in the disk device according to the first embodiment.
[0012] Figure 6 This is a flowchart illustrating an example of the steps involved in a read operation for a target sector according to the disk device of the first embodiment.
[0013] Figure 7 This is a diagram illustrating an example of the timing of each process during reading of a target track in the disk device of the first embodiment.
[0014] Figure 8 This is a flowchart illustrating an example of the steps involved in a read operation for a target sector in the disk device of the second embodiment.
[0015] Figure 9 This is a diagram illustrating an example of the timing of each process during reading of a target track by the disk device of the first embodiment.
[0016] Figure 10 This is a diagram illustrating another example of the timing of each process during reading of a target track in the disk device of the second embodiment.
[0017] Figure 11 This is another example of the timing of each process when reading a target track in the case where the interleave technique is applied to the disk device of the second embodiment.
[0018] Label Explanation
[0019] 1. 1a Disk drive; 2 Host; 11 Disk; 12 Spindle motor; 13 Ramp; 15 Actuator arm; 21 Motor driver IC; 22 Head; 22r Read head; 22w Write head; 23 HDC; 24 Head IC; 25 RWC; 26 Processor; 27 RAM; 28 FROM; 29 Buffer memory; 30 Controller; 31 Register; 41 Track; 42 Servo area; 43 Data area; 44 Servo sector; 311 Offset sector information. Detailed Implementation
[0020] The disk device and method according to the embodiments are described in detail below with reference to the accompanying drawings. However, the invention is not limited to these embodiments.
[0021] (First Embodiment)
[0022] Figure 1 This is a schematic diagram illustrating an example of the configuration of the disk device 1 according to the first embodiment.
[0023] Disk device 1 is connected to host 2. Disk device 1 can receive access commands such as write commands and read commands from host 2.
[0024] The disk drive 1 includes a disk 11 on which a magnetic layer is formed on its surface. The disk drive 1 writes data to the disk 11 and reads data from the disk 11 according to access commands.
[0025] Data writing and reading are performed via the read / write head 22. Specifically, in addition to the disk 11, the disk device 1 also includes a spindle motor 12, a ramp 13, an actuator arm 15, a voice coil motor (VCM) 16, a motor driver IC (Integrated Circuit) 21, a read / write head 22, a hard disk controller (HDC) 23, a head IC 24, a read / write channel (RWC) 25, a processor 26, RAM 27, FROM (Flash Read Only Memory) 28, and a buffer memory 29.
[0026] The disk 11 is rotated at a predetermined speed by a spindle motor 12 mounted coaxially. The spindle motor 12 is driven by a motor driver IC 21.
[0027] The processor 26 controls the rotation of the spindle motor 12 and the VCM 16 via the motor driver IC 21.
[0028] The read / write head 22, with its write head 22w and read head 22r, writes or reads data from the disk 11. The read / write head 22 is mounted on the front end of the actuator arm 15. The read / write head 22 moves radially across the disk 11 via a VCM 16 driven by a motor driver IC 21.
[0029] While the disk 11 is rotating and has stopped, the read / write head 22 is moved onto the ramp 13. The ramp 13 is configured to hold the read / write head 22 in a position where it has left the disk 11.
[0030] During reading, head IC24 amplifies the signal read by head 22 from disk 11 and outputs it to RWC25. Additionally, during writing, head IC24 amplifies the signal corresponding to the data provided from RWC25 and provides it to head 22.
[0031] RWC25 modulates the data provided from HDC23, including error correction coding, and provides it to head IC24. Additionally, RWC25 demodulates the signal read from disk 11 and provided by head IC24, including error correction, and outputs it as digital data to HDC23.
[0032] HDC23 controls data transmission and reception between the HDC23 and the host 2 via the I / F bus, and controls the buffer memory 29.
[0033] Additionally, the HDC23 has register 31. Information about what is stored in register 31 will be described later.
[0034] The buffer memory 29 is used as a buffer for data transmission and reception between the buffer memory and the host 2. The buffer memory 29 is, for example, composed of a volatile memory capable of high-speed operation. The type of memory constituting the buffer memory 29 is not limited to a specific type. The buffer memory 29 may be composed of, for example, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or a combination thereof.
[0035] The processor 26 is, for example, a CPU (Central Processing Unit). RAM 27, FROM (Flash Read Only Memory) 28, and buffer memory 29 are connected to the processor 26.
[0036] FROM28 contains firmware (program data) and various action parameters. Additionally, firmware can also be stored on disk 11.
[0037] RAM 27 may be composed of, for example, DRAM, SRAM, or a combination thereof. RAM 27 is used by the processor 26 as an area for loading firmware, or as a cache or buffer for various management parameters.
[0038] The processor 26 performs overall control of the disk device 1 according to the firmware stored in the FROM 28. For example, the processor 26 loads the firmware from the FROM 28 into the RAM 27, and executes control of the motor driver IC 21, head IC 24, RWC 25, HDC 23, etc. according to the loaded firmware.
[0039] Furthermore, the configuration including RWC25, processor 26, and HDC23 can also be considered as controller 30. In addition to these, controller 30 may also include other elements (such as RAM27, FROM28, buffer memory 29, or RWC25, etc.).
[0040] Alternatively, the firmware program can also be stored on disk 11. Furthermore, some or all of the functions of the controller 30 can be implemented using hardware circuitry such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0041] Figure 2 This is a schematic diagram illustrating an example of the configuration of the disk 11 in the first embodiment.
[0042] In disk 11, servo information is written during the manufacturing process, for example, via a servo writer or self-servo write (SSW). Figure 2 As an example of the configuration of a servo region where servo information has been written, a servo region 42 is shown in a radial configuration.
[0043] Servo information includes sector / cylinder information, burst pattern, and postcode. The sector / cylinder information provides the servo address (servo sector address) in the circumferential direction of disk 11 and the position of the track (track number) in the radial direction. The track number obtained from the sector / cylinder information is an integer value representing the track position, and the burst pattern represents the offset amount below the decimal point based on the position represented by the track number. The postcode is a correction amount used to correct for skewness in the shape of the track defined based on the burst pattern (more precisely, a combination of sector / cylinder information and burst pattern).
[0044] Data areas 43 capable of being written to are provided between the servo areas 42. A servo area 42 and a data area 43 following the servo area 42 constitute a servo sector 44. Furthermore, a plurality of concentric tracks 41 are provided in the radial direction of the disk 11.
[0045] Multiple data sectors are arranged along each track 41 in data area 43. Data is written to and read from each data sector by read / write head 22. The storage capacity of each data sector is arbitrary, but is substantially uniform within the disk 11. Each data sector may also be located across multiple data areas 43 on a track 41. Alternatively, each data area 43 on a track 41 may have only one data sector. Or, each data area 43 on a track 41 may have multiple data sectors.
[0046] Unless otherwise specified, "sector" hereafter refers to a data sector.
[0047] Figure 3 This is a schematic diagram illustrating an example of the configuration of a track 41 in the first embodiment. The servo region 42 is omitted from this diagram.
[0048] Each sector is identified by its sector number. The sector with sector number x is recorded as sector #x. Figure 3 In the example shown, track 41 has 11 sectors, from sector #0 to sector #10. Each of the 11 sectors on track 41 is an example of sector 1.
[0049] The data written in each sector contains an Error Correction Code (ECC). The RWC25 can perform sector-by-sector error correction using the error correction code on the data read from a sector. The error correction code contained in the data written in each sector is recorded as the 1st ECC. In addition, the error correction using the 1st ECC is recorded as the 1st correction.
[0050] The method of 1ECC is not limited to a specific method. In one example, a low-density parity-check code is used as the 1ECC.
[0051] Data writing is performed as follows: First, data containing the first ECC is written to sectors #0 through #9 in the order of sector numbers. Then, additional error correction codes are written to sector #10 at the end of track 41. Furthermore, the error correction codes written to sector #10 also contain the first ECC.
[0052] The error correction code written to sector #10 protects the data written in sectors #0 to #9 (data #0 to data #9) from errors. That is, the error correction code written to sector #10 protects data on a track 41 basis. The error correction code written to sector #10 is recorded as the second ECC. Furthermore, the error correction using the second ECC is recorded as the second correction. When the RWC25 reads data from track 41 protected by the second ECC, if a sector fails the first correction, it can obtain the expected data for that sector through the second correction. Furthermore, sector #10, where the second ECC is written, is an example of sector 7.
[0053] The method for the second ECC is not limited to a specific method. In one example, the second ECC is generated by a bit operation of XORing data #0 to data #9.
[0054] Furthermore, in the first embodiment, the installation of the second correction function is arbitrary. For example, in Figure 3In addition, the usual data can also be stored in sector #10 at the end of track 41, just like in other sectors.
[0055] During the reading operation, the controller 30 positions the read / write head 22 on the track 41 (referred to as the target track 41) of the sector to be read (referred to as the target sector), and then reads data from the target sector. However, even during the positioning control of the read / write head 22, various external factors such as impacts or vibrations applied to the disk drive 1 may cause deviation, that is, the read / write head 22 may deviate from the target track 41. When deviation occurs as the read / write head 22 passes the target sector, data written in the track 41 adjacent to the target track 41, and past data remaining between the target track 41 and the track 41 adjacent to the target track 41, may sometimes be read. In other words, data different from the data written in the target sector may sometimes be read.
[0056] As described above, the controller 30 (more precisely, RWC25) can correct errors in the data written to each sector through the first correction. However, due to track deviation, the first correction may succeed if data written to a track 41 adjacent to the target track 41, or if past data remaining between the target track 41 and the track 41 adjacent to the target track 41, is read. Therefore, if track deviation occurs when the head 22 passes through the target sector, even if the first correction for the data read from the target sector is successful, the corrected data may not be the expected data. Thus, data obtained when track deviation occurs cannot be used even if the first correction is successful.
[0057] Here, a technique compared to the implementation method is described. This technique compared to the implementation method is described as a comparative example. In the comparative example, consider the case where multiple sectors on a track are the reading targets; in other words, there are multiple target sectors on the target track. According to the comparative example, after the controller positions the read / write head on the target track, it performs a read operation on the multiple target sectors in the order of sector numbers. The controller performs a first correction during the read operation on each target sector. Normally, it is possible to perform a read operation on all multiple target sectors in one revolution of the disk. However, if a deviation occurs during the read operation on any of the multiple target sectors, the controller performs a read operation on all multiple target sectors again when the disk completes another revolution. That is, even if the multiple target sectors include sectors where the read / write head is in a tracked state and the first correction for the read data has been successful, the read operation on all multiple target sectors is performed again. Therefore, according to the comparative example, in the case of a deviation, a lot of time is required to obtain the expected data from all target sectors and computational resources are required for the first correction.
[0058] In contrast, according to the first embodiment, the controller 30 operates as follows: The controller 30 first performs a read operation on all target sectors during one revolution of the disk 11. The read operation includes a first correction. If a deviation occurs during the read operation on any target sector, the controller 30 performs the read operation again on the target sector where the read head 22 was in a deviation state. This read operation performed on a sector after the second time is also referred to as a read retry operation. The controller 30 does not perform a read retry operation on target sectors where the read head 22 was not in a deviation state (i.e., the read head 22 was on track) and the first correction for the read data was successful.
[0059] Therefore, according to the first embodiment, in the event of a deviation, compared to the comparative example, the increase in time required to obtain the desired data from all target sectors and the increase in computational resources required for error correction can be suppressed. That is, even if a deviation occurs, data can be read efficiently.
[0060] In the first embodiment, the controller 30 records information indicating that the read / write head 22 performed a read operation in a deflected state. Based on this information, the controller 30 selects a target sector for a read retry operation. This information is referred to as deflected sector information 311 in this specification. Figure 4 As shown, the off-track sector information 311 is stored in register 31, for example.
[0061] The sectors in which the magnetic head 22 performed a reading operation in an off-track state are referred to as off-track sectors.
[0062] Next, the operation of the disk device 1 according to the first embodiment will be described.
[0063] Figure 5 This is a flowchart illustrating an example of the steps involved in reading a target track 41 in the disk device 1 of the first embodiment.
[0064] First, when the disk 11 completes one revolution, the controller 30 performs a read operation (S101) on all target sectors within the target track 41 in sequential order of sector numbers. Here, the target sector in the first S101 execution is an example of sector 2. The target sectors in subsequent S101 executions, i.e., the target sectors in read retry operations, are an example of sector 3. Additionally, there is an example of each target sector being sector 6.
[0065] Figure 6 This is a flowchart illustrating an example of the steps involved in a read operation for a target sector according to the disk device 1 of the first embodiment.
[0066] First, RWC25 reads data from the target sector (S201). Then, RWC25 performs a first correction on the data read from the target sector (S202).
[0067] During the reading operation, a determination of whether a deviation has occurred is performed periodically at very short time intervals. In one example, whenever the read / write head 22 passes through the servo area 42, the controller 30 obtains the displacement of the current radius position of the read / write head 22 relative to the center of the target track 41 based on the servo information read from the servo area 42. If the displacement is less than a predetermined value, the controller 30 determines that the read / write head 22 is in the on-track state. If the displacement exceeds the predetermined value, the controller 30 determines that the read / write head 22 is in the off-track state, that is, a deviation has occurred.
[0068] Furthermore, the method for determining whether a deviation has occurred is not limited to the examples described above. Additionally, the timing setting for determining whether a deviation has occurred is not limited to the examples described above. Furthermore, any component within the controller 30 can perform the determination of whether a deviation has occurred. For example, whether a deviation has occurred can be determined by either the RWC25 or the processor 26. Hereinafter, determining that a deviation has occurred will sometimes be described as "deviation detected."
[0069] If the controller 30 detects a deviation during the process of determining whether a deviation has occurred (S203: Yes), it records the sector number of the target sector in the deviation sector information 311 (S204). Furthermore, if the first correction initiated in S202 by RWC25 has not yet been completed, the execution of the first correction is cancelled (S205). Cancellation of the first correction means: if the first correction has not yet started, its execution is not performed; if the first correction has already started, its execution is stopped. After processing in S205, the reading operation for the target sector ends.
[0070] When no deviation is detected during the reading operation and the first correction is completed (S203: No), the controller 30 deletes the sector number of the target sector from the deviation sector information 311 (S206). If the sector number of the target sector is not recorded in the deviation sector information 311, the processing in S206 is skipped. After the processing in S206, the reading operation for the target sector is completed.
[0071] exist Figure 5 In S101, execution is performed on each target sector. Figure 6 The series of actions shown.
[0072] Return to description Figure 5 .
[0073] When the reading operation for all target sectors within target track 41 is completed, the controller 30 sets the target sector that does not conform to the off-track sector and whose first correction has been successful as a non-target sector (S102). That is, the controller 30 excludes the sector from the target list where the read head 22 performed the reading operation while in an on-track state and obtained error-free data from the read retry operation. The controller 30 determines the off-track sector, for example, by referring to the off-track sector information 311. Furthermore, in S102, the off-track sector is an example of the 4th sector. The sector where the read head 22 performed the reading operation while in an on-track state and obtained error-free data is an example of the 5th sector.
[0074] Next, the controller 30 determines whether there are any remaining target sectors (S103). If there are remaining target sectors (S103: Yes), the control switches to S101, and a read operation is performed again on all remaining target sectors, that is, a read retry operation.
[0075] If no target sector remains (S103: No), the reading of target track 41 is completed.
[0076] Figure 7This diagram illustrates an example of the timing of each process during reading from the target track 41 in the disk device 1 of the first embodiment. In this diagram, the horizontal axis represents elapsed time. The sector where the read / write head 22 is located is depicted as the position of the read / write head 22. Furthermore, it shows which sector the data read from is subject to the first correction. To avoid complicating the diagram, sectors #0 to #6 are provided on the target track 41.
[0077] In addition, Figure 7 The waveform of the read strobe is depicted. The read strobe is a signal that instructs RWC25 to input a signal at the appropriate timing from the read head 22r. The read strobe is generated internally in the controller 30 (e.g., processor 26 or HDC23) based on the timing of the read servo information and is provided to RWC25. RWC25 inputs the signal during the period indicated by the read strobe. Figure 7 In the example shown, regarding the waveform of the read strobe, the H level represents the period during which the signal is received, and the L level represents the period during which the signal is disabled.
[0078] exist Figure 7 In the example shown, sectors #0 to #4 are set as the initial read targets. Therefore, during the initial rotation of disk 11 (i.e., the period during which disk 11 rotates once to perform the initial read operation), from time t0 when the read / write head 22 passes the beginning of sector #0 to time t1 when it passes the end of sector #4, the controller 30 maintains the read strobe at level H. During this period, the signal output from the read head 22r is input to RWC25. RWC25 performs demodulation, including a first correction, on the signals read from sectors #0 to #4.
[0079] Here, in Figure 7 In the example shown, deviation is detected when the read / write head 22 passes through sector #0 and sector #1. Therefore, the controller 30... Figure 6 The processing shown in S204 records the sector numbers of sector #0 and sector #1 in the off-track sector information 311. Additionally, the controller 30... Figure 6 The processing shown in S205 cancels the first correction for the data read from sector #0 and the first correction for the data read from sector #1.
[0080] When disk 11 completes its first rotation, the first correction is successful for the data read from sectors #2 to #4. That is, controller 30 successfully retrieves the expected data from sectors #2 to #4 through the initial rotation of disk 11.
[0081] When the disk 11 completes one revolution, the controller 30 performs a read retry operation on sectors #0 and #1 indicated by the off-track sector information 311. For sectors #2 to #4 where the expected data has been successfully acquired, the controller 30 does not perform a read retry operation. Specifically, the controller 30 maintains the read strobe at level H during the period from time t2 when the read head 22 passes through the beginning of sector #0 to time t3 when the read head 22 passes through the end of sector #1, and then switches the read strobe from level H to level L at time t3. During the period from time t2 to time t3, the signal output from the read head 22r is input into RWC25 and then demodulated.
[0082] No deviation was detected during the time interval t2 to t3, and the first correction of the data read during this period, namely the data read from sector #0 and the data read from sector #1, was successful. In other words, the controller 30 successfully obtained the expected data from sectors #0 to #1.
[0083] Thus, when the disk 11 completes one revolution, the controller 30 performs read operations, including the first correction, on each of the initial multiple target sectors. Then, the controller 30 performs read retry operations on at least one sector from the initial multiple target sectors, including off-track sectors but excluding sectors where the read operation was performed with the head 22 in an on-track state and the first correction was successful.
[0084] Therefore, compared to the comparative example, it is possible to suppress the increase in time spent acquiring data and the increase in computational resources used for error correction. In other words, even if deviations occur, data can be read efficiently.
[0085] Furthermore, according to the first embodiment, if the controller 30 deviates during the reading operation of the target sector, the execution of the first correction is canceled.
[0086] Therefore, in the event of a deviation, the computational resources used for error correction can be further suppressed.
[0087] (Second Implementation)
[0088] In the second embodiment, a disk device equipped with the second correction function will be described. The disk device involved in the second embodiment will be referred to as disk device 1a. Furthermore, in the second embodiment, descriptions of the same configuration, functions, and operations as in the first embodiment will be omitted or provided in a simplified manner.
[0089] Figure 8 This is a flowchart illustrating an example of the steps involved in a read operation for a target sector according to the disk device 1a of the second embodiment.
[0090] First, when the disk 11 completes one revolution, the controller 30 sets all sectors included in the target track 41 as target sectors (S301). Then, the controller 30 performs a read operation on all target sectors within the target track 41 in the order of sector numbers (S302). In S302, the read operation is performed on each target sector. Figure 5 The series of actions shown. In addition, S302 includes the reading of the second ECC written in the sector at the end of the target track 41.
[0091] Next, the controller 30 uses the data read through the processing in S302 to perform the second correction (S303).
[0092] Then, the controller 30 determines whether the first correction or the second correction has been successful in all target sectors (S304).
[0093] For example, if there is more than one off-track sector and more than one sector in which the first correction has failed even though the read operation was performed by the read head 22 in an on-track state, the expected data cannot be obtained even through the second correction for the sector in which the first correction has failed.
[0094] If both the first and second correction attempts have failed (S304: No), the controller 30 sets the sector that does not conform to the off-track pattern as a non-target sector (S305). That is, the controller 30 excludes the sector that does not conform to the off-track pattern from the target of the read retry operation. Then, the control transitions to S302, and the read operation is performed again on all remaining target sectors, that is, the read retry operation.
[0095] If the first or second correction has been successful in all target sectors (S304: Yes), the controller 30 erases all sector numbers from the off-track sector information 311 (SS306). Then, reading of the target track 41 is completed. Furthermore, if no sector numbers are recorded in the off-track sector information 311, the process in S306 is skipped.
[0096] Figure 9 This diagram illustrates an example of the timing of each process during reading from the target track 41 in the disk device 1a of the second embodiment. Figure 9 In, with Figure 7 Similarly, the position of the read head 22 and the waveform of the read gating are depicted. Additionally, the types of error correction performed and the results of the error correction are described. Furthermore, sectors #0 to #6 are set in the target track 41, and the second ECC is written in sector #6. Moreover, for ease of understanding, the sector representing sector #6 is depicted as "the second ECC".
[0097] exist Figure 9 In the example shown, all sectors within the target track 41, namely sectors #0 to #6, are set as the initial read target. Therefore, during the initial rotation of the disk 11, from time t10 when the head 22 passes the beginning of sector #0 to time t11 when it passes the end of sector #6, the controller 30 maintains the read strobe at level H. During this period, the signal output from the read head 22r is taken into the RWC25 for demodulation. The RWC25 performs demodulation, including a first correction, on the signals read from sectors #0 to #6.
[0098] Here, in Figure 9 In the example shown, head 22 deviated when passing through sector #0 and sector #1. Consequently, controller 30... Figure 6 The S204 process shown records the sector numbers of sector #0 and sector #1 in the off-track sector information 311. Additionally, the controller 30... Figure 6 The processing shown in S205 cancels the first correction for the data read from sector #0 and the first correction for the data read from sector #1.
[0099] Furthermore, the controller 30 successfully completed the first correction for the data read from sectors #2 to #4 and sector #6, but failed to complete the first correction for the data read from sector #5. In other words, the controller 30 successfully retrieved the expected data from sectors #2 to #4 and successfully obtained the second ECC from sector #6 through the initial rotation of the disk 11.
[0100] After the disk 11 has completed one revolution, the controller 30, via... Figure 8 The processing shown in S303 involves performing a second correction. In the second correction, error correction is performed on the data read from sector #5, where the first correction failed.
[0101] However, in Figure 9 In the example shown, there are sectors where the first correction was cancelled (i.e., sectors #0 and #1). Data usable in the second correction cannot be obtained from these sectors; therefore, the expected data cannot be obtained from sector #5 via the second correction. Consequently, the controller 30's second correction of the data read from sector #5 fails.
[0102] Next, the controller 30 performs a read retry operation for sectors #0 and #1 as indicated by the off-track sector information 311. No read retry operation is performed for sectors #2 to #6 where the head 22 performed a read operation in an on-track state. During the period from time t12 (when the head 22 passes through the beginning of sector #0) to time t13 (when the head 22 passes through the end of sector #1), the controller 30 maintains the read strobe at level H, and at time t13, switches the read strobe from level H to level L. The signal output from the read head 22r during the period from time t12 to time t13 is input into RWC25 and then demodulated.
[0103] No deviation was detected during the time interval t12 to t13, and the first correction of the data read during this period, namely the data read from sector #0 and the data read from sector #1, was successful. That is, the controller 30 successfully obtained the expected data from sectors #0 to #1.
[0104] When controller 30 obtains the data that has undergone the first correction from sectors #0 to #1, the data in sectors #0 to #6 is complete, therefore, the second correction can be performed. Controller 30 performs the second correction on the data read from sector #5, successfully obtaining the expected data for sector #5. Thus, controller 30 completes the process of obtaining the expected data from all sectors within track 41.
[0105] Thus, in the second embodiment, similarly to the first embodiment, the execution of the read retry action is omitted for sectors where the magnetic head 22 performs the read operation in an on-rail state and the first correction has been successful.
[0106] Therefore, compared to the comparative example, it is possible to suppress the increase in time spent acquiring data and the increase in computational resources used for error correction. In other words, even if deviations occur, data can be read efficiently.
[0107] Figure 10 This diagram illustrates another example of the timing of each process during reading from the target track 41 in the disk device 1a of the second embodiment. Figure 10 In, with Figure 7 Similarly, the position of the read head 22 and the waveform of the read gating are depicted. Additionally, the type of error correction performed and the result of the error correction are described. Furthermore, it is assumed that sectors #0 to #6 are set in one track 41, and the second ECC is written in sector #6.
[0108] exist Figure 10 In the example shown, with Figure 9Similarly, in the example shown, all sectors within the target track 41, namely sectors #0 to #6, are set as the initial read target. Therefore, during the initial rotation of the disk 11, from time t20 when the head 22 passes the beginning of sector #0 to time t21 when it passes the end of sector #6, the controller 30 maintains the read strobe at level H. During this period, the signal output from the read head 22r is input to the RWC 25 and then demodulated. The RWC 25 performs demodulation, including a first correction, on the signals read from sectors #0 to #6.
[0109] Here, in Figure 10 In the example shown, a deviation occurred when the read / write head 22 passed through sector #1. Consequently, the controller 30 recorded the sector number of sector #1 in the deviation sector information 311. Furthermore, the controller 30 canceled the first correction for the data read from sector #1.
[0110] In addition, the controller 30 successfully completed the first correction of the data read from sector #0 and sectors #3 to #6. That is, the controller 30 successfully obtained the expected data from sectors #0 and #3 to #5 through the initial rotation of the disk 11, and successfully obtained the second ECC from sector #6.
[0111] According to the 2nd ECC, if the number of sectors that do not contain erroneous data is only one, the data can be obtained through the 2nd correction regardless of whether the reason for not obtaining the data is a deviation.
[0112] After the controller 30 completes one rotation, the disk 11 completes one rotation, and then... Figure 8 The process shown in S303 involves performing the second correction. Figure 10 In the example shown, only sector #1, which is the off-track sector, in track 41 did not receive data free of errors. Controller 30 retrieves the data already written in sector #1 in an error-free state through the second correction.
[0113] Thus, according to the second embodiment, when the number of off-track sectors is 1, and there is no target sector where the read head 22 is performing a read operation in an on-track state and the first correction has failed, the controller 30 obtains the expected data of the off-track sector through the second correction.
[0114] Therefore, it is possible to suppress the frequency of read retry actions in the event of a deviation.
[0115] Furthermore, when there are two or more off-track sectors, the controller 30 cannot obtain all the expected off-track data in the second correction. In such cases, the controller 30 performs a retry operation to read the off-track sector. Additionally, even if there is only one off-track sector, if the read / write head 22 is performing a read operation in an on-track state and the first correction has failed (sector 8), the controller 30 also cannot obtain all the expected off-track data in the second correction. In such cases, the controller 30 also performs a retry operation to read the off-track sector.
[0116] Thus, according to the second embodiment, when all sectors set on the target track 41 are the target sectors, the controller 30 performs a read operation on all target sectors when the disk 11 completes one revolution, and performs a second correction after the read operation on all target sectors. Furthermore, if there is an off-track sector and the second correction is sufficient to obtain the data already written in that off-track sector, the controller 30 does not perform a read retry operation on that off-track sector.
[0117] Therefore, even if deviation occurs, data can still be read efficiently.
[0118] Furthermore, according to the example described above, the controller 30 performs a reading operation (S302) on all target sectors within the target track 41 in the order of sector numbers, and then performs a second correction (S303) using the data read through the processing of S302. The controller 30 may also cancel the second correction, i.e., S303, and perform the processing of S305 if it is obvious that the second correction will fail based on the result of the execution of S302.
[0119] As described above, the result of processing S302 is that if the number of off-track sectors is two or more, or even if the number of off-track sectors is one but there is a sector (sector 8) where the read / write head 22 is performing a read operation in an on-track state and the first correction has failed, the second correction will fail. In such cases, the controller 30 may also cancel the execution of the second correction and execute the processing of S305.
[0120] exist Figure 9 In the example shown, during the initial rotation of disk 11 (times t10-t11), at the point when head 22 passes sector #1, the number of off-track sectors exceeds one. Therefore, at this point, the second ECC will obviously fail. Controller 30 can also detect this situation (the number of off-track sectors exceeds one) and cancel the first execution of the second ECC accordingly.
[0121] In addition, in the second embodiment, cross-access technology can also be applied to error correction codes on a track-by-track basis.
[0122] Figure 11 This diagram illustrates another example of the timing of each process during reading of the target track 41 when the interleaved access technique is applied to the disk device 1a of the second embodiment. Figure 11 In, with Figure 7 Similarly, the position of the read head 22 and the waveform of the read gating are depicted. Additionally, the type of error correction performed and the result of the error correction are depicted. Furthermore, sectors #0 to #6 are provided on one track 41. And, in sector #5, a second ECC #0 generated based on data already written in sectors #0, #2, and #4 is written; in sector #6, a second ECC #1 generated based on data already written in sectors #1 and #3 is written.
[0123] exist Figure 11 In the example shown, with Figure 9 Similarly, in the example shown, all sectors within the target track 41, namely sectors #0 to #6, are set as the initial read target. Therefore, during the initial rotation of the disk 11, from time t30 when the head 22 passes the beginning of sector #0 to time t31 when it passes the end of sector #6, the controller 30 maintains the read strobe at level H. During this period, the signal output from the read head 22r is input to the RWC 25 and then demodulated. The RWC 25 performs demodulation, including a first correction, on the signals read from sectors #0 to #6.
[0124] Here, in Figure 11 In the example shown, a deviation occurred when the read / write head 22 passed through sector #0 and when it passed through sector #1. Consequently, the controller 30 records the sector number of sector #0 and the sector number of sector #1 in the deviation sector information 311. Furthermore, the controller 30 cancels the first correction for the data read from sector #0 and the first correction for the data read from sector #1.
[0125] In addition, the controller 30 successfully completed the first correction of the data read from sectors #2 to #6. That is, through the initial rotation of the disk 11, the controller 30 successfully obtained the expected data from sectors #2 to #4, successfully obtained the second ECC #0 from sector #5, and successfully obtained the second ECC #1 from sector #6.
[0126] As mentioned above, the second ECC#0 is generated based on the data already written to sectors #0, #2, and #4. Therefore, if there is only one off-track sector included in sectors #0, #2, and #4, and there is no target sector in sectors #0, #2, and #4 that is performing a read operation in an on-track state and where the first correction has failed, the controller 30 can obtain the expected data for that off-track sector through the second correction.
[0127] Furthermore, the second ECC#1 is generated based on the data already written to sectors #1 and #3. Thus, if there is only one off-track sector included in sectors #1 and #3, and there is no target sector in sectors #1 and #3 that is performing a read operation in an on-track state and where the first correction has failed, the controller 30 can obtain the expected data for that off-track sector through the second correction.
[0128] exist Figure 11 In the example shown, sectors #0, #2, and #4 each contain one off-track sector. Since there is no target sector in sectors #0, #2, and #4 that is in-track and the first correction has failed, the controller 30 successfully obtains the expected data for sector #0 using the second correction of the second ECC #0. Similarly, sectors #1 and #3 each contain one off-track sector. Since there is no target sector in sectors #1 and #3 that is in-track and the first correction has failed, the controller 30 successfully obtains the expected data for sector #1 using the second correction of the second ECC #1.
[0129] Thus, the second embodiment can be used in conjunction with cross-access technology. Furthermore, the cross-access technology can also be used in conjunction with the first embodiment.
[0130] Several embodiments of the present invention have been described, but these embodiments are merely illustrative and not intended to limit the scope of the invention. These new embodiments can be implemented in a wide variety of other ways, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included within the scope and spirit of the invention, and are included within the scope of the invention as described in the claims and its equivalents.
Claims
1. A disk drive, comprising: A hard disk having multiple tracks with sector 1. A motor that causes the disk to rotate; Magnetic head; and Controller The controller During one revolution of the disk, a first read operation, including a first error correction, is performed on each of the second sectors of one or more of the multiple first sectors that are the read targets. The first error correction is performed on a sector-by-sector basis. For each of the more than one third sectors in one or more second sectors, a second read operation including the first error correction is performed, wherein the more than one third sector includes second sectors that conform to the fourth sector but does not include second sectors that conform to the fifth sector, wherein the fourth sector is the sector in which the read head performs the first read operation in an off-track state, and the fifth sector is the sector in which the read head performs the first read operation in an on-track state and the first error correction has been successful.
2. The disk drive according to claim 1, If the read / write head becomes off-track during the first read operation for sector 6, the controller cancels the execution of the first error correction included in the first read operation for sector 6, where sector 6 is one of the more than one second sector.
3. The disk drive according to claim 2, The plurality of first sectors includes a seventh sector, which is written with error correction codes for second error correction, the second error correction being performed on a track-by-track basis. The controller When all of the plurality of first sectors are read targets and one or more second sectors are the plurality of first sectors, when the disk completes one revolution, after the first read operation is performed on the plurality of first sectors, the second error correction using the error correction code is performed. If the plurality of first sectors includes a first sector that conforms to the fourth sector and the data written to the first sector that conforms to the fourth sector can be obtained through the second error correction, the second read operation for the first sector that conforms to the fourth sector is not performed.
4. The disk drive according to claim 3, When the number of first sectors that conform to the fourth sector included in the plurality of first sectors is 1, and the plurality of first sectors does not include first sectors that conform to the eighth sector, the controller can obtain the data written to the first sector that conforms to the fourth sector through the second error correction, where the eighth sector is the sector in which the read / write head performs the first read operation in an on-rail state and the first error correction has failed.
5. The disk drive according to claim 3 or 4, If the number of first sectors that conform to the fourth sector included in the plurality of first sectors is two or more, or if the number of first sectors that conform to the fourth sector included in the plurality of first sectors is one and the plurality of first sectors includes a first sector that conforms to the eighth sector where the first error correction has failed, the controller performs the second read operation on the first sector that conforms to the fourth sector.
6. The disk drive according to claim 3 or 4, If the number of first sectors that conform to the fourth sector included in the plurality of first sectors is two or more, or if the number of first sectors that conform to the fourth sector included in the plurality of first sectors is one and the plurality of first sectors includes a first sector that conforms to the eighth sector where the first error correction has failed, the controller cancels the execution of the second error correction and executes the second read operation.
7. A method for reading a disk device, comprising: When a disk with multiple first sectors rotates once by a motor, a first read operation including a first error correction is performed on each of the second sectors that are the read targets among the multiple first sectors. The first error correction is error correction on a sector-by-sector basis. Following the first read operation, a second read operation, including the first error correction, is performed on each of the third sectors in one or more of the one or more second sectors. The one or more third sectors include second sectors that conform to the fourth sector but do not include second sectors that conform to the fifth sector. The fourth sector is the sector in which the read / write head performed the first read operation in an off-track state, and the fifth sector is the sector in which the read / write head performed the first read operation in an on-track state and the first error correction was successful.