Professional Documents
Culture Documents
CPU
ALU
Registers
Control
MMU
Memory
Cache
Bus
I/O
I/O
I/O
13
Performance of Processor
Pipelines
1000s of kms
Built with periodic pump/compressor stations to
keep the fluid flowing
1000 kms
refinery
city
15
NPC
A
IR
PC
Mem
Reg
File
sign
extend
Inst Fetch
IF
IF
Cond
ID
ALU
ALU
out
Mem
LMD
Imm
Inst Decode
ID
Execution
EX
Memory
MEM
WB
EX MEM WB
16
Processor Pipelining
i1
i2
i3
i4
IF
ID
IF
clock
cycles
time
EX MEM WB
ID EX MEM WB
IF
ID EX MEM WB
IF
ID EX MEM WB
LW R1, 0(R2)
ADD R3, R1, R2
IF
ID
IF
EX MEM WB
ID EX MEM WB
LW R1, 0(R2)
JR R6
IF
ID
IF
EX MEM WB
ID EX MEM WB
Zero?
+
PC
Mem
Reg
File
ALU
Mem
Sign
extend
IF
ID
EX
MEM
WB
7
Some Terminology
IF
EX MEM WB
ID
or a pipeline of depth 5
timenon pipelined
time pipelined
8
Pipeline Speedup
IF
ID
EX MEM WB
5n
5 as n
Speedup =
4n
9
Pipeline Speedup
10
11
1.
2.
3.
1.
2.
3.
Structural Hazard
i
IF
i+1
ID
EX MEM WB
IF
ID
EX MEM WB
i+2
ID
i+3
IF
IF
MEM and IF use
memory at same time
LW R3, 8(R2)
EX MEM WB
14
refinery
city
Diesel
Kerosene
15
refinery
city
Diesel
Kerosene
Air
16
Structural Hazard
i
IF
i+1
ID
EX MEM WB
IF
ID
LW R3, 8(R2)
EX MEM WB
i+2
ID
EX MEM WB
i+3
B
IF
IF
ID
EX MEM WB
IF
MEM and IF use
memory at same time
i+3
17
1.
2.
3.
Data Hazard
R3 read by instruction i+1
R3 updated by instruction i
i
i+1
IF
ID
EX MEM WB
IF
B
ID
add R3 , R1, R2
B MEM
B
B
EX
WB
ID
B
time
sub R4 , R3, R8
EX
B MEM
B WB
B
ID
EX MEM WB
time
0
1
2
3
4
5
6
IF
ID
EX MEM WB
IF
stall stall
ID EX MEM
stall stall
IF
ID EX
ID
EX
MEM
WB
ID
EX
MEM
or R7, R3, R6
IF
ID
EX
5
ID
EX
MEM
WB
ID
EX
MEM
or R7, R3, R6
IF
ID
EX
6
NPC
A
ALU
Mem
B
Imm
EXE
MEM
ID
EX
MEM
WB
IF
ID
EX
MEM
IF
ID
EX
1.
2.
3.
10
1.
2.
3.
4.
11
R1, R2, R3
R2, R4, R5
/* R1 = R2 + R3 */
/* R2 = R4 R5 */
R3, 0(R1)
Scheduling:
LW R3, 0(R1)
1 stall
LW R13, 0(R11)
1 stall
LW R13, 0(R11)
ADD R12, R13, R3
2 stalls
0 stalls
5
1.
2.
3.
4.
True dependence
ADD
SUB
R2,
R1,
R3
R5
Anti-dependence
ADD
SUB
R1,
R4,
R1,
R2,
R2,
R4,
R3
R5
Output dependence
ADD
SUB
R1,
R1,
R2,
R4,
R3
R5
ID
EX
MEM
WB
ID
EX
Functional Units
WB
Integer ALU
Integer Multiplier
Memory Unit
8
1.
2.
3.
Zero?
+
PC
Mem
Reg
File
ALU
Mem
Sign
extend
IF
ID
EX
MEM
WB
11
Control Hazards
Condition and target
are resolved by now
IF
ID
EX
MEM
WB
B
ID
B
EX
B
MEM
B
IF
B
ID
B
EX
IF
ID
12
Control Hazards
13
1.
2.
Static
The behaviour of a branch instruction is predicted
once before the program starts executing
15
16
1.
17
Fetch inst i +1
Fetch inst i +2
4
3
Suppose that the
condition evaluates
to FALSE
ID
EX
MEM
WB
IF
ID
EX
MEM
IF
ID
EX
IF
ID
etc
i.e., NO BRANCH STALL CYCLES
18
4
3
Suppose that the
condition evaluates
to TRUE
ID
EX
MEM
WB
IF
ID
EX
MEM
IF
ID
EX
IF
ID
Fetch inst i +1
SQUASH inst i+1
etc
i.e., ONE BRANCH STALL CYCLE
19
1.
20
21
22
by the compiler
fall through: