Adaptation Tape Calibration Criteria Based on the Number of Dead Tracks

The adaptive tape calibration method addresses unnecessary recalibration due to dead tracks by adjusting thresholds based on rewrite frequency, ensuring efficient tape drive performance.

JP7717167B2Active Publication Date: 2025-08-01INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023542721
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-02-10
Filing Date
2022-02-08
Publication Date
2025-08-01
Estimated Expiration
2042-02-08

AI Technical Summary

Technical Problem

Magnetic tape drives perform unnecessary calibration due to dead tracks, leading to reduced throughput and transfer speed, as existing systems do not account for the frequency of rewrites caused by dead tracks during calibration.

Method used

An adaptive tape calibration method that determines the number of dead tracks and adjusts calibration thresholds based on the frequency of rewrites, only performing calibration when necessary to avoid unnecessary recalibration.

Benefits of technology

Prevents unnecessary calibration by accounting for dead tracks, thereby maintaining optimal tape drive throughput and reducing calibration-related slowdowns.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007717167000001
    Figure 0007717167000001
  • Figure 0007717167000002
    Figure 0007717167000002
  • Figure 0007717167000003
    Figure 0007717167000003
Patent Text Reader

Abstract

One approach to adaptive tape calibration criteria based on the number of dead tracks includes determining a number of rewrite occurrences for each dead track on the tape drive. In response to detecting that the head is in a dead track condition, the number of dead tracks is stored on the tape drive. A calibration threshold is determined, the calibration threshold including the number of dead track rewrites and a calibration criterion value for a particular tape drive type. In response to the number of rewrite occurrences exceeding the calibration threshold while writing the data set, a calibration of the tape drive is performed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the field of tape - based data storage, and more particularly, to adaptive tape calibration criteria based on the number of dead tracks.

Background Art

[0002] Magnetic tape data storage is a system for storing digital information on a magnetic tape using digital recording. Currently, most magnetic tapes are packaged in cartridges and cassettes. Since much of the currently recorded data does not need to be accessed immediately, magnetic tape is a preferred solution for long - term data storage. Although it may seem outdated, this technology has advanced significantly since its introduction. The first commercial digital tape storage system stored approximately 1 megabyte of data per tape reel, but the latest cartridges can hold over 15 terabytes of data and the capacity is constantly increasing.

[0003] The reasons why magnetic tape drives are still currently used, especially as offline data backups, are long - term storage stability and very favorable unit costs. Data stored on tape cannot be accessed as quickly as data stored on a hard drive, but tape storage is more energy - efficient and reliable. Furthermore, magnetic tape storage is more cost - effective and usually costs 1 / 6 of the cost of storing the same amount of data on a disk. Also, while the rate of increase in the capacity of disk drives is decreasing, the storage capacity of magnetic tape is still increasing by approximately 33 percent per year.

[0004] For a tape drive, a channel is the process of converting a digital signal into an analog signal and outputting that analog signal from a data track to the tape, or of reading an analog signal from the tape and converting it into a digital signal. Depending on the state of each head element, the channel determines the optimal values of various parameters based on the amount of current flowing through the head in order to optimize the input and output of the signal. Those values are stored in the tape drive vital product data (VPD) of each head, which is the non-volatile memory of the tape drive. When writing data to the tape or reading data from the tape, those values stored in the VPD are set in the registers of the components that control the channel.

[0005] These channel parameters are adjusted at the initial configuration immediately after the tape drive is shipped, or when it is necessary to reconfigure those values due to head degradation or the state of the tape medium. This adjustment is called calibration. Calibration is a procedure for adjusting the channel settings of each track. When performing calibration, the tape drive moves to an area on the tape medium where no user data is written, and repeatedly writes and reads data until optimal values are determined, thereby optimizing various parameters. For example, during calibration, data is written to the tape while changing the voltage / amplitude level of each track, and then the signal-to-noise ratio is measured when that data is read back. Calibration then independently selects the channel parameters from the best results for each track. This calibration process takes time, which reduces the transfer speed of the tape drive. This is because no new data can be written while calibration is being performed.

[0006] There is an increasing number of users who are concerned about the reduction in transfer speed due to calibration. These users want a tape drive that does not perform calibration when it is not necessary. One such case where calibration is not needed is when calibration is attempting to reduce rewrites actually caused by dead tracks. This is because calibration cannot repair dead tracks. The problem solved by the present invention is to avoid calibration of a tape drive that reduces tape throughput when rewrites are caused by dead tracks.

Summary of the Invention

[0007] Embodiments of the present invention include a computer-implemented method, a computer program product, and a system for an adaptive tape calibration determination criterion based on the number of dead tracks. In a first embodiment, the number of occurrences of rewrites for each dead track on a tape drive is determined. In response to detecting that a head is in a dead track state, the number of dead tracks is stored on the tape drive. A calibration threshold is determined. This calibration threshold includes the number of dead track rewrites and a calibration reference value for a particular tape drive type. In response to the number of occurrences of rewrites exceeding the calibration threshold while writing a data set, calibration of the tape drive is performed.

[0008] Embodiments of the present invention include a computer-implemented method and a computer program product for an adaptive tape calibration determination criterion based on the number of dead tracks. In a second embodiment, the number of occurrences of a rewrite is determined for each dead track on a tape drive. In response to detecting that the head is in a dead track state, the number of dead tracks is stored on the tape drive. A first threshold and a second threshold are determined. The first threshold includes the number of dead track rewrites and a calibration reference value for a particular tape drive type, and further, the second threshold includes the number of calibration rewrites and a calibration reference value for a particular tape drive type. In response to the number of occurrences of a rewrite exceeding the first threshold while writing a data set, calibration of the tape drive is performed. In response to the number of occurrences of a rewrite exceeding the second threshold while writing a data set, a refresh of the tape drive is performed.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Embodiments for Carrying Out the Invention

[0010] In a tape drive, a write head and a read head are arranged in a pair. At the time of writing, immediately after writing data on the tape medium, the read head reads back the data from the tape. If the read data does not match the written data, the drive writes the unwritten data using another head. This mechanism of writing again is called a rewrite. While moving the tape and writing data, the tape drive counts the number of rewrites and determines whether calibration is necessary. When the tape approaches the calibration area after it is determined that calibration is necessary, calibration is performed to optimize the channel parameters.

[0011] In the present invention, re-writing by a head that no longer functions properly is investigated. A state in which a head element has stopped functioning is called a dead track. A typical Linear Tape-Open (LTO) tape drive writes redundant data including an error correction code (ECC) between the written data in order to enable reading back data written by a drive having a certain number of dead track heads. However, when there are dead tracks, the frequency of re-writing always increases at a constant rate. Since this is not taken into account, even if re-writing occurs due to a small amount of debris, the frequency of re-writing exceeds a threshold value, calibration is performed, and thereby the transfer speed decreases. With respect to dead track heads, adjusting the channel parameters does not reduce the frequency of re-writing. This means that unnecessary calibration may be performed.

[0012] Embodiments of the present invention describe a mechanism for changing a reference value for calibration caused by re-writing in order to take into account the number of re-writes caused by a dead track when the dead track is detected.

