Multi-threaded data processing management system
First Claim
1. A data processing management system for executing independent instruction threads comprising:
- a plurality of data inputs;
a plurality of data outputs;
a data storage means;
a plurality of data processing means, each said data processing means capable of performing data processing operations to execute the instructions that form at least one of the instruction threads; and
a control means;
wherein the control means comprises;
means for selectively routing data in a routing operation selected from a plurality of routing operations, wherein, in each routing operation, the data is routed between a selected one of said data inputs, a selected one of said data outputs, a selected one of said data processing means and/or said data storage means;
means for causing said data processing means to which the data is routed to commence a predetermined data processing operation based on an instruction from a selected one of the instruction threads;
means for repeatedly determining which routing operations and which data processing operations are capable of being performed;
means for commencing execution of at least one of the determined routing operations or data processing operations capable of being performed.
2 Assignments
0 Petitions
Accused Products
Abstract
A data processing management system for controlling the execution of multiple threads of processing instructions such as the instructions that are employed to process multimedia data. The management system includes a media control core, a number of data processing units and a multi-banked cache. For the processing instruction for each thread, the multimedia core identifies the data processing operation to be executed as well as the resources needed to execute that operation. The multimedia core then determines for each instruction if all the resources are available to execute the operation. For the operations for which all the resources are available, the multimedia core then determines which operation has the highest priority. The operation having the highest priority is then passed to one of the data processing units for execution. The data and addresses upon which the data processing units act are temporarily stored in the multi-banked cache. Data are written into the cache from multiple input ports. Data are read from the cache out through multiple output ports.
-
Citations
30 Claims
-
1. A data processing management system for executing independent instruction threads comprising:
-
a plurality of data inputs; a plurality of data outputs; a data storage means; a plurality of data processing means, each said data processing means capable of performing data processing operations to execute the instructions that form at least one of the instruction threads; and a control means; wherein the control means comprises; means for selectively routing data in a routing operation selected from a plurality of routing operations, wherein, in each routing operation, the data is routed between a selected one of said data inputs, a selected one of said data outputs, a selected one of said data processing means and/or said data storage means; means for causing said data processing means to which the data is routed to commence a predetermined data processing operation based on an instruction from a selected one of the instruction threads; means for repeatedly determining which routing operations and which data processing operations are capable of being performed; means for commencing execution of at least one of the determined routing operations or data processing operations capable of being performed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A data processing management system comprising:
-
a plurality of data inputs; a plurality of data outputs; a plurality of data processing means; a data storage means; and a control means wherein, the control means comprises; means for routing data from each said data input to a selected one of said data outputs through a selected one of said data processing means in a plurality of routing operations; means for causing each said data processing means through which the data is routed to perform a data processing operation on the data; means for repeatedly determining which routing operations, from a plurality of routing operations, and which data processing operations, from a plurality of data processing operations, are capable of being performed; and means for commencing execution of the routing operations and the data processing operations that said means for determining which operations can be performed has determined can be performed. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A method of independently executing separate instruction threads, wherein data that are to be processed based on each instruction thread is provided from one of a plurality of data inputs and data produced as a result of the processing of the instruction thread is forwarded to one of a plurality of data outputs, said method comprising the steps of:
-
for each instruction thread, for the next processing step to be executed in the thread, assembling a thread microinstruction that includes;
an opcode that indicates the processing step to be performed; and
at least one operand describing or defining the data on which the processing step is to be performed and the resources required to execute the instruction;for the plurality of thread microinstructions, establishing a relative order of priority in which the microinstructions are to be executed; for each thread microinstruction, determining if the resources are available to execute the microinstruction based on the data for the microinstruction that defines the required resources and a check of the availability of the resources so that a determination is made if the microinstruction is capable of execution; for the thread microinstructions capable of execution, determining which of the thread microinstructions has the highest priority; and for the thread microinstruction with the highest priority, based on the opcode of the thread microinstruction;
retrieving the data to be processed from a selective one of the data inputs;
processing the data in a data processing means; and
/or forwarding the data to selected one of the data outputs. - View Dependent Claims (27, 28, 29, 30)
-
Specification