Partial register forwarding for CPUs with unequal delay functional units
AssigneeTexas Instruments Incorporated
InventorsAjit Deepak Gupte, Abhay Golecha
Life of this patent
Estimating the term…
Abstract
A data processing apparatus includes a register file and a plurality of functional units. At least one and not all the plurality of the functional units is a critical functional unit. Each critical functional unit supplies its output to a pipeline register. A comparator and multiplexer select a register input for each functional unit or the output of a corresponding pipeline register dependent. In the preferred embodiment, each critical functional unit has a throughput delay time longer than the average of throughput delay times of all functional units.
Claims5
A data processing apparatus comprising:
- a register file comprising a plurality of registers, each of said plurality of registers having a corresponding register number;
- a plurality of functional units connected to said register file, said plurality of functional units including a critical functional unit subset of at least one and not all said plurality of functional units, each functional unit responsive within a single clock cycle to an instruction to
- receive data from one of said plurality of registers corresponding to an instruction-specified operand register number at a operand input,
- perform an instruction-specified operation on said received data, and
- output data to one of said plurality of registers corresponding to an instruction-specified destination register number from an output;
- a number of pipeline registers equal in number to said critical functional units, each pipeline register receiving and storing output data from a corresponding one of said critical functional units;
- a comparator receiving an indication of said operand register number of a current instruction of each of said plurality of functional units and an indication of said destination register number of an immediately preceding instruction of each critical functional unit, said comparator indicating whether an operand register number of said current instruction matches a destination register number of said immediately preceding instruction;
- and
- a plurality of register file bypass multiplexers equal in number to said plurality of functional units, each register file bypass multiplexer having a first input receiving data from said register corresponding to said operand register number of said current instruction, a number of second inputs equal to a number of said pipeline registers each connected to a corresponding one of said pipeline registers receiving data from said corresponding critical functional unit and an output supplying an operand to said operand input of said corresponding functional unit, said multiplexer selecting said data from said register corresponding to said operand number of said current instruction if said comparator fails to indicate a match and selecting a corresponding one of said second outputs from a pipeline register if said comparator indicates a match.
Dependencies are inferred from the claim text.