SYSTEMS AND METHODS FOR ENHANCING PERFORMANCE OF A COPROCESSOR
First Claim
1. A method for scheduling tasks for processing in a coprocessor, comprising:
- generating a run list comprising a list of tasks for processing by a coprocessor, wherein the run list is generated by a central processing unit (CPU);
delivering the run list to a scheduler process, wherein the scheduler process prepares the tasks on the run list for processing by a coprocessor; and
processing the tasks by the coprocessor in an order indicated by the run list, wherein if a switching event occurs when processing one of the tasks, the coprocessor switches immediately to the next task on the run list.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for minimizing coprocessor “starvation,” and for effectively scheduling processing in a coprocessor for greater efficiency and power. A run list is provided allowing a coprocessor to switch from one task to the next, without waiting for CPU intervention. A method called “surface faulting” allows a coprocessor to fault at the beginning of a large task rather than somewhere in the middle of the task. DMA control instructions, namely a “fence,” a “trap” and a “enable/disable context switching,” can be inserted into a processing stream to cause a coprocessor to perform tasks that enhance coprocessor efficiency and power. These instructions can also be used to build high-level synchronization objects. Finally, a “flip” technique is described that can switch a base reference for a display from one location to another, thereby changing the entire display surface.
84 Citations
14 Claims
-
1. A method for scheduling tasks for processing in a coprocessor, comprising:
-
generating a run list comprising a list of tasks for processing by a coprocessor, wherein the run list is generated by a central processing unit (CPU); delivering the run list to a scheduler process, wherein the scheduler process prepares the tasks on the run list for processing by a coprocessor; and processing the tasks by the coprocessor in an order indicated by the run list, wherein if a switching event occurs when processing one of the tasks, the coprocessor switches immediately to the next task on the run list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
Specification