Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
193 words
A pipelined microprocessor capable of issuing and executing instructions out-of-order in a single processor cycle comprising: an instruction cache for temporarily storing instructions to be executed and a data cache for temporarily storing program data; an instruction fetch and dispatch unit receiving instructions from said instruction cache; a plurality of execution units receiving operands from said data cache and operating on said operands according to instructions issued to the execution units, a register file, a completion buffer and a writeback unit, the completion buffer receiving operand results from the execution units and supplying the register file with operand results during a last stage of a pipeline stage, and the writeback unit receiving operand results from the completion buffer for writing data to memory; and a rename unit controlling dispatch of instructions from the instruction fetch and dispatch unit, issuing instructions to the execution units, and writeback of instructions from the completion buffer, said rename unit performing source operand dependency analysis, providing instruction scheduling wherein oldest instructions are executed first, enabling any execution or memory access instruction to execute out-of-order, and rapid pipeline recovery due to a mispredicted branch or a store load conflict.
Claim 2
Dependent Claim
86 words
The pipelined microprocessor according to claim 1 wherein said rename unit comprises: a rotating stack which maintains a record of program order; means for allocating rename tags from a list of rename tags in circular order and storing the rename tags in the rotating stack; and priority encode and state transition logic responsive to said rotating stack for performing instruction dispatch operations, instruction issue operations, instruction writeback operations and rapid pipeline recovery, pipeline recovery being performed by a partial flush of contents of the rename unit.
Claim 3
Dependent Claim
104 words
The pipelined microprocessor according to claim 2 further comprising: a branch target cache loaded from the completion buffer and controlled by the instruction fetch and dispatch unit with a branch target address; and a store barrier cache accessed by the instruction fetch and dispatch unit in parallel with the instruction cache, the store barrier cache containing history bits from the completion buffer that are used to predict a store load conflict, the rename unit marking a store instruction during a dispatch pipeline stage so that no loads in program order are permitted to execute ahead of the store that is predicted to be violated.
Claim 4
Dependent Claim
67 words
The pipelined microprocessor according to claim 2 or 3 further comprising a central pool of reservation station buffers, the rename unit during a dispatch pipeline stage dispatching instructions to the central pool of reservation station buffers and during an execution dispatch pipeline stage directing said execution units to perform an oldest instruction that has each of its operands valid from the central pool of reservation station buffers.
Claim 5
Dependent Claim
39 words
The pipelined microprocessor according to claim 4 wherein said execution units include fixed point units, a floating point unit, a branch unit, and a load/store unit, and wherein said register file is partitioned into integer and floating point files.
Claim 6
Independent Claim
112 words
A method of performing register renaming and rapid pipeline recover in a pipelined microprocessor capable of issuing and executing instructions out-of-order in a single processor cycle comprising the steps of: temporarily storing program data and instructions to be executed; performing source operand dependency analysis; providing instruction scheduling wherein oldest instructions are executed first by a plurality of execution units; dispatching instructions to a plurality of execution units and supplying the execution units with operands from the stored program data; enabling any execution or memory access instruction to execute out-of-order; temporarily storing operand results from the execution units; and providing rapid pipeline recovery due to a mispredicted branch or a store load conflict.