Mechanism for tracking age of common resource requests within a resource management subsystem
First Claim
1. A method for identifying and executing requests for common resources in a processing pipeline, the method comprising:
- receiving a plurality of requests for one or more common resources;
storing a different entry in a buffer for each request in the plurality of requests, wherein the entries are stored in a temporal order;
upon determining that a first common resource is available, distributing resource status information associated with the first common resource to each entry included in the buffer,searching the resource status information distributed to the entries stored in the buffer to identify a subset of entries corresponding to requests that are associated with at least the first common resource;
identifying one or more entries included in the subset of entries that indicate that all common resources, including the first common resource, associated with the requests corresponding to the one or more entries are available;
reading a first entry included in the one or more entries that is the oldest of the one or more entries in order to execute a first cycle of a first request that corresponds to the first entry.
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.
7 Citations
22 Claims
-
1. A method for identifying and executing requests for common resources in a processing pipeline, the method comprising:
-
receiving a plurality of requests for one or more common resources; storing a different entry in a buffer for each request in the plurality of requests, wherein the entries are stored in a temporal order; upon determining that a first common resource is available, distributing resource status information associated with the first common resource to each entry included in the buffer, searching the resource status information distributed to the entries stored in the buffer to identify a subset of entries corresponding to requests that are associated with at least the first common resource; identifying one or more entries included in the subset of entries that indicate that all common resources, including the first common resource, associated with the requests corresponding to the one or more entries are available; reading a first entry included in the one or more entries that is the oldest of the one or more entries in order to execute a first cycle of a first request that corresponds to the first entry. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 21, 22)
-
-
10. A subsystem for identifying and executing requests for common resources, comprising:
-
a processing pipeline; and a total order queue (TOQ) coupled to the processing pipeline and configured to perform the steps of; receiving a plurality of requests for one or more common resources; storing a different entry in a buffer for each request in the plurality of requests, wherein the entries are stored in a temporal order; upon determining that a first common resource is available, distributing resource status information associated with the first common resource to each entry included in the buffer, searching the resource status information distributed to the entries stored in the buffer to identify a subset of entries corresponding to requests that are associated with at least the first common resource; identifying one or more entries included in the subset of entries that indicate that all common resources, including the first common resource, associated with the requests corresponding to the one or more entries are available; reading a first entry included in the one or more entries that is the oldest of the one or more entries in order to execute a first cycle of a first request that corresponds to the first entry. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computing device, comprising:
-
a processor; and a total order queue (TOQ) coupled to the processor and configured to identify and execute requests for common resources in a processing pipeline associated with the processor, by performing the steps of; receiving a plurality of requests for one or more common resources; storing a different entry in a buffer for each request in the plurality of requests, wherein the entries are stored in a temporal order; upon determining that a first common resource is available, distributing resource status information associated with the first common resource to each entry included in the buffer, searching the resource status information distributed to the entries stored in the buffer to identify a subset of entries corresponding to requests that are associated with at least the first common resource; identifying one or more entries included in the subset of entries that indicate that all common resources, including the first common resource, associated with the requests corresponding to the one or more entries are available; reading a first entry included in the one or more entries that is the oldest of the one or more entries in order to execute a first cycle of a first request that corresponds to the first entry. - View Dependent Claims (20)
-
Specification