[0013] A data set is the minimum unit that a tape drive writes to a tape. In an example of a typical tape drive, such as an LTO tape drive having 32 head elements, a data set consists of 192 codeword interleave (CWI) set data units, which are written simultaneously using 32 heads. In one embodiment, for each specific type of tape drive product, the number of rewrites is measured in advance for each dead track number. Each time a data set is written or each time the tape drive is calibrated, the tape drive checks whether a head has a dead track and, if a dead track is detected, whether information is stored in the non-volatile memory of the tape drive.

[0014] In one embodiment, when determining whether to perform calibration, the frequency of occurrence of rewrites corresponding to the number of dead track heads is added to a reference value of the number of rewrites required to perform calibration. In one embodiment, it is determined whether to perform calibration by comparing a reference value of rewrites including the number of rewrites due to dead tracks with the frequency of rewrites occurring during actual writing.

[0015] An example is shown below. For this example, it was confirmed that an LTO tape drive has one head in a dead track state. In this exemplary LTO drive, one data set consists of 192 CWI sets. In this example, one track in the forward direction is in a dead track state and the track in the reverse direction is in an extremely good state.

[0016] As a result of the measurement, it was determined that, in the reverse direction, an average of 1.44 CWI sets per data set were rewritten. In contrast, in the forward direction, an average of 9.24 CWI sets per data set were rewritten. From the above data, when there is one head in the dead track state, the number of occurrences of rewriting at the head in the dead track state is calculated to be approximately 7.8 CWI sets of rewriting per data set (9.24 CWI sets of the dead track - 1.44 CWI sets of the good track). Therefore, 4% per data set, that is, 7.8 rewrites of the dead track ÷ 192 CWI sets of one data set, of the CWI sets are rewritten. Note that this value is larger than the value for one head. When one track on a tape drive having 32 tracks is a dead track, 1 track / 32 tracks = 3.125% of the 32 tracks are not working. Therefore, the drive usually rewrites 3.125% of the CWI sets that were not accurately written to the tape. However, the drive uses all tracks for rewriting. This means that the dead track is reused for the rewrite operation. Therefore, the number of CWI sets for rewriting is larger than 3.125%, and 4% is used.

[0017] Therefore, in order to determine whether to perform calibration on this drive, only in the forward direction, 7.8 is added in advance to the rewrite reference value, and the reference value thus obtained is compared with the number of occurrences of rewriting per data set during actual writing. In this exemplary LTO drive, it has been determined that the reference value is 9. Therefore, the forward reference value is set to 16.8 (7.8 of the dead track + 9 of the reference value of this specific drive type), while the reverse reference value remains 9.

[0018] Next, consider an example of the prior art that does not correct the reference value by considering the number of dead tracks. In this example, the drive typically generates an average of 1.3 rewrites per data set without counting rewrites due to dead tracks. Dead tracks, on average, cause 7.8 rewrites caused by dead tracks, so the average rewrite + dead track rewrite exceeds the reference value of 9, and as a result, calibration is performed. Therefore, since most rewrites are caused by dead tracks that cannot be corrected by calibration, unnecessary calibration is performed and the tape drive throughput is reduced.

[0019] In an embodiment of the present invention, the reference value is changed to take into account the head in the dead track state, thereby preventing calibration until the number of rewrites exceeds 16.8. In other words, calibration is performed only when it is actually necessary. In the above example where the drive generates only an average of 1.3 rewrites per data set, unnecessary calibration is not performed even when including rewrites caused by dead tracks (average 7.8 times). This is because the number of rewrites does not exceed the new threshold of 16.8.

[0020] FIG. 1 is a functional block diagram showing a distributed data processing environment, generally designated 100, suitable for the operation of an adaptive calibration program 132, according to at least one embodiment of the present invention. As used herein, the term "distributed" represents a computer system that includes a number of physically distinct devices that operate together as a single computer system. FIG. 1 shows only one embodiment and does not imply any limitation regarding the environment in which different embodiments can be implemented. Those skilled in the art can make many changes to the illustrated environment without departing from the scope of the present invention as recited in the claims.

[0021] The distributed data processing environment 100 includes a computing device 110 connected to a network 120 and a magnetic tape device 130 connected to the computing device 110. The network 120 can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of these three networks, and can include wired, wireless, or fiber optic connections. The network 120 can include one or more wired networks or wireless networks or both that can transmit and receive data, voice, or video signals or combinations thereof, including multimedia signals that include voice, data, and video information. Generally, the network 120 can be any combination of connections and protocols that assist in communication between the computing device 110 and other computing devices (not shown) within the distributed data processing environment 100.

[0022] The computing device 110 can be a stand-alone computing device, a management server, a web server, a mobile computing device, or other electronic device or computing system that can receive, transmit, and process data. In one embodiment, the computing device 110 can be a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or a programmable electronic device that can communicate with other computing devices (not shown) in the distributed data processing environment 100 via the network 120. In another embodiment, the computing device 110 can represent a server computing system that utilizes a number of computers as a server system, for example, in a cloud computing environment. In another embodiment, the computing device 110 represents a computing system that utilizes clustered computers and components (e.g., database server computers, application server computers) that function as a single pool of seamless resources when accessed within the distributed data processing environment 100.

[0023] In one embodiment, the magnetic tape device 130 includes an adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 is a program, application, or subprogram of a larger program for adaptive tape calibration criteria based on the number of dead tracks.

[0024] In one embodiment, the magnetic tape device 130 includes an information repository 134. In one embodiment, an adaptive calibration program 132 may manage the information repository 134. In an alternative embodiment, the operating system of the computing device may manage the information repository 134 alone or together with the adaptive calibration program 132. The information repository 134 is a data repository that can perform storage, collection, comparison, or combination of information, or a combination thereof. In some embodiments, the information repository 134 is located outside the magnetic tape device 130 and is accessed via a communication network such as the network 120. In some embodiments, the information repository 134 is stored on the magnetic tape device 130. In some embodiments, the information repository 134 may be on another computing device (not shown), provided that the magnetic tape device 130 can access the information repository 134. The information repository 134 includes, but is not limited to, tape drive configuration data, tape drive error data, tape cartridge error data, tape calibration data, storage system configuration data, file system data, and other data received by the adaptive calibration program 132 from one or more sources, as well as data generated by the adaptive calibration program 132.

[0025] The information repository 134 can be implemented using a volatile or non-volatile storage medium for storing information, which is known in the art. Similarly, the information repository 134 can also be implemented using a suitable storage architecture known in the art, such as a relational database, an object-oriented database, or one or more tables.

[0026] Figure 2 is a flowchart showing the operational steps executed by the adaptive calibration program 132 on a magnetic tape device within the distributed data processing environment of FIG. 1 for a preparation procedure to determine the number of occurrences of retries during a write operation on a drive having a dead track for one head according to an embodiment of the present invention. In an alternative embodiment, other programs may execute the steps of workflow 200 while being executed together with the adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 measures the number of rewrites on a drive having a dead track for one head. In one embodiment, the adaptive calibration program 132 measures the number of rewrites on a good drive, i.e., a drive without a dead track. In one embodiment, the adaptive calibration program 132 calculates a rewrite R, specifically a rewrite R due to a dead track.

[0027] It should be understood that embodiments of the present invention provide at least a preparation procedure for an adaptive calibration program 132 that determines the number of occurrences of retries during a write operation on a drive having a dead track for one head. However, FIG. 2 shows only one embodiment and does not imply any limitation regarding an environment in which different embodiments can be implemented. Those skilled in the art can implement many changes to the illustrated environment without departing from the scope of the present invention as recited in the claims.

