Structural & Data Hazards Topic 3: Pipelining ECE 4750...

35
ECE 4750 Computer Architecture Topic 3: Pipelining Structural & Data Hazards Christopher Batten School of Electrical and Computer Engineering Cornell University http://www.csl.cornell.edu/courses/ece4750 slide revision: 2012-09-05-17-41

Transcript of Structural & Data Hazards Topic 3: Pipelining ECE 4750...

Page 1: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

ECE 4750 Computer ArchitectureTopic 3: Pipelining

Structural & Data Hazards

Christopher BattenSchool of Electrical and Computer Engineering

Cornell University

http://www.csl.cornell.edu/courses/ece4750

slide revision: 2012-09-05-17-41

Page 2: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards Data Hazards

Iron Law of Processor Performance

TimeProgram

=Instructions

Program× Cycles

Instruction× Time

Cycles

Microarchitecture CPI Cycle Time

topic 2→ Microcoded >1 shorttopic 3→ Single-Cycle Unpipelined 1 longtopic 3→ Multi-Cycle Unpipelined >1 short

topics 4–6→ Pipelined ≈1 short

ECE 4750 T03: Pipelining – Structural & Data Hazards 2 / 35

Page 3: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards Data Hazards

CPI Of Various Microarchitectures

ECE 4750 T03: Pipelining – Structural & Data Hazards 3 / 35

Page 4: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Agenda

Pipelining Basics

Structural Hazards

Data Hazards

ECE 4750 T03: Pipelining – Structural & Data Hazards 4 / 35

Page 5: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

An Ideal Pipeline

stage 1

stage 2

stage 3

stage 4

I All objects go through the same stages

I No sharing of resources between any two stages

I Propagation delay through all pipeline stages is equal

I Scheduling of a transaction entering pipeline is not affected bytransactions in other stages

I These conditions generally hold for industry assembly lines, butinstructions depend on each other causing various hazards

ECE 4750 T03: Pipelining – Structural & Data Hazards 5 / 35

Page 6: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipelined MIPS Processor:Start With Multi-Cycle Unpipelined Processor

Clock period is reduced by dividingthe execution of an instruction into multiple cycles

tc < max(tifetch, trf , tALU , tdmem, trfwr )

ECE 4750 T03: Pipelining – Structural & Data Hazards 6 / 35

Page 7: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipelined MIPS Processor:Add Pipeline Registers to Control Unit

As instruction goes down the pipeline, fewer control bits are needed

ECE 4750 T03: Pipelining – Structural & Data Hazards 7 / 35

Page 8: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipelining Technology Assumptions

I Small amount of very fast memory (caches),backed by large, slower memory

I Fast ALU (at least for integers)

I Multiported register files (slower!)

Thus, the following timing assumption is reasonable

tIM ≈ tRF ≈ tALU ≈ tDM ≈ tRW

A 5-stage pipeline will be the focus of our detailed design,although real commercial designs usually have many more stages

ECE 4750 T03: Pipelining – Structural & Data Hazards 8 / 35

Page 9: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipeline Diagrams: Block Diagram

We need to be able to showmultiple simultaneous transactions

in both space and time

ECE 4750 T03: Pipelining – Structural & Data Hazards 9 / 35

Page 10: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipeline Diagrams: Transactions vs. Time

time t0 t1 t2 t3 t4 t5 t6 t7 . . . . instruction1 IF1 ID1 EX1 MA1 WB1 instruction2 IF2 ID2 EX2 MA2 WB2 instruction3 IF3 ID3 EX3 MA3 WB3 instruction4 IF4 ID4 EX4 MA4 WB4 instruction5 IF5 ID5 EX5 MA5 WB5

ECE 4750 T03: Pipelining – Structural & Data Hazards 10 / 35

Page 11: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Pipeline Diagrams: Space vs. Time

time t0 t1 t2 t3 t4 t5 t6 t7 . . . . IF I1 I2 I3 I4 I5 ID I1 I2 I3 I4 I5 EX I1 I2 I3 I4 I5 MA I1 I2 I3 I4 I5 WB I1 I2 I3 I4 I5

Res

ourc

es

