Template data transfer coprocessor
AssigneeUniversity of Washington
InventorsWeiyun Sun, Donglok Kim, Yongmin Kim
Life of this patent
Estimating the term…
Abstract
The template data transfer coprocessor (TDTP) offloads block data transfer operations from a mediaprocessor. A uni-block template, program-guided template, an indirect template and queue-based template are described. The TDTP includes a template interpreter that employs an event-driven control mechanism to set up a template and compute block information and block information for each template. The programming involved in defining block data transfers for video and image processing algorithms is substantially reduced by the use of these templates.
Claims27
A template data transfer coprocessor apparatus for handling data transfers to load and unload data for access by a mediaprocessor, the coprocessor apparatus comprising:
- a template buffer which concurrently stores a plurality of data transfer templates, each one of said plurality of data transfer templates comprising a set of parameters which define a corresponding data transfer operation, the set of parameters comprising a template type parameter, which identifies a template type from among a plurality of possible template types;
- a template interpreter which reads a template among the plurality of data transfer templates stored in the template buffer, determines a template type of the read template, sets up a data transfer according to the template type and tracks the corresponding data transfer operation for said read template;
- a plurality of address generating units, each of which is associated with a distinct bus, wherein a different set of said address generating units are used for a different one of the template types and each of said address generating units generates a set of addresses to be accessed for the read template based on information received from the template interpreter;
- and
- a data transfer buffer which receives data to be transferred from a source to a destination;
- wherein the coprocessor apparatus provides a plurality of image data blocks to the mediaprocessor for executing an image processing algorithm at the mediaprocessor.
A method for facilitating a data transfer between an on-chip memory of a mediaprocessor and off-chip memory, comprising the steps of:
- compiling code including a plurality of data transfer templates, each one of the plurality of data transfer templates including a plurality of parameters which facilitate a data transfer between on-chip memory and off-chip memory, said plurality of parameters comprising a template type parameter which identifies a type of template among a range of template types;
- executing an image processing algorithm at a mediaprocessor for a plurality of image data blocks;
- loading at least one of said plurality of data transfer templates into a template buffer;
- determining the type of template of a loaded template based on the template type parameter of said loaded template;
- selecting a set of address generating units according to the determined template type from among a plurality of address generating units, wherein each of said plurality of address generating units is associated with a distinct bus, and allowing each of said selected set of address generating units to generate a set of addresses to be accessed for the loaded template;
- and
- facilitating transfer of data between on-chip memory and off-chip memory using the generated set of addresses with a coprocessor according to the determined template type which accesses said loaded template to provide said plurality of image data blocks to the mediaprocessor for said executing of said image processing algorithm.
A system comprising:
- a mediaprocessor for processing media data;
- and
- a template data coprocessor, comprising:
- a template buffer which stores one or more templates, each one of said one or more templates comprising a set of parameters which define a corresponding data transfer operation, the set of parameters comprising a first parameter which identifies a template type, the template type identifying the type of data transfer operation to be implemented by said one template;
- a template interpreter which reads a current template stored in the template buffer, determines the template type according to said first parameter of said current template, sets up a data transfer according to the template type and tracks the corresponding data transfer operation for said current template;
- a plurality of address generating units, each of which is associated with a distinct bus, wherein a different set of said address generating units are used for a different one of the template types, and each of said address generating units generates a set of addresses to be accessed for the current template based on information received from the template interpreter;
- and
- a data transfer buffer which receives data to be transferred from a source to a destination;
- wherein the template data coprocessor provides a plurality of image data blocks to the mediaprocessor for executing an image processing algorithm at the mediaprocessor.
Dependencies are inferred from the claim text.