DUAL WRITE INHIBIT
Original Publication Date: 2000-Feb-01
Included in the Prior Art Database: 2003-Jun-19
Described is a method for improving data reliability using a dual write inhibit technique. One level of write inhibit (the "primary" write inhibit) is exactly like the classic technique: the write operation is stopped if the servo determines the write head is too far off track. The second level (or "secondary" write inhibit) is used to determine when more extensive action is required by the drive. Writing off-track can cause loss of data in several ways. First, the write operation may damage data on an adjacent track. Second, the data itself may be written too far from track center to be read on a subsequent read operation. Third, the write operation may not overwrite old information on the track, which a subsequent read operation may then accidentaly read. All three of these errors result in unrecoverable losses of data. A classic write inhibit technique tries to prevent data loss by stopping the write before it moves so far from track center as to cause one of these problems. However, this may not always be possible. But despite the fact that the servo may not be able to stop the write in time, it should be able to detect that the off track write did occur. What is needed then is a way to use this method to prevent any of the hard errors described above. The servo system posts write inhibit when it observes that the head is too far from track center. However, despite this prompt action, the head may still be so far from track center that there is still an exposure to data loss from one of the mechanisms described above. But given position information before and after the write inhibit, and knowledge of the drive mechanics, the servo can well estimate how far it was from track center when the write inhibit occured. If it determines it was far enough from track center to cause a potential data loss, it sends a secondary write inhibit signal to the interface control program. If the interface control program receives only the primary write inhibit signal, it rewrites the data sector that was stopped by the write inhibit, and then proceeds to finish the write operation. If it also receives the secondary signal it will take action more drastic than this. For example, it may decide to try to recover data from an adjacent track that might be squeezed by reading and then rewriting the potentially affected data. Or it may rewrite data from the same operation that preceded the write inhibit. Or it may send an error to the host to notify it of the problem. Once the secondary write inhibit has been posted, there are many actions the interface control problem can take.