IP Library Granted Patent US 7,225,293
Granted Patent B2
US 7,225,293 · App. 10/463,012 · Granted May 29, 2007

Method, system, and program for executing input/output requests

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,225,293
App. No.
10/463,012
Granted
May 29, 2007
Kind
B2
Abstract

Provided are a method, system, and program for executing Input/Output (I/O) requests. Delay times associated with processing a plurality of I/O requests are determined. The determined delay times for the I/O requests are adjusted according to priorities assigned to the I/O requests and a determination is made of an ordering of the I/O requests based on the adjusted delay times. At least one I/O request is executed according to the determined ordering.

Claims (59)

1. A method for executing Input/Output (I/O) requests, comprising:

determining delay times associated with processing a plurality of I/O requests;

adjusting the determined delay times for the I/O requests according to priorities assigned to the I/O requests;

determining an ordering of the I/O requests based on the adjusted delay times; and

executing at least one I/O request according to the determined ordering.

2. The method of claim 1 , wherein the I/O requests are directed to addressable locations on a storage medium accessed by an I/O mechanism, wherein determining the delay times comprises:

determining delay times to access start addresses of the I/O requests on the storage medium from an I/O mechanism position.

3. The method of claim 2 , wherein the I/O mechanism comprises a read/write head, and wherein the determined delay time for one I/O request includes a seek time and rotational time for the I/O mechanism to access the start address of the I/O request.

4. The method of claim 2 , wherein the steps of determining the delay times and ordering based on the priority adjusted delay times are performed for each I/O request with respect to the I/O mechanism position after processing a previous I/O request.

5. The method of claim 2 , wherein the I/O mechanism comprises a read/write head, wherein the read/write head and storage medium are contained in a storage unit, and wherein the steps of determining the delay times, adjusting the delay times according to the priority of the I/O requests, and determining the ordering of the I/O requests are performed by the storage unit.

6. The method of claim 2 , wherein the I/O mechanism comprises a read/write head, wherein the read/write head and storage medium are contained in a storage unit, and wherein the steps adjusting the delay times according to the priority of the I/O requests and determining the ordering of the I/O requests are performed by a device driver program in a computer system coupled to the storage unit, further comprising:

transmitting, with the device driver program, the I/O requests in the determined ordering to the storage unit, wherein the storage unit executes the at least one I/O request against the storage medium.

7. The method of claim 6 , wherein executing the at least one I/O request against the storage medium comprises executing the at least one I/O request in the ordering determined by the device driver program.

8. The method of claim 6 , wherein the step of determining the delay times are determined by the storage unit, further comprising:

transmitting, with the storage unit, the determined delay times to the device driver program to use when adjusting the delay times according to the priority of the I/O requests.

9. The method of claim 1 , further comprising:

creating sets of I/O requests ordered accorded to the determined ordering, wherein one set of I/O requests must be executed before any I/O requests in preceding sets can be executed.

10. The method of claim 1 , wherein the priorities assigned to the I/O requests are assigned by at least one application program.

11. The method of claim 1 , wherein determining the ordering comprises determining one queued I/O request to process next that has a minimum priority adjusted delay time.

12. The method of claim 11 , wherein the priority adjusted delay time is adjusted downward for relatively higher priority I/O requests and adjusted upward for relatively lower priority requests.

13. A system for executing Input/Output (I/O) requests, comprising:

means for determining delay times associated with processing a plurality of I/O requests;

means for adjusting the determined delay times for the I/O requests according to priorities assigned to the I/O requests;

means for determining an ordering of the I/O requests based on the adjusted delay times; and

means for executing at least one I/O request according to the determined ordering.

14. The system of claim 13 , further comprising:

a storage medium, wherein the I/O requests are directed to addressable locations on the storage medium;

an I/O mechanism for accessing addressable locations on the storage medium, wherein the means for determining the delay times determines delay times to access start addresses of the I/O requests on the storage medium from an I/O mechanism position.

15. The system of claim 14 , wherein the means for determining the delay times and ordering based on the priority adjusted delay times performs the operations for each I/O request with respect to the I/O mechanism position after processing a previous I/O request.

16. The system of claim 14 , wherein the I/O mechanism comprises a read/write head, further comprising:

