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.