ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today:...

25
ENGS 116 Lect ure 5 1 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for Monday: 3.1, A.4 – A.6, article: Yeager
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    219
  • download

    2

Transcript of ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today:...

Page 1: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 1

Pipelining and Hazards

Vincent H. Berk

September 30, 2005

Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel

Reading for Monday: 3.1, A.4 – A.6, article: Yeager

Page 2: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 2

Review: Pipelined DLX DatapathFigure A.18, Page A-31

Page 3: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 3

Hazards

Hazards are situations that hamper execution flow

• Structural Hazards:– Resource Conflict, hardware cannot support all possible

combinations of instructions simultaneously.

• Data Hazards:– Source operands are not available: instruction depends on

results of previous instructions still in the pipeline

• Control Hazards:– Changes in program counter

Page 4: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 4

Structural Hazards

Page 5: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 5

Load

Instr 1

Instr 2

stall

Instr 3

One Memory Port/Structural Hazardsfrom: SECOND EDITION

Instr.

Order

Time (clock cycles)

bubblebubblebubble

bubble bubble

CC 1 CC 5CC 2 CC 3 CC 4 CC 6 CC 7 CC 8

MemMem

AL

U

AL

U MemMem Reg Reg

Reg

AL

U MemMem Reg Reg

AL

U MemMem Reg Reg

Page 6: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 6

Structural Hazard: Single Memory

Clock cycle number

Instruction 1 2 3 4 5 6 7 8 9 10Load IF ID EX MEM WBInstr. 1 IF ID EX MEM WBInstr. 2 IF ID EX MEM WBInstr. 3 Stall IF ID EX MEM WBInstr. 4 IF ID EX MEM WBInstr. 5 IF ID EX MEMInstr. 6 IF ID EX

Page 7: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 7

Speed Up Equation for Pipelining

Speedup from pipelining =

=

=

Ideal CPI = CPIunpipelined /Pipeline depth

Speedup =

CPI unpipelined Clock Cycleunpipelined

CPI pipelined Clock Cyclepipelined

CPI unpipelined

CPI pipelined

Clock Cycleunpipelined

Clock Cyclepipelined

Ideal CPI Pipeline depth

CPI pipelined

Clock Cycleunpipelined

Clock Cyclepipelined

Avg. Instr. Time Unpipelined

Avg. Instr. Time Pipelined

Page 8: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 8

Speed Up Equation for Pipelining

CPI pipelined = Ideal CPI + Pipeline stall clock cycles per instr

Speedup = Ideal CPI x Pipeline depth

Ideal CPI + Pipeline stall CPI

Clock Cycleunpipelined

Clock Cyclepipelined

Speedup = Pipeline depth

1 + Pipeline stall CPI

Clock Cycleunpipelined

Clock Cyclepipelined

Page 9: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 9

Example: Dual-port vs. Single-port

• Machine A: Dual ported memory

• Machine B: Single ported memory, but its pipelined implementation has a clock rate that is 1.2 times faster

• Ideal CPI=1 for both

• Loads and stores are 40% of instructions executed

• Machine A is 1.17 times faster

SpeedUpA Pipeline Depth/(1 + 0) (clock unpipe/ clock pipe)

Pipeline Depth

SpeedUpB Pipeline Depth/(1 + 0.4 1)

