RESOURCE MANAGEMENT SUBSYSTEM THAT MAINTAINS FAIRNESS AND ORDER
First Claim
1. A method for managing requests for common resources in a processing pipeline, the method comprising:
- receiving a first request for a first common resource;
determining that the first common resource is not available for allocation to requests;
in response, delaying servicing the first request;
subsequent to delaying servicing, receiving a second request for the first common resource;
subsequent to receiving the second request, determining that the first common resource has become available for allocation to requests; and
making the first common resource available to the first request, prior to making the first common resource available to the second request.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present disclosure sets forth an effective way to maintain fairness and order in the scheduling of common resource access requests related to replay operations. Specifically, a streaming multiprocessor (SM) includes a total order queue (TOQ) configured to schedule the access requests over one or more execution cycles. Access requests are allowed to make forward progress when needed common resources have been allocated to the request. Where multiple access requests require the same common resource, priority is given to the older access request. Access requests may be placed in a sleep state pending availability of certain common resources. Deadlock may be avoided by allowing an older access request to steal resources from a younger resource request. One advantage of the disclosed technique is that older common resource access requests are not repeatedly blocked from making forward progress by newer access requests.
30 Citations
20 Claims
-
1. A method for managing requests for common resources in a processing pipeline, the method comprising:
-
receiving a first request for a first common resource; determining that the first common resource is not available for allocation to requests; in response, delaying servicing the first request; subsequent to delaying servicing, receiving a second request for the first common resource; subsequent to receiving the second request, determining that the first common resource has become available for allocation to requests; and making the first common resource available to the first request, prior to making the first common resource available to the second request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A subsystem for managing requests for common resources in a processing pipeline, comprising:
a total order queue (TOQ) configured to perform the steps of; receiving a first request for a first common resource; determining that the first common resource is not available for allocation to requests; in response, delaying servicing the first request; subsequent to delaying servicing, receiving a second request for the first common resource; subsequent to receiving the second request, determining that the first common resource has become available for allocation to requests; and making the first common resource available to the first request, prior to making the first common resource available to the second request. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
20. A computing device, comprising:
a total order queue (TOQ) configured to manage requests for common resources in a processing pipeline by performing the steps of; receiving a first request for a first common resource; determining that the first common resource is not available for allocation to requests; in response, delaying servicing the first request; subsequent to delaying servicing, receiving a second request for the first common resource; subsequent to receiving the second request, determining that the first common resource has become available for allocation to requests; and making the first common resource available to the first request, prior to making the first common resource available to the second request.
Specification