+ All Categories
Home > Documents > Pipeline Hazards

Pipeline Hazards

Date post: 22-Feb-2016
Category:
Upload: race
View: 41 times
Download: 0 times
Share this document with a friend
Description:
Pipeline Hazards. Hakim Weatherspoon CS 3410, Spring 2011 Computer Science Cornell University. See P&H Appendix 4.7. Announcements. PA1 available: mini-MIPS processor PA1 due next Friday Work in pairs Use your resources - PowerPoint PPT Presentation
35
Pipeline Hazards Hakim Weatherspoon CS 3410, Spring 2011 Computer Science Cornell University See P&H Appendix 4.7
Transcript
Page 1: Pipeline Hazards

Pipeline Hazards

Hakim WeatherspoonCS 3410, Spring 2011

Computer ScienceCornell University

See P&H Appendix 4.7

Page 2: Pipeline Hazards

2

AnnouncementsPA1 available: mini-MIPS processorPA1 due next FridayWork in pairsUse your resources• FAQ, class notes, book, Sections, office hours, newsgroup,

CSUGLab

HW1 graded• Max: 10; Median: 9; Mean: 8.3; Stddev: 1.8• Great job!• Regrade policy

– Submit written request to lead TA, lead TA will pick a different grader – Submit another written request, lead TA will regrade directly – Submit yet another written request for professor to regrade.

Page 3: Pipeline Hazards

3

Announcements

Prelims: • Thursday, March 10th in class• Thursday, April 28th Evening

Late Policy1) Each person has a total of four “slip days”2) For projects, slip days are deducted from all partners 3) 10% deducted per day late after slip days are exhausted

Page 4: Pipeline Hazards

4

Goals for TodayData Hazards• Data dependencies• Problem, detection, and solutions

– (delaying, stalling, forwarding, bypass, etc)• Forwarding unit• Hazard detection unit

Next time• Control Hazards

What is the next instruction to execute ifa branch is taken? Not taken?

Page 5: Pipeline Hazards

5

Broken Example

IF ID MEM WB

IF ID MEM WB

IF ID MEM WB

IF ID MEM WB

IF ID MEM WB

Clock cycle1 2 3 4 5 6 7 8 9

sub r5, r3, r4

lw r6, 4(r3)

or r5, r3, r5

sw r6, 12(r3)

add r3, r1, r2

Page 6: Pipeline Hazards

6

What Can Go Wrong?Data Hazards• register file reads occur in stage 2 (ID) • register file writes occur in stage 5 (WB)• next instructions may read values about to be written

How to detect? Logic in ID stage:stall = (ID.rA != 0 && (ID.rA == EX.rD ||

ID.rA == M.rD || ID.rA == WB.rD)) || (same for rB)

Page 7: Pipeline Hazards

7IF/ID

+4

ID/EX EX/MEM MEM/WB

mem

din dout

addrinst

PC+4

OP

BA

Rd

BD

MD

PC+4

imm

OP

Rd

OP

Rd

PC

instmem

Rd

Ra Rb

DB

A

detecthazard

Detecting Data Hazards

add r3, r1, r2sub r5, r3, r5or r6, r3, r4 add r6, r3, r8

Page 8: Pipeline Hazards

8

Resolving Data HazardsWhat to do if data hazard detected?

Page 9: Pipeline Hazards

9

StallingClock cycle

1 2 3 4 5 6 7 8

add r3, r1, r2

sub r5, r3, r5

or r6, r3, r4

add r6, r3, r8

Page 10: Pipeline Hazards

10

Forwarding Datapath

datamem

B

A

B

D

M

Dinst

mem

DrD B

A

Rd RdRd

WE

WE

Op

WE

Op

rA rB

PC

+4

Opnop

inst

/stall

Page 11: Pipeline Hazards

11

StallingHow to stall an instruction in ID stage• prevent IF/ID pipeline register update

– stalls the ID stage instruction• convert ID stage instr into nop for later stages

– innocuous “bubble” passes through pipeline• prevent PC update

– stalls the next (IF stage) instruction

Page 12: Pipeline Hazards

12

ForwardingClock cycle

1 2 3 4 5 6 7 8

add r3, r1, r2

sub r5, r3, r5

or r6, r3, r4

add r6, r3, r8

Page 13: Pipeline Hazards

13

ForwardingClock cycle

1 2 3 4 5 6 7 8

add r3, r1, r2

sub r5, r3, r4

lw r6, 4(r3)

or r5, r3, r5

sw r6, 12(r3)

Page 14: Pipeline Hazards

14

Forwarding

Forward correct value from?1. ALU output: too late in cycle?2. EX/MEM.D pipeline register

(output from ALU)3. WB data value (output from

ALU or memory)4. MEM output: too late in cycle,

on critical path

to?a) ID (just after register file)

– maybe pointless?

b) EX, just after ID/EX.A and ID/EX.B are read

c) MEM, just after EX/MEM.B is read: on critical path

datamem

B

A

B

D

M

Dinst

mem

DB

A

Page 15: Pipeline Hazards

15

