Magnetic Disk Device
The magnetic disk device addresses the challenge of Adjacent Track Interference by using a controller to manage data reads and writes efficiently, starting the write operation before the magnetic head reaches the reference position, thus reducing the time needed for track-by-track rewriting.
Patent Information
- Application Number
- JP2022046431
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-23
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2042-03-23
AI Technical Summary
Existing magnetic disk drives face challenges in efficiently managing Adjacent Track Interference (ATI), which leads to difficulties in reading data from adjacent tracks due to accumulated interference, necessitating frequent track-by-track rewriting.
A magnetic disk device is configured with a magnetic disk, a magnetic head, a buffer memory, and a controller. The controller executes a sequential read operation of data segments from multiple sectors, stores them in the buffer memory, acquires parity, and then writes the data segments and parity in a manner that starts the write operation before the magnetic head reaches the reference position.
This configuration significantly reduces the time required for track-by-track rewriting by allowing the write operation to commence before the magnetic head reaches the reference position, thereby completing the rewrite operation in less time compared to traditional methods.
Smart Images

Figure 0007693602000001 
Figure 0007693602000002 
Figure 0007693602000003
Abstract
Description
Technical Field
[0001] This embodiment relates to a magnetic disk drive.
Background Art
[0002] As one of the influences on adjacent tracks when writing to a magnetic disk, Adjacent Track Interference (ATI) is known. Depending on the number of writes to one track, the influence of ATI received by adjacent tracks accumulates, and eventually, it becomes difficult to read the data on the adjacent tracks. Therefore, before it becomes difficult to read the data on the adjacent tracks, all the data is rewritten for the adjacent tracks.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of one embodiment is to provide a magnetic disk drive capable of suppressing the time required for track-by-track rewriting.
Means for Solving the Problems
[0005] According to one embodiment, a magnetic disk device includes a magnetic disk, a magnetic head, a buffer memory, and a controller. A first track is provided on the magnetic disk. On the first track, a plurality of first sectors in which data segments are respectively stored and a second sector in which parity for first error correction is stored are arranged in this order from a first position in the write / read direction. The magnetic head performs write / read in the write / read direction with respect to the first track. The controller executes a first operation of sequentially reading a first data segment, which is the data segment stored in each of the plurality of first sectors, from each of the plurality of first sectors and storing the group of the read first data segments in the buffer memory. The controller acquires first parity from the group of the read first data segments. The controller executes a second operation of writing each first data segment among the group of the first data segments stored in the buffer memory to the first sector that is the read source among the plurality of first sectors and writing the first parity to the second sector. The timing of starting the second operation is before the timing when the magnetic head reaches the first position.
Brief Description of the Drawings
[0006]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
DETAILED DESCRIPTION OF THE INVENTION
[0007] Hereinafter, a magnetic disk device according to an embodiment will be described in detail with reference to the accompanying drawings. Note that the present invention is not limited to this embodiment.
[0008] (Embodiment) FIG. 1 is a schematic diagram showing an example of the configuration of a magnetic disk device 1 according to the embodiment.
[0009] The magnetic disk device 1 is connected to a host 2. The magnetic disk device 1 can receive access commands such as a write command and a read command from the host 2.
[0010] The magnetic disk device 1 includes a magnetic disk 11 having a magnetic layer formed on its surface. The magnetic disk device 1 writes data to the magnetic disk 11 or reads data from the magnetic disk 11 in response to an access command.
[0011] Writing and reading of data are performed via the magnetic head 22. In addition to the magnetic disk 11, the magnetic disk device 1 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 magnetic head 22, a hard disk controller (HDC) 23, a head IC 24, a read / write channel (RWC) 25, a processor 26, a RAM 27, a FROM (Flash Read Only Memory) 28, and a buffer memory 29.
[0012] The magnetic disk 11 is rotated at a predetermined rotational speed by a coaxially attached spindle motor 12. The spindle motor 12 is driven by the motor driver IC 21.
[0013] The processor 26 controls the rotation of the spindle motor 12 and the rotation of the VCM 16 via the motor driver IC 21.
[0014] The magnetic head 22 writes and reads information to / from the magnetic disk 11 by means of the write core 22w and the read core 22r provided thereon. Also, the magnetic head 22 is attached to the tip of the actuator arm 15. The magnetic head 22 is moved in the radial direction of the magnetic disk 11 by the VCM 16. Note that either one or both of the write core 22w and the read core 22r provided on the magnetic head 22 may be provided in plural for a single magnetic head 22.
[0015] When the rotation of the magnetic disk 11 stops, etc., the magnetic head 22 is moved onto the ramp 13. The ramp 13 is configured to hold the magnetic head 22 at a position separated from the magnetic disk 11.
[0016] During the read operation, the head IC 24 amplifies and outputs the signal read by the magnetic head 22 from the magnetic disk 11, and supplies it to the RWC 25. Also, during the write operation, the head IC 24 amplifies the signal corresponding to the data to be written supplied from the RWC 25, and supplies it to the magnetic head 22.
[0017] The HDC 23 controls the transmission and reception of data with the host 2 via the I / F bus, and controls the buffer memory 29, etc.
[0018] The buffer memory 29 is used as a buffer for data transmitted and received with the host 2. For example, the buffer memory 29 is used to temporarily store the data to be written or the data read from the magnetic disk 11.
[0019] The buffer memory 29 is 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 can be composed of, for example, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or a combination thereof. Note that the buffer memory 29 may be composed of any non-volatile memory.
[0020] The RWC 25 performs modulation such as error correction coding on the data to be written supplied from the HDC 23, and supplies the modulated data to the head IC 24. Also, the RWC 25 performs demodulation including error correction processing on the signal read from the magnetic disk 11 and supplied from the head IC 24, and outputs the demodulated signal to the HDC 23 as digital data.
[0021] The processor 26 is, for example, a CPU (Central Processing Unit). The RAM 27, FROM (Flash Read Only Memory) 28, and buffer memory 29 are connected to the processor 26.
[0022] FROM28 is a non-volatile memory. Firmware (program data) and various operation parameters are stored in FROM28. Note that the firmware may be stored in the magnetic disk 11.
[0023] RAM27 is composed of, for example, DRAM, SRAM, or a combination thereof. RAM27 is used as an operation memory by the processor 26. RAM27 is used as an area where the firmware is loaded and an area where various management data are temporarily stored.
[0024] The processor 26 performs overall control of the magnetic disk device 1 according to the firmware stored in FROM28 or the magnetic disk 11. For example, the processor 26 loads the firmware from FROM28 or the magnetic disk 11 to RAM27 and executes control of the motor driver IC21, the head IC24, the RWC25, the HDC23, etc. according to the loaded firmware.
[0025] The configuration including the HDC23, the RWC25, and the processor 26 can also be regarded as a controller 30 that controls the operation of the magnetic disk device 1. The controller 30 may include other elements (such as RAM27, FROM28, or the buffer memory 29, etc.) in addition to these.
[0026] Also, the firmware program may be stored in the magnetic disk 11. Also, part or all of the functions of the processor 26 may be realized by a hardware circuit such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0027] Note that the number of magnetic disks 11 provided in the magnetic disk device 1 is not limited to one. Further, the magnetic disk device 1 may have the number of actuator arms 15 and magnetic heads 22 corresponding to the number of magnetic disks 11. Further, when the magnetic disk device 1 has a plurality of magnetic heads 22, the plurality of magnetic heads 22 may be moved integrally, or the plurality of magnetic heads 22 may form a plurality of groups that can move independently.
[0028] FIG. 2 is a diagram showing an example of the configuration of the magnetic disk 11 of the embodiment. Servo data used for positioning the magnetic head 22 is written to the magnetic layer formed on the surface of the magnetic disk 11, for example, by a servo writer or by self-servo write (SSW).
[0029] FIG. 2 shows a servo area 41 arranged radially as an example of the arrangement of servo areas where servo data is written. In the circumferential direction, between two servo areas 41, there is a data area 42 where data can be written. In the radial direction of the magnetic disk 11, a plurality of concentric tracks 50 are provided. On the track 50, in the data area 42, a plurality of sectors where data of a predetermined size (sector size) is written are provided.
[0030] Servo data includes servo marks, Gray codes, burst patterns, and post codes. The servo mark indicates the start of the servo data. The Gray code includes an ID for identifying each track 50 provided on the magnetic disk 11, i.e., a track number, and an ID for identifying each servo sector (i.e., servo area 41) on the track 50, i.e., a servo sector number. The burst pattern is data used to detect the amount of positional deviation from the center of the track indicated by the track number included in the Gray code. The track number included in the Gray code is given as, for example, an integer value, and it is possible to obtain an offset amount below the decimal point based on the position indicated by the track number by demodulating the burst pattern. That is, by demodulating the burst pattern, the current position of the magnetic head 22 in the radial direction can be obtained. The post code is data for correcting the positional deviation from the ideal shape of the track 50 defined by the Gray code and the burst pattern.
[0031] When writing data to the magnetic disk 11 or reading data from the magnetic disk 11, the controller 30 performs positioning of the magnetic head 22, i.e., seek control and tracking control, based on the servo data read by the magnetic head 22 from the servo area 41.
[0032] FIG. 3 is a schematic diagram showing an example of the configuration of one track 50 of the embodiment. In this figure, the illustration of the servo area 41 is omitted. Also, the write / read direction is illustrated in this figure. The write / read direction is the direction in which the magnetic head 22 moves relative to the track 50 due to the rotation of the magnetic disk 11. The magnetic head 22 writes or reads data in the write / read direction with respect to each track 50.
[0033] Each sector provided on the track 50 is identified by a sector number. A sector with a sector number of x is denoted as sector #x. In the example shown in FIG. 3, the track 50 has 11 sectors from sector #0 to sector #10.
[0034] The data written to each sector includes an error correction code. RWC25 can perform error correction on a per-sector basis using the error correction code for the data read from one sector. This per-sector error correction is an example of second error correction.
[0035] The method of error correction coding for per-sector error correction is not limited to a specific method. In one example, a Low-Density Parity-Check Code is applied as the method of error correction coding for per-sector error correction.
[0036] Eleven sectors are arranged in ascending order of sector numbers in the write / read direction from the reference position. In other words, the reference position is the position where the sector with the smallest sector number within track 50 is located. Note that the reference position is an example of the first position. In this specification, the head and the tail are defined based on the reference position and the write / read direction.
[0037] For example, regarding the section from when the magnetic head 22 passes the reference position until it passes the reference position next time, that is, sectors #0 to #10, the sector that the magnetic head 22 passes through first, that is, sector #0, is denoted as the head sector. Regarding sectors #0 to #10, the sector that the magnetic head 22 passes through last, that is, sector #10, is denoted as the tail sector.
[0038] Also, the position where the magnetic head 22 starts to pass over a sector is denoted as the head of the sector. The position where the magnetic head 22 finishes passing over a sector is denoted as the tail of the sector.
[0039] The last sector #10 is a sector for storing parity. That is, the write operation for a unit of track 50 is performed as follows, for example. First, data is written to sectors #0 to #9 in the order of sector numbers. Parity generated based on the group of data written to sectors #0 to #9 is written to the last sector #10 of track 50.
[0040] The parity written to sector #10 protects the group of data written to sectors #0 to #9 from the occurrence of errors. That is, the parity written to sector #10 protects data at the track level. Error correction using the parity written to sector #10 is referred to as track-level error correction. Track-level error correction is an example of first error correction.
[0041] Sectors where data is stored, such as sectors #0 to #9, are referred to as data sectors. The data written to data sector #x may be referred to as data #x. Data #x is an example of a data segment. Sectors where parity is stored, such as sector #10, are referred to as parity sectors.
[0042] The error correction coding method for track-level error correction is not limited to a specific method. In one example, parity is generated by performing XOR for each bit position on data #0 to data #9.
[0043] As described above, when data is written to one track 50 (referred to as the first track 50), the track 50 (the second track 50) adjacent to the first track 50 is affected by ATI. The influence of ATI received by the second track 50 accumulates according to the number of write operations to the first track 50. If the influence of ATI received by the second track 50 becomes too large, it becomes difficult to read the data stored in the second track 50.
[0044] Before each track 50 becomes difficult to read data due to the influence of ATI, the controller 30 performs data rewrite.
[0045] The controller 30 estimates the degree of influence of ATI received by each track 50 using, for example, the ATI management information 271.
[0046] FIG. 4 is a schematic diagram showing an example of the data structure of the ATI management information 271 of the embodiment.
[0047] The ATI management information 271 has a data configuration of a table in which an ATI counter is recorded for each track 50. When the controller 30 writes data to a track 50, the controller 30 increments the ATI counter for the track 50 in the vicinity of the track 50 to be written. The value added by one increment is determined by the designer in an arbitrary manner. In one example, the closer to the track 50 to be written, the larger the value is incremented. That is, the AIT counter indicates the degree of influence of ATI accumulated in the corresponding track 50.
[0048] The controller 30 compares the ATI counter of each track 50 with a threshold value. When an ATI counter exceeding the threshold value is found, the controller 30 performs a rewrite on the track 50 corresponding to the ATI counter. After the rewrite, the controller 30 resets the ATI counter of the rewritten track 50.
[0049] Note that the threshold value compared with the ATI counter may be a common value for all tracks 50 or may be set individually for each track. Further, the controller 30 may change the threshold value during operation.
[0050] For example, when track - unit writing is performed on a certain track 50 (referred to as the third track 50), all data on the third track 50 is in a state protected by parity. That is, the protection by parity is effective.
[0051] After the controller 30 performs an overwrite on some data sectors of the third track 50, the third track 50 will be in a state where all data is not protected by parity. That is, the protection by parity becomes invalid.
[0052] The track 50 with invalid parity protection is more vulnerable to the influence of ATI compared to the track 50 with valid parity protection. Therefore, when the parity protection is invalid, the controller 30 may use a smaller value as the threshold compared to when the parity protection is valid.
[0053] Specifically, after the controller 30 performs a track - unit write on the third track 50, the first threshold is used for comparison with the ATI counter corresponding to the third track 50. Then, when an overwrite is performed on some data sectors of the third track 50, the parity protection of the third track 50 becomes invalid. Then, the controller 30 uses a second threshold smaller than the first threshold for comparison with the ATI counter corresponding to the third track 50. This prevents the read of the data stored in the third track 50 from being difficult due to the influence of ATI even when the parity protection becomes invalid.
[0054] Note that the method of changing the threshold described above is just an example. The threshold can be changed in any way, or the threshold may not be changed.
[0055] The controller 30 performs a track - unit rewrite on the track 50 where the ATI counter exceeds the threshold. The track - unit rewrite represents the rewrite operation.
[0056] Here, the technology to be compared with the embodiment will be described. According to the technology to be compared with the embodiment, during the rewrite operation, the controller positions the read core of the magnetic head on the track to be rewritten, and reads data and parity in order from the reference position of the track to be rewritten. When the reading of data and parity from the track to be rewritten is completed, the controller positions the write core of the magnetic head on the track to be rewritten, and writes data and parity in order from the reference position of the track to be rewritten.
[0057] According to the comparative example, in each of the track unit read and the track unit write, the access starts from the reference position of the track to be rewritten. Therefore, each of the track unit read and the track unit write requires one rotation, and in addition, one more rotation of the magnetic disk is required between the track unit read and the track unit write. So, at least the time for the magnetic disk to rotate three times is required for the rewrite operation.
[0058] In the embodiment, the controller 30 starts the track unit write without waiting for the magnetic head 22 (exactly the write core 22w) to reach the reference position. That is, the timing of starting the track unit write is before the timing when the magnetic head 22 reaches the reference position. Thereby, the rewrite operation is completed in a shorter time compared to the comparative example.
[0059] Hereinafter, the track unit read included in the rewrite operation is referred to as the track read operation. The track unit write included in the rewrite operation is referred to as the track write operation.
[0060] FIG. 5 is a diagram for explaining an example of a rewrite operation according to an embodiment. This figure shows the temporal transition of the position of the magnetic head 22 and the type of control by the controller 30 during the rewrite operation. Also, the "#x (where x is an integer from 0 to 9)" shown as the position of the magnetic head 22 means sector #x which is a data sector. Also, "P" shown as the position of the magnetic head 22 means a parity sector, that is, sector #10. In the description hereinafter, the track 50 to be rewritten is referred to as the target track 50.
[0061] When the positioning of the read core 22r to the target track 50 is completed and the read preparation is complete, the controller 30 starts the track read operation from the sector where the magnetic head 22 first arrives without waiting for the magnetic head 22 to reach the reference position. That is, the timing of starting the track read operation is the timing before the magnetic head 22 reaches the reference position. In the example shown in FIG. 5, the track read operation is started at time t1 when the magnetic head 22 reaches the head of sector #2.
[0062] Note that the read preparation includes various processes necessary for starting the read, such as setting parameters related to the current of the magnetic head 22.
[0063] The controller 30 executes reads in this order for sector #2, sector #3, sector #4, sector #5, sector #6, sector #7, sector #8, sector #9, and the parity sector, until the magnetic head 22 reaches the reference position, that is, the head position of sector #0 (in other words, the end of the parity sector). Then, the controller 30 continues the track read operation and executes reads in this order for sector #0 and sector #1.
[0064] At time t2, based on time t1 when the track read operation was started, the magnetic disk 11 finishes one rotation, and the read of all the data and parity stored in the target track 50 is completed. That is, the track read operation ends.
[0065] When the track lead operation ends, the controller 30 positions the write core 22w of the magnetic head 22 at the target track 50 and prepares for writing. The preparation for writing includes various processes necessary for starting writing, such as setting parameters related to the current of the magnetic head 22.
[0066] While the positioning of the write core 22w and the preparation for writing are being performed, the rotation of the magnetic disk 11 continues. When the positioning of the write core 22w and the preparation for writing are completed, the controller 30 starts the track write operation from the sector where the magnetic head 22 first arrives without waiting for the magnetic head 22 to reach the reference position. In the example shown in FIG. 5, the magnetic disk 11 rotates by two sectors from time t2, and the track write operation is started at time t3 when the magnetic head 22 reaches the head of sector #4.
[0067] The controller 30 performs writing in this order for sector #4, sector #5, sector #6, sector #7, sector #8, sector #9, and the parity sector until the magnetic head 22 reaches the reference position, that is, the head position of sector #0 (in other words, the end of the parity sector). Then, the controller 30 continues the track write operation and performs writing in this order for sector #0, sector #1, sector #2, and sector #3.
[0068] At time t52, the magnetic disk 11 has completed one rotation with reference to the time t3 when the track write operation was started, and the writing of all data and parity to the target track 50 is completed. That is, the track write operation ends and the rewrite operation ends.
[0069] In the example shown in FIG. 5, the rewrite operation starts at time t1 and ends at time t4. The rewrite operation ends while the magnetic disk 11 rotates two full rotations and an additional two sectors. Compared with a comparative example that required three rotations of the magnetic disk for the rewrite operation, the time required for the rewrite operation is suppressed.
[0070] In this way, as soon as the preparation is completed after the track read operation, the track write operation is started. Therefore, the time required for the rewrite operation is significantly suppressed.
[0071] Next, the control of the controller 30 for realizing the operation shown in FIG. 5 will be described.
[0072] FIG. 6 is a flowchart showing an example of the operation of the ATI counter by the controller 30 of the embodiment.
[0073] When the controller 30 writes data to a certain track 50 (S101), it increments the ATI counter of the track 50 in the vicinity of the track 50 where the writing destination is located (S102). In S102, the controller 30 may increment the ATI counters of the tracks 50 adjacent to both sides in the radial direction of the track 50 where the writing destination is located, or may increment the ATI counters of all the tracks 50 within a predetermined range in the radial direction centered on the track 50 where the writing destination is located. The amount added by one increment may be fixed or may vary according to the distance from the track 50 where the writing destination is located.
[0074] The operation of the ATI counter operation ends by S102. Note that the controller 30 executes the series of operations shown in FIG. 6 every time data is written.
[0075] FIG. 7 is a flowchart showing an example of the operation of detecting the track 50 to be rewritten by the controller 30 of the embodiment.
[0076] The controller 30 refers to the ATI management information 271 and determines whether there is a track 50 for which the ATI counter has exceeded the threshold value (S201). If there is a track 50 for which the ATI counter has exceeded the threshold value (S201: Yes), a rewrite operation is performed on that track 50 (S202). After the rewrite operation, the controller 30 resets the ATI counter of that track 50 to "0" (S203). Then, the operation of detecting the track 50 to be rewritten ends.
[0077] If there is no track 50 for which the ATI counter has exceeded the threshold value (S201: No), the operation of detecting the track 50 to be rewritten ends.
[0078] Note that the controller 30 repeatedly executes the series of operations shown in FIG. 7. For example, the controller 30 executes the above operation when the magnetic disk device 1 is not processing a command from the host 2. Or, the controller 30 executes the above operation at a predetermined period. Or, the controller 30 executes the above operation every time a predetermined amount of data is written to the magnetic disk 11.
[0079] FIG. 8 is a flowchart showing an example of the rewrite operation of the embodiment.
[0080] The controller 30 positions the read core 22r of the magnetic head 22 at the target track 50 (that is, the track 50 to be rewritten) (S301). Note that the target track 50 is an example of the first track.
[0081] When the positioning of the read core 22r is completed and the read preparation is complete, the controller 30 starts the track read operation without waiting for the read core 22r to reach the reference position (S302). Note that the track read operation is an example of the first operation.
[0082] When the track read operation is completed (S303), the controller 30 positions the write core 22w of the magnetic head 22 at the target track 50 (S304).
[0083] When the positioning of the light core 22w is completed and the light is ready, the controller 30 starts the track light operation (S305) without waiting for the light core 22w to reach the reference position. Note that the track light operation is an example of the second operation.
[0084] When the track light operation is completed, the rewrite operation ends.
[0085] FIG. 9 is a flowchart showing an example of the track read operation of the embodiment.
[0086] In the track read operation, the loop process from S401 to S409 is repeatedly executed until the magnetic disk 11 makes one rotation.
[0087] In the loop process, the controller 30 determines whether the read core 22r is located in the data sector (S401). If the read core 22r is located in the data sector (S401), the controller 30 reads data from the data sector by the read core 22r (S402), and executes sector unit error correction on the read data by the RWC25 (S403).
[0088] When the sector unit error correction is successful (S404: Yes), the controller 30 proceeds with the operation of obtaining new parity using the read data (S405). The new parity is an example of the first parity.
[0089] In the track read operation, the controller 30 obtains parity using the data read from all the data sectors. The parity is, for example, obtained by XOR of the data read from all the data sectors. The controller 30 proceeds with the XOR operation every time data is normally read from the data sector (that is, every time the sector unit error correction for the read data is successful).
[0090] Subsequent to S405, the controller 30 stores the read data in the buffer memory 29 (S406). Then, the control transfers to S409, which will be described later.
[0091] If the error correction at the sector unit fails (S404: No), that is, if the data cannot be read normally from the data sector, the controller 30 skips the processes of S405 and S406, and the control transfers to S409. The data that was supposed to be read normally from the data sector (i.e., the data for which the error correction at the sector unit failed) is not used in the XOR operation until it is corrected by the error correction at the track unit, which will be described later.
[0092] If the read core 22r is not located in the data sector (S401: No), the controller 30 determines whether the read core 22r is located in the parity sector (S407). If the read core 22r is not located in the parity sector (S407: No), the control transfers to S409.
[0093] If the read core 22r is located in the parity sector (S407: Yes), the controller 30 reads the parity from the parity sector (S408). Then, the control transfers to S409.
[0094] Note that the parity read in S408 can be used to perform the error correction at the track unit only when it is equal to the parity newly calculated by S405 and S415, which will be described later. Therefore, the parity read in S408 may not be equal to the parity newly calculated by S405 and S415, which will be described later. The parity read in S408 is referred to as the old parity. The old parity is an example of the second parity.
[0095] In S409, the controller 30 determines whether the magnetic disk 11 has rotated once since the start of the track read operation. If the magnetic disk 11 has not rotated yet (S409: No), the control transfers to S401.
[0096] When the magnetic disk 11 makes one rotation (S409: Yes), the controller 30 determines whether there is data for which error correction at the sector unit has failed (S410). That is, the controller 30 determines whether error correction at the sector unit has failed during reading from any data sector.
[0097] If there is data for which error correction at the sector unit has failed (S410: Yes), the controller 30 determines whether the old parity is valid (S411). If the old parity is valid (S411: Yes), the controller 30 performs error correction at the track unit in order to correct the data for which error correction at the sector unit has failed (S412).
[0098] Subsequently, the controller 30 completes an operation to obtain new parity using the data corrected by error correction at the track unit (S413). As a result, new parity based on the data read from all data sectors is obtained.
[0099] The controller 30 stores the new parity in the buffer memory 29 (S414).
[0100] Then, the controller 30 stores the data corrected by error correction at the track unit in the buffer memory 29 (S415), and the track write operation ends.
[0101] If the old parity is not valid (S411: No), the controller 30 cannot obtain correct data even if error correction at the track unit is performed. Therefore, the controller 30 executes a predetermined process (S417), and the track write operation ends.
[0102] The predetermined process is arbitrarily designed by the designer. For example, the controller 30 may perform reading again for a data sector for which data could not be read normally. Alternatively, the controller 30 may execute the track read operation again.
[0103] If there is no data for which error correction at the sector unit has failed (S410: No), new parity is obtained by the process of S405 executed last. The controller 30 stores the new parity in the buffer memory 29 (S416), and the track write operation ends.
[0104] By the series of processes shown in FIG. 9, data is sequentially read from each data sector, and the group of the read data is stored in the buffer memory 29. This series of processes is completed during one rotation of the magnetic disk 11.
[0105] FIG. 10 is a flowchart showing an example of the track write operation of the embodiment.
[0106] In the track write operation, the loop process from S501 to S505 is repeatedly executed until the magnetic disk 11 makes one rotation.
[0107] In the loop process, the controller 30 determines whether the write core 22w is located in a data sector (S501). If the write core 22w is located in a data sector (S501: Yes), the controller 30 writes the data read from the data sector and stored in the buffer memory 29 to the data sector (S502). Then, the control transfers to S505.
[0108] If the write core 22w is not located in a data sector (S501: No), the controller 30 determines whether the write core 22w is located in a parity sector (S503). If the write core 22w is not located in a parity sector (S503: No), the control transfers to S505.
[0109] When the write core 22w is located in the parity sector (S503: Yes), the controller 30 writes the new parity acquired in the track read operation and stored in the buffer memory 29 to the parity sector (S504). Then, the control transfers to S505.
[0110] When the write core 22w is not located in the parity sector (S503: No), the control transfers to S505.
[0111] In S505, the controller 30 determines whether or not the magnetic disk 11 has made one rotation since the track write operation started. If the magnetic disk 11 has not made one rotation yet (S505: No), the control transfers to S501.
[0112] When the magnetic disk 11 has made one rotation (S505: Yes), the track write operation ends.
[0113] By the series of processes shown in FIG. 10, each data among the group of data stored in the buffer memory 29 is written to the data sector of the read source, and the new parity is written to the parity sector. This series of processes is completed during one rotation of the magnetic disk 11.
[0114] Note that in the example described above, the controller 30 started the track read operation without waiting for the magnetic head 22 to reach the reference position. Regarding the track read operation, it may be started at the timing when the magnetic head 22 reaches the reference position. Even if the controller 30 is configured to start the track read operation at the timing when the magnetic head 22 reaches the reference position, the subsequent track write operation can be started as soon as the positioning and preparation of the write core 22w are completed. Therefore, the time required for the rewrite operation can be suppressed.
[0115] Also, in the track read operation shown in FIG. 9, in S414 or S416, new parity was stored in the buffer memory 29. And in the track write operation shown in FIG. 10, the new parity stored in the buffer memory 29 was written to the parity sector. The new parity does not necessarily have to be stored in the buffer memory 29. For example, the new parity may be calculated in the RWC25 and held in the RWC25 during the track read operation, and then, in the subsequent track write operation, the new parity held in the RWC25 may be written to the parity sector.
[0116] Thus, according to the embodiment, in the rewrite operation, the controller 30 executes a track read operation, acquisition of new parity, and a track write operation after the track read operation. In the track read operation, the controller 30 sequentially reads data from each data sector and stores the group of the read data in the buffer memory 29. The controller 30 acquires new parity from the group of the read data. In the track write operation, the controller 30 reads each data of the group of the data stored in the buffer memory 29 to the original data sector and writes the new parity to the parity sector. The controller 30 starts the track write operation without waiting for the magnetic head 22 to reach the reference position.
[0117] Therefore, the time required for the rewrite operation is suppressed.
[0118] Also, according to the embodiment, the controller 30 proceeds with the operation of acquiring new parity every time it reads data from the data sector in the track read operation.
[0119] Therefore, the controller 30 can obtain new parity when the track read operation ends.
[0120] Note that the controller 30 may calculate new parity after acquiring data for all data tracks from the target track 50, and then start the track write operation.
[0121] Also, according to the embodiment, in the track read operation, the controller 30 reads the old parity when the magnetic head 22 passes through the parity sector. The controller 30 performs error correction on a per-sector basis for the data each time data is read from one data sector, and if the per-sector error correction is successful, stores the data in the buffer memory 29. When the per-sector error correction fails, the controller 30 performs error correction on a per-track basis using the old parity, and stores the data corrected through the per-track error correction in the buffer memory.
[0122] Therefore, even if the per-sector error correction fails, if the old parity is valid, it is possible to read the data normally.
[0123] Also, according to the embodiment, the controller 30 completes the track read operation while the magnetic disk 11 makes one rotation after starting the track read operation. After completing the track read operation, the controller 30 starts the track write operation without waiting for the magnetic head 22 to reach the reference position. The controller 30 completes the track write operation while the magnetic disk 11 makes one rotation after starting the track write operation.
[0124] Therefore, the controller 30 can complete the rewrite operation in a time shorter than the time it takes for the magnetic disk 11 to make three rotations.
[0125] Also, according to the embodiment, the controller 30 estimates the degree of influence of ATI, and performs a rewrite operation on the track 50 for which the degree of influence of ATI exceeds the threshold.
[0126] Note that the trigger for starting the rewrite operation does not necessarily have to be based on the degree of influence of ATI. The designer can arbitrarily set the conditions under which the controller 30 executes the rewrite operation.
[0127] Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and its equivalent scope.
Explanation of Reference Numerals
[0128] 1 Magnetic disk device, 2 Host, 11 Magnetic disk, 12 Spindle motor, 13 Lamp, 15 Actuator arm, 21 Motor driver IC, 22 Magnetic head, 22r Read core, 22w Write core, 23 HDC, 24 Head IC, 25 RWC, 26 Processor, 27 RAM, 28 FROM, 29 Buffer memory, 30 Controller, 41 Servo area, 42 Data area, 50 Track, 271 ATI management information.
Claims
1. A magnetic disk provided with a first track in which a plurality of first sectors each storing a data segment and a second sector storing parity for first error correction are arranged in this order in the write / read direction from a first position; A magnetic head that performs write / read in the write / read direction with respect to the first track; A buffer memory; Executing a first operation of sequentially reading first data segments, which are the data segments stored in each of the plurality of first sectors, and storing the group of the read first data segments in the buffer memory; Obtaining first parity from the group of the read first data segments; Executing a second operation of writing each of the first data segments in the group of the first data segments stored in the buffer memory to the original first sector from which the first data segments were read among the plurality of first sectors, and writing the first parity to the second sector, wherein the timing of starting the second operation is before the timing when the magnetic head reaches the first position; A controller; A magnetic disk device comprising the same.
2. The timing of starting the first operation is before the timing when the magnetic head reaches the first position. The magnetic disk device according to claim 1.
3. In the first operation, the controller proceeds with an operation of obtaining the first parity every time one first data segment is read. The magnetic disk device according to claim 1 or claim 2.
4. In the first operation, the controller reads second parity, which is the parity stored in the second sector, when the magnetic head passes through the second sector; Each time one first data segment is read, perform second error correction on the first data segment, if the second error correction is successful, store the first data segment in the buffer memory, if the second error correction fails, perform the first error correction on the first data segment using the second parity, and store the first data segment that has undergone the first error correction in the buffer memory, The magnetic disk device according to any one of claims 1 to 3.
5. The controller completes the second operation during one rotation of the magnetic disk after starting the second operation, The magnetic disk device according to any one of claims 1 to 4.
6. The controller completes the first operation during one rotation of the magnetic disk after starting the first operation, The magnetic disk device according to any one of claims 1 to 5.
7. A plurality of second tracks including the first track are provided on the magnetic disk, The controller estimates the degree of influence of ATI (Adjacent Track Interference) accumulated on each second track, and if the degree of influence of ATI accumulated on the first track exceeds a threshold value, performs the first operation and the second operation, The magnetic disk device according to any one of claims 1 to 6.
Citation Information
Patent Citations
File controller
JP1993035416A
Multimedia disc recorder
JP1997045013A
Method for writing streaming audio visual data in disk drive
JP2004095147A
Data recording / reproducing device, data recording / reproducing method, program and recording medium
JP2005063590A
Magnetic disk device and recording method
JP2019153367A