17.01.2013 Views

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

MIPS R10000 Microprocessor User's Manual - SGI TechPubs Library

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introduction to the <strong>R10000</strong> Processor 5<br />

<strong>R10000</strong> Superscalar Pipeline<br />

Stage 1<br />

Fetch<br />

5<br />

Execution<br />

Pipelines<br />

Instruction Primary<br />

Instruction<br />

Cache<br />

Cache<br />

Stage 2<br />

Decode<br />

FP Add Pipeline<br />

(FP Queue)<br />

FP Multiply Pipeline<br />

(FP Queue)<br />

Integer ALU Pipeline<br />

(Integer Queue)<br />

Integer ALU Pipeline<br />

(Integer Queue)<br />

Load/Store Pipeline<br />

(Address Queue)<br />

Instruction Fetch Pipeline<br />

Decode<br />

--------<br />

Branch Unit<br />

4 Instruction/Cycle Fetch and Decode<br />

The <strong>R10000</strong> superscalar processor fetches and decodes four instructions in parallel<br />

each cycle (or pipeline stage). Each pipeline includes stages for fetching (stage 1<br />

in Figure 1-4), decoding (stage 2) issuing instructions (stage 3), reading register<br />

operands (stage 3), executing instructions (stages 4 through 6), and storing results<br />

(stage 7).<br />

Stage 3<br />

Issue<br />

Issue RF RF<br />

FAdd - - 1 FAdd - - 2 FAdd - - 3<br />

Result<br />

Issue<br />

Issue<br />

RF<br />

RF<br />

Issue<br />

Issue<br />

RF<br />

RF<br />

ALU1<br />

ALU1<br />

Issue<br />

Issue<br />

RF<br />

RF<br />

ALU2<br />

ALU2<br />

Issue<br />

Issue<br />

RF<br />

RF<br />

Queues<br />

7 Pipeline Stages<br />

Stage 4<br />

Execute<br />

FMpy<br />

FMpy<br />

-1<br />

-1<br />

FMpy<br />

FMpy<br />

-<br />

-<br />

2<br />

2<br />

FMpy<br />

FMpy<br />

-<br />

-<br />

3<br />

3<br />

Result<br />

Result<br />

Addr.Calc .<br />

Addr.Calc .<br />

Stage 5<br />

Execute<br />

Result<br />

Result<br />

Result<br />

Result<br />

Stage 6<br />

Execute<br />

Data<br />

Data<br />

Cache Result<br />

Cache Result<br />

TLB<br />

TLB<br />

Read operands from Floating-Point<br />

or Integer Register Files<br />

Branch Address (one branch can be handled each cycle)<br />

Functional Units (Execute Instruction)<br />

Figure 1-4 Superscalar Pipeline Architecture in the <strong>R10000</strong><br />

Stage 7<br />

Store<br />

Floating-Point Queue<br />

and Registers<br />

Integer Register Operands<br />

2-way Interleaved Cache<br />

Translation-Lookaside Buffer<br />

<strong>MIPS</strong> <strong>R10000</strong> <strong>Microprocessor</strong> <strong>User's</strong> <strong>Manual</strong> Version 2.0 of January 29, 1997

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!