IP Library Granted Patent US 9,128,639
Granted Patent B1
US 9,128,639 · App. 14/065,354 · Granted Sep 8, 2015

Scheduling commands in a dependent array of disk drives

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 9,128,639
App. No.
14/065,354
Granted
Sep 8, 2015
Kind
B1
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 (54)

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.

Assignments (8)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2013
From: VINSON, WAYNE H.; OLDS, EDWIN S.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 031500/0446 →