22
CSC 4250 Computer Architectures September 26, 2006 Appendix A. Pipelining

CSC 4250 Computer Architectures

  • Upload
    phuc

  • View
    19

  • Download
    0

Embed Size (px)

DESCRIPTION

CSC 4250 Computer Architectures. September 26, 2006 Appendix A. Pipelining. Checks before Instruction Issue. Check for structural hazards ─ FP divide, register write port - PowerPoint PPT Presentation

Citation preview

Page 1: CSC 4250 Computer Architectures

CSC 4250Computer Architectures

September 26, 2006Appendix A. Pipelining

Page 2: CSC 4250 Computer Architectures

Checks before Instruction Issue Check for structural hazards ─ FP divide,

register write port Check for RAW hazard ─ check if source

registers of instruction in ID is listed as a destination in ID/A1, A1/A2, A2/A3, ID/M1, M1/M2, M2/M3, …, M5/M6, D

Check for WAW hazard ─ check if instruction in ID has the same register destination as any instruction in A1, …, A4, M1, …, M7, D

Have we forgotten about WAR hazard?

Page 3: CSC 4250 Computer Architectures

Example on why no WAR hazards Modify Figure A.33:

1. L.D F4,O(R2)

2. MUL.D F0,F4,F6

3. ADD.D F4,F0,F8

4. S.D F4,O(R2)Clock cycle Number

In. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

1. IF ID EX ME WB

2. IF

3. IF

4. IF

Fill in the blanks

Page 4: CSC 4250 Computer Architectures

How Imprecise Exception May Arise Consider code:

DIV.D F0,F2,F4

ADD.D F10,F10,F8

SUB.D F12,F12,F14 Will get out-of-order completion Suppose SUB.D causes a FP exception after

ADD.D completes (but before DIV.D finishes) Next, DIV.D causes a FP exception Cannot restore the state to before DIV.D, as ADD.D

has destroyed one of its operands

Page 5: CSC 4250 Computer Architectures

Performance of MIPS FP Pipeline The MIPS FP pipeline

generates both structural stalls for the divide unit and stalls for RAW hazards (it can also have WAW hazards, but this rarely occurs in practice).

Figure A.35 shows the number of stall cycles for each type of FP operation. The stall cycles per operation track the latency of the FP operations, varying from 46% to 59% of the latency of the FU.

Page 6: CSC 4250 Computer Architectures

Fig. A.35. Stalls per FP operation for FP SPEC89

Page 7: CSC 4250 Computer Architectures

Stalls for SPEC89 FP Benchmarks Consider data in Figure A.35 Except for the divide structural hazards, these data do

not depend on the frequency of an operation, only on its latency and the # of cycles before the result is used

The number of stalls from RAW hazards roughly tracks the latency of the FP unit. For example, the average number of stalls per FP add, subtract, or convert is 1.7 cycles, or 56% of the latency (3 cycles). Likewise, the average number of stalls for multiplies and divides are 2.8 and 14.2, resp., or 46% and 59% of the corr. latency

Structural hazards for divides are rare, since the divide frequency is low

Page 8: CSC 4250 Computer Architectures

Fig. A.36. Stalls per instr. for FP SPEC89

Page 9: CSC 4250 Computer Architectures

MIPS R4000 Pipeline

Implements MIPS64 but uses a deeper pipeline Achieve higher clock rates by decomposing five-

stage integer pipeline into eight stages Extra pipeline stages from decomposing

memory access Sometimes called superpipelining

Page 10: CSC 4250 Computer Architectures

Eight-stage Pipeline Structure of R4000 It uses pipelined instruction and data caches

Page 11: CSC 4250 Computer Architectures

Functions of the Eight Stages (1) 1. IF ─

First half of instruction fetch PC selection Initiation of instruction cache access

2. IS ─ Second half of instruction fetch Complete instruction cache access

3. RF ─ Instruction decode and register fetch Hazard check Instruction cache hit detection

4. EX ─ Execution (including effective address calculation, ALU

operation, branch-target calc. and condition evaluation.)

Page 12: CSC 4250 Computer Architectures

Functions of the Eight Stages (2) 5. DF ─ Data fetch,

1st half of data cache access

6. DS ─ 2nd half of data fetch,

Complete data cache access

7. TC ─ Tag check,

Determine if data cache access is hit

8. WB ─ Write back for loads and

RR operations

Page 13: CSC 4250 Computer Architectures

Two-cycle Load Delay for R4000

Page 14: CSC 4250 Computer Architectures

Example of Load 2-cycle Stall

Clock number

Instruction no. 1 2 3 4 5 6 7 8 9

LD R1,… IF IS RF EX DF DS TC WB

DADD R2,R1,… IF IS RF st st EX DF DS

DSUB R3,R1,… IF IS st st RF EX DF

OR R4,R1 IF st st IS RF EX

Page 15: CSC 4250 Computer Architectures

Three-cycle Branch Delay for R4000 Evaluate branch condition during EX

Page 16: CSC 4250 Computer Architectures

Example of Taken Branch

Clock number

Instruction no. 1 2 3 4 5 6 7 8 9

Branch instruction IF IS RF EX DF DS TC WBDelay slot IF IS RF EX DF DS TC WBStall st st st st st st

st Stall st st st st st

stBranch instruction IF IS RF EX DF

Page 17: CSC 4250 Computer Architectures

Example of Untaken Branch

Clock numberInstruction no. 1 2 3 4 5 6 7 8

9

Branch instruction IF IS RF EX DF DS TC WBDelay slot IF IS RF EX DF DS TC WBBranch instruction+2 IF IS RF EX DF DS

TCBranch instruction+3 IF IS RF EX DF

DS

R4000 uses a predicted-not-taken strategy for the remaining two cycles of the branch delay.

Advantage over predicted-taken strategy?

Page 18: CSC 4250 Computer Architectures

R4000 FP Pipeline

FP instruction Latency Initiation interval

Add, subtract 4 3

Multiply 8 4

Divide 36 35

Square root 112 111

Negate 2 1

Absolute value 2 1

FP compare 3 2

Page 19: CSC 4250 Computer Architectures

Major Causes of R4000 Pipeline Stalls Load stalls ─ use of a load result 1 or 2 cycles

after the load Branch stalls ─ 2-cycle stall on taken branch

plus unfilled or cancelled branch delay slots FP result stalls ─ RAW hazards for operand FP structural stalls ─ conflicts for func. units WAW stalls are not common

Page 20: CSC 4250 Computer Architectures

Pipeline CPI for 10 SPEC92 Benchmarks The pipeline CPI varies

from 1.2 to 2.8. The left five programs are integer programs, and branch delays are the major CPI contributor. The right five programs are FP, and FP result stalls are the major contributors.

Page 21: CSC 4250 Computer Architectures

Pipeline CPI and Major Sources of Stalls

Benchmark CPI Load Branch Result Structure

Gcc 1.56 0.13 0.43 0.00 0.00

Int. average 1.54 0.16 0.38 0.00 0.00

Hydro2d 2.53 0.00 0.62 0.75 0.17

FP average 2.48 0.01 0.33 0.95 0.18

Overall average 2.00 0.10 0.36 0.46 0.09

Page 22: CSC 4250 Computer Architectures

MIPS R4300 Pipeline

Manufactured by NEC 64 bit processor implements MIPS64 IS Embedded applications Nintendo-64 game processor High-end color laser printer Multiple EX stages for FP operations Instructions complete out of order FP instruction generates exception after a following

integer instruction has completed, leading to an imprecise exception