45
Computer Organization Architectures for Embedded Computing Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson & Hennessy 4th Edition, © 2011, MK and from Prof. Mary Jane Irwin, PSU Wednesday 8 October 14

MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

  • Upload
    vokhue

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization Architectures for Embedded Computing

Computer Organization Architectures for Embedded Computing

MIPS – Pipelining

Many slides adapted from: Computer Organization and Design, Patterson & Hennessy 4th Edition, © 2011, MK and from Prof. Mary Jane Irwin, PSU

Wednesday 8 October 14

Page 2: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Summary

•  Previous Class – The MIPS architecture

•  Today: – Pipeline – Pipeline hazards

2

Page 3: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

MIPS Datapath

3

Page 4: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Making It Faster •  Start fetching and executing the next instruction before the

current one has completed –  Pipelining

–  modern processors are pipelined for performance CPU time = CPI * CC * IC

•  Start the next instruction before the current one has completed –  improves throughput

•  total amount of work done in a given time –  instruction latency

•  (execution time, delay time, response time - time from the start of an instruction to its completion) is not reduced

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

IFetch Dec Exec Mem WB lw

Cycle 7 Cycle 6 Cycle 8

sw IFetch Dec Exec Mem WB

R-type IFetch Dec Exec Mem WB

4

Page 5: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipelining Analogy

•  Pipelined laundry: overlapping execution – Parallelism improves performance

Speedup

•  Four loads: Speedup = 8 / 3.5 = 2.3

•  Non-stop:

Speedup = 2n / (0.5n + 1.5) ≈ 4

= number of stages

5

Page 6: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

MIPS Pipeline

Five stages, one step per stage 1.  IF: Instruction fetch from memory 2.  ID: Instruction decode & register read 3.  EX: Execute operation or calculate address 4.  MEM: Access memory operand 5.  WB: Write result back to register

6

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

IF ID EX MEM WB

ALU

IM Reg MEM Reg

Page 7: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline Performance

•  Assume time for stages is –  100ps for register read or write –  200ps for other stages

•  Compare pipelined datapath with single-cycle datapath

Instr Instr fetch

Register read ALU op Memory

access Register

write Total time

lw 200ps 100 ps 200ps 200ps 100 ps 800ps

sw 200ps 100 ps 200ps 200ps 700ps

R-format 200ps 100 ps 200ps 100 ps 600ps

beq 200ps 100 ps 200ps 500ps

7

Page 8: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline Performance Single-cycle (Tc= 800ps)

Pipelined (Tc= 200ps)

8

Page 9: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline for Performance

I n s t r. O r d e r

Time (clock cycles)

Inst 0

Inst 1

Inst 2

Inst 4

Inst 3

ALU

IM Reg DM Reg

ALU

IM Reg DM Reg

ALU

IM Reg DM Reg A

LU

IM Reg DM Reg

ALU

IM Reg DM Reg

Once the pipeline is full, one instruction

is completed every cycle, so

CPI = 1

Time to fill the pipeline

9

Page 10: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline Speedup

•  If all stages are balanced –  i.e., all take the same time – Time between instructionspipelined

= Time between instructionsnonpipelined Number of stages

•  If not balanced, speedup is less •  Speedup due to increased throughput

– Latency (time for each instruction) does not decrease

10

Page 11: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipelining and ISA Design

•  MIPS ISA designed for pipelining – All instructions are 32-bits

•  easier to fetch and decode in one cycle •  c.f. x86: 1- to 17-byte instructions

– Few and regular instruction formats •  can decode and read registers in one step

– Memory operations occur only in loads and stores •  can use the execute stage to calculate memory

addresses – Each instruction writes at most one result

•  and does it in the last few pipeline stages (MEM or WB) – Operands must be aligned in memory

•  a single data transfer takes only one data memory access

11

Page 12: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline Registers

•  Need registers between stages – To hold information produced in previous cycle

12

Page 13: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

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

13

Page 14: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

IF for Load, Store, …

14

Page 15: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

ID for Load, Store, …

15

Page 16: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

EX for Load

16

Page 17: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

MEM for Load

17

Page 18: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

WB for Load

Wrong register number

18

Page 19: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Corrected Datapath for Load

19

Page 20: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

EX for Store

20

Page 21: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

MEM for Store

21

Page 22: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

WB for Store

22

Page 23: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Multi-Cycle Pipeline Diagram

Form showing resource usage

23

Page 24: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Multi-Cycle Pipeline Diagram

Traditional form

24

Page 25: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Single-Cycle Pipeline Diagram

•  State of pipeline in a given cycle

25

Page 26: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipelined Control (Simplified)

26

Page 27: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipelined Control

•  Control signals derived from instruction – As in single-cycle implementation

27

Page 28: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipelined Control

28

Page 29: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

•  Pipeline Hazards - Situations that prevent starting the next instruction in the next cycle –  structural hazards: attempt to use the same resource by two

different instructions at the same time –  data hazards: deciding on control action depends on previous

instruction •  An instruction’s source operand(s) are produced by a prior instruction still in

the pipeline

–  control hazards: attempt to make a decision about program control flow before the condition has been evaluated by a previous instruction

•  branch and jump instructions, exceptions