[0028] The adaptive calibration program 132 measures the number of rewrites on a dead track drive → R dt (Step 202). In one embodiment, the adaptive calibration program 132 measures the number of rewrites on a drive having a dead track for one head. In one embodiment, the adaptive calibration program 132 stores this value in R dt Here, dt represents the track number of the dead track for a particular head.

[0029] The adaptive calibration program 132 measures the number of rewrites on a good drive → R gd(Step 204). In one embodiment, the adaptive calibration program 132 measures the number of rewrites on a good drive, i.e., a drive without dead tracks. In one embodiment, the adaptive calibration program 132 stores this value in R gd Here, gd represents a good drive, i.e., a drive without dead tracks.

[0030] The adaptive calibration program 132 calculates the rewrites per dead track (Step 206). In one embodiment, the adaptive calibration program 132 calculates the rewrite R, specifically the rewrite R due to dead tracks, using Equation (1). R = R dt -R gd (1)

[0031] In one embodiment, the adaptive calibration program 132 then ends for this cycle.

[0032] It should be understood that the embodiment described in FIG. 2 is only one simple method for calculating the number of rewrites due to dead tracks when the number of rewrites increases linearly with the number of dead tracks. In another embodiment, the number of rewrites may not increase linearly. In this alternative embodiment, the number of rewrites R dt on a drive with dead tracks is measured for j dead tracks and stored in the structure R dt (j). In this embodiment, the adaptive calibration program 132 calculates the rewrite R, specifically the rewrite R due to dead tracks, by substituting the value of R dt in Equation (1) with the value R dt (j) and using Equation (1a). R = R dt (j)-R gd (1a)

[0033] FIG. 3 is a flowchart showing the operational steps executed by the adaptive calibration program 132 on the magnetic tape device within the distributed data processing environment of FIG. 1 to store information on a dead track during a write operation. In an alternative embodiment, other programs may execute the steps of the workflow 300 while being executed together with the adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 initializes a counter i to 0. In one embodiment, the adaptive calibration program 132 increments the track counter i to address the next track of the tape drive. In one embodiment, the adaptive calibration program 132 counts the number of ECC-protected data segments or CWI sets having an error occurring on the i-th track that cannot be corrected by C1, one of the error correction functions used by the tape drive. In one embodiment, the adaptive calibration program 132 stores U(i) in U(i)(j), which is the j-th history of U(i), i.e., the U(i) obtained while writing the last j data sets. In one embodiment, the adaptive calibration program 132 determines whether the number of uncorrectable CWI sets among the last j data sets exceeds a predetermined threshold. In one embodiment, if the adaptive calibration program 132 determines that the number of uncorrectable CWI sets among the last j data sets exceeds a predetermined threshold, the adaptive calibration program 132 determines that the tape head is in a dead track state during the write operation. In one embodiment, the adaptive calibration program 132 determines whether the last track on the tape drive has been checked, i.e., whether i is less than the number of tracks of the drive. In one embodiment, if the adaptive calibration program 132 determines that the last track on the tape drive has been checked, the adaptive calibration program 132 ends for this cycle.

[0034] Embodiments of the present invention should be understood to provide at least operational steps performed by an adaptive calibration program 132 to store information on a dead track during a write operation. However, FIG. 3 shows only one embodiment and does not imply a limitation regarding an environment in which different embodiments can be implemented. One of ordinary skill in the art can implement many changes to the illustrated environment without departing from the scope of the present invention as recited in the claims.

[0035] The adaptive calibration program 132 sets i = 0 (step 302). In one embodiment, the adaptive calibration program 132 initializes the counter i to 0. In one embodiment, the adaptive calibration program 132 uses this counter to execute the algorithm of FIG. 3 once for each track of a particular tape drive being analyzed.

[0036] The adaptive calibration program 132 increments i (i = i + 1) (step 304). In one embodiment, the adaptive calibration program 132 increments the track counter i to address the next track of the tape drive.

[0037] The adaptive calibration program 132 counts the number of uncorrectable codeword interleaving sets by C1 for each track i → U(i) (step 306). In one embodiment, the adaptive calibration program 132 counts the number of error-corrected data segments or CWI sets having errors that occurred on the i-th track that are uncorrectable by C1, which is one of the error correction functions used in the tape drive. Typically, C1 is a high-efficiency Reed-Solomon error correction code. C1 is designed to detect and correct media errors per channel. In one embodiment, the adaptive calibration program 132 stores this count in U(i).

[0038] The adaptive calibration program 132 checks the CWI set history of each track i → U(i)(j) (step 308). In one embodiment, the adaptive calibration program 132 stores U(i) obtained while writing the j-th history of U(i), i.e., the immediately preceding j data sets, into U(i)(j). Since the number of rewrites may increase when the tape surface is damaged such as scratched, in one embodiment, in order to avoid the influence of tape surface damage, the drive checks rewrites over a certain length. Therefore, the number of history sets checked by the adaptive calibration program 132 is the variable j that can be adjusted based on the drive history. In one embodiment, j is the system default value. In another embodiment, j is received from the user or system administrator. In another embodiment, j is specific to a particular drive or drive type.

[0039] The adaptive calibration program 132 determines whether the number of CWI sets of the last j data sets is > the threshold (decision block 310). In one embodiment, the adaptive calibration program 132 counts the number of data sets among the last j data sets whose CWI sets exceed a predetermined threshold. In one embodiment, if the adaptive calibration program 132 determines that the number of data sets among the last j data sets whose CWI sets exceed a predetermined threshold does not itself exceed a second threshold (the "no" branch of decision block 310), the adaptive calibration program 132 proceeds to decision block 314 and checks the next track. In one embodiment, if the adaptive calibration program 132 determines that the number of data sets among the last j data sets whose CWI sets exceed a predetermined threshold itself exceeds a second threshold (the "yes" branch of decision block 310), the adaptive calibration program 132 proceeds to step 312 and stores the dead track information.

[0040] The adaptive calibration program 132 stores this dead track information on the drive (step 312). In one embodiment, if the adaptive calibration program 132 determines that the number of uncorrectable CWI sets among the last j data sets exceeds a predetermined threshold, the adaptive calibration program 132 determines that the tape head is in a dead track state during the write operation. In one embodiment, the adaptive calibration program 132 then stores the head and track information in a tape drive, such as main memory or VPD.

[0041] The adaptive calibration program 132 determines whether i < N track (decision block 314). In one embodiment, the adaptive calibration program 132 determines whether there are still tracks to be checked on the tape drive. That is, if i is less than the number of tracks on the drive, there are still tracks to be checked. In one embodiment, if the adaptive calibration program 132 determines that there are still tracks to be checked on the tape drive (the "yes" branch of decision block 314), the adaptive calibration program 132 returns to step 304 to check the next track. In one embodiment, if the adaptive calibration program 132 determines that there are no tracks left to be checked (the "no" branch of decision block 314), the adaptive calibration program 132 ends for this cycle.