ECE 4750 T03: Pipelining – Structural & Data Hazards 11 / 35

Page 12: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

• Pipelining Basics • Structural Hazards Data Hazards

Instructions Interact With Each Other in Pipeline

I Structural Hazard – An instruction in the pipelineneeds a resource being used by another instructionin the pipeline

I Data Hazard – An instruction depends on adata value produced by an earlier instruction

I Control Hazard – Whether or not an instructionshould be executed depends on a control decisionmade by an earlier instruction

ECE 4750 T03: Pipelining – Structural & Data Hazards 12 / 35

Page 13: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics • Structural Hazards • Data Hazards

Agenda

Pipelining Basics

Structural Hazards

Data Hazards

ECE 4750 T03: Pipelining – Structural & Data Hazards 13 / 35

Page 14: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics • Structural Hazards • Data Hazards

Overview Structural Hazards

I Structural hazards occur when two instructions need the samehardware resource at the same time

I Approaches to resolving structural hazards

. Schedule – Programmer explicitly avoids scheduling instructionsthat would create structural hazards

. Stall – Hardware includes control logic that stalls until earlierinstruction is no longer using contended resource

. Duplicate – Add more hardware to design so that each instructioncan access to independent resources at the same time

I Simple 5-stage MIPS pipeline has no structural hazardsspecifically because ISA was designed that way

ECE 4750 T03: Pipelining – Structural & Data Hazards 14 / 35

Page 15: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics • Structural Hazards • Data Hazards

Example Structural Hazard: Unified Memory

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 15 / 35

Page 16: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics • Structural Hazards • Data Hazards

Example Structural Hazard: 2-Cycle Data Memory

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 16 / 35

Page 17: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Agenda

Pipelining Basics

Structural Hazards

Data Hazards

ECE 4750 T03: Pipelining – Structural & Data Hazards 17 / 35

Page 18: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Overview of Data Hazards

I Data hazards occur when one instruction depends on a datavalue produced by an preceding instruction still in the pipeline

I Approaches to resolving data hazards

. Schedule – Programmer explicitly avoids scheduling instructionsthat would create data hazards

. Stall – Hardware includes control logic that freezes earlier stagesuntil preceding instruction has finished producing data value

. Bypass – Hardware datapath allows values to be sent to anearlier stage before preceding instruction has left the pipeline

. Speculate – Guess that there is not a problem, if incorrect killspeculative instruction and restart

ECE 4750 T03: Pipelining – Structural & Data Hazards 18 / 35

Page 19: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Example Data Hazard

... r1 ← r0 + 10 r4 ← r1 + 17 ...

r1 ← … r4 ← r1 …

IR IR IR 31

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 19 / 35

Page 20: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Feedback to Resolve Hazards

FB1

stage 1

stage 2

stage 3

stage 4

FB2 FB3 FB4

I Later stages provide dependence information to earlier stages whichcan stall (or kill) following instructions

I Controlling a pipeline in this manner works provided the instruction atstage i+1 can complete without any interaction from instructions instages 1 to i (otherwise deadlock)

ECE 4750 T03: Pipelining – Structural & Data Hazards 20 / 35

Page 21: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Resolving Data Hazards with Stalls

IR IR IR 31

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

nop

... r1 ← r0 + 10 r4 ← r1 + 17 ...

Stall Condition

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 21 / 35

Page 22: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Stalled Stages and Pipeline Bubbles

stalled stages

time t0 t1 t2 t3 t4 t5 t6 t7 . . . .

IF I1 I2 I3 I3 I3 I3 I4 I5 ID I1 I2 I2 I2 I2 I3 I4 I5 EX I1 nop nop nop I2 I3 I4 I5 MA I1 nop nop nop I2 I3 I4 I5 WB I1 nop nop nop I2 I3 I4 I5

time t0 t1 t2 t3 t4 t5 t6 t7 . . . .

(I1) r1 ← (r0) + 10 IF1 ID1 EX1 MA1 WB1 (I2) r4 ← (r1) + 17 IF2 ID2 ID2 ID2 ID2 EX2 MA2 WB2 (I3) IF3 IF3 IF3 IF3 ID3 EX3 MA3 WB3 (I4) IF4 ID4 EX4 MA4 WB4 (I5) IF5 ID5 EX5 MA5 WB5

