Top Banner
1 The Pipelined CPU With Control Read Address IM Add PC 4 Write Data Read Addr 1 Read Addr 2 Write Addr Register File Read Data 1 Read Data 2 ALU Shift left 2 DM Address Write Data Read Data IF/ID Sign Extend ID/EX EX/MEM MEM/WB ALU Cntrl RegWrite MemWrite MemRead MemtoReg RegDst ALUOp ALUSrc Branch PCSrc Control Add
29

The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

Mar 08, 2019

Download

Documents

hoangphuc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

1

The Pipelined CPU With Control

Read Address

IM

Add

PC

4

Write Data

Read Addr 1 Read Addr 2

Write Addr

Register File

Read Data 1

Read Data 2

ALU

Shift left 2

DM

Address

Write Data

Read Data

IF/ID

Sign Extend

ID/EX EX/MEM

MEM/WB

ALU Cntrl

RegWrite

MemWrite MemRead

MemtoReg

RegDst

ALUOp

ALUSrc

Branch

PCSrc

Control

Add

Page 2: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

2

Data Hazard Review •  Caused when data is needed before it is ready

–  Read before write: Result of previous instruction needed by later instruction

–  Load use: Value in data memory needed by later instruction

ALU IM Reg DM Reg

ALU IM Reg DM Reg

ALU IM Reg DM Reg

Page 3: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

3

Read After Write Hazard Solution •  Forwarding data improves CPI

ALU IM Reg DM Reg

ALU IM Reg DM Reg

ALU IM Reg DM Reg

add $4, $5, $6

add $8, $4, $6

add $10, $9, $4

Page 4: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

4

EX/MEM Forwarding •  Register value needed by next instruction

–  Calculated by ALU this clock cycle –  Needed as input to ALU on next clock cycle

ALU IM Reg DM Reg

ALU IM Reg DM Reg

add $4, $5, $6

add $8, $4, $7 or

add $8, $7, $4

Page 5: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

5

EX/MEM Forwarding

ALU

ID/EX

ALU Cntrl

RegDst

EX/MEM

MemtoReg

MEM/WB

Rd Rt

MemWrite

RegWrite R[Rs]

R[Rt]

Immediate

Page 6: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

6

EX/MEM Forwarding

ALU

ID/EX

ALU Cntrl

RegDst

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite

RegWrite R[Rs]

R[Rt]

Immediate

Page 7: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

7

Forwarding Unit Details

EX/MEM.RegWrite

EX/MEM.RegisterRd[4] ID/EX.RegisterRs[4]

EX/MEM.RegisterRd[0] ID/EX.RegisterRs[0]

EX/MEM.RegisterRd[4] 0

EX/MEM.RegisterRd[0] 0

Forward

EX/MEM.RegisterRd ≠ 0

EX/MEM.RegisterRd = ID/EX.RegisterRs

Page 8: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

8

MEM/WB Forwarding •  Register value needed two instructions later

–  Calculated by ALU this clock cycle –  Needed as input to ALU in two clock cycles

ALU IM Reg DM Reg

ALU IM Reg DM Reg

add $4, $5, $6

add $8, $4, $7 or

add $8, $7, $4

ALU IM Reg DM Reg

Unrelated Instruction

Page 9: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

9

MEM/WB Forwarding

ALU

ID/EX

ALU Cntrl

RegDst

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite

RegWrite R[Rs]

R[Rt]

Immediate

Page 10: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

10

MEM/WB Forwarding

ALU

ID/EX

ALU Cntrl

RegDst

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite

RegWrite R[Rs]

R[Rt]

Immediate

Page 11: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

11

Forwarding Complication •  Forward unit must forward most recent value

–  It may appear necessary to do MEM/WB and EX/MEM forwarding simultaneously

–  Only do EX/MEM forwarding this cycle –  Do EX/MEM forwarding again next cycle

ALU IM Reg DM Reg

ALU IM Reg DM Reg

add $4, $5, $6

add $8, $4, $7 ALU IM Reg DM Reg

add $4, $4, $13

Page 12: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

12

Complete ALU Input Forwarding

ALU

ID/EX

ALU Cntrl

RegDst

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite

RegWrite R[Rs]

R[Rt]

Immediate

Page 13: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

13

Other Forwarding Possible •  Forwarding to Data Memory

•  Data memory to data memory copy

ALU IM Reg DM Reg