[0042] Figure 4 is a flowchart showing the operational steps executed by the adaptive calibration program 132 on a magnetic tape device within the distributed data processing environment of FIG. 1 to store information about dead tracks during calibration. In alternative embodiments, other programs may execute the steps of workflow 400 while being executed together with the adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 performs a legacy calibration of the tape drive to determine the presence of dead tracks on the tape drive. In one embodiment, the adaptive calibration program 132 analyzes the results of the legacy calibration process to determine whether there are dead tracks on the tape drive. In one embodiment, the adaptive calibration program then stores the head and track information in the non-volatile memory of the tape drive, such as the VPD. In one embodiment, the adaptive calibration program 132 then ends for this cycle.

[0043] It should be understood that embodiments of the present invention provide at least the operational steps executed by the adaptive calibration program 132 to store information about dead tracks during calibration. However, FIG. 4 shows only one embodiment and does not imply any limitation regarding the environment in which different embodiments can be implemented. Those skilled in the art can make many changes to the illustrated environment without departing from the scope of the present invention as recited in the claims.

[0044] The process shown in FIG. 4 shows one possible iteration of the operational steps executed by the adaptive calibration program 132 to store information about dead tracks during calibration, and it should be understood that this iteration is repeated each time calibration is performed by the adaptive calibration program 132.

[0045] The adaptive calibration program 132 performs a legacy calibration (step 402). In one embodiment, the adaptive calibration program 132 performs a legacy calibration of the tape drive to determine the presence of dead tracks on the tape drive.

[0046] The adaptive calibration program 132 determines a dead track from the calibration results (step 404). In one embodiment, the adaptive calibration program 132 analyzes the results of the legacy calibration process to determine whether there is a dead track on the tape drive. In one embodiment, the adaptive calibration program 132 determines whether there is a dead track on the tape drive by comparing the number of rewrites during calibration with the number of rewrites during calibration of a known good drive executed in FIG. 2 for the write operation rewrite.

[0047] The adaptive calibration program 132 stores the dead track on the drive (step 406). In one embodiment, the adaptive calibration program 132 then stores the head and track information in the non-volatile memory of the tape drive, such as the VPD. In one embodiment, the adaptive calibration program 132 then ends for this cycle.

[0048] FIG. 5 is a flowchart showing the operation steps executed by the adaptive calibration program 132 on a magnetic tape device in the distributed data processing environment of FIG. 1 to determine a reference value for the number of rewrites to determine whether to perform calibration according to an embodiment of the present invention. In an alternative embodiment, other programs may execute the steps of workflow 500 while being executed together with the adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 retrieves the number of dead tracks from the memory of the tape drive, such as the main memory or the VPD, and stores this value in N. In one embodiment, the adaptive calibration program 132 retrieves the reference value for that drive type and stores that value in C. In one embodiment, the adaptive calibration program 132 calculates a specific reference value Cd for a specific drive. In one embodiment, the adaptive calibration program 132 then ends for this cycle.

[0049] Embodiments of the present invention should be understood to provide at least operation steps executed by the adaptive calibration program 132 to determine a reference value for the number of rewrites for determining whether calibration should be performed. However, FIG. 5 only shows one embodiment and does not imply any limitation regarding the environment in which different embodiments can be implemented. Those skilled in the art can make many changes to the illustrated environment without departing from the scope of the present invention described in the claims.

[0050] The adaptive calibration program 132 obtains a dead track from the drive → N (step 502). In one embodiment, the adaptive calibration program 132 retrieves the number of dead tracks from the memory of the tape drive, such as the main memory or the VPD, and stores this value in N.

[0051] The adaptive calibration program 132 obtains a determination criterion for the drive type → C (step 504). In one embodiment, the adaptive calibration program 132 retrieves the determination reference value for that drive type and stores that value in C. In one embodiment, this determination reference value is a reference value measured in advance for each type of drive used to determine whether calibration should be performed.

[0052] The adaptive calibration program 132 determines a determination criterion for that drive (step 506). In one embodiment, the adaptive calibration program 132 calculates a specific reference value for a specific drive by considering the number of dead tracks. In one embodiment, the adaptive calibration program 132 calculates a specific reference value Cd for a specific drive using equation (2). Cd = C+(N×R) (2)

[0053] In one embodiment, the adaptive calibration program 132 then ends for this cycle.

[0054] The embodiment described in FIG. 5 is merely one simple method for determining a reference value of the number of rewrites to determine whether to perform calibration when the number of rewrites increases linearly with the number of dead tracks. As explained in FIG. 2, in another embodiment, the number of rewrites may not increase linearly. In this alternative embodiment, the number of rewrites R dt is measured for each track and stored in the structure R dt (i). Here, i is the track number. The value R dt (i) will then be used for each track in step 506 to separately determine the reference number for each respective track.

[0055] FIG. 6 is a flowchart showing the operational steps executed by the adaptive calibration program 132 on a magnetic tape device within the distributed data processing environment of FIG. 1 to determine whether calibration should be performed, according to one embodiment of the present invention. In an alternative embodiment, other programs may execute the steps of workflow 600 while being executed together with the adaptive calibration program 132. In one embodiment, the adaptive calibration program 132 retrieves the number of rewrites for the last K data set writes and stores them in R(1) through R(K). In one embodiment, the adaptive calibration program 132 uses a counter i to count the number of data sets, i.e., i counts from 1 to K, and n is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold Cd. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd, the adaptive calibration program 132 increments the count of the total number of data sets for which the number of rewrites exceeds the predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether the last data set has been analyzed. That is, if i < K, there are data sets left to be analyzed. In one embodiment, if the adaptive calibration program 132 determines that the last data set has not been analyzed, the adaptive calibration program 132 increments the counter i and analyzes the next data set. In one embodiment, the adaptive calibration program 132 determines whether the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold. In one embodiment, if the adaptive calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold, the adaptive calibration program 132 performs calibration. Then, the adaptive calibration program 132 ends for this cycle.

[0056] Embodiments of the present invention should be understood to provide at least operational steps performed by an adaptive calibration program 132 to determine whether calibration should be performed. However, FIG. 6 shows only one embodiment and does not imply any limitation regarding the environment in which different embodiments may be implemented. One of ordinary skill in the art can make many changes to the illustrated environment without departing from the scope of the invention as recited in the claims.

[0057] The process shown in FIG. 6 shows one possible iteration of the operational steps performed by the adaptive calibration program 132 to determine whether calibration should be performed, and it should be understood that this iteration is repeated each time the execution of calibration is set.

[0058] The adaptive calibration program 132 obtains the rewrites R(1)...R(K) of the last K data sets (step 602). In one embodiment, the adaptive calibration program 132 retrieves the number of rewrites for the last K data set writes and stores them in R(1) through R(K). In one embodiment, the adaptive calibration program 132 retrieves the number of rewrites for the last K data set writes from the memory of the tape drive.

[0059] The adaptive calibration program 132 sets i = 1 and n = 0 (step 604). In one embodiment, the adaptive calibration program 132 uses a counter i to count the number of data sets, i.e., i counts from 1 to K, and n is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold.

[0060] The adaptation calibration program 132 determines whether R(i)>Cd (judgment block 606). In one embodiment, the adaptation calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold value Cd. In one embodiment, the predetermined threshold value Cd is the reference value determined in FIG. 5. In one embodiment, if the adaptation calibration program 132 determines that the number of rewrites for data set i does not exceed the predetermined threshold value Cd (the "no" branch of judgment block 606), the adaptation calibration program 132 proceeds to judgment block 610 to check the next data set. In one embodiment, if the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold value Cd (the "yes" branch of judgment block 606), the adaptation calibration program 132 proceeds to step 608 and increments the count of the total number of data sets for which the number of rewrites exceeds the predetermined threshold value.

