P
US8866826B2ActiveUtilityPatentIndex 18

Method and apparatus for dispatching graphics operations to multiple processing resources

Assignee: REID GREGORY APriority: Feb 10, 2011Filed: Feb 10, 2011Granted: Oct 21, 2014
Est. expiryFeb 10, 2031(~4.6 yrs left)· nominal 20-yr term from priority
Inventors:REID GREGORY ACUI HANYUARKERI PRAVEEN VBIJLANI ASHISH
G06F 9/505G06F 9/5027G06F 2209/5021
18
PatentIndex Score
0
Cited by
13
References
39
Claims

Abstract

Parallel graphics-processing methods and mobile computing apparatus with parallel graphics-processing capabilities are disclosed. One exemplary embodiment of a mobile computing apparatus includes physical memory, at least two distinct graphics-processing devices, and a bus coupled to the physical memory and the at least two graphics-processing devices. A virtual graphics processing component enables each of at least two graphics-processing operations to be executed, in parallel, by a corresponding one of the at least two distinct graphics-processing devices, which operate in the same memory surface at the same time.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for managing graphics processing of a computing device including:
 receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation; 
 creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request; 
 initiating execution of the first graphics-related operation with a first graphics-processing resource; 
 receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and 
 executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and 
 determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation. 
 
     
     
       2. The method of  claim 1 , wherein the determining includes determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete. 
     
     
       3. The method of  claim 1 , including executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation. 
     
     
       4. The method of  claim 1 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation. 
     
     
       5. The method of  claim 1 , including:
 querying a driver for the first graphics-processing resource so as to determine when execution of the first graphics-related operation will complete. 
 
     
     
       6. The method of  claim 5 , including:
 accessing the driver for the first graphics-processing resource and removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and 
 rescheduling the at least one graphics-related operation for execution by another graphics-processing resource. 
 
     
     
       7. The method of  claim 5 , including:
 scanning a schedule of requested operations in the driver for the first graphics-processing resource that has not yet been completed; and 
 removing requested operations in the schedule that are redundant to earlier scheduled operations. 
 
     
     
       8. The method of  claim 1 , including:
 executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources. 
 
     
     
       9. The method of  claim 1 , including:
 receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg. 
 
     
     
       10. The method of  claim 1 , including executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation. 
     
     
       11. The method of  claim 1 , including:
 executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and 
 executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource. 
 
     
     
       12. The method of  claim 1 , including transforming a single request for a graphics-related operation into two or more operations; and
 executing the two or more operations on two or more separate and corresponding graphics-processing resources. 
 
     
     
       13. A mobile computing apparatus including:
 physical memory; 
 at least two distinct graphics-processing devices; 
 a bus coupled to the physical memory and the at least two distinct graphics-processing devices; 
 a virtual graphics processing component that is adapted to enable each of a first and a second graphics-processing operations to be executed, in parallel, by a corresponding one of the at least two distinct graphics-processing devices, each of the at least two distinct graphics-processing devices operating in the same memory surface at the same time, wherein the virtual graphics processing component is adapted to determine whether execution of the second graphics-processing operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-processing operation by the first graphics-processing resource, effectuates an execution of the second graphics-processing operation at a faster rate than if the second graphics-processing operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-processing operation. 
 
     
     
       14. The mobile computing apparatus of  claim 13 , wherein the virtual graphics processing component is configured to store a list of graphics-processing operations and determine whether a subsequent graphics processing operation would create a conflict with a prior graphics-processing operation before executing the subsequent graphics processing operation in parallel with the prior graphics-processing operation. 
     
     
       15. The mobile computing apparatus of  claim 13 , wherein the graphics-processing devices are graphics-processing devices selected from the group consisting of MDP, z180, and CPU devices. 
     
     
       16. A computing apparatus, comprising:
 physical memory; 
 at least two graphics-processing resources; 
 a bus coupled to the physical memory and the at least two graphics-processing resources; 
 means for receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation; 
 means for creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request; 
 means for initiating execution of the first graphics-related operation with a first graphics-processing resource; 
 means for receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and 
 means for executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and 
 means for determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation. 
 
     
     
       17. The computing apparatus of  claim 16 , wherein the means for determining includes means for determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete. 
     
     
       18. The computing apparatus of  claim 17 , including means for executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation. 
     
     
       19. The computing apparatus of  claim 16 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation. 
     
     
       20. The computing apparatus of  claim 16 , including:
 means for querying a driver for the first graphics-processing resource so as to determine when execution of the prior request will complete. 
 
     
     
       21. The computing apparatus of  claim 20 , including:
 means for accessing the driver for the first graphics-processing resource and means for removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and 
 means for rescheduling the at least one graphics-related operation for execution by another graphics-processing resource. 
 
     
     
       22. The computing apparatus of  claim 20 , including:
 means for scanning a schedule of requested operations in the driver for the first graphics-processing resource that have not yet been completed; and 
 means for removing requested operations in the schedule that are redundant to earlier scheduled operations. 
 
     
     
       23. The computing apparatus of  claim 16 , including:
 means for executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources. 
 
     
     
       24. The computing apparatus of  claim 16 , including:
 means for receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg. 
 
     
     
       25. The computing apparatus of  claim 16 , including means for executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation. 
     
     
       26. The computing apparatus of  claim 16 , including:
 means for executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and 
 means for executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource. 
 
     
     
       27. The computing apparatus of  claim 16 , including:
 means for transforming a single request for a graphics-related operation into two or more operations; and 
 means for executing the two or more operations on two or more separate and corresponding graphics-processing resources. 
 
     
     
       28. A non-transitory, tangible computer readable storage medium, encoded with processor readable instructions to perform a method for managing memory of a computing device, the method comprising:
 receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation; 
 creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request; 
 initiating execution of the first graphics-related operation with a first graphics-processing resource; 
 receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and 
 executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and 
 determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation. 
 
     
     
       29. The non-transitory, tangible computer readable storage medium of  claim 28 , wherein the determining includes determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete. 
     
     
       30. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation. 
     
     
       31. The non-transitory, tangible computer readable storage medium of  claim 28 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation. 
     
     
       32. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including:
 querying a driver for the first graphics-processing resource so as to determine when execution of the first request will complete. 
 
     
     
       33. The non-transitory, tangible computer readable storage medium of  claim 32 , the method including:
 accessing the driver for the first graphics-processing resource and removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and 
 rescheduling the at least one graphics-related operation for execution by another graphics-processing resource. 
 
     
     
       34. The non-transitory, tangible computer readable storage medium of  claim 32 , the method including:
 scanning a schedule of requested operations in the driver for the first graphics-processing resource that have not yet been completed; and 
 removing requested operations in the schedule that are redundant to earlier scheduled operations. 
 
     
     
       35. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including:
 executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources. 
 
     
     
       36. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including:
 receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg. 
 
     
     
       37. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including:
 executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation. 
 
     
     
       38. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including:
 executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and 
 executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource. 
 
     
     
       39. The non-transitory, tangible computer readable storage medium of  claim 28 , the method including transforming a single request for a graphics-related operation into two or more operations; and
 executing the two or more operations on two or more separate and corresponding graphics-processing resources.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.