Resource management subsystem that maintains fairness and order

US9836325B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9836325-B2
Application numberUS-201213476791-A
CountryUS
Kind codeB2
Filing dateMay 21, 2012
Priority dateMay 21, 2012
Publication dateDec 5, 2017
Grant dateDec 5, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for managing requests for common resources in a processing pipeline, the method comprising: receiving a first request, from a process executing on a first processor, for a first common resource; receiving a second request for a second common resource; determining that the first common resource and the second common resource are not available for allocation; in response, delaying servicing the first request and the second request; causing a first entry associated with the first request to be created in replay buffer, wherein the first entry in the replay buffer includes at least one program instruction for performing one or more replay operations that execute the first request; subsequent to delaying servicing the first request, receiving a third request for the first common resource; subsequent to receiving the third request, determining the first common resource has become available for allocation; making the first common resource available to the first request, prior to making the first common resource available to the third request; determining that one or more sleeping access requests are waiting for the second common resource; as a result, identifying the second common resource as a scarce resource; determining that the second common resource is now available for allocation; waking up a single access request included in the one or more sleeping access requests; and making the second common resource available to the single access request. 2. The method of claim 1 , wherein the first entry includes a field to track the age of the first request, wherein the first entry indicates that the first request is associated with at least the first common resource. 3. The method of claim 2 , further comprising, upon receiving the third request, searching the replay buffer for any entry corresponding to a request that is associated with the first common resource. 4. The method of claim 3 , further comprising identifying via the first entry that the first request is associated with the first common resource, and, in response, determining that the first request should be serviced prior to the third request. 5. The method of claim 2 , further comprising creating a second entry in the replay buffer for the second request to track the age of the third request, wherein the second entry indicates that the third request is associated with at least the first common resource. 6. The method of claim 5 , upon determining that the first common resource is available, searching the replay buffer for any entry corresponding to a request that is associated with the first common resource. 7. The method of claim 5 , further comprising identifying via the first entry and the second entry that the first request and the third request are associated with the first common resource and that the first request is older than the third request, and, in response, determining that the first request should be serviced prior to the third request. 8. The method of claim 2 , wherein the first entry further includes information that indicates the status of the first common resource. 9. The method of claim 8 , wherein the status of the first common resource is that the first common resource is needed by the first request but not allocated to the first request or that the first common resource is locked and unavailable to the first request. 10. The method of claim 1 , further comprising: subsequent to waking up the single access request, determining that no sleeping access requests are currently waiting for the second common resource; as a result, identifying the second common resource as no longer a scarce resource; determining that the second common resource is again available for allocation; and waking up all sleeping access requests via a broadcast wakeup call. 11. The method of claim 1 , wherein the first entry further comprises at least one of one or more parameters for the one or more replay operations, and contents of one or more registers for the one or more replay operations. 12. The method of claim 1 , further comprising, after determining that the first common resource has become available for allocation: retrieving the first entry from the replay buffer; and executing the at least one program instruction in order to perform the one or more replay operations that execute the first request. 13. A subsystem for managing requests for common resources, the subsystem comprising: a processor configured to implement a processing pipeline; and a total order queue (TOQ) coupled to the processing pipeline that performs the steps of: receiving a first request for a first common resource; receiving a second request for a second common resource; determining that the first common resource and the second common resource are not available for allocation; in response, delaying servicing the first request and the second request; causing a first entry associated with the first request to be created in a replay buffer, wherein the first entry in the replay buffer includes at least one program instruction for performing one or more replay operations that execute the first request; subsequent to delaying servicing the first request, receiving a third request for the first common resource; subsequent to receiving the third request, determining that the first common resource has become available for allocation; making the first common resource available to the first request, prior to making the first common resource available to the third request; determining that one or more sleeping access requests are waiting for the second common resource; as a result, identifying the second common resource as a scarce resource; determining that the second common resource is now available for allocation; waking up a single access request included in the one or more sleeping access requests; and making the second common resource available to the single access request. 14. The subsystem of claim 13 , wherein the first entry includes a field to track the age of the first request, wherein the first entry indicates that the first request is associated with at least the first common resource. 15. The subsystem of claim 14 , wherein the TOQ further performs the step of, upon receiving the third request, searching the replay buffer for any entry corresponding to a request that is associated with the first common resource. 16. The subsystem of claim 15 , wherein the TOQ further performs the steps of identifying via the first entry that the first request is associated with the first common resource, and, in response, determining that the first request should be serviced prior to the third request. 17. The subsystem of claim 14 , wherein the TOQ further performs the step of creating a second entry in the replay buffer for the third request to track the age of the third request, wherein the second entry indicates that the third request is associated with at least the first common resource. 18. The subsystem of claim 17 , wherein the TOQ further performs the step of, upon determining that the first common resource is available, searching the replay buffer for any entry corresponding to a request that is associated with the first common resource. 19. The subsystem of claim 17 , wherein the TOQ further performs the steps of identifying via the first entry and the second entry that the first request and the third request are associated with the first common resource and that the first request is older than the third request, and, in response, deter

Assignees

Inventors

Classifications

  • Low-level · CPC title

  • G06F9/5011Primary

    the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9836325B2 cover?
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 wh…
Who is the assignee on this patent?
Fetterman Michael, Gadre Shirish, Edmondson John H, and 8 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5011. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 05 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).