[0061] The adaptation calibration program 132 sets n=n+1 (step 608). In one embodiment, if the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold value Cd, the adaptation calibration program 132 increments the count n of the total number of data sets for which the number of rewrites exceeds the predetermined threshold value.

[0062] The adaptation calibration program 132 determines whether the data set is the last data set (judgment block 610). In one embodiment, the adaptation calibration program 132 determines whether the last data set has been analyzed. That is, when i < K, there are still data sets to be analyzed. In one embodiment, if the adaptation calibration program 132 determines that the last data set has not been analyzed (the "No" branch of judgment block 610), the adaptation calibration program 132 proceeds to step 612 and checks the next data set. In one embodiment, if the adaptation calibration program 132 determines that the last data set has been analyzed (the "Yes" branch of judgment block 610), the adaptation calibration program 132 proceeds to judgment block 614 and determines whether the count exceeds a predetermined threshold.

[0063] The adaptation calibration program 132 sets i = i + 1 (step 612). In one embodiment, if the adaptation calibration program 132 determines that the last data set has not been analyzed, the adaptation calibration program 132 increments the counter i and analyzes the next data set. In one embodiment, then the adaptation calibration program 132 returns to judgment block 606 and checks the next data set.

[0064] The adaptation calibration program 132 determines whether n > threshold (judgment block 614). In one embodiment, the adaptation calibration program 132 determines whether the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold. In one embodiment, if the adaptation calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself exceeds another predetermined threshold (the "Yes" branch of judgment block 614), the adaptation calibration program 132 proceeds to step 616 and performs calibration. In one embodiment, if the adaptation calibration program 132 determines that the total count of all data sets for which the number of rewrites exceeds the threshold itself does not exceed another predetermined threshold (the "No" branch of judgment block 614), the adaptation calibration program 132 ends for this cycle.

[0065] The adaptive calibration program 132 performs calibration (step 616). In one embodiment, if the adaptive calibration program 132 determines that the total count of all data sets for which the number of rewrites has exceeded a threshold itself exceeds another predetermined threshold, the adaptive calibration program 132 performs calibration. Then, for this cycle, the adaptive calibration program 132 ends.

[0066] In one embodiment, the rewrite R may be affected by debris on the tape head, in which case calibration will not be necessary. In one embodiment, if the debris can be removed, the number of rewrites will be improved up to the result calculated in FIG. 4 above, i.e., up to the rewrite determined during channel calibration. In one embodiment, if the number of rewrites increases due to debris on the tape drive head, calibration is not necessary. In one embodiment, to remove debris from the head, the adaptive calibration program 132 runs the drive from the beginning of the tape (BOT) to the end of the tape (EOT) and then back to BOT. In one embodiment, the adaptive calibration program 132 then rechecks the head by moving the head from the operating position (the cartridge is loaded in the tape drive) to the lock position (the cartridge is only inserted into the tape drive and not loaded), and then moves it back to the operating position again. This sequence of removing debris is called a refresh.

[0067] The following FIGS. 7 and 8 show alternative embodiments of the present invention including a refresh function when encountering debris on the tape.

[0068] In recent years, with the increase in the capacity of tape drives, the area per bit (linear density × track width) when a tape drive writes to a tape medium has become extremely narrow. As a result, the presence of fine particles called debris adhering to the tape medium or the head increases the frequency of occurrence of rewrites. When a rewrite occurs due to debris, the frequency of rewrites can be reduced by removing the debris without actually performing calibration.

[0069] FIG. 7 is a flowchart showing the operation steps executed by the adaptive calibration program 132 on a magnetic tape device in the dispersion data processing environment of FIG. 1 to determine a reference value for the number of rewrites for determining whether to perform calibration or refresh according to an embodiment of the present invention. In an alternative embodiment, other programs may execute the steps of workflow 700 while being executed together with the adaptive calibration program 132. In this embodiment, the adaptive calibration program 132 determines whether there is debris on the tape head. If no debris is found on the tape head, the adaptive calibration program 132 calculates a single determination criterion Cd1 for the number of rewrites for determining whether calibration is necessary. If debris is found on the tape head, the adaptive calibration program 132 calculates one determination criterion Cd1 for the number of rewrites for determining whether calibration is necessary, and a second determination criterion Cd2 for the number of rewrites for determining whether a refresh is necessary to remove the debris from the tape head.

[0070] In one embodiment, the adaptive calibration program 132 retrieves the number of dead tracks from the non-volatile memory of the tape drive, such as VPD, and stores this value in N calib In one embodiment, the adaptive calibration program 132 counts the number of dead tracks encountered during the data writing operation and stores this value in N wrt In one embodiment, the adaptive calibration program 132 determines the number of rewrites N for calibration calib is the number of rewrites N during the data writing operation wrtDetermine whether it is equal to. In one embodiment, the number of rewrites N for calibration calib is the number of rewrites N during the data writing operation wrt If the adaptive calibration program 132 determines that it is equal to, the adaptive calibration program 132 calculates the determination criteria Cd1 and Cd2. In this case, the criteria Cd1 and Cd2 are the same. In one embodiment, the number of rewrites N for calibration calib and the number of rewrites N during the data writing operation wrt If the adaptive calibration program 132 determines that they are not equal, the adaptive calibration program 132 calculates two different determination criteria Cd1 and Cd2. Then, for this cycle, the adaptive calibration program 132 ends.

[0071] It should be understood that the embodiments of the present invention provide at least the operation steps executed by the adaptive calibration program 132 to determine the reference value of the number of rewrites for determining whether to perform calibration or refresh. However, FIG. 7 only shows one embodiment and does not imply any limitation regarding the environment in which different embodiments can be implemented. Those skilled in the art can make many changes to the illustrated environment without departing from the scope of the present invention described in the claims.

[0072] The adaptive calibration program 132 obtains a dead track from the drive → N calib (Step 702). In one embodiment, the adaptive calibration program 132 extracts the number of dead tracks from the non-volatile memory of the tape drive, for example, the VPD, and stores this value in N calib .

[0073] The adaptive calibration program 132 counts the number of dead tracks during writing → N wrt (Step 704). In one embodiment, the adaptive calibration program 132 counts the number of dead tracks encountered during the data writing operation and stores this value in N wrtStore it. In one embodiment, for example, as shown in FIG. 3 above, the adaptive calibration program 132 counts the number of dead tracks encountered during the data writing operation.

[0074] The adaptive calibration program 132 determines whether N calib =N wrt (decision block 706). In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites N calib for calibration is equal to the number of rewrites N wrt during the data writing operation. If the number of rewrites for calibration is not equal to the number of rewrites during the data writing operation, there is probably debris on the tape head, and the debris can be removed by a refresh operation, and additional rewrites can be eliminated.

[0075] In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites N calib for calibration is not equal to the number of rewrites N wrt during the data writing operation (the "no" branch of decision block 706), the adaptive calibration program 132 proceeds to step 710 and sets two different criteria: a criterion (Cd1) for determining whether calibration is necessary and a criterion (Cd2) for determining whether a refresh is necessary. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites N calib for calibration is equal to the number of rewrites N wrt during the data writing operation (the "yes" branch of decision block 706), the adaptive calibration program 132 proceeds to step 708 and sets a single criterion for determining whether calibration is necessary.