Resource Usage

nop ⇒ pipeline bubble

ECE 4750 T03: Pipelining – Structural & Data Hazards 22 / 35

Page 23: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Stall Control logic

IR IR IR 31

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

nop

stall Cstall

ws

rs rt ?

Compare the source registers of the instruction in the decode stage withthe destination register of the uncommitted instructions

ECE 4750 T03: Pipelining – Structural & Data Hazards 23 / 35

Page 24: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Stall Control logic (ignoring jumps/branches)

Cdest

IR IR IR

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

31

nop

stall Cstall

ws

rs rt ?

we

re1 re2

Cre

ws we ws Cdest Cdest

we

Always stall if rs field matches some rd?Not every instruction writes or reads a register!

ECE 4750 T03: Pipelining – Structural & Data Hazards 24 / 35

Page 25: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Source and Destination Registers

srcs dest

ALU R[rd]← R[rs] func R[rt] rs, rt rd

ALUI R[rt]← R[rs] op immediate rs rt

LW R[rt]← M[ R[rs] + offset ] rs rt

SW M[ R[rs] + offset ]← R[rt] rs, rt

BEQZ if ( R[rs] == 0 ) PC←PC+4 + offset*4 rs

J PC← jtarg(PC,imm)

JAL R[31]← PC; PC← jtarg(PC,imm) 31

JR PC← R[rs] rs

JALR R[31]← PC, PC←R[rs] rs 31

ECE 4750 T03: Pipelining – Structural & Data Hazards 25 / 35

Page 26: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Deriving the Stall Signal

Cdest ws = Case opcode ALU ⇒ rd ALUi, LW ⇒ rt JAL, JALR ⇒ R31

we = Case opcode ALU, ALUi, LW ⇒(ws ≠ 0) JAL, JALR ⇒ on ... ⇒ off

Cre re1 = Case opcode ALU, ALUi, ⇒ on ⇒ off

re2 = Case opcode ⇒ on ⇒ off

LW, SW, BZ, JR, JALR J, JAL

ALU, SW ...

Cstall stall = ((rsD =wsE).weE + (rsD =wsM).weM + (rsD =wsW).weW) . re1D + ((rtD =wsE).weE + (rtD =wsM).weM + (rtD =wsW).weW) . re2D

This

is no

t

the

full s

tory

!

ECE 4750 T03: Pipelining – Structural & Data Hazards 26 / 35

Page 27: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Data Hazards Due to Loads and Stores

... M[(r1)+7] ← (r2) r4 ← M[(r3)+5] ...

IR IR IR 31

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

nop

Stall Condition

Is there any possible data hazard in this instruction sequence?

ECE 4750 T03: Pipelining – Structural & Data Hazards 27 / 35

Page 28: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Data Hazards Due to Loads and Stores

I Example instruction sequence. M[ R[r1] + 7 ]← R[r2]. R[r4]← M[ R[r3] + 5 ]

I What if R[r1]+7 == R[r3]+5 ?

. Writing and reading from the same address

. Hazard is avoided because our memory systemcompletes writes in a single cycle

. More realistic memory system will require morecareful handling of data hazards due to loads and stores

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 28 / 35

Page 29: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Adding a Bypass to the Datapath

ASrc

... (I1) r1 ← r0 + 10 (I2) r4 ← r1 + 17

r4 ← r1... r1 ←...

IR IR IR

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR

Imm Ext

ALU rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

31

nop

stall

D

E M W

When does this bypass help?

r1 ← M[r0 + 10] r4 ← r1 + 17

JAL 500 r4 ← r31 + 17

Pipeline diagram on board

ECE 4750 T03: Pipelining – Structural & Data Hazards 29 / 35

Page 30: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Deriving the Bypass Signal

Each stall or kill introduces a bubble in the pipeline ⇒ CPI > 1

