Processor containing data path units with forwarding paths between two data path units and a unique configuration or register blocks
First Claim
1. A digital signal processor for use in executing a plurality of instructions contained in an instruction packet, said processor comprising:
- a plurality of register blocks, each containing operands;
a plurality of data path units, wherein each of said data path units comprises a plurality of functional units, for executing said instructions using said operands and yielding results;
a coupling fabric configured to facilitate communication between said register blocks and said data path units, wherein said coupling fabric comprises a plurality of forwarding paths wherein each of said forwarding paths is configured to couple two of said data path units together, said forwarding paths being unidirectional; and
a scheduler which contains information regarding said coupling fabric, said scheduler configured to forward each of said plurality of instructions to one of said data path units based on the configuration of said coupling fabric; and
wherein said plurality of data path units equals M data path units, wherein said coupling fabric is further configured to couple each of said register blocks to L of said M data path units, where 1<
L<
M.
12 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides an efficient method of forwarding and sharing information between functional units and register files in an effort to execute instructions. A digital signal processor includes a plurality of register blocks for storing data operands coupled to a plurality of data path units for executing instructions. Preferably, each register block is coupled to at least two data path units. In addition, the processor preferably has a plurality of forwarding paths which forward information from one data path unit to another. A scheduler efficiently forwards instructions to data path units based on information regarding the configuration of the processor and any restrictions which might be imposed on the scheduler.
110 Citations
28 Claims
-
1. A digital signal processor for use in executing a plurality of instructions contained in an instruction packet, said processor comprising:
-
a plurality of register blocks, each containing operands;
a plurality of data path units, wherein each of said data path units comprises a plurality of functional units, for executing said instructions using said operands and yielding results;
a coupling fabric configured to facilitate communication between said register blocks and said data path units, wherein said coupling fabric comprises a plurality of forwarding paths wherein each of said forwarding paths is configured to couple two of said data path units together, said forwarding paths being unidirectional; and
a scheduler which contains information regarding said coupling fabric, said scheduler configured to forward each of said plurality of instructions to one of said data path units based on the configuration of said coupling fabric; and
whereinsaid plurality of data path units equals M data path units, wherein said coupling fabric is further configured to couple each of said register blocks to L of said M data path units, where 1<
L<
M.- View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of efficiently scheduling instructions in a very long instruction word digital signal processor having a plurality of data path units, each data path unit comprising a plurality of functional units, a plurality of register blocks having data operands and a coupling fabric configured to facilitate communication between said register blocks and said data path units, wherein said coupling fabric comprises a forwarding path configured to couple two of said data path units together and register blocks being coupled to fewer than all of said data path units, said method comprising the steps of:
-
receiving an instruction referencing said data operands that, upon execution, yields a result;
determining in a scheduler which of said data path units are capable of executing said instruction based on said coupling fabric and further based on one or more restrictions imposed by said scheduler;
selecting which of said capable data path units would be efficient for executing said instruction; and
forwarding said instruction to said selected data path unit for execution by said selected data path unit using said data operands. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A signal processing system for use in executing the instructions of a very long instruction word architecture, said system comprising:
-
register blocks configured to store data;
data path units comprising functional units which execute said instructions using said data;
a fabric configured to route data and instructions, said fabric linking said register blocks and said data path units, wherein each of said register blocks is linked to at least two of said data path units, but fewer than all of said data path units, and wherein at least one of said data path units is linked to another of said data path units;
a scheduler for scheduling instructions to said data path units, said scheduler configured to maintain information about said fabric, said register blocks, and said data path units; and
a selector for selecting which of said data path units is to execute an instruction. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A digital signal processor for use in executing instructions of a very long instruction word model, said processor comprising:
-
N register blocks configured to store data;
M data path units, each of said M data path units comprising functional units for executing instructions using said data; and
a fabric configured to couple each of said N register blocks to L of said M data path units, where 1<
L<
M, to enable said data to be exchanged between said N register blocks and said M data path units, said fabric further configured to couple two of said M data path units together to enable said data to be exchanged between said two data path units; and
a scheduling mechanism to schedule instructions to said data path units, said mechanism including information about said N register blocks, said M data path units and said fabric. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A method of executing instructions in a digital signal processor using a very long instruction word architecture, wherein said processor comprises a memory unit, data path units, register blocks and a coupling fabric configured to facilitate communication between and said register blocks and said data path units, and between said data path units, each of said register blocks being coupled to fewer than all of said data path units, said method comprising the steps of:
-
receiving at a scheduler, a first instruction from said memory unit;
determining, in said scheduler, which of said data path units are capable of executing said first instruction based on said coupling fabric;
selecting one of said data path units for executing said first instruction based on results of said determining step;
forwarding said first instruction from said scheduler to said one data path unit;
executing said first instruction in said one data path unit, producing a result; and
storing said result from said executing step in one of said register blocks coupled to said one data path unit. - View Dependent Claims (25, 26, 27, 28)
-
Specification