[0076] The adaptive calibration program 132 generates the criteria Cd1 = Cd2 = C+(N calib ×R) (step 708). In one embodiment, if the number of rewrites N calib for calibration is equal to the number of rewrites N wrtWhen the adaptive calibration program 132 determines that it is equal to, the adaptive calibration program 132 calculates the determination criteria Cd1 and Cd2 using Equation (3). In this case, the criteria Cd1 and Cd2 are the same. Cd1 = Cd2 = C + (N calib × R) (3)

[0077] In Equation (3), C is a reference value for a specific drive type measured in advance for each drive type, and is used to determine whether to perform calibration. R is the number of rewrites per dead track determined in FIG. 2 above. Then, for this cycle, the adaptive calibration program 132 ends.

[0078] The adaptive calibration program 132 generates calibration determination criteria (step 710). In one embodiment, the number of rewrites N wrt during the data writing operation and the number of rewrites N calib for calibration are not equal, when the adaptive calibration program 132 determines, the adaptive calibration program 132 calculates two different determination criteria Cd1 and Cd2, for Cd1 using Equation (4) and for Cd2 using Equation (5). Cd1 = C + (N wrt × R) (4) Cd2 = C + (N calib × R) (5)

[0079] In both Equation (4) and Equation (5), C is, as in Equation (3), a reference value for a specific drive type measured in advance for each drive type, and is used to determine whether to perform calibration. R is the number of rewrites per dead track determined in FIG. 2 above. The determination criteria Cd1 and Cd2 are used in FIG. 8 to determine whether to perform a refresh, whether to perform calibration, or whether neither is necessary. Then, for this cycle, the adaptive calibration program 132 ends.

[0080] FIG. 8 is a flowchart showing the operational steps performed by the adaptive calibration program 132 on a magnetic tape device within the distributed data processing environment of FIG. 1 to determine whether calibration or refresh should be performed, according to one embodiment of the present invention. In alternative embodiments, other programs may execute the steps of workflow 800 while being executed together with the adaptive calibration program 132.

[0081] In one embodiment, the adaptive calibration program 132 retrieves the number of rewrites for the last K data set writes and stores them in R(1) through R(K). In one embodiment, the adaptive calibration program 132 uses a counter i to count the number of data sets, i.e., i counts from 1 to K, where n1 is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold for the calibration cycle, and n2 is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold for the data write operation. In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold Cd1, which is the threshold for rewrites during the data write operation, i.e., the number of rewrites that would always occur on the track. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd1, the adaptive calibration program 132 increments the count n1 of the total number of data sets for which the number of rewrites during the data write operation exceeds the predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold Cd2, which is a second threshold for rewrites for calibration. In one embodiment, if the adaptive calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd2, the adaptive calibration program 132 increments the count n2 of the total number of data sets for which the number of rewrites for calibration exceeds the predetermined threshold. In one embodiment, the adaptive calibration program 132 determines whether it has analyzed the last data set. That is, if i < K, there are data sets left to be analyzed. In one embodiment, if the adaptive calibration program 132 determines that it has not analyzed the last data set, the adaptive calibration program 132 increments the counter i and analyzes the next data set.In one embodiment, the adaptive calibration program 132 determines whether the total count of all data sets whose rewrite count exceeds the rewrite threshold during the write operation itself exceeds another predetermined threshold TH2. In one embodiment, when the adaptive calibration program 132 determines that the total count of all data sets whose rewrite count exceeds the rewrite threshold during the write operation itself exceeds TH2, the adaptive calibration program 132 performs the above-described refresh. Then, the adaptive calibration program 132 ends for this cycle. In one embodiment, the adaptive calibration program 132 determines whether the total count of all data sets whose rewrite count exceeds the rewrite threshold during calibration itself exceeds another predetermined threshold TH1. In one embodiment, when the adaptive calibration program 132 determines that the total count of all data sets whose rewrite count exceeds the rewrite threshold during calibration itself exceeds TH1, the adaptive calibration program 132 performs calibration. Then, the adaptive calibration program 132 ends for this cycle.

[0082] It should be understood that embodiments of the present invention provide at least the operational steps performed by the adaptive calibration program 132 to determine whether to perform calibration or a refresh. However, FIG. 8 shows only one embodiment and does not imply any limitation regarding the environment in which different embodiments can be implemented. Those skilled in the art can make many changes to the illustrated environment without departing from the scope of the invention as claimed.

[0083] The process shown in FIG. 8 shows one possible iteration of the operational steps performed by the adaptive calibration program 132 to determine whether to perform calibration, and it should be understood that this iteration is repeated each time the execution of calibration is set.

[0084] The adaptation calibration program 132 obtains the rewrites R(1)...R(K) of the last K data sets (step 802). In one embodiment, the adaptation calibration program 132 retrieves the number of rewrites for the last K data set writes and stores them in R(1) through R(K). In one embodiment, the adaptation calibration program 132 retrieves the number of rewrites for the last K data set writes from the memory of the tape drive.

[0085] The adaptation calibration program 132 sets i = 1, n1 = n2 = 0 (step 804). In one embodiment, the adaptation calibration program 132 uses the counter i to count the number of data sets, i.e., i counts from 1 to K, n1 is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold for the data write operation, and n2 is used to count the total number of data sets for which the number of rewrites exceeds a predetermined threshold for calibration.

[0086] The adaptation calibration program 132 determines whether R(i)>Cd1 (decision block 806). In one embodiment, the adaptation calibration program 132 determines whether the number of rewrites for data set i, i.e., R(i), exceeds a predetermined threshold Cd1, which is the threshold number of rewrites during the data write operation, i.e., the number of rewrites that would always occur on the track. In one embodiment, the predetermined threshold Cd1 is one of the reference values determined in FIG. 7. In one embodiment, if the adaptation calibration program 132 determines that the number of rewrites for data set i does not exceed the predetermined threshold Cd1 (the "no" branch of decision block 806), the adaptation calibration program 132 proceeds to decision block 810 to check the next rewrite determination criterion. In one embodiment, if the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd1 (the "yes" branch of decision block 806), the adaptation calibration program 132 proceeds to step 808 and increments the count of the total number of data sets for which the number of rewrites during the data write operation exceeds the predetermined threshold.

[0087] The adaptation calibration program 132 sets n1 = n1 + 1 (step 808). In one embodiment, when the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds a predetermined threshold Cd1, the adaptation calibration program 132 increments the count n1 of the total number of data sets for which the number of rewrites during the data writing operation exceeds the predetermined threshold.

[0088] The adaptation calibration program 132 determines whether R(i)>Cd2 (decision block 810). In one embodiment, the adaptation calibration program 132 determines whether the number of rewrites for data set i, that is, R(i), exceeds a predetermined threshold Cd2 which is the rewrite threshold for calibration. In one embodiment, the predetermined threshold Cd2 is one of the reference values determined in FIG. 7. In one embodiment, when the adaptation calibration program 132 determines that the number of rewrites for data set i does not exceed the predetermined threshold Cd2 (the "no" branch of decision block 810), the adaptation calibration program 132 proceeds to decision block 814 to check whether that data set is the last data set. In one embodiment, when the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds the predetermined threshold Cd2 (the "yes" branch of decision block 810), the adaptation calibration program 132 proceeds to step 812 and increments the count of the total number of data sets for which the number of rewrites exceeds the predetermined threshold for calibration.

