EP0779577A2

Micoprocessor pipe control and register translation

Abstract

A pipelined processor uses pipe control and register translation to maximize instruction flow through, in an exemplary embodiment, the execution pipelines of a superscalar, superpipelined microprocessor compatible with the x86 instruction set architecture. The pipe control logic simultaneously issues instructions into X and Y pipelines without regard to data dependencies between those instructions issued instructions, and in particular without regard to read-after-write dependencies. Pipe switching allows instructions to be issued into either execution pipeline so as to minimize stalls due to data dependencies between instructions. Instruction flow is controlled independently for each pipeline, with data dependencies between instructions being monitored at each stage of a pipeline. A register translation unit implements register renaming to eliminate write-after-read and write-after-read dependencies, and data forwarding (both operand forwarding and result forwarding) to eliminate read-after-write dependencies through the pipelines is controlled independently. The register translation unit controls the mapping of the eight x86 logical registers into 32 physical registers, including maintaining for each physical register status as to availability, logical register allocation, and write pending -- allocations of physical registers are based on operand size. Instructions are allowed to proceed to execution once it has been determined that the instruction can no longer cause an exception, permitting out-of-order completion. Checkpoint and Exception registers in the register translation unit support speculative execution, permitting pipeline recovery and repair after an instruction exception, branch misprediction , or floating point error. A microcontrol unit provides independent microinstruction flows for both pipelines, enabling, for selected instruction: (a) both execution stages to be used to execute the same instruction, and (b) control of the register translation unit.

EP0779577A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 17 October 2014, 11.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

12 claims: 10 independent, 2 dependent

  1. 1
    A superscalar, pipelined processor with a plurality of execution pipelines each with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, comprising:instruction issue means for issuing instructions into multiple pipelines without regard to data dependencies between such issued instructions;andpipeline control means for monitoring data dependencies between instructions in multiple pipelines;the pipeline control means controlling the flow of instructions through the stages of the pipelines such that a first instruction in a current stage of one pipeline is not delayed due to a data dependency on a second instruction in another pipeline unless such data dependency must be resolved for proper processing of the first instruction in such current stage.
  2. 4
    The processor of Claims 1-3, further comprising data forwarding means for eliminating, for selected instructions, data dependencies by forwarding an operand or a result from a senior instruction directly to a junior instruction.
  3. 5
    A superscalar, pipelined processor processor with a plurality of execution pipelines each with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, comprising:instruction issue means for issuing instructions into the pipelines;andpipe control means for monitoring the relative sequence of instructions in the pipelines, and, for each stage of each pipeline in which an instruction can cause an exception, monitoring the exception status of an instruction;the pipe meanscontrolling instruction flow in the pipelines such that, for a given stage, a junior instruction cannot modify the processor state before a senior instructionuntil after the senior instruction can no longer cause an exception.
  4. 6
    A superscalar, pipelined processor with a plurality of execution pipelines each with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, comprising:instruction issue means for issuing instructions into the pipelines;andpipe control means, including pipe switching means for selectively switching instructions between pipelines;the pipe switching means ordering instructions in the pipelines so as to reduce dependencies between instructions.
  5. 7
    A superscalar, pipelined processor with a plurality of execution pipelines each with a plurality of stages, including an execution stage, in which instructions issued into a pipeline are processed, thereby altering processor state, comprising:instruction issuing means for issuing instructions into the pipelines;for selected instructions, the instruction issue means issuing a single instruction into at least two pipelinesmicrocontrol means for providing independent microinstruction flows to respective execution stages of the pipelines;for each such selected instructions, the microcontrol means selectively controlling the flow of microinstructions to the execution stages of the at least two pipelines such that these execution stages are independently controlled to process the selectedi instruction.
  6. 8
    A superscalar, pipelined processor with a plurality of execution pipelines each with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state,comprising:instruction issue means for issuing instructions into the pipelines;andpipe control means for monitoring, for each pipeline, state information for each stage;for each pipeline, the pipe control means controlling the flow of instructions between stages responsive to processor state information, such that an instruction is allowed to advance from one stage to another independent of the movement of other instructions in corresponding stages of other pipelines.
  7. 9
    A superscalar, superpipelined processor with a plurality of execution pipelines each with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, comprising:instruction issue means for issuing instructions into the pipelines, including first and second instructions;pipe control means for detecting any dependencies between the first and second instructions;andregister translation means responsive to detection of an instruction dependency by the pipe control means for modifying an operand source for one of the first and second instructions to eliminate a dependency between suchinstructions.
  8. 10
    A pipelined processor having an execution pipeline with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, the instructions referencing a defined set of logical registers,comprising:a register file including a plurality of physical registers in excess of the number of logical registers;register translation means for allocating physical registers to logical registers, and for each physical register, storing an indication of whether such physical register holds the current value of the corresponding logical register;in response to an instruction that writes a result to a destination logical register register, the register translation means allocating a new physical register to such destination logical register, and designates such that the new physical register as current for such destination logical register;checkpointing means for checkpointing state information defining a set of physical registers that have been most recently allocated to each of the logical registers prior to allocating a physical register, and associating such checkpointed state information with a current stage for the instruction causing the allocation;andexception handling means for restoring such checkpointed state information responsive to an exception caused by the instruction causing the allocation.
  9. 11
    A pipelined processor having an execution pipeline with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, the instructions referencing a defined set of logical registers having multiple addressable sizes as sources and destinations of operands for the instruction,comprising:a register file with a plurality of physical registers in excess of the number of logical registers;register translation means for generating signals for respective logical registers indicating whether a data dependency exists for that logical register.
  10. 12
    A pipelined processor having an execution pipeline with a plurality of stages in which instructions issued into a pipeline are processed, thereby altering processor state, the instructions referencing a defined set of logical registers having multiple addressable sizes as sources and destinations of operands for the instruction, comprising:microcontrol means for providing, for each instruction, a sequence of microinstructions controlling execution of the instructions in an execution stage of the execution pipeline;a register file with a plurality of physical registers for storing information associated with the logical registers;andregister translation means for allocating physical registers to the logical registers;andfor selected instructions, the register translation means being enabled to be controlled by microinstructions from the microcontrol means.