•  Can usually resolve hazards by waiting (stall) –  pipeline control must detect the hazard –  and take action to resolve hazards

Can Pipelining Get Us Into Trouble?

29

Page 30: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Structural Hazards

•  Conflict for use of a resource •  In MIPS pipeline with a single memory

– Load/store requires data access –  Instruction fetch would have to stall for that

cycle •  Would cause a pipeline “bubble”

•  Hence, pipelined datapaths require separate instruction/data memories – Or separate instruction/data caches

30

Page 31: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Data Hazards

An instruction depends on completion of data access by a previous instruction

add $s0, $t0, $t1 sub $t2, $s0, $t3

31

Page 32: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Forwarding (aka Bypassing)

•  Use result when it is computed – Don’t wait for it to be stored in a register – Requires extra connections in the datapath

32

Page 33: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Load-Use Data Hazard

•  Can’t always avoid stalls by forwarding –  If value not computed when needed – Can’t forward backward in time!

33

Page 34: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Code Scheduling to Avoid Stalls

•  Reorder code to avoid use of load result in the next instruction

•  C code for A = B + E; C = B + F;

lw $t1, 0($t0)

lw $t2, 4($t0) add $t3, $t1, $t2

sw $t3, 12($t0)

lw $t4, 8($t0)

add $t5, $t1, $t4

sw $t5, 16($t0)

stall

stall

lw $t1, 0($t0)

lw $t2, 4($t0) lw $t4, 8($t0)

add $t3, $t1, $t2

sw $t3, 12($t0)

add $t5, $t1, $t4

sw $t5, 16($t0)

11 cycles 13 cycles

34

Page 35: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Control Hazards

•  Branch determines flow of control – Fetching next instruction depends on branch

outcome – Pipeline can’t always fetch correct instruction

•  Still working on ID stage of branch

•  In MIPS pipeline – Need to compare registers and compute

target early in the pipeline – Add hardware to do it in ID stage

35

Page 36: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Stall on Branch

•  Wait until branch outcome determined before fetching next instruction

36

Page 37: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Branch Prediction

•  Longer pipelines can’t readily determine branch outcome early – Stall penalty becomes unacceptable

•  Predict outcome of branch – Only stall if prediction is wrong

•  In MIPS pipeline – Can predict branches not taken – Fetch instruction after branch, with no delay

37

Page 38: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

MIPS with Predict Not Taken

Prediction correct

Prediction incorrect

38

Page 39: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

More-Realistic Branch Prediction

•  Static branch prediction –  Based on typical branch behavior –  Example: loop and if-statement branches

•  Predict backward branches taken •  Predict forward branches not taken

•  Dynamic branch prediction –  Hardware measures actual branch behavior

•  e.g., record recent history of each branch –  Assume future behavior will continue the trend

•  When wrong, stall while re-fetching, and update history

39

Page 40: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Pipeline in a nutshell

The BIG Picture – Pipelining improves performance by

increasing instruction throughput •  Executes multiple instructions in parallel •  Each instruction has the same latency

– Subject to hazards •  Structure, data, control

–  Instruction set design affects complexity of pipeline implementation

40

Page 41: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Other Pipeline Structures Are Possible

41

•  What about the (slow) multiply operation? –  make the clock twice as slow or …

–  let it take two cycles (since it doesn’t use the DM stage)

•  What if the data memory access is twice as slow as the instruction memory? –  make the clock twice as slow or …

–  let data memory access take two cycles (and keep the same clock rate)

ALU

IM Reg DM Reg

MUL

ALU

IM Reg DM1 Reg DM2

Page 42: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

•  ARM7

•  XScale

Other Sample Pipeline Alternatives

42

IM Reg EX

PC update IM access

decode reg access

ALU op DM access shift/rotate commit result (write back)

ALU

IM1 IM2 DM1 Reg

DM2 Reg SHFT

PC update BTB access

start IM access

IM access

decode reg 1 access

shift/rotate reg 2 access

ALU op

start DM access exception

DM write reg write

Page 43: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Conclusion

43

•  All modern day processors use pipelining •  Pipelining doesn’t help latency of single

instruction, it helps throughput of entire workload •  Potential speedup: a CPI of 1 and faster CC •  Pipeline rate limited by slowest pipeline stage

–  Unbalanced pipe stages makes for inefficiencies –  The time to “fill” pipeline and time to “drain” it can

impact speedup for deep pipelines and short code runs

•  Must detect and resolve hazards –  Stalling negatively affects CPI (makes CPI higher than

the ideal of 1)

Page 44: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization / Architectures for Embedded Computing

Next Classes

•  Reducing pipeline data and branch hazards – Forwarding – Delayed Branch & Branch Prediction

•  Exceptions and Interrupts

44

Page 45: MIPS – Pipelining - ULisboa · Computer Organization Architectures for Embedded Computing MIPS – Pipelining Many slides adapted from: Computer Organization and Design, Patterson

Computer Organization Architectures for Embedded Computing

Computer Organization Architectures for Embedded Computing

MIPS – Pipelining

Many slides adapted from: Computer Organization and Design, Patterson & Hennessy 4th Edition, © 2011, MK and from Prof. Mary Jane Irwin, PSU

Wednesday 8 October 14