[0089] The adaptation calibration program 132 sets n2 = n2 + 1 (step 812). In one embodiment, when the adaptation calibration program 132 determines that the number of rewrites for data set i exceeds a predetermined threshold Cd2, the adaptation calibration program 132 increments the count n2 of the total number of data sets for which the number of rewrites for calibration exceeds the predetermined threshold.

[0090] The adaptation calibration program 132 determines whether the data set is the last data set (judgment block 814). In one embodiment, the adaptation calibration program 132 determines whether the last data set has been analyzed. That is, if i < K, there are data sets left to be analyzed. In one embodiment, if the adaptation calibration program 132 determines that the last data set has not been analyzed (the "no" branch of judgment block 814), the adaptation calibration program 132 proceeds to step 816 to check the next data set. In one embodiment, if the adaptation calibration program 132 determines that the last data set has been analyzed (the "yes" branch of judgment block 814), the adaptation calibration program 132 proceeds to judgment block 818 to determine whether the total count of data sets in which the number of rewrites during the writing operation exceeds a predetermined threshold exceeds a predetermined threshold.

[0091] The adaptation calibration program 132 sets i = i + 1 (step 816). In one embodiment, if the adaptation calibration program 132 determines that the last data set has not been analyzed, the adaptation calibration program 132 increments the counter i and analyzes the next data set. In one embodiment, then the adaptation calibration program 132 returns to judgment block 806 to check the next data set.

[0092] The adaptation calibration program 132 determines whether n2 > TH2 (judgment block 818). In one embodiment, the adaptation calibration program 132 determines whether the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold for calibration exceeds another predetermined threshold TH2. In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold for calibration exceeds TH2 (the "yes" branch of judgment block 818), the adaptation calibration program 132 proceeds to step 820 and executes a refresh. In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold for calibration does not exceed TH2 (the "yes" branch of judgment block 818), the adaptation calibration program 132 proceeds to judgment block 822 and tries the next threshold.

[0093] The adaptation calibration program 132 executes a refresh (step 820). In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold for calibration exceeds TH2, the adaptation calibration program 132 executes the above-described refresh. Then, for this cycle, the adaptation calibration program 132 ends.

[0094] The adaptation calibration program 132 determines whether n1 > TH1 (judgment block 822). In one embodiment, the adaptation calibration program 132 determines whether the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold during the data writing operation exceeds another predetermined threshold TH1. In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold during the data writing operation exceeds TH1 (the "yes" branch of judgment block 822), the adaptation calibration program 132 proceeds to step 824 and performs calibration. In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold during the data writing operation does not exceed TH1 (the "no" branch of judgment block 822), the adaptation calibration program 132 ends for this cycle.

[0095] The adaptation calibration program 132 performs calibration (step 824). In one embodiment, when the adaptation calibration program 132 determines that the total count itself of all data sets for which the number of rewrites exceeds the rewrite threshold during the data writing operation exceeds TH1, the adaptation calibration program 132 performs calibration. Then, the adaptation calibration program 132 ends for this cycle.

[0096] FIG. 9 is a block diagram showing components of a magnetic tape device 130 suitable for an adaptive calibration program 132, according to at least one embodiment of the present invention. FIG. 9 shows a computer 900, one or more processors 904 (including one or more computer processors), a communications fabric 902, a memory 906 including a random access memory (RAM) 916 and a cache 918, a persistent storage 908, a communication unit 912, an I / O interface 914, a display 922, and an external device 920. It should be understood that FIG. 9 shows only one embodiment and does not imply any limitation regarding the environments in which different embodiments can be implemented. Many changes can be made to the illustrated environment.

[0097] As shown, computer 900 operates via communications fabric 902, which provides communications between computer processors 904, memory 906, persistent storage 908, communication unit 912, and I / O interface 914. Communications fabric 902 can be implemented to have an architecture suitable for transferring data or controlling information between processors 904 (such as microprocessors, communication processors, and network processors), memory 906, external device 920, and other hardware components within the system. For example, communications fabric 902 can be implemented by one or more buses.

[0098] Memory 906 and persistent storage 908 are computer-readable storage media. In the illustrated embodiment, memory 906 includes RAM 916 and cache 918. In general, memory 906 can include a suitable computer-readable storage medium that is volatile or non-volatile. Cache 918 is a high-speed memory that enhances the performance of processor 904 by holding data that has been most recently accessed and data that has been almost most recently accessed from RAM 916.

[0099] The program instructions of the adaptive correction program 132 can be stored in a persistent storage device 908 or more generally a computer-readable storage medium for execution by one or more of the respective computer processors 904 via one or more memories of the memory 906. The persistent storage device 908 can be a magnetic hard disk drive, a solid state disk drive, a semiconductor memory device, a read only memory (ROM), an electronically erasable programmable read only memory (EEPROM), a flash memory, or other computer-readable storage media capable of storing program instructions or digital information.

[0100] The medium used by the persistent storage device 908 can also be a removable medium. For example, a hard drive removable with respect to the persistent storage device 908 can be used. Other examples include optical and magnetic disks, thumb drives, and smart cards inserted into a drive for transfer to another computer-readable storage medium which is also part of the persistent storage device 908.

[0101] In these examples, the communication unit 912 provides communication with other data processing systems or devices. In these examples, the communication unit 912 includes one or more network interface cards. The communication unit 912 can provide communication by using one or both of a physical communication link and a wireless communication link. In the context of some embodiments of the present invention, various sources of input data can be physically remote from the computer 900 in such a manner that input data can be received via the communication unit 912 and similarly output can be transmitted.

[0102] The I / O interface 914 enables the input and output of data with other devices that can be connected to the computer 900. For example, the I / O interface 914 can provide connections to external devices 920 such as a keyboard, keypad, touch screen, microphone, digital camera, or several other suitable input devices, or combinations thereof. The external device 920 can further include portable computer-readable storage media such as, for example, a thumb drive, portable optical or magnetic disk, and memory card. Software and data used to implement embodiments of the present invention, such as the adaptation calibration program 132, can be stored on such portable computer-readable storage media and loaded into the persistent storage device 908 via the I / O interface 914. The I / O interface 914 is also connected to the display 922.

[0103] The display 922 provides a mechanism for displaying data to the user and can be, for example, a computer monitor. The display 922 can also function as a touch screen, such as the display of a tablet computer.

[0104] The programs described herein are identified based on the applications in which those programs are implemented in particular embodiments of the present invention. However, it should be understood that the specific program names described herein are used merely for convenience, and thus the present invention should not be limited to being used only in a particular application identified or implied by such names or a particular application identified and implied by such names.

[0105] The present invention may be a system, method, or computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium having thereon computer-readable program instructions for causing a processor to execute aspects of the present invention.

[0106] This computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. This computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy (R) disk, mechanically encoded devices such as punch cards or raised structures in grooves on which instructions are recorded, and suitable combinations thereof. As used herein, a computer-readable storage medium should not be construed to be a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., an optical pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0107] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or can be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. This network can include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers or edge servers, or combinations thereof. The network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers those computer-readable program instructions for storage on a computer-readable storage medium within the respective corresponding computing / processing device.

