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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
viii Table of Contents<br />
1<br />
Introduction to the <strong>R10000</strong> Processor<br />
<strong>MIPS</strong> Instruction Set Architecture (ISA) .....................................................................................2<br />
What is a Superscalar Processor?.................................................................................................3<br />
Pipeline and Superpipeline Architecture..........................................................................3<br />
Superscalar Architecture .....................................................................................................3<br />
What is an <strong>R10000</strong> <strong>Microprocessor</strong>? ............................................................................................4<br />
<strong>R10000</strong> Superscalar Pipeline ...............................................................................................5<br />
Instruction Queues...............................................................................................................6<br />
Execution Pipelines ..............................................................................................................6<br />
64-bit Integer ALU Pipeline......................................................................................6<br />
Load/Store Pipeline...................................................................................................7<br />
64-bit Floating-Point Pipeline...................................................................................7<br />
Functional Units ...................................................................................................................9<br />
Primary Instruction Cache (I-cache)..................................................................................9<br />
Primary Data Cache (D-cache) ...........................................................................................9<br />
Instruction Decode And Rename Unit..............................................................................10<br />
Branch Unit ...........................................................................................................................10<br />
External Interfaces................................................................................................................10<br />
Instruction Queues.........................................................................................................................11<br />
Integer Queue .......................................................................................................................11<br />
Floating-Point Queue...........................................................................................................11<br />
Address Queue .....................................................................................................................12<br />
Program Order and Dependencies ..............................................................................................13<br />
Instruction Dependencies....................................................................................................13<br />
Execution Order and Stalling .............................................................................................13<br />
Branch Prediction and Speculative Execution .................................................................14<br />
Resolving Operand Dependencies.....................................................................................14<br />
Resolving Exception Dependencies...................................................................................15<br />
Strong Ordering....................................................................................................................15<br />
An Example of Strong Ordering ..............................................................................16<br />
<strong>R10000</strong> Pipelines .............................................................................................................................17<br />
Stage 1 ....................................................................................................................................17<br />
Stage 2 ....................................................................................................................................17<br />
Stage 3 ....................................................................................................................................18<br />
Stages 4-6 ...............................................................................................................................18<br />
Floating-Point Multiplier (3-stage Pipeline)...........................................................18<br />
Floating-Point Divide and Square-Root Units .......................................................18<br />
Floating-Point Adder (3-stage Pipeline) .................................................................18<br />
Integer ALU1 (1-stage Pipeline)...............................................................................18<br />
Integer ALU2 (1-stage Pipeline)...............................................................................18<br />
Address Calculation and Translation in the TLB ..................................................19<br />
Implications of <strong>R10000</strong> Microarchitecture on Software............................................................20<br />
Version 2.0 of January 29, 1997 <strong>MIPS</strong> <strong>R10000</strong> <strong>Microprocessor</strong> <strong>User's</strong> <strong>Manual</strong>