Forwarding Path 1

add r4, r1, r2

nop

sub r6, r4, r1

datamem

instmem

DB

A

Page 16: Pipeline Hazards

16

WB to EX BypassWB to EX Bypass• EX needs value being written by WB

Resolve:Add bypass from WB final value to start of EX

Detect:

Page 17: Pipeline Hazards

17

Forwarding Path 2

add r4, r1, r2

sub r6, r4, r1

datamem

instmem

DB

A

Page 18: Pipeline Hazards

18

MEM to EX BypassMEM to EX Bypass• EX needs ALU result that is still in MEM stage

Resolve:Add a bypass from EX/MEM.D to start of EX

Detect:

Page 19: Pipeline Hazards

19

Forwarding Datapath

datamem

B

A

B

D

M

Dinst

mem

DB

A

Rd Rd

Rb

WE

WE

MC

Ra

MC

Page 20: Pipeline Hazards

20

Tricky Example

datamem

instmem

DB

A

add r1, r1, r2

SUB r1, r1, r3

OR r1, r4, r1

Page 21: Pipeline Hazards

21

More Data Hazards

add r4, r1, r2

nop

nop

sub r6, r4, r1

datamem

instmem

DB

A

Page 22: Pipeline Hazards

22

Register File BypassRegister File Bypass• Reading a value that is currently being written

Detect:((Ra == MEM/WB.Rd) or (Rb == MEM/WB.Rd))

and (WB is writing a register)Resolve:

Add a bypass around register file (WB to ID)Better: (Hack) just negate register file clock

– writes happen at end of first half of each clock cycle– reads happen during second half of each clock cycle

Page 23: Pipeline Hazards

23

QuizFind all hazards, and say how they are resolved:

add r3, r1, r2sub r3, r2, r1nand r4, r3, r1or r0, r3, r4xor r1, r4, r3sb r4, 1(r0)

Page 24: Pipeline Hazards

24

Memory Load Data Hazard

lw r4, 20(r8)

sub r6, r4, r1

datamem

instmem

DB

A

Page 25: Pipeline Hazards

25

Resolving Memory Load HazardLoad Data Hazard• Value not available until WB stage • So: next instruction can’t proceed if hazard detected

Resolution:• MIPS 2000/3000: one delay slot

– ISA says results of loads are not available until one cycle later– Assembler inserts nop, or reorders to fill delay slot

• MIPS 4000 onwards: stall– But really, programmer/compiler reorders to avoid stalling in

the load delay slot

Page 26: Pipeline Hazards

26

Quiz 2add r3, r1, r2nand r5, r3, r4add r2, r6, r3lw r6, 24(r3)sw r6, 12(r2)

Page 27: Pipeline Hazards

27

Data Hazard RecapDelay Slot(s)• Modify ISA to match implementation

Stall• Pause current and all subsequent instructions

Forward/Bypass• Try to steal correct value from elsewhere in pipeline• Otherwise, fall back to stalling or require a delay slot

Tradeoffs?

Page 28: Pipeline Hazards

28

More Hazards

beq r1, r2, L

add r3, r0, r3

sub r5, r4, r6

L: or r3, r2, r4

datamem

instmem D

B

A

PC

+4

Page 29: Pipeline Hazards

29

More Hazards

beq r1, r2, L

add r3, r0, r3

sub r5, r4, r6

L: or r3, r2, r4

datamem

instmem D

B

A

PC

+4

Page 30: Pipeline Hazards

30

Control HazardsControl Hazards• instructions are fetched in stage 1 (IF)• branch and jump decisions occur in stage 3 (EX) • i.e. next PC is not known until 2 cycles after branch/jump

Delay Slot• ISA says N instructions after branch/jump always executed

– MIPS has 1 branch delay slot

Stall (+ Zap)• prevent PC update• clear IF/ID pipeline register

– instruction just fetched might be wrong one, so convert to nop• allow branch to continue into EX stage

Page 31: Pipeline Hazards

31

Delay Slot

beq r1, r2, L

ori r2, r0, 1

L: or r3, r1, r4

datamem

instmem D

B

A

PC

+4

branchcalc

decidebranch

Page 32: Pipeline Hazards

32

Control Hazards: Speculative ExecutionControl Hazards• instructions are fetched in stage 1 (IF)• branch and jump decisions occur in stage 3 (EX) • i.e. next PC not known until 2 cycles after branch/jump

StallDelay SlotSpeculative Execution• Guess direction of the branch

– Allow instructions to move through pipeline– Zap them later if wrong guess

• Useful for long pipelines

Page 33: Pipeline Hazards

33

Loops

Page 34: Pipeline Hazards

34

Branch Prediction

Page 35: Pipeline Hazards

35

Pipelining: What Could Possibly Go Wrong?

Data hazards• register file reads occur in stage 2 (IF) • register file writes occur in stage 5 (WB)• next instructions may read values soon to be written

Control hazards• branch instruction may change the PC in stage 3 (EX)• next instructions have already started executing

Structural hazards• resource contention• so far: impossible because of ISA and pipeline design


Recommended