Pipelined instruction processor with data bypassing and disabling circuit
First Claim
1. An instruction processing device comprising:
- an instruction issue unit for issuing successive instructions;
a plurality of pipe-line stages coupled to the instruction issue unit, at least one of the pipe-line stages comprising a functional unit for executing a command from the instructions;
a first register unit including a plurality of registers coupled to the functional unit for storing a result of execution of the command when the command has reached a first one of the pipeline stages, and for supplying bypass operand data, through a selector, to a circuit in a pipe-line stage preceding the first one of the pipeline stages;
a second register unit, coupled to the functional unit for storing the result when the command has reached a second one of the pipeline stages, downstream from the first one of the pipeline stages, and for supplying operand data to the functional unit;
a disable circuit coupled to selectively disable storing of results in the second register unit under control of the instructions, wherein the result is passed to the functional unit via a bypass path before the storing of the result in the second register unit;
a multiplexer having inputs connected to an output of the selector and a read port of the second register unit; and
a bypass control unit arranged to compare a result register address for the result from a first one of the commands with an operand register address from a second one of the commands that follows the first one of the commands directly or indirectly, and to substitute a result from a selected register of the plurality of registers of the first register unit that contains the result for an operand from the second register unit in case of a match of the addresses;
wherein the bypass control unit is further arranged to control the selector and the multiplexer to select the result from the selected register for feeding back the result to the functional unit through the selector and the multiplexer.
2 Assignments
0 Petitions
Accused Products
Abstract
An instruction processing device has a of pipe-line stage with a functional unit for executing a command from an instruction. A first register unit is coupled to the functional unit for storing a result of execution of the command when the command has reached a first one of the pipeline stages, and for supplying bypass operand data to the functional unit. A register file is coupled to the functional unit for storing the result when the command has reached a second one of the pipeline stages, downstream from the first one of the pipeline stages, and for supplying operand data to the functional unit. A disable circuit is coupled to selectively disable storing of the results in the register file under control of the instructions.
-
Citations
12 Claims
-
1. An instruction processing device comprising:
-
an instruction issue unit for issuing successive instructions; a plurality of pipe-line stages coupled to the instruction issue unit, at least one of the pipe-line stages comprising a functional unit for executing a command from the instructions; a first register unit including a plurality of registers coupled to the functional unit for storing a result of execution of the command when the command has reached a first one of the pipeline stages, and for supplying bypass operand data, through a selector, to a circuit in a pipe-line stage preceding the first one of the pipeline stages; a second register unit, coupled to the functional unit for storing the result when the command has reached a second one of the pipeline stages, downstream from the first one of the pipeline stages, and for supplying operand data to the functional unit; a disable circuit coupled to selectively disable storing of results in the second register unit under control of the instructions, wherein the result is passed to the functional unit via a bypass path before the storing of the result in the second register unit; a multiplexer having inputs connected to an output of the selector and a read port of the second register unit; and a bypass control unit arranged to compare a result register address for the result from a first one of the commands with an operand register address from a second one of the commands that follows the first one of the commands directly or indirectly, and to substitute a result from a selected register of the plurality of registers of the first register unit that contains the result for an operand from the second register unit in case of a match of the addresses; wherein the bypass control unit is further arranged to control the selector and the multiplexer to select the result from the selected register for feeding back the result to the functional unit through the selector and the multiplexer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of executing a program of instructions in an instruction processor, the method comprising the acts of:
-
pipelining execution of commands from the instructions; storing results of the commands in a first register unit including a plurality of registers; passing results of executions by an execution unit back to the execution unit via a bypass path before storing of the results in a register file, wherein the bypass path includes a selector for selectively connecting a result of a selected register of the plurality of registers back to the execution unit through a multiplexer; selectively using the result from the selected register bypassed from a pipelining stage as a bypassed operand instead of at least one of operands from the register file; controlling the selector and the multiplexer to select the result from the selected register for feeding back the result to the functional unit through the selector and the multiplexer while selectively suppressing, under program control, writing of the first one of the results to the register file. - View Dependent Claims (8, 9)
-
-
10. A method of compiling a program of instructions for an instruction processor, the method comprising the acts of:
-
generating a series of instructions; first detecting for a result to be produced by a first one of the instructions which second one of the instructions use the result as operand; second detecting whether it can be guaranteed that it will be possible to bypass the result in the instruction processor as operand for all second ones of the instructions without retrieving the result from a register file; before storing of the result in the register file, passing the result to an execution unit, for executing a command from the instructions through a selector and a multiplexer; generating information in the instruction to disable writing to the register file when it can be guaranteed that it will be possible to bypass the result as operand in the instruction processor for all second ones of the instructions while controlling the selector and the multiplexer to pass the result to the execution unit. - View Dependent Claims (11, 12)
-
Specification