P
US10073783B2ActiveUtilityPatentIndex 45

Dual mode local data store

Assignee: ADVANCED MICRO DEVICES INCPriority: Nov 23, 2016Filed: Nov 23, 2016Granted: Sep 11, 2018
Est. expiryNov 23, 2036(~10.4 yrs left)· nominal 20-yr term from priority
Inventors:CLIFTON DANIELMANTOR MICHAEL JBURTON HANS
G06F 2212/282G06F 9/526G06F 12/0848G06F 9/3888G06F 9/3887G06F 9/5077
45
PatentIndex Score
1
Cited by
19
References
20
Claims

Abstract

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.

Claims

exact text as granted — not AI-modified
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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.