Top Banner
Pipelined CPU Jason Mars Thursday, February 14, 13
73

CH07 pipelined cpu

Apr 13, 2017

Download

Engineering

Sadiq-ur-Rehman
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: CH07 pipelined cpu

Pipelined CPU

Jason Mars

Thursday, February 14, 13

Page 2: CH07 pipelined cpu

Evolution of Our CPU: Single Cycle

Thursday, February 14, 13

Page 3: CH07 pipelined cpu

Evolution of Our CPU: Multi Cycle

Thursday, February 14, 13

Page 4: CH07 pipelined cpu

Instruction Latencies and Throughput

Thursday, February 14, 13

Page 5: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 6: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 7: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

• Pipelined CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8

Thursday, February 14, 13

Page 8: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

• Pipelined CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 9: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

• Pipelined CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 10: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

• Pipelined CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 11: CH07 pipelined cpu

Instruction Latencies and Throughput

• Single-Cycle CPU

Ifetch Reg/Dec Exec Mem Wr Load

• Multiple Cycle CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

Ifetch Reg/Dec Exec Mem Wr Load

• Pipelined CPU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Ifetch Reg/Dec Exec Mem Wr Load

Thursday, February 14, 13

Page 12: CH07 pipelined cpu

Pipelining Advantages

Thursday, February 14, 13

Page 13: CH07 pipelined cpu

Pipelining Advantages

• Higher maximum throughput

Thursday, February 14, 13

Page 14: CH07 pipelined cpu

Pipelining Advantages

• Higher maximum throughput

• Higher utilization of CPU resources

Thursday, February 14, 13

Page 15: CH07 pipelined cpu

Pipelining Advantages

• Higher maximum throughput

• Higher utilization of CPU resources

Thursday, February 14, 13

Page 16: CH07 pipelined cpu

Pipelining Advantages

• Higher maximum throughput

• Higher utilization of CPU resources

• But, more complicated datapath, more complex control

Thursday, February 14, 13

Page 17: CH07 pipelined cpu

A Pipelined Datapath

• IF: Instruction fetch

• ID: Instruction decode and register fetch

• EX: Execution and effective address calculation

• MEM: Memory access

• WB: Write back

Thursday, February 14, 13

Page 18: CH07 pipelined cpu

A Rough View of the Datapath

Thursday, February 14, 13

Page 19: CH07 pipelined cpu

Execution in Pipelined Datapath

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9

lw

lw

lw

lw

lw

IF ID EX MEM WB

IF ID EX MEM WB

Thursday, February 14, 13

Page 20: CH07 pipelined cpu

Execution in Pipelined Datapath

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9

lw

lw

lw

lw

lw

IF ID EX MEM WB

IF ID EX MEM WB

steady state

Thursday, February 14, 13

Page 21: CH07 pipelined cpu

Mixed Instructions in the Pipeline

CC1 CC2 CC3 CC4 CC5 CC6

lw

add

Thursday, February 14, 13

Page 22: CH07 pipelined cpu

Mixed Instructions in the Pipeline

CC1 CC2 CC3 CC4 CC5 CC6

lw

add

IM Reg

ALU

DM Reg

Thursday, February 14, 13

Page 23: CH07 pipelined cpu

Mixed Instructions in the Pipeline

CC1 CC2 CC3 CC4 CC5 CC6

lw

add

IM Reg

ALU

DM Reg

IM Reg

ALU

R eg

Thursday, February 14, 13

Page 24: CH07 pipelined cpu

Mixed Instructions in the Pipeline

CC1 CC2 CC3 CC4 CC5 CC6

lw

add

IM Reg

ALU

DM Reg

IM Reg

ALU

R eg

Thursday, February 14, 13

Page 25: CH07 pipelined cpu

Pipeline Principles

• All instructions that share a pipeline should have the same stages in the same order.• therefore, add does nothing during Mem stage• sw does nothing during WB stage

• All intermediate values must be latched each cycle.• There is no functional block reuse

IM Reg A

LU

DM Reg

IF ID EX MEM WB

Thursday, February 14, 13

Page 26: CH07 pipelined cpu

Pipelined Datapath

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

Thursday, February 14, 13

Page 27: CH07 pipelined cpu

Pipelined Datapath

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

Registers

Thursday, February 14, 13

Page 28: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

Thursday, February 14, 13

Page 29: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2

Thursday, February 14, 13

Page 30: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2

Thursday, February 14, 13

Page 31: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2

Thursday, February 14, 13

Page 32: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4)

Thursday, February 14, 13

Page 33: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4)

Thursday, February 14, 13

Page 34: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4)

Thursday, February 14, 13

Page 35: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 36: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 37: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 38: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 39: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 40: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

add $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 41: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 42: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 43: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

sub $15, $4, $1

