Input/output data access request with assigned priority handling
First Claim
1. A method for processing a data access request (DAR), comprising the steps of:
- receiving a DAR, wherein the data requested for the DAR is to be returned on a channel;
receiving information indicating a priority of the received DAR;
retrieving requested data for the received DAR from a memory area;
determining whether there is a queue of data entries indicating retrieved data for DARs to transfer on the channel, wherein the queued DARs include priority information;
processing at least one data entry in the queue, the priority information for the data entry, and the priority information for the received DAR to determine a position in the queue for the received DAR;
indicating that the received DAR is at the determined position in the queue; and
processing the queue to select retrieved data to transfer on the channel.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a system and method for processing a data access request (DAR). A processing unit, such as a storage controller, receives a DAR, indicating data to return on a channel, such as a channel connecting to a host system, and priority information for the received DAR. The processing unit retrieves the requested data for the received DAR from a memory area, such as a cache or direct access storage device (DASD), and determines whether there is a queue of data entries indicating retrieved data for DARs to transfer on the channel. The queued DARs include priority information. The processing unit processes at least one data entry in the queue, the priority information for the data entry, and the priority information for the received DAR to determine a position in the queue for the received DAR. The processing unit then indicates that the received DAR is at the determined position in the queue and processes the queue to select retrieved data to transfer on the channel to the host system.
50 Citations
31 Claims
-
1. A method for processing a data access request (DAR), comprising the steps of:
-
receiving a DAR, wherein the data requested for the DAR is to be returned on a channel;
receiving information indicating a priority of the received DAR;
retrieving requested data for the received DAR from a memory area;
determining whether there is a queue of data entries indicating retrieved data for DARs to transfer on the channel, wherein the queued DARs include priority information;
processing at least one data entry in the queue, the priority information for the data entry, and the priority information for the received DAR to determine a position in the queue for the received DAR;
indicating that the received DAR is at the determined position in the queue; and
processing the queue to select retrieved data to transfer on the channel. - View Dependent Claims (2, 3, 4, 5, 6, 7)
determining whether the requested data for the received DAR is stored in the second memory area before retrieving the requested data for the received DAR from the first memory area;
retrieving the requested data for the received DAR from the second memory area after determining that the requested data is stored in the second memory area; and
transferring on the channel the data retrieved from the second memory area.
-
-
5. The method of claim 1, further comprising the step of incrementing the priority of the data entries in the queue having a lower priority than the retrieved data that is indicated at the determined position in the queue.
-
6. The method of claim 1, wherein the received DAR specifies an address, wherein multiple DARs are capable of being concurrently received and executed against the address.
-
7. The method of claim 6, wherein the address comprises an alias address associated with a base address, wherein the alias address and the base address access a same location in the memory area, further comprising:
-
determining whether the determined address is an alias address;
determining the base address associated with the alias address after determining that the determined address is an alias address; and
using the base address to retrieve the requested data from the memory area.
-
-
8. A method for processing a data access request (DAR), comprising:
-
receiving a DAR, wherein the data requested for the DAR is to be returned on a channel, wherein multiple DARs can be directed toward the same address;
receiving information indicating a priority of the received DAR;
determining an address in the memory area of the data to retrieve for the received DAR;
processing a queue indicating multiple DARs queued against the determined address, wherein priority information is associated with the queued DARs;
processing at least one DAR entry indicated in the queue, the priority information for the DAR entry, and the priority information for the received DAR to determine a position in the queue for the received DAR;
indicating the received DAR as at the determined position in the queue;
processing the queue to select a DAR; and
accessing the memory area to retrieve the requested data for the selected DAR. - View Dependent Claims (9, 10, 11, 12, 13, 15)
determining whether the requested data for the received DAR is in the second memory area before indicating the received DAR at the determined position in the queue, wherein the step of indicating that the received DAR is at the determined position in the queue occurs after determining that the requested data for the received DAR is not in the second memory area; and
retrieving the requested data from the second memory area after determining that data for the received DAR is in the second memory area.
-
-
12. The method of claim 8, further comprising the step of incrementing the priority of the data entries in the queue having a lower priority than the retrieved data indicated at the determined position in the queue.
-
13. The method of claim 8, wherein the queue is a first queue and a second queue includes
data entries indicating retrieved data for DARs to transfer on the channel, wherein the queued DARs include priority information, further comprising: -
processing at least one data entry in the second queue, the priority information for the data entry, and the priority information for the selected DAR to determine a position in the queue for the selected DAR;
indicating the selected DAR at the determined position in the queue; and
processing the queue to select retrieved data to transfer on the channel.
-
-
15. The method of claim 8, wherein at least two of the multiple DARs queued against the determined address originate from one host system.
-
14. A method for processing a data access request (DAR), comprising:
-
receiving a DAR, wherein the data requested for the DAR is to be returned on a channel, receiving information indicating a priority of the received DAR;
determining an address in the memory area of the data to retrieve for the received DAR wherein the address for the received DAR is an alias address associated with a base address, wherein the alias address and the base address access a same location in the memory area;
determining whether the determined address is an alias address;
determining the base address associated with the alias address after determining that the determined address is an alias address;
processing a queue indicating multiple DARs queued against the determined base address, wherein priority information is associated with the queued DARs;
processing at least one DAR entry indicated in the queue, the priority information for the DAR entry, and the priority information for the received DAR to determine a position in the queue for the received DAR;
indicating the received DAR as at the determined position in the queue;
processing the queue to select a DAR; and
accessing the memory area to retrieve the requested data for the selected DAR.
-
-
16. A system for processing a data access request (DAR) and for communicating with an input/output (I/O) device and a channel, comprising:
-
a processing unit;
a memory area accessible to the processing unit, wherein the memory area is capable of storing a data structure indicating an order for DARs to transfer on a channel and priority information for the DARs;
control logic executed by the processing unit, comprising;
(i) means for receiving a DAR, wherein data requested for the DAR is to be returned on the channel;
(ii) means for receiving information indicating a priority of the received DAR;
(iii) means for retrieving requested data for the received DAR from the I/O device;
(iv) means for determining whether the data structure indicates retrieved data for DARs to transfer on the channel;
(v) means for processing at least one DAR entry in the data structure, the priority information for the DAR entry, and the priority information for the received DAR to determine a position in the data structure for the received DAR;
(vi) means for indicating that the received DAR is located at the determined position in the data structure; and
(vii) means for processing the data structure to select retrieved data to transfer on the channel. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
means for determining whether the requested data for the received DAR is stored in the second memory area before retrieving the requested data for the received DAR from the I/O device;
means for retrieving the requested data for the received DAR from the second memory area after determining that the requested data is stored in the second memory area; and
means for transferring on the channel the data retrieved from the second memory area.
-
-
19. The system of claim 16, wherein the control logic further comprises means for incrementing the priority of the DAR entries indicated in the data structure having a lower priority than the received DAR indicated as located at the determined position in the data structure.
-
20. The system of claim 16, wherein the I/O device is a logical volume within a direct access storage device (DASD), the processing unit is a storage controller, and the channel provides communication between a host system and the storage controller.
-
21. The system of claim 16, wherein the received DAR specifies an address, wherein multiple DARs are capable of being concurrently received and executed against the address.
-
22. The system of claim 21, wherein the address comprises an alias address associated with a base address, wherein the alias address and the base address access a same location in the memory area, wherein the program logic further comprises:
-
means for determining whether the determined address is an alias address;
means for determining the base address associated with the alias address after determining that the determined address is an alias address; and
means for using the base address to retrieve the requested data from the memory area.
-
-
23. The system of claim 16, wherein at least two of the multiple DARs queued against the determined address originate from one host system.
-
24. A system for processing a data access request (DAR) and for communicating with an input/output (I/O) device and a channel, comprising:
-
a processing unit;
a memory area accessible to the processing unit, wherein the memory area is capable of storing a data structure indicating an ordering of DARs to execute queued against an address and priority information for the DARs;
control logic executed by the processing unit, comprising;
(i) means for receiving a DAR, wherein the data requested for the DAR is at the address;
(ii) means for receiving information indicating a priority of the received DAR;
(iii) means for determining an address for the I/O device including the data to retrieve for the received DAR;
(iv) means for determining whether the data structure indicates that multiple DARs are queued against the determined address, wherein priority information is associated with the queued DARs;
(v) means for processing at least one DAR data entry in the data structure, the priority information for the DAR data entry, and the priority information for the received DAR to determine a position in the data structure for the received DAR;
(vi) means for indicating that the received DAR is at the determined position in the data structure;
(v) means for processing the data structure to select a DAR; and
(vi) means for accessing the I/O device to retrieve the requested data for the selected DAR. - View Dependent Claims (25, 26, 27, 28, 29, 30)
means for determining whether the requested data for the received DAR is in the second memory area before adding the received DAR to the data structure; and
means for retrieving the requested data from the second memory area after determining that data for the received DAR is in the second memory area.
-
-
28. The system of claim 24, wherein the control logic further comprises means for incrementing the priority of the DAR entries in the data structure having a lower priority than the DAR of retrieved data added to the queue.
-
29. The system of claim 24, wherein the data structure is a first data structure and a second data structure indicates retrieved data for DARs to return on the channel, wherein the control logic further comprises:
-
means for determining whether the second data structure indicates retrieved data for at least one DAR to transfer on the channel, wherein the queued DARs include priority information;
means for processing at least one data entry in the second data structure, the priority information for the data entry, and the priority information for the selected DAR to determine a position in the second data structure for the selected DAR;
means for indicating in the second data structure the selected DAR at the determined position in the data structure; and
means for processing the second data structure to select retrieved data to transfer on the channel.
-
-
30. The system of claim 24, wherein the I/O device is a direct access storage device (DASD), wherein the processing unit is a storage controller, wherein the channel provides communication between a host system and the storage controller, and wherein the address accesses a logical volume in the DASD.
-
31. A system for processing a data access request (DAR) and for communicating with an input/output (I/O) device and a channel, comprising:
-
a processing unit;
a memory area accessible to the processing unit, wherein the memory area is capable of storing a data structure indicating an ordering of DARs to execute queued against an address and priority information for the DARs;
control logic executed by the processing unit, comprising;
(i) means for receiving a DAR, wherein the data requested for the DAR is at the address;
(ii) means for receiving information indicating a priority of the received DAR;
(iii) means for determining an address for the I/O device including the data to retrieve for the received DAR wherein the address for the received DAR is an alias address associated with a base address, wherein the alias address and the base address access a same location in the memory area;
(iv) means for determining whether the determined address is an alias address;
(v)means for determining the base address associated with the alias address after determining that the determined address is an alias address;
(vi) means for determining whether the data structure indicates that multiple DARs are queued against the determined address wherein priority information is associated with the queued DARs;
(vii) means for processing at least one DAR data entry in the data structure, the priority information for the DAR data entry and the priority information for the received DAR to determine a position in the data structure for the received DAR, (viii) means for indicating that the received DAR is at the determined position in the data structure;
(ix) means for processing the data structure to select a DAR; and
(x) means for accessing the I/O device to retrieve the requested data for the selected DAR.
-
Specification