The subject matter of this application is related to the subject matter of an application [K35A0540] USSN 09/314,871, titled xe2x80x9cDISK DRIVE EMPLOYING OFF-LINE SCAN TO COLLECT SELECTION-CONTROL DATA FOR SUBSEQUENTLY DECIDING WHETHER TO VERIFY AFTER WRITExe2x80x9d, filed in the USPTO on 5/19/99, in the name of Jonathan Hanmann and Michael Rothberg, and assigned to the assignee of this application (the xe2x80x9cOff-Line Scan applicationxe2x80x9d). The disclosure of the Off-Line Scan application is hereby incorporated by reference herein.
The subject matter of this application is also related to the subject matter of an application [K35A0463] USSN 09/138,805, titled xe2x80x9cDISK DRIVE HAVING DATA-GUARDING FIRMWARExe2x80x9d, filed in the USPTO on Aug. 21, 1998, in the name of Michael Rothberg, and assigned to the assignee of this application (the xe2x80x9cData Guarding applicationxe2x80x9d). The disclosure of the Data Guarding application is hereby incorporated by reference herein.
1. Field of the Invention
In general the technical field relates to disk drives used for data storage on computer systems. More particularly, it relates to operating a disk drive in a manner to enable a host computer to assist in rescuing a rescue-candidate location having drive-unrecoverable data.
2. Description of the Prior Art
Users of computer systems depend on disk drives to provide fast and reliable data reproduction. Should data loss occur due to corrupted data on a disk in a disk drive, valuable user data may be lost or the computer system or application programs may fail to run.
During the manufacture of disk drives, data storage areas on the disk are tested for defects that could cause data loss. These areas are identified as unavailable so that these initial defects will not cause data loss. Over the course of operating the disk drive in a system, various defects can occur. These defects are generally referred to as xe2x80x9cgrownxe2x80x9d defects. These defects result from a variety of effects including thermal asperities on the disk surface. Grown defects represent potential data loss.
Present disk drive technology provides for EDAC (Error Detection And Correction) to help prevent data loss. Examples of techniques for providing error correction can be found in the Off-Line Scan and Data Guarding applications. Although EDAC and other methods currently employed in disk drives are able to correct some errors, there remains data that can not be corrected. This is generally referred to as drive-unrecoverable data.
When drive-unrecoverable data is encountered during a host read command, the results can be catastrophic. The host computer has no indication that it will receive a read error from the disk drive. If the unrecoverable data is part of a user data file, the entire file may be unavailable to the user. Unrecoverable data in an application program can cause the program to fail to execute. An operating system component that contains unrecoverable data may lead to a total system crash. The extent of problems unrecoverable data can cause is numerous. The user can try to prevent some of these problems by maintaining backups of his data and periodically running disk scanning software to detect problems.
The above discussion shows that there is a need to avoid having drive-unrecoverable data cause problems for the user. It is desirable to detect and rescue locations having drive-unrecoverable data before the user encounters a read error.
The invention can be regarded as a method of operating a disk drive for enabling a host computer to assist in rescuing a rescue-candidate location having drive-unrecoverable data. The disk drive includes a disk and an interface to the host computer. The disk defines a multiplicity of addressable locations each having a logical address. The method of operating the disk drive comprises the steps of performing a plurality of read operations on a selected one of the multiplicity of addressable locations and determining whether the selected addressable location contains drive-unrecoverable data. The method further comprises identifying the selected addressable location as a rescue-candidate location if the selected addressable location contains drive-unrecoverable data, recording the logical address of the rescue-candidate location in a list, and transferring the list to the host computer via the interface in response to a list-requesting command from the host computer. The method further comprises responding to a write command from the host computer to write host data to a selected rescue-candidate location having a logical address recorded in the list such that a subsequent read operation can recover the host data. The step of transferring the list to the host computer enables the host computer to assist in rescuing the selected rescue-candidate location.
The invention can also be regarded as a method of operating a computer system for enabling a host computer to assist in rescuing a rescue-candidate location having drive-unrecoverable data. The computer system includes a disk drive, the host computer and an interface between the host computer and the disk drive. The disk drive includes a disk defining a multiplicity of addressable locations each having a logical address. The method of operating the computer system comprises the steps of performing a plurality of read operations on a selected one of the multiplicity of addressable locations and determining whether the selected one of the multiplicity of addressable locations contains drive-unrecoverable data. The method further comprises identifying the selected addressable location as a rescue-candidate location if the selected location contains the drive-unrecoverable data, recording the logical address of the rescue-candidate location in a list, issuing a list-requesting command from the host computer to the disk drive, and transferring the list to the host computer via the interface in response to the list-requesting command. The method further comprises sending a write command to the disk drive to write host data to a selected rescue-candidate location having a logical address recorded in the list such that a subsequent read operation can recover the host data. The step of transferring the list to the host computer enables the host computer to assist in rescuing the selected rescue-candidate location.