Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline
AssigneeHitachi, Ltd.
InventorsChih-Jui Peng, Lew Chua-Eoan
Life of this patent
Estimating the term…
Abstract
A method for forwarding data within a pipeline of a pipelined data processor having a plurality of execution pipeline stages where each stage accepts a plurality of operand inputs and generates a result. The result generated by each execution pipeline stage is selectively coupled to an operand input of one of the execution pipeline stages.
Claims24
A method for forwarding data within a pipeline of a pipelined data processor comprising the steps of:
- providing a plurality of execution pipeline stages where each stage accepts a plurality of operand inputs and generates a result;
- copying the results generated by each execution pipeline stage to an entry of a single pipefile, the entry corresponding to the execution pipeline stage;
- and
- selectively coupling the result generated by each execution pipeline stage to an operand input of one of the execution pipeline stages.
A data processor comprising:
- a plurality of execution pipeline stages where each stage accepts a plurality of operand inputs and generates a result;
- a results bus directly distributing the generated results from each of the execution pipeline stages throughout the plurality of pipeline stages;
- a pipefile coupled to the results bus to selectively receive the generated results;
- and
- a multiplexor associated with each execution pipeline stage operative to selectively couple the results bus to an operand input of the associated execution pipeline stages.
A method of forwarding data between multiple execution stages forming an execution pipeline of a data processor, comprising the steps of:
- applying multiple operands of an instruction to the execution pipeline to produce a result from each of the multiple execution stages;
- each of the multiple execution stages producing a result;
- selectively coupling the result from each of the multiple execution stages to an entry of a pipefile corresponding to such execution stage;
- selectively coupling the result from each of the multiple execution stages to a register in a general register file;
- and
- selectively coupling an entry of the pipefile and a register in the general register file to a first one of the multiple execution stages of the execution pipeline.
A method of forwarding data between multiple execution stages forming an execution pipeline of a data processor, comprising the steps of:
- providing multiple operands to the execution pipeline for performing an operation whereby each of the multiple execution stages produces a result;
- copying the result produced by each of the multiple execution stages to a corresponding entry of a single pipefile;
- and
- selectively coupling the content of the single pipefile to each of the multiple execution stages.
A data processor, including:
- an execution pipeline, comprising a plurality of execution stages, including a first execution stage, coupled to receive operands of an instruction for performing operations dictated by said instruction;
- a single pipefile coupled to receive output from the execution stages;
- and
- a memory coupled via the pipefile to each of the plurality of execution stages for receiving and storing a result at a memory entry corresponding to such execution stage.
An execution pipeline of a data processor, including
- a plurality of serial connected pipeline execution stages, including an input pipeline execution stage that receives one or more operands for performing an operation, each of the plurality of pipeline execution stages having a result output directly coupled to an input of each of the other of the plurality of pipeline execution stages, each result output further selectively coupled to a pipefile.
A method of forwarding result data between a plurality of serial connected execution stages of an execution pipeline of a data processor, including the steps of:
- providing one or more operands to a first one of the plurality of execution stages, the each execution stages operating to perform an operation and to produce a result;
- selectively coupling the result produced by each execution stage to a corresponding entry of a pipefile and to a register of a register file for storage;
- and
- selectively coupling an entry of the pipefile and a register of the register file to an input of each of the execution stages.
Dependencies are inferred from the claim text.