Multi-threaded processing design in architecture with multiple co-processors
First Claim
1. A method for designing a processing operation in an architecture that uses multiple processors, comprising the steps of:
- identifying a chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages;
allotting each said processing stage to a processor;
staggering the processing to accommodate said interdependencies;
selecting a subset of possible pipelines that offer low average processing time, based on said allotment; and
, choosing one design pipeline that offers overall timing reduction in presence of statistical variations to complete said processing operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for designing a multi-threaded processing operation that includes, e.g., multimedia encoding/decoding, uses an architecture having multiple processors and optional hardware accelerators. The method includes the steps of: identifying a desired chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages; allotting each said processing sage to a processor; staggering the processing to accommodate the interdependencies; selecting a processing operation based on said allotting to arrive at a subset of possible pipelines that offer low average processing time; and, choosing one design pipeline from said subset to result in overall timing reduction to complete said processing operation. The invention provides a multi-threaded processing pipeline that is applicable in a System-on-Chip (SoC) using a DSP and shared resources such as DMA controller and on-chip memory, for increasing the throughput. The invention also provides an article which is programmed to execute the method.
42 Citations
27 Claims
-
1. A method for designing a processing operation in an architecture that uses multiple processors, comprising the steps of:
-
identifying a chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages;
allotting each said processing stage to a processor;
staggering the processing to accommodate said interdependencies;
selecting a subset of possible pipelines that offer low average processing time, based on said allotment; and
,choosing one design pipeline that offers overall timing reduction in presence of statistical variations to complete said processing operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19)
-
-
16. The method as in clam 11, including the step of creating predetermined sets of command sequences for programmable coprocessors, to reduce dynamic set up overhead costs.
-
20. A method for achieving efficient parallel processing multi-thread-design-capability in architecture which uses multiple processor units and is capable of handling multi-media encoding/decoding, comprising the steps of:
-
identifying different processing stages for and their interdependencies during processing input data;
assigning each said processing stage to a suitable processing unit;
staggering said processing stages to accommodate said interdependencies;
assigning a buffer, by mapping, to each processing unit for each processing stage;
ascertaining processing time needed, on respective mapped processing units, for fixed complexity processing stages and varying complexity processing stages;
based on an average processing time and other predetermined constraints, selecting a subset of possible timelines that offer a best average processing time; and
,from the subset of possible timelines, selecting a single design pipeline that offers best timing. - View Dependent Claims (21, 22, 23, 24)
-
-
25. An article comprising a storage medium having instructions that when executed by a computing platform result in execution of a method for designing a processing operation in an architecture that uses multiple processors, comprising the steps of:
-
identifying a chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages;
allotting each said processing stage to a processor;
staggering the processing to accommodate said interdependencies;
selecting a subset of possible pipelines that offer low average processing time, based on said allotment; and
,choosing one design pipeline that offers overall timing reduction in presence of statistical variations to complete said processing operation. - View Dependent Claims (26)
-
-
27. An article comprising a storage medium having instructions that when executed by a computing platform result in execution of a method for designing a processing operation in an architecture that uses multiple processors, comprising the steps of:
-
identifying a desired chronological sequence of processing stages for processing input data including identifying interdependencies of said processing stages;
allotting each said processing stage to a suitable processor;
staggering the processing on said allotted processors to accommodate said interdependencies;
selecting a subset of possible pipelines that offer low average processing time based on said allotment; and
,choosing one design pipeline from said subset to result in overall timing reduction to complete said processing operation, wherein said multiprocessors include processors and accelerators, and wherein said process operation includes video/audio processing, the method including the step of breaking up various tasks in said processing operation at a desired granularity, wherein further said step of choosing one design pipeline includes reducing idle time of co-processors/accelerators on a chosen critical path.
-
Specification