Magnetic disk device and method
The magnetic disk device addresses ATI by using ATI counters to manage rewrite operations based on remaining write counts, ensuring efficient data retention and reduced performance impact.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-20
- Publication Date
- 2026-04-02
AI Technical Summary
The accumulation of Adjacent Track Interference (ATI) effects on magnetic disk tracks makes it difficult to read data, necessitating a rewrite of all data before it becomes unreadable.
A magnetic disk device with a controller that manages ATI counters for each storage area, performing rewrite operations based on remaining write counts and thresholds to efficiently mitigate ATI by prioritizing tracks with fewer remaining writes.
The solution effectively suppresses frequent rewrite operations, maintaining data readability by strategically scheduling rewrite operations to minimize performance degradation.
Smart Images

Figure 2026057084000001_ABST
Abstract
Description
Technical Field
[0001] This embodiment relates to a magnetic disk device and method.
Background Art
[0002] As one of the effects on adjacent tracks during writing to a magnetic disk, Adjacent Track Interference (ATI) is known. Depending on the number of writes to one track, the ATI effect on adjacent tracks accumulates, and eventually, it becomes difficult to read the data on adjacent tracks. Therefore, before it becomes difficult to read the data on adjacent tracks, a rewrite of all data is performed on the adjacent tracks.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] One embodiment aims to provide a magnetic disk device and method capable of efficiently performing a rewrite related to ATI.
Means for Solving the Problems
[0005] According to one embodiment, the system comprises a magnetic disk, a magnetic head, memory, and a controller. The magnetic disk comprises a first plurality of storage areas arranged radially. The magnetic head writes to and reads data from the magnetic disk. The memory stores a plurality of counters, each of which corresponds to a counter for each of the first plurality of storage areas. The controller sets an increment amount for each of the plurality of counters. The controller increments the value of the first counter by the increment amount applied to the first counter in response to a write operation that writes data to the magnetic disk. The first counter is a counter that corresponds to a first storage area among the plurality of counters. The first storage area is a storage area near a first position, which is the location where data was written by the write operation. The controller performs an operation for each of the second plurality of storage areas, which is part or all of the first plurality of storage areas, to calculate the remaining write count, which is the number of write operations that can be performed for the vicinity of one storage area until the value of the counter corresponding to one storage area reaches a first threshold, based on the increment amount applied to one storage area. In an idle state, the controller performs rewrite operations on each of the second set of memory areas in an order corresponding to the remaining write count. A rewrite operation involves reading all data from one memory area and writing all the read data to another memory area. The controller resets the value of the counter corresponding to the memory area on which the rewrite operation was performed. [Brief explanation of the drawing]
[0006] [Figure 1] Figure 1 is a schematic diagram showing an example of the configuration of a magnetic disk drive according to an embodiment. [Figure 2] Figure 2 shows an example of the configuration of a magnetic disk in an embodiment. [Figure 3] Figure 3 shows an example of management information used by the magnetic disk device of the embodiment. [Figure 4]Figure 4 is a diagram illustrating how the controller according to this embodiment determines the order in which idle rewrite operations are performed. [Figure 5] Figure 5 is a flowchart showing an example of a series of operations related to the operation of the light in the embodiment. [Figure 6] Figure 6 is a flowchart showing an example of a series of operations involved in the immediate rewrite operation of the embodiment. [Figure 7] Figure 7 is a flowchart showing an example of a series of operations involved in the idle rewrite operation of the embodiment. [Modes for carrying out the invention]
[0007] The magnetic disk device and method according to the embodiment will be described in detail below with reference to the attached drawings. However, the present invention is not limited to this embodiment.
[0008] (Embodiment) Figure 1 is a schematic diagram showing an example of the configuration of the magnetic disk device 1 of the embodiment.
[0009] The magnetic disk drive 1 is connected to the host 2. The magnetic disk drive 1 can receive access commands, such as write commands and read commands, from the host 2.
[0010] The magnetic disk drive 1 includes a magnetic disk 11 on which a magnetic layer is formed on its surface. The magnetic disk drive 1 writes data to the magnetic disk 11 or reads data from the magnetic disk 11 in response to access commands.
[0011] Data is written and read via the magnetic head 22. In addition to the magnetic disk 11, the magnetic disk device 1 includes a spindle motor 12, a lamp 13, an actuator arm 15, a voice coil motor (VCM) 16, a temperature sensor 17, 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, RAM 27, 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 spindle motor 12 mounted coaxially. The spindle motor 12 is driven by a motor driver IC 21.
[0013] The processor 26 controls the rotation of the spindle motor 12 and the VCM 16 via the motor driver IC 21.
[0014] The magnetic head 22 writes and reads information to and from the magnetic disk 11 using its write head 22w and read head 22r. The magnetic head 22 is mounted on the tip of the actuator arm 15. The magnetic head 22 is moved radially across the magnetic disk 11 by the VCM 16. Note that either one or both of the write head 22w and read head 22r on the magnetic head 22 may be provided in multiple quantities on a single magnetic head 22.
[0015] When the rotation of the magnetic disk 11 is stopped, the magnetic head 22 is moved onto the ramp 13. The ramp 13 is configured to hold the magnetic head 22 in a position away 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 and the like.
[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 constituted by, for example, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or a combination thereof. Note that the buffer memory 29 may be constituted by any non-volatile memory.
[0020] The temperature sensor 17 detects the temperature at the position where the temperature sensor 17 in the magnetic disk device 1 is provided. The temperature detected by the temperature sensor 17 is used by the processor 26 for various controls.
[0021] 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 as digital data to the HDC 23.
[0022] The processor 26 is, for example, a CPU (Central Processing Unit). The processor 26 is connected to RAM 27, FROM (Flash Read Only Memory) 28, and buffer memory 29.
[0023] FROM28 is a non-volatile memory. FROM28 stores firmware (program data) and various operating parameters. The firmware may also be stored on the magnetic disk 11.
[0024] RAM27 is composed of, for example, DRAM, SRAM, or a combination thereof. RAM27 is used by the processor 26 as operating memory. RAM27 is used as an area where firmware is loaded and an area where various management data is temporarily stored.
[0025] The processor 26 controls the magnetic disk device 1 according to the firmware stored in FROM 28 or the magnetic disk 11. For example, the processor 26 loads the firmware from FROM 28 or the magnetic disk 11 into RAM 27 and controls the motor driver IC 21, head IC 24, RWC 25, HDC 23, etc., according to the loaded firmware.
[0026] The configuration including HDC23, RWC25, and processor26 can also be considered as a controller30 that controls the operation of the magnetic disk drive 1. In addition to these, the controller30 may also include other elements (e.g., RAM27, FROM28, or buffer memory29).
[0027] Furthermore, the firmware program may be stored on the magnetic disk 11. In addition, some or all of the functions of the processor 26 may be implemented by hardware circuits such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).
[0028] The number of magnetic disks 11 in the magnetic disk drive 1 is not limited to one. The magnetic disk drive 1 may also have a number of actuator arms 15 and magnetic heads 22 corresponding to the number of magnetic disks 11. Furthermore, if the magnetic disk drive 1 has multiple magnetic heads 22, these multiple magnetic heads 22 may be moved as a single unit, or they may constitute multiple groups that can move independently.
[0029] Figure 2 shows an example of the configuration of the magnetic disk 11 in the embodiment. Servo information 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 servowriter or by self-servo writing (SSW).
[0030] Figure 2 shows an example of the arrangement of servo regions 41 arranged radially, where servo information is written. In the circumferential direction, the area between two servo regions 41 is a data region 42 on which data can be written. Multiple concentric tracks 50 are provided in the radial direction of the magnetic disk 11. On the tracks 50, multiple sectors of data region 42 are provided, each on which data of a predetermined size (sector size) is written.
[0031] The servo information includes, for example, a servo mark, a Gray code, a burst pattern, and a postcode. When the controller 30 writes data to or reads data from a data sector, it generates a positional error signal based on the servo information read by the magnetic head 22 from the servo area 41. The positional error signal indicates the amount of radial deviation from the track center of the target track. Based on the positional error signal acquired each time the magnetic head 22 passes through the servo area 41, the controller 30 performs positioning of the magnetic head 22, i.e., seek control and tracking control. For example, before the start of a write operation, the controller 30 performs seek control to move the magnetic head 22 to the track 50 to be written to. Then, it performs tracking control to keep the magnetic head 22 on the track 50 to be written to during the period from just before the start of the write operation until the end of the write operation.
[0032] As mentioned above, when data is written to one track 50 (referred to as the track 50 being written to), the adjacent tracks 50 are affected by ATI. The ATI effect on each track 50 accumulates according to the number of times data has been written to the adjacent tracks 50. If the ATI effect on a track 50 becomes too large, it becomes difficult to read the data stored in that track 50. In other words, even with error correction, it becomes impossible to obtain the expected data from that track 50.
[0033] The controller 30 performs a rewrite operation before each track 50 becomes difficult to read due to the effects of ATI. The rewrite operation reads all data from track 50 and writes all the read data back to that track 50. Such a rewrite operation, performed to prevent data reading difficulties due to the effects of ATI, is also called a refresh operation or ATI refresh. Hereafter, the term "rewrite operation" will refer to the rewrite operation performed to prevent data reading difficulties due to the effects of ATI.
[0034] The controller 30 estimates the degree of ATI influence accumulated in each track 50 using an ATI counter. The value of the ATI counter is considered numerical information indicating the degree of ATI influence accumulated in the corresponding track 50. The controller 30 performs a rewrite operation on the corresponding track 50 before the value of the ATI counter exceeds a threshold corresponding to the upper limit of the range in which the expected data can be obtained.
[0035] In this example, an ATI counter is provided for each track 50. Alternatively, to limit the total number of ATI counters, an ATI counter may be provided for each storage area containing two or more tracks 50 arranged radially consecutively. In the following examples, it will be assumed that an ATI counter is provided for each track 50.
[0036] Various management information, including the ATI counter, is stored in a predetermined memory within the magnetic disk drive 1.
[0037] Figure 3 shows an example of management information used by the magnetic disk device 1 of this embodiment. In this example, all management information is assumed to be stored in RAM 27, but the location where the management information is stored is not limited to RAM 27. Furthermore, the management information may be distributed across multiple memory locations.
[0038] RAM27 stores ATI counter information 101, increment amount history 102, and threshold setting information 103.
[0039] The ATI counter information 101 is a group of ATI counters corresponding to each track 50.
[0040] The value of the ATI counter on the adjacent track 50 is incremented in response to the execution of a write operation on the target track 50. The amount of increment of the ATI counter may vary depending on the circumstances. Therefore, the controller 30 changes the amount of increment of the ATI counter according to the circumstances.
[0041] For example, the greater the vibration of the magnetic head 22 during the writing operation to the target track 50, the greater the ATI influence on the adjacent track 50. Also, the higher the temperature during the writing operation to the target track 50, the greater the ATI influence on the adjacent track 50. The controller 30 increases the increment amount of the ATI counter on the adjacent track 50 as the vibration of the magnetic head 22 during the writing operation to the target track 50 increases. Also, the controller 30 increases the increment amount of the ATI counter on the adjacent track 50 as the temperature during the writing operation to the target track 50 increases.
[0042] In one example, the controller 30 obtains the magnitude of the magnetic head 22's oscillation based on the position error signal during light operation. The controller 30 determines that the greater the absolute value of the position error signal, the greater the oscillation of the magnetic head 22. For example, the controller 30 calculates the average of the absolute values of the position error signal during the period in which the light is being applied to the track 50 to be lit. The controller 30 may then use the average value of the absolute values of the position error signal as the magnitude of the magnetic head 22's oscillation. However, the method for determining the magnitude of the magnetic head 22's oscillation is not limited to this.
[0043] Thus, the increment amount changes for each track 50 and for each situation. The controller 30 records the history of the applied increment amount for each track 50 in the increment amount history 102.
[0044] The timing of updating the increment amount for each track 50 is not limited to a specific timing. The controller 30 may store the vibration of the magnetic head 22 during the write operation and the temperature during the write operation, and set the increment amount for some or all of the tracks 50 at some timing based on the stored vibration or temperature of the magnetic head 22. Alternatively, the controller 30 may set the increment amount applied to the ATI counter of the adjacent track 50 to the track 50 being written to each time a write operation is performed. Here, as an example, the controller 30 sets the increment amount applied to the ATI counter of the adjacent track 50 to the track 50 being written to each time a write operation is performed.
[0045] The threshold setting information 103 includes an immediate rewrite threshold Thi, a ratio threshold Thr, and a priority determination threshold Thp. These thresholds are determined during the manufacturing process and recorded in the threshold setting information 103. The threshold setting information 103 is stored in a predetermined non-volatile memory area (e.g., FROM 28) and loaded into the RAM 27 when the magnetic disk device 1 is operating. The threshold setting information 103 loaded into the RAM 27 is then referenced as appropriate. Alternatively, the threshold setting information 103 stored in the predetermined non-volatile memory area may be referenced directly.
[0046] The immediate rewrite threshold Thi is a threshold that is compared to the value of the ATI counter and corresponds to the upper limit of the range in which the expected data can be obtained. In other words, if the value of the ATI counter does not exceed the immediate rewrite threshold Thi, it is guaranteed that the expected data can be obtained from the corresponding track 50. The immediate rewrite threshold Thi may be equal to the upper limit of the range in which the expected data can be obtained, or it may be set as a value obtained by subtracting a predetermined value from that upper limit.
[0047] The ratio threshold Thr and priority threshold Thp will be explained later.
[0048] In this embodiment, the controller 30 can perform two types of rewrite operations: immediate rewrite operations and idle rewrite operations. The immediate rewrite threshold Thi is used to determine whether to perform an immediate rewrite operation. That is, an immediate rewrite operation is performed when the value of the ATI counter reaches the immediate rewrite threshold Thi. An idle rewrite operation is performed when the controller 30 has finished executing all commands from the host 2, i.e., when it is idle. An idle rewrite operation may be performed before the value of the ATI counter reaches the immediate rewrite threshold Thi.
[0049] The immediate rewrite operation is performed whenever the ATI counter value reaches the immediate rewrite threshold Thi, regardless of whether there are any remaining commands from host 2. Therefore, if the immediate rewrite operation is performed frequently, the command response speed to host 2 may decrease. In other words, the performance of magnetic disk device 1 as seen from host 2 may decrease. For this reason, it is necessary to suppress the frequency of immediate rewrite operations.
[0050] This section describes technologies that are comparable to the embodiments. Technologies that are comparable to the embodiments are referred to as comparative examples. According to the comparative examples, an evaluation value is obtained for each track by dividing the value of the ATI counter by the immediate rewrite threshold Thi. Then, idle rewrite operations are performed prioritizing tracks with higher evaluation values over tracks with lower evaluation values.
[0051] However, as mentioned above, the increment amount of the ATI counter can vary depending on the situation. Therefore, even if the evaluation value is the same, if the increment amount is large, the ATI counter value will reach the immediate rewrite threshold Thi with fewer write operations compared to when the increment amount is small. In other words, the evaluation value applied to the comparative example does not correspond to the number of write operations on adjacent tracks that can be performed before the ATI counter value reaches the immediate rewrite threshold Thi, or in other words, the margin of the number of write operations on adjacent tracks. Therefore, there may be cases where the execution of an immediate rewrite operation cannot be prevented.
[0052] In this embodiment, the controller 30 performs idle rewrite operations on multiple tracks 50 in an order based on the margin of write operations for adjacent tracks 50. Tracks 50 with a smaller margin of write operations for adjacent tracks 50 are preferentially selected as targets for rewrite operations, thus efficiently reducing the frequency of immediate rewrite operations compared to the comparative example. In other words, by suppressing the frequency of immediate rewrite operations, it becomes possible to perform rewrite operations efficiently.
[0053] Figure 4 is a diagram illustrating how the controller 30 in this embodiment determines the order in which idle rewrite operations are performed. For ease of understanding, the magnetic disk 11 is provided with five tracks, from track #0 to track #4, and the order of idle rewrite operations is determined from among these five tracks.
[0054] Figure 4 shows the ATI counter value, average increment amount, immediate rewrite threshold Thi, counter ratio, remaining write count, and rewrite priority for each of the five tracks 50 (tracks #0 to #4).
[0055] The values of the ATI counters for tracks #0 to #4 are recorded in ATI counter information 101. In this example, the value of the ATI counter for track #0 is "80", the value of the ATI counter for track #1 is "100", the value of the ATI counter for track #2 is "120", the value of the ATI counter for track #3 is "140", and the value of the ATI counter for track #4 is "160". Hereafter, the value of the ATI counter may be denoted as Cn.
[0056] The average increment amount is the average of the increment amounts applied within a predetermined time period. The history of applied increment amounts is recorded in the increment amount history 102 for each track 50. The controller 30 calculates the average increment amount based on the history of applied increment amounts recorded in the increment amount history 102. In this example, the average increment amount for track #0 is "30", the average increment amount for track #1 is "20", the average increment amount for track #2 is "10", the average increment amount for track #3 is "5", and the average increment amount for track #4 is "2". Hereafter, the average increment amount may be denoted as "Inc".
[0057] The immediate rewrite threshold Thi is set to "200" for all tracks 50. However, the value of the immediate rewrite threshold Thi does not necessarily have to be the same for all tracks 50. For example, if the magnetic disk drive 1 is equipped with multiple magnetic heads 22, a different value may be set as the immediate rewrite threshold Thi for each storage area accessed by each of the multiple magnetic heads 22.
[0058] The counter ratio is the ratio of the ATI counter value Cn to the immediate rewrite threshold Thi. In other words, the counter ratio is obtained by dividing the ATI counter value Cn by the immediate rewrite threshold Thi. Here, as an example, the counter ratio is expressed as a percentage.
[0059] The remaining write count is the number of write operations that can be performed on adjacent tracks before the ATI counter value reaches the immediate rewrite threshold Thi. The controller 30 obtains the remaining write count by subtracting the ATI counter value Cn from the immediate rewrite threshold Thi, and then dividing the resulting value, (Thi-Cn), by the average increment amount Inc. In this example, the remaining write count for track #0 is "4", for track #1 it is "5", for track #2 it is "8", for track #3 it is "12", and for track #4 it is "20".
[0060] The controller 30 determines the priority of executing idle rewrite operations based on the remaining number of attempts. The priority of executing idle rewrite operations is referred to as the rewrite priority. Here, a smaller rewrite priority value means that the idle rewrite operation has a higher priority.
[0061] In this case, tracks 50 whose counter ratio has not reached a predetermined value are excluded from the setting of rewrite priority. For example, in a track 50 such as track #0, where the average increment amount is significantly larger than that of other tracks 50, the remaining number of writes may be significantly smaller than that of other tracks 50. In such cases, the rewrite priority of the track 50 with a significantly larger average increment amount than that of other tracks 50 is higher, and the frequency of idle rewrite operations performed on that track 50 increases. When idle rewrite operations are performed frequently on a particular track 50, the rate at which the ATI effect on adjacent tracks 50 of that particular track 50 accumulates is faster, and the frequency of rewrite operations performed on adjacent tracks 50 also increases.
[0062] Therefore, in this embodiment, even if a track 50 has a small number of remaining write cycles, if the degree of accumulated ATI influence, i.e., the counter ratio, does not fall below a predetermined level, the controller 30 will not select that track 50 as the target for idle rewrite operation. This prevents the frequency of idle rewrite operation from increasing in a specific track 50 with a significantly large average increment amount, and in the tracks 50 surrounding that specific track 50.
[0063] The threshold value compared to the counter ratio is recorded as the ratio threshold Thr in the threshold setting information 103. The controller 30 excludes tracks 50 whose counter ratio is less than the ratio threshold Thr from idle rewrite operation, and for tracks 50 whose counter ratio is greater than the ratio threshold Thr (1 or more), it performs idle rewrite operation in an order corresponding to the remaining number of writes. Tracks 50 whose counter ratio is equal to the ratio threshold Thr may be excluded from idle rewrite operation or may be included in idle rewrite operation. Here, as an example, tracks 50 whose counter ratio is equal to the ratio threshold Thr are also included in idle rewrite operation.
[0064] In the example shown in Figure 4, the ratio threshold Thr is set to "50". This means that track 50, whose counter ratio is less than 50%, is excluded from the idle rewrite operation. Track #0 has a counter ratio of less than 50%, while tracks #1 to #4 have counter ratios of 50% or more. Therefore, the controller 30 excludes track #0 from the idle rewrite operation and performs the idle rewrite operation on tracks #1 to #4.
[0065] The controller 30 can execute idle rewrite operations on one or more tracks 50 that are targeted for idle rewrite operations, in an order corresponding to the remaining number of writes. In this embodiment, in order to reduce computational cost, the order in which idle rewrite operations are executed is determined as follows: A threshold value compared to the remaining number of writes is set in advance as the priority determination threshold Thp. The controller 30 executes idle rewrite operations on all tracks 50 whose remaining number of writes is less than the priority determination threshold Thp before any idle rewrite operations on any track 50 whose remaining number of writes is more than the priority determination threshold Thp. In other words, the rewrite priority of all tracks 50 whose remaining number of writes is less than the priority determination threshold Thp is set to "1", indicating the highest priority. The rewrite priority of all tracks 50 whose remaining number of writes is more than the priority determination threshold Thp is set to "2", indicating the second highest priority. The rewrite priority of a track 50 whose remaining number of writes is equal to the priority determination threshold Thp may be set to "1" or "2".
[0066] However, the order in which idle rewrite operations are performed is not limited to this. The controller 30 may perform idle rewrite operations in order of the remaining number of writes, starting with the track 50 with the fewest remaining writes.
[0067] Next, the operation of the magnetic disk device 1 of this embodiment will be described.
[0068] Figure 5 is a flowchart showing an example of a series of operations related to the operation of the light in the embodiment.
[0069] When the controller 30 performs a light operation on a track 50 to be lit (S101), it calculates the increment amount of the ATI counter of the adjacent track 50 to the track 50 to be lit based on the position error signal and temperature at the time of the light operation (S102). The controller 30 also obtains the temperature at the time of the light operation from the temperature sensor 17.
[0070] Next, the controller 30 increments the ATI counter of the adjacent track 50 by the amount obtained by the calculation in S102 (S103).
[0071] The controller 30 records the increment amount of the adjacent track 50 in the increment amount history 102 (S104), and the writing operation ends.
[0072] Note that the example shown in Figure 5 assumes a random write operation, that is, an operation in which data is written to a portion of track 50. If data for one track is written to the track 50 to be written, the controller 30 may reset the ATI counter of the track 50 to "0" after the write operation.
[0073] Figure 6 is a flowchart showing an example of a series of operations involved in the immediate rewrite operation of the embodiment.
[0074] The controller 30 determines whether there is a track 50 in which the value of the ATI counter has reached the immediate rewrite threshold Thi (S201).
[0075] If there is a track 50 whose ATI counter value has reached the immediate rewrite threshold Thi (S201: Yes), the controller 30 performs a rewrite operation on the track 50 whose ATI counter value has reached the immediate rewrite threshold Thi (S202).
[0076] Note that the rewrite operation includes both read and write operations. Therefore, during the write operation included in the rewrite operation, the example operation shown in Figure 5 is performed.
[0077] After the rewrite operation, the controller 30 resets the value of the ATI counter for the track 50 that was the target of the rewrite operation to "0" (S203).
[0078] After processing S203, or if there are no tracks 50 where the ATI counter value has reached the immediate rewrite threshold Thi (S201: No), control transitions to S201.
[0079] In this way, the controller 30 monitors whether there is a track 50 whose ATI counter value has reached the immediate rewrite threshold Thi. If there is a track 50 whose ATI counter value has reached the immediate rewrite threshold Thi, the controller 30 performs a rewrite operation on that track 50 and resets the ATI counter value of that track 50 to "0".
[0080] As mentioned earlier, the immediate rewrite operation will be executed even if there are incomplete commands remaining.
[0081] Figure 7 is a flowchart showing an example of a series of operations involved in the idle rewrite operation of the embodiment.
[0082] The controller 30 determines whether the magnetic disk drive 1 is in an idle state (S301). If the magnetic disk drive 1 is not in an idle state (S301: No), the control transitions to S301.
[0083] If the magnetic disk device 1 is in an idle state (S301: Yes), the controller 30 determines whether there are any tracks 50 whose counter ratio is equal to or greater than the ratio threshold Thr, i.e., tracks 50 that are subject to idle rewrite operation (S302). In S302, for example, the controller 30 obtains the counter ratio for each track 50. Then, the controller 30 compares the counter ratio of each track 50 with the ratio threshold Thr.
[0084] If there is a track 50 whose counter ratio is equal to or greater than the ratio threshold Thr (S302: Yes), then it is determined whether there is a track 50 among the tracks 50 whose counter ratio is equal to or greater than the ratio threshold Thr that has a remaining write count that is less than or equal to the priority determination threshold Thp, i.e., a track 50 with a rewrite priority of "1" (S303). In S303, for example, the controller 30 obtains the remaining write count for each track 50 whose counter ratio is equal to or greater than the ratio threshold Thr. The controller 30 then compares the remaining write count with the ratio threshold Thr for each track 50 whose counter ratio is equal to or greater than the ratio threshold Thr. The track 50 among the tracks 50 whose counter ratio is equal to or greater than the ratio threshold Thr that has a remaining write count that is less than or equal to the priority determination threshold Thp, i.e., a track 50 with a rewrite priority of "1", is referred to as the first priority track 50.
[0085] If there is a first priority track 50 (S303: Yes), the controller 30 performs a rewrite operation on the first priority track 50 (S304) and resets the value of the ATI counter for that first priority track 50 to "0" (S305). If there are multiple first priority tracks 50, the controller 30 performs S304 and S305 on one of the multiple first priority tracks 50. The controller 30 may also perform S304 and S305 on two or more first priority tracks 50.
[0086] If there are no tracks 50 with a counter ratio equal to or greater than the ratio threshold Thr that have a remaining write count equal to or less than the priority determination threshold Thp (S303: No), the controller 30 determines whether there are any tracks 50 with a counter ratio equal to or greater than the ratio threshold Thr that have a remaining write count equal to or less than the priority determination threshold Thp, i.e., any tracks 50 with a rewrite priority of "2" (S306). In S306, for example, the controller 30 compares the remaining write count with the ratio threshold Thr for each track 50 with a counter ratio equal to or greater than the ratio threshold Thr. Tracks 50 with a counter ratio equal to or greater than the ratio threshold Thr that have a remaining write count exceeding the priority determination threshold Thp, i.e., any tracks 50 with a rewrite priority of "2", are referred to as second-priority tracks 50.
[0087] If there is a second priority track 50 (S306: Yes), the controller 30 performs a rewrite operation on the second priority track 50 (S307) and resets the value of the ATI counter for that second priority track 50 to "0" (S308). If there are multiple second priority tracks 50, the controller 30 performs S307 and S308 on one of the multiple second priority tracks 50. The controller 30 may also perform S307 and S308 on two or more second priority tracks 50.
[0088] If there is no track 50 whose counter ratio is equal to or greater than the ratio threshold Thr (S302: No), or after processing in S305, or if there is no second priority track 50 (S306: No), or after processing in S308, control transitions to S301.
[0089] Thus, if there is a first priority track 50 and a second priority track 50, the controller 30 will perform a rewrite operation on the first priority track 50 before a rewrite operation on the second priority track 50. If there is no first priority track 50, the controller 30 will perform a rewrite operation on the second priority track 50. In other words, the controller 30 can prioritize rewrite operations on tracks 50 with fewer remaining write counts over rewrite operations on tracks 50 with more remaining write counts.
[0090] In the example described above, the value of the ATI counter of an adjacent track 50 was incremented in accordance with the execution of a write operation on one track 50. The tracks 50 whose ATI counters are incremented are not limited to only the adjacent tracks 50 of the track 50 on which the write operation was performed. Not only adjacent tracks 50, but all tracks 50 in the vicinity of the track 50 on which the write operation was performed may also have their ATI counters incremented. The tracks 50 in the vicinity of the track 50 on which the write operation was performed are tracks 50 that are within a radial range that can be affected by the ATI due to the write operation, and may include tracks 50 located at a distance of two or more tracks 50 from the track 50 on which the write operation was performed. The radial range in which the ATI counters are incremented can be set by the designer.
[0091] Furthermore, in the example described above, an ATI counter is provided for each track 50. However, the unit in which an ATI counter is provided is not limited to tracks 50. Multiple tracks 50 provided on the magnetic disk 11 may be divided into multiple storage areas, each consisting of one or more tracks 50 arranged radially, and a corresponding ATI counter may be provided for each of the multiple storage areas. In such a case, the controller 30 sets the increment amount of the ATI counter for each storage area. Then, during a write operation, the controller 30 increments the ATI counter of the storage area near the location where the write operation was performed (e.g., track 50) by the predetermined increment amount.
[0092] Furthermore, in the example described above, the controller 30 excluded tracks 50 whose counter ratio is less than the ratio threshold Thr from the idle rewrite operation. The controller 30 may also include all tracks 50 in the idle rewrite operation regardless of the counter ratio.
[0093] Furthermore, as shown in the example above, the controller 30 calculated the counter ratio and the remaining write count when the magnetic disk device 1 was in an idle state. The timing of the calculation of the counter ratio and the remaining write count is not limited to this. For example, when the value of any ATI counter is updated, the controller 30 may calculate the timing of the counter ratio, the remaining write count, or both for the track 50 corresponding to the ATI counter whose value has been updated.
[0094] As described above, according to the embodiment, a group of ATI counters corresponding to each of the multiple memory areas (e.g., track 50) arranged radially is stored in memory (e.g., RAM 27). The controller 30 sets an increment amount for each of the multiple memory areas (see, for example, S102 in Figures 4 and 5). In response to a write operation, the controller 30 increments the value of the ATI counter in the memory area near the location where the write operation was performed by the set increment amount. The controller 30 calculates the remaining number of write operations for the vicinity that can be performed before the value of the ATI counter corresponding to that memory area reaches the immediate rewrite threshold Thi, based on the increment amount applied to that memory area, for each of the one or more memory areas (see, for example, S303 and S306 in Figures 4 and 7). In the idle state, the controller 30 performs rewrite operations for each of the one or more memory areas in an order corresponding to the remaining number of write operations (see, for example, Figure 7). The controller 30 then resets the value of the ATI counter corresponding to the memory area where the rewrite operation was performed (see, for example, S305 and S308 in Figure 7).
[0095] Therefore, the frequency of immediate rewrite operations can be appropriately suppressed, and the efficiency of rewrite operations is improved.
[0096] In this embodiment, the controller 30 performs an immediate rewrite operation as follows: The controller 30 identifies a memory area among the multiple memory areas in which the value of the corresponding ATI counter has reached the immediate rewrite threshold Thi (see, for example, S201 in Figure 6). The controller 30 performs a rewrite operation on the memory area in which the identified ATI counter value has reached the immediate rewrite threshold Thi (see, for example, S202 in Figure 6). Then, the controller 30 resets the value of the ATI counter corresponding to the memory area in which the rewrite operation was performed (see, for example, S203 in Figure 6).
[0097] The controller 30 performs idle rewrite operations on each memory area in an order corresponding to the remaining number of write operations, thereby effectively suppressing the frequency of immediate rewrite operations.
[0098] Furthermore, according to the embodiment, the controller 30, in an idle state, performs a rewrite operation on a memory area with a small number of remaining rewrites, and then performs a rewrite operation on a memory area with a large number of remaining rewrites.
[0099] Therefore, idle rewrite operations are prioritized for track 50, which has fewer remaining write counts, thus effectively suppressing the frequency of immediate rewrite operations.
[0100] Furthermore, according to the embodiment, the controller 30 compares the remaining number of writes for each memory area with the priority determination threshold Thp when idle. The controller 30 performs rewrite operations on memory areas where the remaining number of writes is greater than the priority determination threshold Thp after performing rewrite operations on memory areas where the remaining number of writes is less than the priority determination threshold Thp (see, for example, Figure 7).
[0101] Therefore, since the idle rewrite operation for the track 50 with the remaining write count less than the priority determination threshold Thp is preferentially executed, the execution frequency of the immediate rewrite operation can be suitably suppressed.
[0102] Note that the priority determination threshold Thp may include a plurality of thresholds with different values. For example, consider a case where priority determination thresholds Thp1 and Thp2 (where Thp1 < Thp2) are provided as the priority determination threshold Thp. In such a case, the controller 30 first executes a rewrite operation for all tracks 50 among the tracks 50 targeted for the idle rewrite operation whose remaining write count is less than the priority determination threshold Thp1. Next, the controller 30 executes a rewrite operation for all tracks 50 among the tracks 50 targeted for the idle rewrite operation whose remaining write count is more than the priority determination threshold Thp1 and less than the priority determination threshold Thp2. Next, the controller 30 executes a rewrite operation for all tracks 50 among the tracks 50 targeted for the idle rewrite operation whose remaining write count is more than the priority determination threshold Thp2. Thus, the controller 30 may preferentially execute an idle rewrite operation for tracks 50 with a small remaining write count based on a plurality of priority determination thresholds with different values.
[0103] Note that according to the embodiment, the controller 30 can set the increment amount according to the temperature during the write operation or the sway of the magnetic head 22 (see, for example, S102 in FIG. 5). Note that the method of setting the increment amount is not limited to this. The controller 30 can set the increment amount according to an arbitrary amount in addition to or instead of the temperature during the write operation and the sway of the magnetic head 22.
[0104] Furthermore, according to the embodiment, the controller 30 calculates the counter ratio for each memory area. The controller 30 then identifies memory areas whose counter ratio is greater than the ratio threshold Thr as targets for idle rewrite operation, and identifies memory areas whose counter ratio is less than the ratio threshold Thr as not targets for idle rewrite operation (see, for example, S302 in Figure 7).
[0105] Therefore, it is possible to prevent the idle rewrite operation from becoming excessively frequent for track 50, which has a significantly large increment amount.
[0106] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents. [Explanation of Symbols]
[0107] 1 Magnetic disk drive, 2 Host, 11 Magnetic disk, 12 Spindle motor, 13 Lamp, 15 Actuator arm, 16 Voice coil motor (VCM), 17 Temperature sensor, 21 Motor driver IC, 22 Magnetic head, 22r Read head, 22w Write head, 23 Hard disk controller (HDC), 24 Head IC, 25 Read / Write channel (RWC), 26 Processor, 27 RAM, 28 FROM, 29 Buffer memory, 30 Controller, 41 Servo area, 42 Data area, 50 Track, 101 ATI counter information, 102 Increment amount history, 103 Threshold setting information.
Claims
1. A magnetic disk having a plurality of first memory areas arranged radially, A magnetic head for writing data to and reading data from the magnetic disk, A memory in which a plurality of counters, which are a group of counters corresponding to each of the first plurality of storage areas, are stored, Setting an increment amount for each of the aforementioned multiple counters, The value of a first counter is incremented by an increment amount applied to the first counter in response to a write operation that writes data to the magnetic disk, and the first counter is a counter corresponding to a first storage area among the plurality of counters, and the first storage area is a storage area near a first position which is the position where data was written by the write operation. The operation of calculating the remaining write count, which is the number of write operations to the vicinity of a single memory area that can be performed until the value of a counter corresponding to a single memory area reaches a first threshold, based on the increment amount applied to the single memory area, is performed for each of the second plurality of memory areas, which are part or all of the first plurality of memory areas. In an idle state, a rewrite operation is performed on each of the second plurality of memory areas in an order corresponding to the remaining number of write operations, and the rewrite operation is an operation that reads all data from one memory area and writes all the read data to the one memory area. The value of the counter corresponding to the memory area where the rewrite operation was performed is reset, A controller that executes, A magnetic disk drive equipped with the following features.
2. The aforementioned controller, Identifying the storage area among the first plurality of storage areas in which the value of the corresponding counter has reached the first threshold, Performing the rewrite operation on the identified memory area, Resetting the value of the counter corresponding to the identified memory area, Execute The magnetic disk device according to claim 1.
3. The controller, in the idle state, performs the rewrite operation on the second memory area, and after the rewrite operation on the second memory area, performs the rewrite operation on the third memory area, and the remaining number of write operations for the second memory area is less than the remaining number of write operations for the third memory area. The magnetic disk device according to claim 1.
4. The controller, in the idle state, compares the remaining write count and the second threshold for each of the second plurality of memory areas, and performs the rewrite operation for the memory area among the second plurality of memory areas where the remaining write count is greater than the second threshold, after the rewrite operation for the memory area among the second plurality of memory areas where the remaining write count is less than the second threshold. The magnetic disk device according to claim 1.
5. The controller sets the increment amount for the counter corresponding to the first storage area according to the temperature during the light operation relative to the first position or the vibration of the magnetic head. The magnetic disk device according to claim 1.
6. The aforementioned controller, For each of the first plurality of memory areas, a counter ratio is calculated, which is the value obtained by dividing the corresponding counter value by the first threshold; Identifying a memory area among the first plurality of memory areas in which the counter ratio is greater than the third threshold as one of the second plurality of memory areas, Identifying that a memory area among the first plurality of memory areas in which the counter ratio is smaller than the third threshold is not one of the second plurality of memory areas, To further execute, A magnetic disk device according to any one of claims 1 to 5.
7. A method for controlling a magnetic disk device comprising a magnetic disk having a plurality of first storage areas arranged radially, and a magnetic head for writing and reading data from the magnetic disk, Setting an increment amount for each of the multiple counters, which are a group of counters corresponding to each of the first multiple memory areas, The value of a first counter is incremented by an increment amount applied to the first counter in response to a write operation that writes data to the magnetic disk, and the first counter is a counter corresponding to a first storage area among the plurality of counters, and the first storage area is a storage area near the location where data was written by the write operation. The operation of calculating the remaining write count, which is the number of write operations to the vicinity of a single memory area that can be performed until the value of a counter corresponding to a single memory area reaches a first threshold, based on the increment amount applied to the single memory area, is performed for each of the second plurality of memory areas, which are part or all of the first plurality of memory areas. In an idle state, a rewrite operation is performed on each of the second plurality of memory areas in an order corresponding to the remaining number of write operations, and the rewrite operation is an operation that reads all data from one memory area and writes all the read data to the one memory area. The value of the counter corresponding to the memory area where the rewrite operation was performed is reset, A method that includes this.
Citation Information
Patent Citations
Region-specific directed offline scan for hard disk drive
US11360671B2