time t0 t1 t2 t3 t4 t5 t6 t7 . . . . (I1) r1 ← r0 + 10 IF1 ID1 EX1 MA1 WB1 (I2) r4 ← r1 + 17 IF2 ID2 ID2 ID2 ID2 EX2 MA2 WB2 (I3) IF3 IF3 IF3 IF3 ID3 EX3 MA3 (I4) stalled stages IF4 ID4 EX4 (I5) IF5 ID5

time t0 t1 t2 t3 t4 t5 t6 t7 . . . . (I1) r1 ← r0 + 10 IF1 ID1 EX1 MA1 WB1 (I2) r4 ← r1 + 17 IF2 ID2 EX2 MA2 WB2 (I3) IF3 ID3 EX3 MA3 WB3 (I4) IF4 ID4 EX4 MA4 WB4 (I5) IF5 ID5 EX5 MA5 WB5

A new datapath, i.e., a bypass, can get the data from the output of the ALU to its input

ECE 4750 T03: Pipelining – Structural & Data Hazards 30 / 35

Page 31: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Deriving the Bypass Signal

ASrc = (rsD=wsE).weE.re1D

we = Case opcode ALU, ALUi, LW ⇒(ws ≠ 0) JAL, JALR ⇒ on ... ⇒ off

Is this correct?

stall = ( ((rsD =wsE).weE + (rsD =wsM).weM + (rsD =wsW).weW).re1D +((rtD =wsE).weE + (rtD =wsM).weM + (rtD =wsW).weW).re2D )

ws = Case opcode ALU ⇒ rd ALUi, LW ⇒ rt JAL, JALR ⇒ R31

No, because only ALU and ALUI instruction can benefit from this bypass

Split weE into two components: we-bypass and we-stall

ECE 4750 T03: Pipelining – Structural & Data Hazards 31 / 35

Page 32: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Bypass and Stall Signals

Split weE into two components: we-bypass and we-stall

we-bypassE = Case opcodeE ALU, ALUi ⇒ (ws ≠ 0) ... ⇒ off

ASrc = (rsD =wsE).we-bypassE . re1D

stall = ((rsD =wsE).we-stallE + (rsD=wsM).weM + (rsD=wsW).weW). re1D +((rtD = wsE).weE + (rtD = wsM).weM + (rtD = wsW).weW). re2D

we-stallE = Case opcodeE LW ⇒ (ws ≠ 0) JAL, JALR ⇒ on ... ⇒ off

ECE 4750 T03: Pipelining – Structural & Data Hazards 32 / 35

Page 33: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Fully Bypassed Datapath

ASrc IR IR IR

PC A

B

Y

R

MD1 MD2

addr inst

Inst Memory

0x4 Add

IR ALU

Imm Ext

rd1

GPRs

rs1 rs2

ws wd rd2

we

wdata

addr

wdata

rdata Data Memory

we

31

nop

stall

D

E M W

PC for JAL, ...

BSrc

Is there still a need for the stall signal ? stall = (rsD=wsE). (opcodeE=LWE).(wsE≠0 ).re1D

+ (rtD=wsE). (opcodeE=LWE).(wsE≠0 ).re2D

ECE 4750 T03: Pipelining – Structural & Data Hazards 33 / 35

Page 34: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Summary

I Structural Hazard – An instruction in the pipelineneeds a resource being used by another instructionin the pipeline (this topic)

I Data Hazard – An instruction depends on adata value produced by an earlier instruction (this topic)

I Control Hazard – Whether or not an instructionshould be executed depends on a control decisionmade by an earlier instruction (next topic)

ECE 4750 T03: Pipelining – Structural & Data Hazards 34 / 35

Page 35: Structural & Data Hazards Topic 3: Pipelining ECE 4750 ...cullenprogramming.homelinux.com/pipelining-hazards-struct-data.pdf · • Pipelining Basics •Structural HazardsData Hazards

Pipelining Basics Structural Hazards • Data Hazards •

Acknowledgements

Some of these slides contain material developed and copyrighted by:

Arvind (MIT), Krste Asanovic (MIT/UCB), Joel Emer (Intel/MIT)James Hoe (CMU), John Kubiatowicz (UCB), David Patterson (UCB)

MIT material derived from course 6.823UCB material derived from courses CS152 and CS252

ECE 4750 T03: Pipelining – Structural & Data Hazards 35 / 35