ALU IM Reg DM Reg

add $4, $5, $6

sw $4, 40($7)

ALU IM Reg DM Reg

ALU IM Reg DM Reg

lw $4, 16($7)

sw $4, 40($7)

Page 14: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

14

Forwarding to Memory

ALU

ID/EX

ALU Cntrl

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite RegWrite R[Rs]

R[Rt]

Immediate

Page 15: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

15

Forwarding to Memory

ALU

ID/EX

ALU Cntrl

EX/MEM

Forward Unit

MemtoReg

MEM/WB

Rd Rt Rs

MemWrite RegWrite R[Rs]

R[Rt]

Immediate

Page 16: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

16

Load Use Hazards Require Stalls  No forwarding can help

 Requires a Hazard Detection Unit   Detects hazards   Inserts pipeline bubble

ALU IM Reg DM Reg lw $4, 16($5)

add $8, $4, $7

ALU IM Reg DM Reg

nop

Page 17: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

17

Stalling The Pipeline  Stalls occur by inserting pipeline bubble

  Hold some state registers (stage repeats)   Allow other stages to continue processing

ALU IM Reg DM Reg lw $4, 16($5)

add $8, $4, $7 ALU IM Reg DM Reg

add becomes nop ALU IM Reg DM Reg

Repeats

Page 18: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

18

Stalling The Pipeline  Load Use Hazard code

lw $4, 16($5)

add $8, $4, $7

ALU IM Reg DM Reg

add lw

Page 19: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

19

Stalling The Pipeline  Load Use Hazard code

lw $4, 16($5)

add $8, $4, $7

ALU IM Reg DM Reg

add lw

Hazard Detected

Page 20: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

20

Stalling The Pipeline  Load Use Hazard code

lw $4, 16($5)

add $8, $4, $7

IM Reg DM Reg

add lw nop

Bubble Inserted

Stage Repeated

Page 21: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

21

Stalling The Pipeline  Load Use Hazard code

lw $4, 16($5)

add $8, $4, $7

ALU IM Reg Reg

add lw nop

Data Forwarded

Page 22: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

22

Stalling The Pipeline  Load Use Hazard code

lw $4, 16($5)

add $8, $4, $7

ALU IM Reg DM

add nop

No Register Written

Page 23: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

23

How To Stall The Pipeline

Read Address

IM

PC

Write Data

Read Addr 1 Read Addr 2

Write Addr

Register File

Read Data 1

Read Data 2

IF/ID

ID/EX

Control

Hazard Detection

0 MemRead

Rt

PCWrite

IF/IDWrite

Page 24: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

24

Hazard Detection Details  Stall pipeline when all of the following occur

–  ID/EX.MemRead –  ID/EX.RegisterRt ≠ 0 –  ID/EX.RegisterRt = IF/ID.RegisterRs

or ID/EX.RegisterRt = IF/ID.RegisterRt

Page 25: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

25

Stalling Control Hazards  Stalling always possible, but affects CPI

ALU IM Reg DM Reg

ALU IM Reg DM Reg

ALU IM Reg DM Reg

ALU IM Reg DM Reg

Page 26: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

26

Branch Delay  A taken branch must flush instructions

beq $4, $5, label

add $7, $8, $9

or $10, $11, $12

label: sub $7, $8, $9

ALU IM Reg DM Reg

add beq or

Incorrect Branch

Page 27: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

27

Branch Delay  A taken branch must flush instructions

beq $4, $5, label

add $7, $8, $9

or $10, $11, $12

label: sub $7, $8, $9

IM DM Reg

sub beq nop nop

Page 28: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

28

Adding nop To Decode Stage

Read Address

IM

PC

Write Data

Read Addr 1 Read Addr 2

Write Addr

Register File

Read Data 1

Read Data 2

IF/ID

ID/EX

Control

Hazard Detection

0

Clears Execute Stage

Page 29: The Pipelined CPU With Control - University of California ...american.cs.ucdavis.edu/academic/ecs154b/154bpdf/hazardsplus.pdf · The Pipelined CPU With Control Read Address IM Add

29

Adding nop To Decode Stage

Read Address

IM

PC

Write Data

Read Addr 1 Read Addr 2

Write Addr

Register File

Read Data 1

Read Data 2

IF/ID

ID/EX

Control

Hazard Detection

0

0

Clears Execute Stage

Clears Decode Stage