Self test for storage device
First Claim
1. A method of testing a storage device having an industry-standard interface, components and a non-volatile memory, the method comprising:
- receiving a test command via the industry-standard interface from a host computer;
the storage device performing a test on one or more of the components according to the test command;
the storage device identifying the failed component and a corresponding failure checkpoint of the test being performed, if a failure is detected by the storage device; and
said storage device providing a pass/fail indication to the host and storing results from said test in the non-volatile memory, said results including the failed component identification and the failure checkpoint if a failure was detected.
3 Assignments
0 Petitions
Accused Products
Abstract
A storage device capable of performing diagnostics tests on itself to render an opinion of its health to a host computer is disclosed. Test commands are received over an industry-standard interface. The tests may be run in off-line or captive modes. Off-line tests are subject to interruption from the host computer whereas captive tests are not. Unless a command is received that instructs the storage device to stop testing or power-down, the storage device suspends the test, executes the host command and resumes testing. Power management is disabled while the tests are run to prevent the storage device from inadvertently powering down. A number of specific tests may be performed, including a general quick test and a comprehensive test. Failures detected during the tests are logged in a non-volatile memory of the storage device and include an indication of which component failed and at which point in the test that component failed.
-
Citations
36 Claims
-
1. A method of testing a storage device having an industry-standard interface, components and a non-volatile memory, the method comprising:
-
receiving a test command via the industry-standard interface from a host computer;
the storage device performing a test on one or more of the components according to the test command;
the storage device identifying the failed component and a corresponding failure checkpoint of the test being performed, if a failure is detected by the storage device; and
said storage device providing a pass/fail indication to the host and storing results from said test in the non-volatile memory, said results including the failed component identification and the failure checkpoint if a failure was detected. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
before performing the test, determining if the test should be performed in an off-line or captive mode based on the test command; and
setting a busy flag if the test should be performed in captive mode.
-
-
3. The method of claim 2, wherein the results includes a failure signature if a failure is detected while performing the test in captive mode.
-
4. The method of claim 2, wherein if the test should be run in off-line mode the method further comprises:
-
monitoring for a new command from the host computer while performing the test;
aborting the test if the new command is one of a disable operations command, an execute immediate command, a stop self test command and a standby immediate command; and
aborting the test and starting a new test if the new command is a start self-test command.
-
-
5. The method of claim 4, wherein if the new command is not one of a disable operations command, an execute immediate command, a stop self test command, a standby immediate command, and a self-test command, the method further comprises:
-
suspending the test;
executing the new command after suspending the test; and
resuming the test after executing the new command.
-
-
6. The method of claim 1, further comprising:
-
disabling power management before performing the test; and
enabling power management after performing the test.
-
-
7. The method of claim 1, wherein the tests include a quick test and a comprehensive test.
-
8. The method of claim 1, wherein the non-volatile memory is a sector of the storage device.
-
9. The method of claim 1, wherein the results storing step further includes:
-
storing a test number, status indication and checksum; and
updating an index pointer to point to a most recent results entry.
-
-
10. The method of claim 1, wherein the test includes a write test, servo test and a read scan test.
-
11. The method of claim 1, wherein the industry-standard interface is an IDE interface.
-
12. The method of claim 1, wherein the industry-standard interface is a SCSI interface.
-
13. A storage device having an industry-standard interface, comprising:
-
a non-volatile memory; and
a controller coupled to said non-volatile memory, said controller operable to perform one or more self-tests in response to a test command received via the industry-standard interface from a host computer, the self-tests adapted to test components of the storage device, detect failures of the components, and store results of the tests in a logging descriptor of said non-volatile memory, each set of self-tests performed in response to the test command having a logging descriptor which is individually stored in said non-volatile memory, wherein if a failure is detected, the results include a failed component identification and a failure checkpoint, and wherein a certain number of descriptors are maintained in said non-volatile memory and said controller updates an index pointer to indicate a most recent logging descriptor entry. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
wherein before performing the test said controller is further operable to determine if the test should be performed in an off-line or captive mode based on the test command, and wherein said controller sets a busy flag if the test should be performed in captive mode. -
15. The storage device of claim 14, wherein the results include a failure signature if a failure is detected while performing the test in captive mode.
-
16. The storage device of claim 14,
wherein if the test should be performed in off-line mode, the controller is further operable to monitor for a new command from the host computer while performing the test, abort the test if the new command is one of a disable operations command, an execute immediate command, a stop self test command and a standby immediate command, and abort the test and start a new test if the new command is a start self-test command. -
17. The storage device of claim 16, wherein if the new command is not one of a disable operations command, an execute immediate command, a stop self test command, a standby immediate command, and a self-test command, the controller is further operable to suspend the test, service the new command after suspending the test, and resume the test after servicing the new command.
-
18. The storage device of claim 13,
wherein the controller is further operable to disable power management before performing the test, and wherein the controller is further operable to enable power management after performing the test. -
19. The storage device of claim 13, wherein the tests include a quick test and a comprehensive test.
-
20. The storage device of claim 13, wherein the non-volatile memory is a sector of the storage device.
-
21. The storage device of claim 13, wherein the logging descriptor further includes a test number, status indication and checksum.
-
22. The storage device of claim 13, wherein the tests includes a write test, servo test and a read scan test.
-
23. The storage device of claim 13, wherein the industry-standard interface is an IDE interface.
-
24. The storage device of claim 13, wherein the industry-standard interface is a SCSI interface.
-
-
25. A computer system, comprising:
-
a central processing unit including memory; and
a storage device having an industry-standard interface and being coupled to said central processing unit via the industry-standard interface, including;
a non-volatile memory; and
a controller coupled to said non-volatile memory, said controller operable to perform one or more self-tests in response to a test command received via the industry-standard interface from said central processing unit and, the self-tests adapted to test components of the storage device, detect failures of the components, and log results of the tests in said non-volatile memory, wherein if a failure is detected, the results include a failed component identification, a failure checkpoint and system configuration information. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
wherein before performing the test said controller is further operable to determine if the test should be performed in an off-line or captive mode based on the test command, and wherein said controller sets a busy flag if the test should be performed in captive mode to prevent the central processing unit from interrupting the test. -
27. The computer system of claim 26, wherein the results include a failure signature if a failure is detected while performing the test in captive mode.
-
28. The computer system of claim 26,
wherein if the test should be performed in off-line mode, the controller is further operable to monitor for a new command from the central processing unit while performing the test, abort the test if the new command is one of a disable operations command, an execute immediate command, a stop self test command and a standby immediate command, and abort the test and start a new test if the new command is a start self-test command. -
29. The computer system of claim 28, wherein if the new command is not one of a disable operations command, an execute immediate command, a stop self test command, a standby immediate command, and a self-test command, the controller is further operable to suspend the test, service the new command after suspending the test, and resume the test after servicing the new command.
-
30. The computer system of claim 25,
wherein the controller is further operable to disable power management before performing the test, and wherein the controller is further operable to enable power management after performing the test. -
31. The computer system of claim 25, wherein the tests include a quick test and a comprehensive test.
-
32. The computer system of claim 25, wherein the non-volatile memory is a sector of the storage device.
-
33. The computer system of claim 25, wherein the logging descriptor further includes a test number, status indication and checksum.
-
34. The computer system of claim 25, wherein the tests includes a write test, servo test and a read scan test.
-
35. The computer system of claim 25, wherein the industry-standard interface is an IDE interface.
-
36. The computer system of claim 25, wherein the industry-standard interface is a SCSI interface.
-
Specification