[0108] The computer-readable program instructions for carrying out the operation of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions or state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk(R), C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages. These computer-readable program instructions may be executed entirely on the user's computer, partly on the user's computer, executed as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or remote server. In the last scenario described above, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or this connection may be implemented to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to implement aspects of the present invention, an electronic circuit, including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA), may execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.

[0109] In this specification, aspects of the present invention are described with reference to flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to embodiments of the present invention. It is understood that each block of these flowcharts and / or block diagrams and combinations of blocks in these flowcharts and / or block diagrams can be implemented by computer-readable program instructions.

[0110] These computer-readable program instructions are provided to a processor of a computer or other programmable data processing apparatus such that the instructions executed by the processor of the computer or other programmable data processing apparatus generate means for performing the functions / operations specified in the blocks of the flowchart and / or block diagram and / or both. In such a manner, they can form a machine, which may be a general-purpose computer or a dedicated computer processor, or a processor of other programmable data processing apparatus. These computer-readable program instructions may further be stored in a computer-readable storage medium that includes a product containing instructions for implementing the functions / operations specified in the blocks of the flowchart and / or block diagram and / or both. In such a manner, the computer-readable storage medium can be stored and can be used to direct a computer, programmable data processing apparatus, or other device or combinations thereof to function in a particular manner.

[0111] These computer-readable program instructions may further be loaded onto a computer, other programmable apparatus, or other device to produce a process implemented by the computer such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / operations specified in the blocks of the flowchart and / or block diagram and / or both. In such a manner, they can cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device.

[0112] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible embodiments of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in those flowcharts or block diagrams may represent a module, segment, or portion of instructions that include one or more executable instructions for implementing the specified logical function. In some alternative embodiments, the functions noted in the blocks may be executed in an order different than that shown in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or depending on the functions involved, they may sometimes be executed in the reverse order. It should also be noted that each block of those block diagrams or flowcharts, or combinations of blocks in those block diagrams or flowcharts or both, can be implemented by a dedicated system based on hardware that performs the specified function or operation or a combination of dedicated hardware and computer instructions.

[0113] The foregoing description of various embodiments of the present invention has been presented for purposes of illustration. It is not intended to be exhaustive or to limit the invention to the precise embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the invention. The terms used herein were chosen to best explain the principles of the embodiments, the practical application, or improvements made to the technology found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A computer-implemented method, comprising: determining, by one or more computer processors, the number of occurrences of rewriting of each of one or more dead tracks on a tape drive; storing, by the one or more computer processors, the number of dead tracks on the tape drive in response to detecting that the head is in a dead track state; determining, by the one or more computer processors, a calibration threshold value, the calibration threshold value including the number of occurrences of dead track rewriting and a calibration reference value for a specific tape drive type; executing, by the one or more computer processors, calibration of the tape drive in response to the number of occurrences of rewriting exceeding the calibration threshold value while writing a data set; A computer-implemented method including the above steps.

2. The step of determining the calibration threshold value, the calibration threshold value including the number of occurrences of dead track rewriting and the calibration reference value for the specific tape drive type, the step further includes: retrieving, by the one or more computer processors, the number of dead tracks from the tape drive; determining, by the one or more computer processors, the number of occurrences of dead track rewriting, the number of occurrences of dead track rewriting being determined by multiplying the number of dead tracks by the number of occurrences of rewriting of each dead track on the tape drive; and adding, by the one or more computer processors, the number of occurrences of dead track rewriting to the calibration reference value for the specific tape drive type. The computer-implemented method according to claim 1, further including the above steps.

3. The step of determining the number of occurrences of rewriting of each of the one or more dead tracks on the tape drive further includes: measuring, by the one or more computer processors, a first number of rewrites on the dead track drive; measuring, by the one or more computer processors, a second number of rewrites on the good drive, and calculating, by the one or more computer processors, the number of occurrences of rewrites of each dead track, wherein the number of occurrences of rewrites of each dead track is calculated by subtracting the second number of rewrites on the good drive from the first number of rewrites on the dead track drive, said calculating The computer-implemented method according to claim 1, further comprising.

4. The computer-implemented method according to claim 1, wherein the number of dead tracks is stored in important product data of the tape drive.

5. The computer-implemented method according to claim 1, wherein the number of occurrences of rewrites of each dead track among the one or more dead tracks on the tape drive is calculated for each tape drive type of one or more tape drive types.

6. A program for causing a computer processor to execute the computer-implemented method according to any one of claims 1 to 5.

7. A computer system comprising a computer processor that executes the computer-implemented method according to any one of claims 1 to 5.

8. A computer-implemented method, comprising: determining, by one or more computer processors, the number of occurrences of rewrites of each of one or more dead tracks on a tape drive; storing, by the one or more computer processors, the number of dead tracks on the tape drive in response to detecting that the head is in a dead track state; determining, by the one or more computer processors, a first threshold and a second threshold, wherein the first threshold includes the number of dead track rewrites and a calibration reference value for a particular tape drive type, and further, the second threshold includes the number of calibration rewrites and the calibration reference value for the particular tape drive type, said step In response to the number of rewrites occurring before the rewrite occurs while writing the data set exceeding the first threshold, performing, by the one or more computer processors, calibration of the tape drive; In response to the number of rewrites occurring before the rewrite occurs while writing the data set exceeding the second threshold, performing, by the one or more computer processors, a refresh of the tape drive; A computer-implemented method comprising: **Claim 9** The step of determining the first threshold and the second threshold, wherein the first threshold includes the number of dead track rewrites and the calibration reference value for the particular tape drive type, and further, the second threshold includes the number of calibration rewrites and the calibration reference value for the particular tape drive type, the step is Retrieving, by the one or more computer processors, the number of dead tracks from the tape drive; Determining, by the one or more computer processors, the number of dead track rewrites, wherein the number of dead track rewrites is determined by multiplying the number of dead tracks by the number of rewrites occurring for each dead track on the tape drive; and Adding, by the one or more computer processors, the number of dead track rewrites to the calibration reference value for the particular tape drive type The computer-implemented method according to claim 8, further comprising: **Claim 10** The step of determining, for each of the one or more dead tracks on the tape drive, the number of rewrites occurring for each dead track is Measuring, by the one or more computer processors, a first number of rewrites on the dead track drive; Measuring, by the one or more computer processors, a second number of rewrites on the good drive; and calculating, by the one or more computer processors, the number of occurrences of rewriting of each dead track, the number of occurrences of rewriting of each dead track being calculated by subtracting the second number of rewrites on the good drive from the first number of rewrites on the dead track drive, said calculating The computer-implemented method according to claim 8, further comprising. **Claim 11** The computer-implemented method according to claim 8, wherein the number of dead tracks is stored in important product data of the tape drive. **Claim 12** The computer-implemented method according to claim 8, wherein the number of occurrences of rewriting of each dead track of the one or more dead tracks on the tape drive is calculated for each tape drive type of one or more tape drive types. **Claim 13** A program for causing a computer processor to execute the computer-implemented method according to any one of claims 8 to 12.

Citation Information

Patent Citations

  • High rewrite efficiency ECC / interleaving for multitrack recording on magnetic tape

    JP2012514823A

  • Tape drive, method and program

    JP2018097908A

  • Behavioral model for dynamic tension compensation.

    JP2021518968A

  • Multi-level mapping of tape error recoveries

    US20070014042A1

  • Maintenance facility for a magnetic tape subsystem

    US3838400A