(clock unpipe /(clock unpipe/1.2)

(Pipeline Depth/1.4) 1.2

0.86 Pipeline Depth

SpeedUpA / SpeedUpB Pipeline Depth/(0.86 Pipeline Depth) = 1.17

Page 10: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 10

Data Hazards

sub R2, R1, R3 ; R2 written by sub

and R12, R2, R5 ; first operand (R2) depends on sub

or R13, R6, R2 ; second operand (R2) depends on sub

add R14, R2, R2 ; both operands depend on sub

sw 100 (R2), R15 ; index (R2) depends on sub

Notice that the value written into R2 by the subtract instruction is needed in all of the following instructions

Page 11: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 11

Classification of Data Hazards

Consider instructions i and j, where i occurs before j.

• RAW (read after write) — j tries to read a source before i writes it, so j gets the old value

• WAW (write after write) — j tries to write an operand before it is written by i (only possible in pipelines that write in more than one pipe stage or allow an instruction to proceed even when a previous instruction is stalled)

• WAR (write after read) — j tries to write a destination before it is read by i, so i incorrectly gets the new value (only possible when some instructions can write results early in the pipeline and other instructions can read sources late in the pipeline)

Page 12: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 12

Software Solution

Compiler recognizes data hazard and adds nops to eliminate it

sub R2, R1, R3 ; register R2 written by sub

nop ; no operation

nop

nop

and R12, R2, R5 ; now, result from sub available

or R13, R6, R2

add R14, R2, R2

sw 100 (R2), R15

Page 13: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 13

Data Hazard Control: Stalls

• Hazard occurs when instruction reads (in ID stage) register that will be written by an earlier instruction (in WB stage)

• Idea: Detect hazard and stall instructions in pipeline until hazard is resolved

• Detect hazard by comparing read fields in IF/ID pipeline register with write fields in later pipeline registers (ID/EX, EX/MEM, MEM/WB)

• To add bubble in pipeline– Preserve PC register and IF/ID pipeline register– Change EX, MEM, and WB control fields of ID/EX pipeline

register to do nothing

Page 14: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 14

Data Hazard Reduction: Forwarding

• Needed result is available before it is written into register file in WB stage

• Idea: Use temporary results instead of waiting for registers to be written

• Cannot solve problem of write (load) followed by read

• Almost all pipelined machines today use some form of forwarding

Page 15: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 15

sub r4, r1, r3

add r1, r2, r3

and r6, r1, r7

or r8, r1, r9

xor r10, r1, r11

Data Hazard on R1Figure A.6, Page A-17

Instr.

Order

Time (clock cycles)

IM Reg DM Reg

IM Reg DM Reg

IM Reg DM

IM Reg

IM Reg

CC 1 CC 5CC 2 CC 3 CC 4 CC 6

Page 16: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 16

Forwarding to Avoid Data HazardFigure A.7, Page A-18

Instr.

Order

IM Reg DM Reg

IM Reg DM Reg

IM Reg DM

IM Reg

IM Reg

Time (clock cycles)CC 1 CC 5CC 2 CC 3 CC 4 CC 6

sub r4, r1, r3

add r1, r2, r3

and r6, r1, r7

or r8, r1, r9

xor r10, r1, r11

Page 17: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 17

Data Hazard Even with Forwarding Figure A.9, Page A-20

Instr.

Order

IM Reg DM

IM Reg DM Reg

IM Reg

IM Reg

Time (clock cycles)CC 1 CC 5CC 2 CC 3 CC 4

sub r4, r1, r5

lw r1, 0(r2)

and r6, r1, r7

or r8, r1, r9

Page 18: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 18

Data Hazard Even with ForwardingFigure A.10, Page A-21

Instr.

Order

IM Reg

IM Reg DM Reg

IM

DM

Reg

IM Reg

Time (clock cycles)CC 1 CC 5CC 2 CC 3 CC 4 CC 6

sub r4, r1, r5

lw r1, 0(r2)

and r6, r1, r7

or r8, r1, r9

bubble

bubble

bubble

Page 19: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 19

LW R1, 0 (R2) IF ID EX MEM WB

SUB R4, R1, R5 IF ID EX MEM WB

AND R6, R1, R7 IF ID EX MEM WB

OR R8, R1, R9 IF ID EX MEM WB

LW R1, 0 (R2) IF ID EX MEM WB

SUB R4, R1, R5

AND R6, R1, R7

OR R8, R1, R9

Page 20: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 20

44 and R12, R2, R5

40 beqz R1, 36

48 or R13, R6, R2

52 add R14, R2, R2

80 ld R4, R7, 100

Control Hazard on BranchesThree Stage Stall

Pro

gram

Exe

cuti

on O

rder

(in

inst

ruct

ions

)

Time (clock cycles)CC 1 CC 5CC 2 CC 3 CC 4 CC 6

DMIM

DMIM

RegDMIM

IM DM

CC 7 CC 8 CC 9

IM DM

Reg

Reg

Reg

Reg

Reg

Reg

Reg

Reg

Reg

Page 21: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 21

Branch instruction IF ID EX MEM WB

Branch successor IF stall stall IF ID EX MEM WB

Branch successor + 1 IF ID EX MEM WB

Branch successor + 2 IF ID EX MEM

Branch successor + 3 IF ID EX

Branch successor + 4 IF ID

Branch successor + 5 IF

Page 22: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 22

Branch Stall Impact

• If CPI = 1, 30% branches, 3-cycle stall new CPI = 1.9!

Two simple solutions:

• Predict not taken

– Continue with decoding code that is already in Instruction Cache

– Usually < 50% correct, however, no stalls when correct

• Branch delay slot

– The first instruction following the branch is ALWAYS executed

– Compiler can figure out what to put there

Page 23: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 23

Delayed Branch

Page 24: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 24

Delayed Branch

• Where to get instructions to fill branch delay slot?

– Before branch instruction

– From the target address: only valuable when branch taken

– From fall through: only valuable when branch not taken

– Canceling branches allow more slots to be filled

• Compiler effectiveness for single branch delay slot:

– Fills about 60% of branch delay slots

– About 80% of instructions executed in branch delay slots useful

in computation

– About 50% (60% x 80%) of slots usefully filled

Page 25: ENGS 116 Lecture 51 Pipelining and Hazards Vincent H. Berk September 30, 2005 Reading for today: Chapter A.1 – A.3, article: Patterson&Ditzel Reading for.

ENGS 116 Lecture 5 25

Evaluating Branch Alternatives

Pipeline Speedup = Pipeline depth

1 + Pipeline stalls

= Pipeline depth

1 + Branch frequency Branch penalty