IP Library Granted Patent US 8,458,495
Granted Patent B2
US 8,458,495 · App. 12/536,405 · Granted Jun 4, 2013

Disk array controller capable of detecting and correcting for unexpected disk drive power-on-reset events

Inventors: Christophe Therene (Livermore, CA); Paul R. Stonelake (Santa Clara, CA); Alex Ga Hing Tang (Fremont, CA); Richard L. Harris (San Jose, CA)
Assignee: Summit Data Systems LLC
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,458,495
App. No.
12/536,405
Granted
Jun 4, 2013
Kind
B2
Abstract

A disk array controller detects disk drive power-on-reset events that may cause a disk drive to lose uncommitted write data stored in its cache. When an unexpected disk drive power-on-reset event is detected, the disk array controller may initiate an appropriate corrective action. For example, the disk array controller may initiate a disk drive rebuild operation, or may re-send a set of write commands to the disk drive.

Claims (38)

1. A disk array controller that is operative to connect to and control a plurality of disk drives, the disk array controller comprising:

a memory that stores program code; and

a processor that is operable to execute said program code, said processor programmed via said program code to perform at least the following functions:

assess, during a disk drive command execution process in which a data transfer command is sent to a disk drive of the plurality of disk drives, whether the disk drive has experienced an unexpected power-on-reset event; and

when the disk drive is determined to have experienced the unexpected power-on-reset event, initiate a corrective action to correct for a potential data loss caused by the unexpected power-on-reset event.

2. The disk array controller of claim 1 , wherein the corrective action is a reconstruction operation in which data written to the disk drive is reconstructed based on data stored on at least one or more other disk drive of said plurality of disk drives.

3. The disk array controller of claim 1 , wherein the corrective action comprises resending a previously-sent set of write commands to the disk drive.

4. The disk array controller of claim 1 , wherein the corrective action comprises resending write data to the disk drive to correct for a potential loss of write data that was stored in a cache of the disk drive but not yet committed to disk media at the time of the unexpected power-on-reset event.

5. The disk array controller of claim 1 , wherein said processor is programmed to assess whether any of the plurality of disk drives have experienced unexpected power-on-reset events based at least partly on power cycle count attributes read from the plurality of disk drives.

6. The disk array controller of claim 1 , wherein said processor is programmed to perform a power-on-reset test of the disk drive in response to detecting disk drive behavior reflective of a possible power-on-reset event.

7. The disk array controller of claim 1 , wherein said processor is programmed to detect the unexpected power-on-reset event at least partly by comparing a current power cycle count attribute value of the disk drive to a past power cycle count attribute value of the disk drive in response to detecting an event which indicates that the disk drive may have undergone a possible power-on-reset event.

8. The disk array controller of claim 1 , wherein said processor is programmed to test for the unexpected power-on-reset event in response to detecting that the disk drive has aborted a command after being placed into an unlocked state.

9. A method performed by a disk array controller that controls a plurality of disk drives, the method comprising:

determining, during a disk drive command execution process in which a data transfer command is sent to a disk drive of the plurality of disk drives, whether the disk drive has experienced an unexpected power-on-reset event; and

when the disk drive is determined to have experienced the unexpected power-on-reset event, initiating a corrective action to correct for a potential data loss caused by the unexpected power-on-reset event.

10. The method of claim 9 , wherein the corrective action is a reconstruction operation in which data written to the disk drive is reconstructed based on data stored on at least one other disk drive of said plurality of disk drives.

11. The method of claim 9 , wherein the corrective action comprises resending a previously-sent set of write commands to the disk drive.

12. The method of claim 9 , wherein the corrective action comprises resending write data to the disk drive to correct for a potential loss of write data cached by the disk drive but not yet committed to by the disk drive to disk media.

13. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event comprises comparing a current power cycle count attribute of the disk drive to a previously read power cycle count attribute of the disk drive.

14. The method of claim 9 , wherein determining whether of the disk drive has experienced the unexpected power-on-reset event comprises performing a power-on-reset test of the disk drive in response to detecting disk drive behavior reflective of a possible power-on-reset event.

15. The disk array controller of claim 1 , wherein the processor is programmed to assess whether the disk drive has experienced the unexpected power-on-reset event in response to the data transfer command being sent to the disk drive.

16. The disk array controller of claim 1 , wherein the data transfer command is a data read command.

17. The disk array controller of claim 1 , wherein the data transfer command is a data write command.

18. The disk array controller of claim 1 , wherein said processor is programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by checking an initial status of the disk drive.

19. The disk array controller of claim 18 , wherein said processor is further programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by initiating a power-on-reset test in response to the initial status of the disk drive being an unexpected status.

20. The disk array controller of claim 1 , wherein said processor is programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by determining whether the disk drive responds to the data transfer command by reporting an error.

21. The disk array controller of claim 20 , wherein said processor is further programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by initiating a power-on-reset test in response to the disk drive responding to the data transfer command by reporting an aborted error command.

22. The disk array controller of claim 1 , wherein said processor is programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by determining whether the data transfer command produces a command timeout error.

23. The disk array controller of claim 22 , wherein said processor is further programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by initiating a power-on-reset test in response to the data transfer command producing the command timeout error.

24. The disk array controller of claim 1 , wherein said processor is programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by checking an end status of the disk drive after completion of the data transfer command.

25. The disk array controller of claim 24 , wherein said processor is further programmed to assess whether the disk drive has experienced the unexpected power-on-reset event by initiating a power-on-reset test in response to the end status of the disk drive being an unexpected status.

26. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event is in response to the data transfer command being sent to the disk drive.

27. The method of claim 9 , wherein the data transfer command is a data read command.

28. The method of claim 9 , wherein the data transfer command is a data write command.

29. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event comprises checking an initial status of the disk drive.

30. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event comprises determining whether the disk drive responds to the data transfer command by reporting an error.

31. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event comprises determining whether the data transfer command produces a command timeout error.

32. The method of claim 9 , wherein determining whether the disk drive has experienced the unexpected power-on-reset event comprises checking an end status of the disk drive after completion of the data transfer command.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2011
From: ACACIA PATENT ACQUISITION LLC
To: SUMMIT DATA SYSTEMS LLC
Reel/Frame 026243/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2011
From: APPLIED MICRO CIRCUITS CORPORATION
To: ACACIA PATENT ACQUISITION LLC
Reel/Frame 025723/0240 →
Continuity (5)
Continuation 11625555 · Jan 22, 2007
Division 10900998 · Jul 28, 2004
Provisional Application 60527243 · Dec 5, 2003
Provisional Application 60545957 · Feb 19, 2004
Related Publication 20090292875A1 · Nov 26, 2009