Thursday, February 14, 13

Page 44: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

sub $15, $4, $1

Thursday, February 14, 13

Page 45: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

Thursday, February 14, 13

Page 46: CH07 pipelined cpu

Pipeline In Execution

Instruction Fetch Decode / Reg. Fetch Execute Memory Write-back

Thursday, February 14, 13

Page 47: CH07 pipelined cpu

Pipeline with Controls

Thursday, February 14, 13

Page 48: CH07 pipelined cpu

Pipeline with Controls

But...Thursday, February 14, 13

Page 49: CH07 pipelined cpu

Pipeline Control

• FSM not really appropriate.

• Combinational logic!

• signals generated once, but follow instruction through the pipeline

Thursday, February 14, 13

Page 50: CH07 pipelined cpu

Pipeline Control

Thursday, February 14, 13

Page 51: CH07 pipelined cpu

Pipeline with Control Logic

Thursday, February 14, 13

Page 52: CH07 pipelined cpu

Pipeline with Control Logic

Thursday, February 14, 13

Page 53: CH07 pipelined cpu

Pipeline with Control Logic

Thursday, February 14, 13

Page 54: CH07 pipelined cpu

Pipeline with Control Logic

Thursday, February 14, 13

Page 55: CH07 pipelined cpu

Pipeline with Control Logic

Thursday, February 14, 13

Page 56: CH07 pipelined cpu

Pipeline Control Signals

Execution Stage Control Lines Memory Stage Control Lines Write Back Stage ControlLines

Instruction RegDst ALUOp1 ALUOp0 ALUSrc Branch MemRead MemWrite RegWrite MemtoRegR-Format 1 1 0 0 0 0 0 1 0lw 0 0 0 1 0 1 0 1 1sw x 0 0 1 0 0 1 0 xbeq x 0 1 0 1 0 0 0 x

Thursday, February 14, 13

Page 57: CH07 pipelined cpu

Guess the Signal

Thursday, February 14, 13

Page 58: CH07 pipelined cpu

Guess the Signaladd $10, $1, $2

Thursday, February 14, 13

Page 59: CH07 pipelined cpu

Guess the Signaladd $10, $1, $2 lw $12, 1000($4)

Thursday, February 14, 13

Page 60: CH07 pipelined cpu

Guess the Signaladd $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 61: CH07 pipelined cpu

Guess the Signaladd $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 62: CH07 pipelined cpu

Guess the Signaladd $10, $1, $2 lw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 63: CH07 pipelined cpu

Guess the Signallw $12, 1000($4) sub $15, $4, $1

Thursday, February 14, 13

Page 64: CH07 pipelined cpu

Guess the Signalsub $15, $4, $1

Thursday, February 14, 13

Page 65: CH07 pipelined cpu

Guess the Signal

Thursday, February 14, 13

Page 66: CH07 pipelined cpu

Data Hazards

• When a result is needed in the pipeline before it is available, a “data hazard” occurs.

IM Reg

ALU

DM Reg

IM Reg

ALU

DM

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8

sub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

R2 Available

R2 Needed

Thursday, February 14, 13

Page 67: CH07 pipelined cpu

Data Hazards

• When a result is needed in the pipeline before it is available, a “data hazard” occurs.

IM Reg

ALU

DM Reg

IM Reg

ALU

DM

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8

sub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

R2 Available

R2 Needed

Thursday, February 14, 13

Page 68: CH07 pipelined cpu

Data Hazards

• When a result is needed in the pipeline before it is available, a “data hazard” occurs.

IM Reg

ALU

DM Reg

IM Reg

ALU

DM

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

IM Reg

ALU

DM Reg

CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8

sub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

R2 Available

R2 Needed

Thursday, February 14, 13

Page 69: CH07 pipelined cpu

Key Points

Thursday, February 14, 13

Page 70: CH07 pipelined cpu

Key Points

• We achieve high throughput without reducing instruction latency.

Thursday, February 14, 13

Page 71: CH07 pipelined cpu

Key Points

• We achieve high throughput without reducing instruction latency.

• Pipelining exploits a special kind of parallelism (parallelism between functionality required in different cycles).

Thursday, February 14, 13

Page 72: CH07 pipelined cpu

Key Points

• We achieve high throughput without reducing instruction latency.

• Pipelining exploits a special kind of parallelism (parallelism between functionality required in different cycles).

• Pipelining uses combinational logic to generate (and registers to propagate) control signals.

Thursday, February 14, 13

Page 73: CH07 pipelined cpu

Key Points

• We achieve high throughput without reducing instruction latency.

• Pipelining exploits a special kind of parallelism (parallelism between functionality required in different cycles).

• Pipelining uses combinational logic to generate (and registers to propagate) control signals.

• Pipelining creates potential hazards.

Thursday, February 14, 13