Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data

Abstract
An apparatus, system, and method are disclosed for a storage device's enforcing write recovery of erroneous data. The storage device enforces write recovery leading to a reassignment and re-write for the defective data block by the storage controller at a subsequent write opportunity with a usual write without verify command. The invention enables the storage device to identify, and re-discover the defect by automatically verifying the data written, and report an unrecovered write error to the storage controller on said write command, causing said write recovery to occur.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:



FIG. 1 is a schematic block diagram illustrating one embodiment of a system for a storage device's data storage/retrieval and enforcing write recovery in accordance with the present invention;



FIG. 2 is a schematic block diagram illustrating one embodiment of an apparatus for a storage device's enforcing write recovery in accordance with the present invention;



FIG. 3 is a schematic flow chart diagram illustrating one embodiment of a method for a storage device's enforcing write recovery in accordance with the present invention;



FIG. 4 is a schematic flow chart diagram illustrating one embodiment of an enforced write recovery procedure performed by the storage controller in accordance with the present invention;



FIG. 5 is a schematic block diagram illustrating one embodiment of LBA information involved in a storage device enforced write recovery in accordance with the present invention; and



FIG. 6 is a schematic block diagram illustrating one embodiment of a command history of a storage device enforced write recovery in accordance with the present invention.


Claims
  • 1. An apparatus for a storage device's enforcing write recovery of erroneous data, the apparatus comprising: a reassignable check module configured to determine whether the logical block address (“LBA”) of a data block specified by a write without verify command is included in the storage device's reassignment log, the reassignment log comprising a list of LBAs of defective data blocks to be reassigned by a storage controller and configured to remove the LBA of a defective data block from the list subsequent to a reassignment of said data block;an auto verify module configured to automatically verify that data is correctly written at the LBA on said write command if the LBA is listed in said reassignment log; andan error posting module configured to report to the storage controller an unrecovered write error in response to the LBA's failing the auto verify.
  • 2. The apparatus of claim 1, wherein the storage controller reassigns the LBA subsequent to unsuccessful write retries and rewrites data at the reassigned location in response to the error posting module report.
  • 3. The apparatus of claim 2, wherein the auto verify module retries the auto verify while the storage controller retries a failing write until a reassignment is made.
  • 4. The apparatus of claim 1, wherein the auto verify module performs data verification by means of an error correction code (“ECC”) appended to the data.
  • 5. The apparatus of claim 1, wherein the auto verify function is enabled and disabled at a storage device user's option.
  • 6. A system for a storage device's enforcing write recovery of erroneous data, the system comprising: a host computer;a storage controller, coupled to the host computer;a storage device, coupled to the storage controller, the storage device comprising: an interface module;a head disk assemblya processor;a memory;a positioning control module;a read-write data handler module;a reassignable check module configured to determine whether the LBA of a data block specified by a write without verify command is included in the storage device's reassignment log, the reassignment log comprising a list of LBAs of defective data blocks to be reassigned by the storage controller and configured to remove the LBA of a defective data block from the list subsequent to a reassignment of said data block;an auto verify module configured to automatically verify that data is correctly written at the LBA on said write command if the LBA is listed in said reassignment log; andan error posting module configured to report to the storage controller an unrecovered write error in response to the LBA's failing the auto verify.
  • 7. The system of claim 6, wherein the storage controller reassigns the LBA subsequent to unsuccessful write retires and rewrites data at the reassigned location in response to the error posting module report.
  • 8. The system of claim 7, wherein the auto verify module retries the auto verify while the storage controller retries a failing write until a reassignment is made.
  • 9. The system of claim 6, wherein the auto verify module activates the auto verify operation following a successful completion of the write operation.
  • 10. The system of claim 6, wherein the auto verify module performs data verification by means of an ECC appended to the data.
  • 11. The system of claim 6, wherein the auto verify function is enabled and disabled at a storage device user's option.
  • 12. The system of claim 6, wherein the storage device interface module provides a storage controller coupling interface the type of which is selected from the group consisting of Small Computer System Interface (“SCSI”) Parallel Interface (“SPI”), Serial Attached SCSI (“SAS”), Fibre Channel (“FC”), Fibre Channel-Arbitrated Loop (“FC-AL”), Advanced Technology (“AT”) Attachment (“ATA”), Serial ATA (“SATA”), Universal Serial Bus (“USB”), IEEE 1394, and variants and enhancements thereof.
  • 13. A signal bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform operations to allow a storage device to enforce write recovery of erroneous data, the operations comprising: determining reassignability of the LBA of a data block specified by a write without verify command based on contents of the storage device's reassignment log, the reassignment log comprising a list of LBAs of defective data blocks to be reassigned by a storage controller and configured to remove the LBA of a defective data block from the list subsequent to a reassignment of said data block;auto verifying that data is correctly written at the LBA on said write command if the LBA is listed in said reassignment log;reporting to the storage controller an unrecovered write error in response to the LBA's failing the auto verify; andreassigning and rewriting the failed LBA in response to the storage controller's receiving said write error report.
  • 14. The signal bearing medium of claim 13, wherein the instructions further comprise operations to skip auto verify on said write command if the specified LBA is not listed in said reassignment log.
  • 15. The signal bearing medium of claim 13, wherein the instructions further comprise operations to activate the auto verify operation following a successful completion of the write operation.
  • 16. The signal bearing medium of claim 13, wherein the instructions further comprise operations to auto verify the written data by means of the ECC appended to the data.
  • 17. The signal bearing medium of claim 13, wherein the instructions further comprise operations to remove the LBA from the storage device's reassignment log upon a successful completion of the auto verify.
  • 18. The signal bearing medium of claim 13, wherein the instructions further comprise operations to retry the auto verify while the storage controller retries a failing write until a reassignment is made.
  • 19. The signal bearing medium of claim 13, wherein the instructions further comprise operations to enable and disable the auto verify function according to the setting of a storage device user's option.
  • 20. A method for a storage device's enforcing write recovery of erroneous data, the method comprising: determining reassignability of the LBA of a data block specified by a write without verify command based on contents of the storage device's reassignment log, the reassignment log comprising a list of LBAs of defective data blocks to be reassigned by a storage controller and configured to remove the LBA of a defective data block from the list subsequent to a reassignment of said data block;auto verifying that data is correctly written at the LBA on said write command if the LBA is listed in said reassignment log;reporting to the storage controller an unrecovered write error in response to the LBA's failing the auto verify;reassigning and rewriting the failed LBA in response to the storage controller's receiving said write error report; andactivating the auto verify operation following a successful completion of the write operation prior to a reassignment.
  • 21. The method of claim 20, further comprising skipping the auto verify operation on said write command if the specified LBA is not listed in said reassignment log.
  • 22. The method of claim 20, further comprising removing the LBA from the storage device's reassignment log upon a successful completion of the auto verify.
  • 23. The method of claim 20, further comprising retrying the auto verify while the storage controller retries a failing write until a reassignment is made.
  • 24. The method of claim 20, further comprising enabling and disabling the auto verify function according to the setting of a storage device user's option.
  • 25. An apparatus for enforcing a storage device's write recovery of erroneous data, the apparatus comprising: means for determining reassignability of the LBA of a data block specified by a write without verify command based on contents of the storage device's reassignment log, the reassignment log comprising a list of LBAs of defective data blocks to be reassigned by a storage controller and configured to remove the LBA of a defective data block from the list subsequent to a reassignment of said data block;means for auto verifying that data is correctly written at the LBA on said write command if the LBA is listed in said reassignment log;means for reporting to the storage controller an unrecovered write error in response to the LBA's failing the auto verify;means for reassigning and rewriting the failed LBA in response to the storage controller's receiving said write error report;means for activating the auto verify operation following a successful completion of the write operation prior to a reassignment;means for skipping auto verify on said write command if the specified LBA is not listed in said reassignment log;means for auto verifying the written data by means of the ECC appended to the data; andmeans for removing the LBA from the storage device's reassignment log upon a successful completion of the auto verify.
Continuation in Parts (1)
Number Date Country
Parent 11333763 Jan 2006 US
Child 11523844 US