US9128639B1ActiveUtility

Scheduling commands in a dependent array of disk drives

65
Assignee: WESTERN DIGITAL TECH INCPriority: Sep 20, 2011Filed: Oct 28, 2013Granted: Sep 8, 2015
Est. expirySep 20, 2031(~5.2 yrs left)· nominal 20-yr term from priority
G06F 3/0689G06F 3/0665G06F 3/0619G06F 3/0611G06F 3/0659
65
PatentIndex Score
1
Cited by
8
References
15
Claims

Abstract

An array of disk drives is disclosed comprising a controller, a plurality of disk drives, wherein the controller is configured to transmit a first access command out of a group of access commands to a first disk drive in the array; transmit a plurality of the access commands out of the group of access commands to other disk drives in the array; and transmit a completion status to the first disk drive, wherein the completion status identifies a status of the plurality of access commands transmitted to the other disk drives.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A controller in an array of disk drives, the controller comprising:
 control circuitry configured to: 
 transmit a first access command out of a group of access commands to a first disk drive in the array; 
 transmit a plurality of access commands out of the group of access commands to a plurality of disk drives in the array other than the first disk drive; and 
 transmit a completion status to the first disk drive, wherein the completion status identifies a status of the plurality of access commands transmitted to the other disk drives. 
 
     
     
       2. The controller as recited in  claim 1 , wherein the completion status comprises a number of access commands out of the group of access commands that are pending in the other disk drives. 
     
     
       3. The controller as recited in  claim 1 , wherein the completion status comprises a number of access commands out of the group of access commands that are completed by the other disk drives. 
     
     
       4. An array of disk drives, comprising:
 a controller; and 
 a plurality of disk drives; 
 wherein the controller is configured to: 
 transmit a first access command out of a group of access commands to a first disk drive in the array; 
 transmit a plurality of access commands out of the group of access commands to a plurality of disk drives in the array other than the first disk drive; and 
 transmit a completion status to the first disk drive, wherein the completion status identifies a status of the plurality of access commands transmitted to the other disk drives. 
 
     
     
       5. The array as recited in  claim 4 , wherein the completion status comprises a number of access commands out of the group of access commands that are pending in the other disk drives. 
     
     
       6. The array as recited in  claim 4 , wherein the completion status comprises a number of access commands out of the group of access commands that are completed by the other disk drives. 
     
     
       7. The array as recited in  claim 4 , wherein the first disk drive comprises:
 a disk; 
 a head actuated over the disk; and 
 control circuitry configured to:
 receive the first access command; 
 store the access commands in a command queue; 
 receive the completion status; 
 select the first access command from the command queue based on the completion status; and 
 execute the first access command. 
 
 
     
     
       8. The array as recited in  claim 7 , wherein the control circuitry is further configured to:
 estimate a seek latency of the head and a rotational latency of the disk associated with executing each access command stored in the command queue; and 
 select the first access command from the command queue based on the completion status, the seek latency, and the rotational latency estimated for the first access command. 
 
     
     
       9. The array as recited in  claim 8 , wherein the control circuitry is further configured to:
 estimate an access time first_T corresponding to the seek latency and the rotational latency; 
 adjust the first_T in response to the completion status; and 
 select the first access command from the command queue based on the adjusted first_T. 
 
     
     
       10. The array as recited in  claim 9 , wherein the control circuitry is further configured to adjust the first_T according to:
   (first —   T +( TFOD ( Q )*( G−F− 1)))/ G    
 where: 
 wherein G represents a number of commands in the group of access commands; 
 TFOD(Q) represents an average time for the other disk drives to complete a single access command at a command queue depth of Q; and 
 F represents a number of the access commands out of the G access commands completed by the other disk drives. 
 
     
     
       11. The array as recited in  claim 9 , wherein the control circuitry is further configured to adjust the first_T according to:
   (first —   T *( G−F ))/ G    
 wherein G represents a number of commands in the group of access commands, and 
 where F represents a number of the access commands out of the G access commands completed by the other disk drives. 
 
     
     
       12. The array as recited in  claim 9 , wherein the control circuitry is further configured to:
 estimate an access time second_T for a second access command stored in the command queue; and 
 when the second_T is less than the adjusted first_T, select the second access command from the command queue for execution prior to selecting the first access command from the command queue. 
 
     
     
       13. An array of disk drives, comprising:
 a controller; and 
 a plurality of disk drives; 
 wherein the controller is configured to: 
 transmit a first access command out of a group of access commands to a first disk drive in the array; 
 transmit a plurality of the access commands out of the group of access commands to a plurality of disk drives in the array other than the first disk drive; and 
 wherein the first disk drive is configured to transmit a completion status to a second disk drive of the other disk drives, wherein the second disk drive has received at least one of the access commands, wherein the completion status identifies a status of at least one access command received by the first disk drive. 
 
     
     
       14. The array as recited in  claim 13 , wherein the completion status comprises logical block address (LBA) information. 
     
     
       15. The array as recited in  claim 14 , wherein the second disk drive is configured to infer, based on a comparison of (1) the LBA information in the completion status and (2) LBA information associated with an access command that the second disk drive has received, whether the access command received in the first drive belongs to the same group as the access command received in the second disk drive.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.