Multi-Processor Graphics Rendering
AssigneeApple Inc.
InventorsAngus M. Taggart, Eric J. Graves, Jean-Francois N. Dumais
Life of this patent
Estimating the term…
Abstract
An operating system that includes an image processing framework as well as a job management layer is provided. The image processing framework is for performing image processing operations and the job management layer is for assigning the image processing operations to multiple concurrent computing resources. The computing resources include several processing units and one or more direct memory access (DMA) channels for concurrently rendering image data and transferring image data between the processing units.
Claims30
A method comprising:
- providing an operating system;
- within said operating system, providing an image processing framework for performing image processing operations;
- and
- within said operating system, providing a job management layer for assigning said image processing operations to be performed on a plurality of concurrent computing resources.
A system for performing a plurality of sets of image processing instruction, the system comprising:
- a first renderer for executing a first set of image processing instructions;
- a second renderer for executing a second set of image processing instructions;
- and
- a direct memory access (DMA) controller for performing a data transfer operation to transfer a block of data from a first memory location to a second memory location while the first and second renderers are concurrently executing the first and second sets of image processing instructions, wherein the block of data is produced by the second renderer.
The system claim of 8, wherein the DMA controller is further for transferring a block of data from a third memory location to a fourth memory location, wherein the block of data is an output produced by the first renderer based on the first set of image processing instructions and the third memory location is closely coupled with the first renderer.
A computer readable medium storing a computer program which when executed by at least one processor assigns a plurality of image processing instruction sets to a plurality of renderers for execution, wherein each renderer is associated with at least one processing unit, the computer program comprising sets of instructions for:
- assigning a first set of image processing instructions to a first renderer for execution;
- assigning a second set of image processing instructions to a second renderer for execution;
- and
- while the first and second renderers are concurrently executing the first and second sets of image processing instructions, assigning a direct memory access operation to a direct memory access (DMA) controller for transferring a block of data from a first memory location to a second memory location, wherein the block of data is produced by the second renderer.
A computer readable medium storing a computer program for execution by at least one processor, the computer program comprising sets of instructions for:
- creating a first storage queue for queuing rendering jobs, wherein a rendering job specifies a resource specification, a priority specification, and an output destination specification;
- creating a second storage queue for queuing data transfer jobs;
- and
- assigning the queued rendering jobs and the queued data transfer jobs to a plurality of concurrent computing resources for execution, wherein at least one of the data transfer jobs is for copying a block of data from a first memory location to a second memory location, wherein the block of data is produced by a computing resource when performing a particular rendering job from the first storage queue.
Dependencies are inferred from the claim text.