IP Library › Granted Patent US 7,840,751
Granted Patent B2
US 7,840,751 · App. 11/771,595 · Granted Nov 23, 2010

Command queue management of back watered requests

Assignee: Seagate Technology 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 7,840,751
App. No.
11/771,595
Granted
Nov 23, 2010
Kind
B2
Abstract

Apparatus and method for command queue management of back watered requests. A selected request is released from a command queue, and further release of requests from the queue is interrupted when a total number of subsequently completed requests reaches a predetermined threshold.

Claims (24)

1. A method comprising:

releasing a selected request from a command queue and selectively interrupting further release of requests from the command queue by establishing a timeout count upon the release of the selected request; and

decrementing the timeout count in response to a request complete status being communicated for another request released from the queue, said timeout count decremented by one count for each said communicated request complete status and independently of elapsed time, wherein the timeout count is first established in relation to a number of pending requests in the command queue when the selected request is released.

2. The method of claim 1 , wherein the selected request comprises a command to transfer data between a first memory and a second memory.

3. The method of claim 1 , further comprising providing the command queue with N slots, each slot accommodating a different pending request, and a byte array with a corresponding number of N entries, each entry associated with a corresponding one of the slots of the command queue, wherein the releasing and selectively interrupting step comprises writing the timeout count to the corresponding entry of the byte array associated with the selected request.

4. The method of claim 1 , wherein the releasing step further comprises releasing a plurality of requests from the command queue and assigning a corresponding timeout count to each to form a corresponding plurality of timeout counts, and wherein the method further comprises decrementing each of the plurality of timeout counts each time a request complete status is received associated with another issued request.

5. The method of claim 1 , further comprising resuming further release of requests from the command queue after the releasing and selectively interrupting step upon notification that an execution of the selected request has been completed, and clearing the completed selected request from the command queue so that a new request can be added to the command queue in place of the completed selected request.

6. An apparatus comprising a control block and an associated command queue, the control block configured to release a selected request from the command queue, to establish a timeout count upon the release of the selected request that is defined in relation to a number of pending requests in the queue when the selected request is released, to decrement the timeout count for each request complete status that is communicated for other released requests, and to interrupt further release of both read and write requests from the command queue in relation to the timeout count decrementing to a predetermined threshold.

7. The apparatus of claim 6 , wherein the selected request comprises a command to transfer data between a first memory and a second memory.

8. The apparatus of claim 6 , wherein the control block releases the selected request by forwarding the selected request to a data storage device to write data to or read data from a memory of the device, and wherein the device returns the request complete status to the control block upon completion of execution of the selected request by the data storage device.

9. The apparatus of claim 6 , wherein the apparatus further comprises a late request counter which maintains a late request count that is incremented when the timeout count reaches the predetermined threshold.

10. The apparatus of claim 6 , wherein the control block is configured to release a plurality of requests from the command queue, to assign a corresponding timeout count to each of the plurality of requests to form a corresponding plurality of timeout counts, and to decrement each of the plurality of timeout counts each time a request complete status is received indicating that another a issued request has been completed.

11. The apparatus of claim 6 , wherein the command queue comprises N slots, each slot accommodating a different pending request, and a byte array with a corresponding number of N entries, each entry associated with a corresponding one of the slots of the command queue, the control block placing a timeout count in the corresponding entry of the byte array associated with the selected request.

12. An apparatus comprising:

a control block and an associated command queue, the control block configured to release a selected request from the command queue and to interrupt further release of requests from the command queue, wherein the command queue comprises N slots, each slot accommodating a different pending request; and

a byte array with a corresponding number of N entries, each entry associated with a corresponding one of the slots of the command queue, and wherein the control block places a timeout count in the corresponding entry of the byte array associated with the selected request.

13. The apparatus of claim 12 , wherein the timeout count is defined in relation to a number of pending requests in the command queue when the selected request is released.

14. The apparatus of claim 13 , wherein the timeout count is defined in relation to a total number of pending requests in the command queue when the selected request is released plus a predetermined constant value.

15. The apparatus of claim 12 , wherein the control block is configured to interrupt further release of the requests from the command queue by decrementing the timeout count for each request complete status that is communicated for other released requests.

16. The apparatus of claim 15 , wherein the control block is configured to interrupt further release of the requests from the command queue by decrementing the timeout count to a predetermined threshold before a request complete status is communicated corresponding to the release of the selected request.

17. The apparatus of claim 16 , wherein comprising a late request counter that maintains a late request count that is incremented when the timeout count is decremented to the predetermined threshold.

18. The apparatus of claim 12 , wherein the selected request comprises a command to transfer data between a first memory and a different second memory.

19. The apparatus of claim 18 , wherein the second memory resides in a data storage device, and wherein the data storage device returns the request complete status to the control block in relation to completing an execution of the selected request by the data storage device.

20. The apparatus of claim 12 , wherein the control block is configured to release a plurality of requests from the command queue, to assign a corresponding timeout count to each of the plurality of requests to form a corresponding plurality of timeout counts, and to decrement each of the plurality of timeout counts each time a request complete status is received indicating that another issued request has been completed.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 23, 2025
From: THE BANK OF NOVA SCOTIA
To: SEAGATE TECHNOLOGY PUBLIC LIMITED COMPANY; SEAGATE TECHNOLOGY; SEAGATE TECHNOLOGY HDD HOLDINGS; I365 INC.; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL; SEAGATE HDD CAYMAN; SEAGATE TECHNOLOGY (US) HOLDINGS, INC.
Reel/Frame 072193/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jul 19, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
To: SEAGATE TECHNOLOGY LLC; EVAULT INC. (F/K/A I365 INC.); SEAGATE TECHNOLOGY INTERNATIONAL; SEAGATE TECHNOLOGY US HOLDINGS, INC.
Reel/Frame 030833/0001 →
SECURITY AGREEMENT Recorded Mar 24, 2011
From: SEAGATE TECHNOLOGY LLC
To: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT
Reel/Frame 026010/0350 →
RELEASE Recorded Jan 19, 2011
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: SEAGATE TECHNOLOGY HDD HOLDINGS; MAXTOR CORPORATION; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL
Reel/Frame 025662/0001 →
SECURITY AGREEMENT Recorded May 15, 2009
From: MAXTOR CORPORATION; SEAGATE TECHNOLOGY LLC; SEAGATE TECHNOLOGY INTERNATIONAL
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE; WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE
Reel/Frame 022757/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2007
From: LUBBERS, CLARK EDWARD; LESTER, ROBERT MICHAEL
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 019504/0775 →
Continuity (1)
Related Publication 20090006689A1 · Jan 1, 2009