mips pipelined datapath - york university€¦ · mips pipelined datapath §4.6 pipelined datapath...
TRANSCRIPT
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 1
Chapter 4 — The Processor — 75
MIPS Pipelined Datapath§4.6 P
ipelined Datapath and C
ontrol
WB
MEM
Right-to-left flow leads to hazards
Chapter 4 — The Processor — 76
Pipeline registers
Need registers between stages To hold information produced in previous cycle
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 2
Chapter 4 — The Processor — 77
Pipeline Operation
Cycle-by-cycle flow of instructions through the pipelined datapath “Single-clock-cycle” pipeline diagram
Shows pipeline usage in a single cycle
Highlight resources used
c.f. “multi-clock-cycle” diagram Graph of operation over time
We’ll look at “single-clock-cycle” diagrams for load & store
Chapter 4 — The Processor — 78
IF for Load, Store, …
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 3
Chapter 4 — The Processor — 79
ID for Load, Store, …
Chapter 4 — The Processor — 80
EX for Load
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 4
Chapter 4 — The Processor — 81
MEM for Load
Chapter 4 — The Processor — 82
WB for Load
Wrongregisternumber
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 5
Chapter 4 — The Processor — 83
Corrected Datapath for Load
Chapter 4 — The Processor — 84
EX for Store
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 6
Chapter 4 — The Processor — 85
MEM for Store
Chapter 4 — The Processor — 86
WB for Store
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 7
Chapter 4 — The Processor — 87
Multi-Cycle Pipeline Diagram
Form showing resource usage
Chapter 4 — The Processor — 88
Multi-Cycle Pipeline Diagram
Traditional form
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 8
Chapter 4 — The Processor — 89
Single-Cycle Pipeline Diagram
State of pipeline in a given cycle
Chapter 4 — The Processor — 90
Pipelined Control (Simplified)
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 9
Chapter 4 — The Processor — 91
Pipelined Control
Control signals derived from instruction As in single-cycle implementation
Chapter 4 — The Processor — 92
Pipelined Control
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 10
Chapter 4 — The Processor — 93
Data Hazards in ALU Instructions
Consider this sequence:sub $2, $1,$3and $12,$2,$5or $13,$6,$2add $14,$2,$2sw $15,100($2)
We can resolve hazards with forwarding How do we detect when to forward?
§4.7 Data H
azards: Forw
arding vs. Stalling
Chapter 4 — The Processor — 94
Dependencies & Forwarding
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 11
Chapter 4 — The Processor — 95
Detecting the Need to Forward
Pass register numbers along pipeline e.g., ID/EX.RegisterRs = register number for Rs
sitting in ID/EX pipeline register
ALU operand register numbers in EX stage are given by ID/EX.RegisterRs, ID/EX.RegisterRt
Data hazards when1a. EX/MEM.RegisterRd = ID/EX.RegisterRs1b. EX/MEM.RegisterRd = ID/EX.RegisterRt2a. MEM/WB.RegisterRd = ID/EX.RegisterRs2b. MEM/WB.RegisterRd = ID/EX.RegisterRt
Fwd fromEX/MEMpipeline reg
Fwd fromMEM/WBpipeline reg
Chapter 4 — The Processor — 96
Detecting the Need to Forward
But only if forwarding instruction will write to a register! EX/MEM.RegWrite, MEM/WB.RegWrite
And only if Rd for that instruction is not $zero EX/MEM.RegisterRd ≠ 0,
MEM/WB.RegisterRd ≠ 0
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 12
Chapter 4 — The Processor — 97
Forwarding Paths
Chapter 4 — The Processor — 98
Forwarding Conditions EX hazard
if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)and (EX/MEM.RegisterRd = ID/EX.RegisterRs))
ForwardA = 10
if (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)and (EX/MEM.RegisterRd = ID/EX.RegisterRt))
ForwardB = 10
MEM hazard if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)
and (MEM/WB.RegisterRd = ID/EX.RegisterRs))ForwardA = 01
if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)and (MEM/WB.RegisterRd = ID/EX.RegisterRt))
ForwardB = 01
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 13
Chapter 4 — The Processor — 99
Double Data Hazard
Consider the sequence:add $1,$1,$2add $1,$1,$3add $1,$1,$4
Both hazards occur Want to use the most recent
Revise MEM hazard condition Only fwd if EX hazard condition isn’t true
Chapter 4 — The Processor — 100
Revised Forwarding Condition
MEM hazard
if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)
and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRs))
and (MEM/WB.RegisterRd = ID/EX.RegisterRs))
ForwardA = 01
if (MEM/WB.RegWrite and (MEM/WB.RegisterRd ≠ 0)
and not (EX/MEM.RegWrite and (EX/MEM.RegisterRd ≠ 0)
and (EX/MEM.RegisterRd = ID/EX.RegisterRt))
and (MEM/WB.RegisterRd = ID/EX.RegisterRt))
ForwardB = 01
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 14
Chapter 4 — The Processor — 101
Datapath with Forwarding
Chapter 4 — The Processor — 102
Load-Use Data Hazard
Need to stall for one cycle
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 15
Chapter 4 — The Processor — 103
Load-Use Hazard Detection
Check when using instruction is decoded in ID stage
ALU operand register numbers in ID stage are given by IF/ID.RegisterRs, IF/ID.RegisterRt
Load-use hazard when ID/EX.MemRead and
((ID/EX.RegisterRt = IF/ID.RegisterRs) or(ID/EX.RegisterRt = IF/ID.RegisterRt))
If detected, stall and insert bubble
Chapter 4 — The Processor — 104
How to Stall the Pipeline
Force control values in ID/EX registerto 0 EX, MEM and WB do nop (no-operation)
Prevent update of PC and IF/ID register Using instruction is decoded again
Following instruction is fetched again
1-cycle stall allows MEM to read data for lw Can subsequently forward to EX stage
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 16
Chapter 4 — The Processor — 105
Stall/Bubble in the Pipeline
Stall inserted here
Chapter 4 — The Processor — 106
Stall/Bubble in the Pipeline
Or, more accurately…
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 17
Chapter 4 — The Processor — 107
Datapath with Hazard Detection
Chapter 4 — The Processor — 108
Stalls and Performance
Stalls reduce performance But are required to get correct results
Compiler can arrange code to avoid hazards and stalls Requires knowledge of the pipeline structure
The BIG Picture
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 18
Chapter 4 — The Processor — 109
Branch Hazards
If branch outcome determined in MEM§4.8 C
ontrol Hazards
PC
Flush theseinstructions(Set controlvalues to 0)
Chapter 4 — The Processor — 110
Reducing Branch Delay
Move hardware to determine outcome to ID stage Target address adder
Register comparator
Example: branch taken36: sub $10, $4, $840: beq $1, $3, 744: and $12, $2, $548: or $13, $2, $652: add $14, $4, $256: slt $15, $6, $7
...72: lw $4, 50($7)
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 19
Chapter 4 — The Processor — 111
Example: Branch Taken
Chapter 4 — The Processor — 112
Example: Branch Taken
Morgan Kaufmann Publishers 7 December, 2015
Chapter 4 — The Processor 20
Chapter 4 — The Processor — 113
Data Hazards for Branches
If a comparison register is a destination of 2nd or 3rd preceding ALU instruction
…
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
add $4, $5, $6
add $1, $2, $3
beq $1, $4, target
Can resolve using forwarding
Chapter 4 — The Processor — 114
Data Hazards for Branches
If a comparison register is a destination of preceding ALU instruction or 2nd preceding load instruction Need 1 stall cycle
beq stalled
IF ID EX MEM WB
IF ID EX MEM WB
IF ID
ID EX MEM WB
add $4, $5, $6
lw $1, addr
beq $1, $4, target