a computer system;

a storage unit including the read/write head and storage medium and coupled to the computer system;

a device driver executing in the computer system, wherein the device driver performs the steps of adjusting the delay times according to the priority of the I/O requests and determining the ordering of the I/O requests;

means for transmitting, by the device driver program, the I/O requests in the determined ordering to the storage unit, wherein the storage unit executes the at least one I/O request against the storage medium.

17. The system of claim 13 , further comprising:

means for creating sets of I/O requests ordered accorded to the determined ordering, wherein one set of I/O requests must be executed before any I/O requests in preceding sets can be executed.

18. The system of claim 13 , wherein the means for determining the ordering determines one queued I/O request to process next that has a minimum priority adjusted delay time.

19. The system of claim 18 , wherein the priority adjusted delay time is adjusted downward for relatively higher priority I/O requests and adjusted upward for relatively lower priority requests.

20. An article of manufacture comprising at least one of hardware logic or a computer readable medium including code executed by a processor for executing Input/Output (I/O) requests, comprising:

determining delay times associated with processing a plurality of I/O requests;

adjusting the determined delay times for the I/O requests according to priorities assigned to the I/O requests;

determining an ordering of the I/O requests based on the adjusted delay times; and

executing at least one I/O request according to the determined ordering.

21. The article of manufacture of claim 20 , wherein the I/O requests are directed to addressable locations on a storage medium accessed by an I/O mechanism, wherein determining the delay times comprises:

determining delay times to access start addresses of the I/O requests on the storage medium from an I/O mechanism position.

22. The article of manufacture of claim 21 , wherein the I/O mechanism comprises a read/write head, and wherein the determined delay time for one I/O request includes a seek time and rotational time for the I/O mechanism to access the start address of the I/O request.

23. The article of manufacture of claim 21 , wherein the steps of determining the delay times and ordering based on the priority adjusted delay times are performed for each I/O request with respect to the I/O mechanism position after processing a previous I/O request.

24. The article of manufacture of claim 21 , wherein the I/O mechanism comprises a read/write head, wherein the read/write head and storage medium are contained in a storage unit, and wherein the steps of determining the delay times, adjusting the delay times according to the priority of the I/O requests, and determining the ordering of the I/O requests are performed by the storage unit.

25. The article of manufacture of claim 21 , wherein the I/O mechanism comprises a read/write head, wherein the read/write head and storage medium are contained in a storage unit, and wherein the steps adjusting the delay times according to the priority of the I/O requests and determining the ordering of the I/O requests are performed by a device driver program in a computer system coupled to the storage unit, further comprising:

transmitting, with the device driver program, the I/O requests in the determined ordering in the storage unit, wherein the storage unit executes the at least one I/O request against the storage medium.

26. The article of manufacture of claim 25 , wherein executing the at least one I/O request against the storage medium comprises executing the at least one I/O request in the ordering determined by the device driver program.

27. The article of manufacture of claim 25 , wherein the step of determining the delay times are determined by the storage unit, further comprising:

transmitting, with the processor, the determined delay times to the device driver program to use when adjusting the delay times according to the priority of the I/O requests.

28. The article of manufacture of claim 20 , further comprising:

creating sets of I/O requests ordered accorded to the determined ordering, wherein one set of I/O requests must be executed before any I/O requests in preceding sets can be executed.

29. The article of manufacture of claim 20 , wherein the priorities assigned to the I/O requests are assigned by at least one application program.

30. The article of manufacture of claim 20 , wherein determining the ordering comprises determining one queued I/O request to process next that has a minimum priority adjusted delay time.

31. The article of manufacture of claim 30 , wherein the priority adjusted delay time is adjusted downward for relatively higher priority I/O requests and adjusted upward for relatively lower priority requests.

32. The system of claim 13 , wherein the system is in communication with at least one application program, wherein the priorities assigned to the I/O requests are assigned by the at least one application program.

Assignments (6)
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 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040820/0802 →
CHANGE OF NAME Recorded Oct 25, 2012
From: HITACHI GLOBAL STORAGE TECHNOLOGIES NETHERLANDS B.V.
To: HGST NETHERLANDS B.V.
Reel/Frame 029341/0777 →