Request aggregation with opportunism
US-2015310900-A1 · Oct 29, 2015 · US
US10073783B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10073783-B2 |
| Application number | US-201615360205-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 23, 2016 |
| Priority date | Nov 23, 2016 |
| Publication date | Sep 11, 2018 |
| Grant date | Sep 11, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for efficiently processing access requests for a shared resource are described. Each of many requestors are assigned to a partition of a shared resource. When a controller determines no requestor generates an access request for an unassigned partition, the controller permits simultaneous access to the assigned partitions for active requestors. When the controller determines at least one active requestor generates an access request for an unassigned partition, the controller allows a single active requestor to gain exclusive access to the entire shared resource while stalling access for the other active requestors. The controller alternatives exclusive access among the active requestors. In various embodiments, the shared resource is a local data store in a graphics processing unit and each of the multiple requestors is a single instruction multiple data (SIMD) compute unit.
Opening claim text (preview).
What is claimed is: 1. A computing system comprising: a shared resource comprising a plurality of partitions; a plurality of requestors, each assigned to a different partition of the plurality of partitions of the shared resource, each configured to generate a request to the plurality of partitions; and a controller coupled to the shared resource, wherein in response to receiving a plurality of requests from a plurality of active requestors of the plurality of requestors for access to the shared resource, the controller is configured to: in response to determining no active requestor targets an unassigned partition, provide simultaneous access to partitions assigned to the plurality of active requestors; and in response to determining an active requestor targets an unassigned partition: select a first requestor of the plurality of active requestors; provide the first requestor with access to all partitions of the plurality of partitions; and stall access to the shared resource for each of the plurality of requestors other than the first requestor when providing the first requestor with access to all partitions. 2. The computing system as recited in claim 1 , wherein the first requestor is not the active requestor targeting the unassigned partition. 3. The computing system as recited in claim 1 , wherein the first requestor is a least recently selected active requestor of the plurality of requestors. 4. The computing system as recited in claim 1 , wherein the controller is further configured to deselect the first requestor responsive to: determining completion of a given number of access requests for the first requestor; and determining the plurality of requestors have more access requests. 5. The computing system as recited in claim 4 , wherein the given number of access requests is a number of access requests serviced within a single clock cycle. 6. The computing system as recited in claim 4 , wherein the controller is further configured to: stall access of the shared resource for the first requestor; and mark the first requestor as the most recently selected active requestor of the plurality of requestors. 7. The computing system as recited in claim 6 , wherein the controller is further configured to: select a second requestor different from the first requestor of the plurality of requestors; remove the stall for the selected second requestor; and provide the second requestor with access to all partitions of the plurality of partitions. 8. The computing system as recited in claim 1 , wherein the shared resource is a local data store in a graphics processing unit and each of the plurality of requestors is a single instruction multiple data (SIMD) compute unit. 9. A method comprising: assigning each of a plurality of requestors to a different partition of a plurality of partitions of a shared resource, each configured to generate a request to the plurality of partitions; in response to receiving a plurality of requests from a plurality of active requestors of the plurality of requestors for access to the shared resource: in response to determining no active requestor targets an unassigned partition, providing simultaneous access to partitions assigned to the plurality of active requestors; and in response to determining an active requestor targets an unassigned partition: selecting a first requestor of the plurality of active requestors; providing the first requestor with access to all partitions of the plurality of partitions; and stalling access to the shared resource for each of the plurality of requestors other than the first requestor when providing the first requestor with access to all partitions. 10. The method as recited in claim 9 , wherein the first requestor is not the active requestor targeting the unassigned partition. 11. The method as recited in claim 9 , wherein the first requestor is a least recently selected active requestor of the plurality of requestors. 12. The method as recited in claim 9 , further comprising deselecting the first requestor responsive to: determining completion of a given number of access requests for the first requestor; and determining the plurality of requestors have more access requests. 13. The method as recited in claim 12 , wherein the given number of access requests is a number of access requests serviced within a single clock cycle. 14. The method as recited in claim 12 , further comprising: stalling access of the shared resource for the first requestor; and marking the first requestor as the most recently selected active requestor of the plurality of requestors. 15. The method as recited in claim 14 , further comprising: selecting a second requestor different from the first requestor of the plurality of requestors; removing the stall for the selected second requestor; and permitting access of any of the plurality of partitions for the second requestor. 16. The method as recited in claim 9 , wherein the shared resource is a local data store in a graphics processing unit and each of the plurality of requestors is a single instruction multiple data (SIMD) compute unit. 17. A controller comprising: a first interface coupled to a shared resource comprising a plurality of partitions; a second interface coupled to a plurality of requestors, each assigned to a different partition of the plurality of partitions of the shared resource, each configured to generate a request to the plurality of partitions; and a control unit; and wherein in response to receiving a plurality of requests from a plurality of active requestors of the plurality of requestors for access to the shared resource, the control unit is configured to: in response to determining no active requestor targets an unassigned partition, provide simultaneous access to partitions assigned to the plurality of active requestors; and in response to determining an active requestor targets an unassigned partition: select a first requestor of the plurality of active requestors; provide the first requestor with access to all partitions of the plurality of partitions; and stall access to the shared resource for each of the plurality of requestors other than the first requestor when providing the first requestor with access to all partitions. 18. The controller as recited in claim 17 , wherein the first requestor is not the active requestor targeting the unassigned partition. 19. The controller as recited in claim 17 , wherein the control unit is further configured to deselect the first requestor responsive to: determining completion of a given number of access requests for the first requestor; and determining the plurality of requestors have more access requests. 20. The controller as recited in claim 19 , wherein the control unit is further configured to: stall access of the shared resource for the first requestor; and mark the first requestor as the most recently selected active requestor of the plurality of requestors.
Partitioned cache · CPC title
Mutual exclusion algorithms · CPC title
Partitioned cache, e.g. separate instruction and operand caches · CPC title
controlled by a single instruction for multiple threads [SIMT] in parallel · CPC title
controlled by a single instruction for multiple data lanes [SIMD] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.