CS M151B / EE M116C: Computer Systems Architecture
CS M151B / EE M116C: Computer Systems Architecture
Pipelining
Reigte
Wr
Data
ry
o
m
Me
Reagd
Re
U
L
A
h
c
t
e
F
PC Src
Add
4
Shift
left 2
RegWrite
Instruction [25 21]
PC
Read
address
Instruction
[31 0]
Instruction
memory
Read
register 1
Read
register 2
Read
data 1
MemWrite
ALUSrc
Read
Wr ite
data 2
register
Wr ite
Registers
data
RegDst
Instruction [15 0]
16
Sign
extend
AL U
Add result
1
M
u
x
0
1
M
u
x
0
Zer o
ALU ALU
result
MemtoReg
Address
Write
data
32
AL U
control
Read
data
Data
memory
1
M
u
x
0
MemRead
Instruction [5 0]
ALUOp
IF
ID
EX
Mem
WB
Single-Cycle CPU
Load
Ifetch
Reg/Dec
Exec
Mem
Wr
Cycle 3 Cycle 4
Load
Ifetch
Reg/Dec
Exec
Mem
Add
Ifetch
Reg/Dec
Exec
Wr
Cycle 5
Wr
Pipelined:
Single-cycle:
Clock rate = 125 MHz
CPI = 1
Single-cycle analogy:
Doctor appointments
scheduled for 60 min
per patient
Multicycle:
Clock rate = 500 MHz
CPI 4
Multicycle analogy:
Doctor appointments
scheduled in 15-min
increments
Cashier
2
Registrar
3
ID photo
Pickup
Start
here
Exit
Fig. 15.1
A Pipelined Datapath
Pipelined Datapath
IF
lw
IM
CC2
ID
Reg
lw
IM
CC4
CC5
EX
MEM
WB
DM
Reg
ID
Reg
lw
IM
EX
MEM
WB
DM
Reg
ID
Reg
lw
IM
EX
MEM
WB
DM
Reg
ID
Reg
lw
IM
steady
state
EX
MEM
WB
DM
Reg
ID
Reg
CC9
EX
MEM
WB
ALU
IF
CC8
ALU
IF
CC7
ALU
IF
CC6
ALU
IF
CC3
ALU
CC1
DM
Reg
Single-Cycle CPU
Load
IF
Dec
EX
Mem
WB
IF
Dec
EX
Mem
WB
Pipelined CPU
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8
Load
IF
Dec
EX
Mem
WB
Load
IF
Dec
EX
Mem
WB
Load
IF
Dec
EX
Mem
WB
Load
IF
Dec
EX
Mem
WB
Pipelining Advantages
But:
more hardware needed
perhaps complex control
CC3
IM
Reg
IM
CC4
CC5
DM
Reg
Reg
ALU
add
CC2
ALU
lw
CC1
Reg
CC6
Pipeline Principles
ID
EX
MEM
IM
Reg
ALU
DM
WB
Reg
Pipelined Datapath
Instruction Fetch
Instruction Decode/
Register Fetch
Execute/
Address Calculation
Memory Access
Write Back
registers!
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
Instruction Decode/
Register Fetch
Execute/
Address Calculation
Memory Access
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
lw $12, 1000($4)
Execute/
Address Calculation
Memory Access
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
lw $12, 1000($4)
Memory Access
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
Instruction Fetch
lw $12, 1000($4)
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
Instruction Fetch
Instruction Decode/
Register Fetch
lw $12, 1000($4)
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
Instruction Fetch
Instruction Decode/
Register Fetch
Execute/
Address Calculation
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
Pipelined Control
MEM/WB
EX/MEM
ID/EX
IF/ID
instruction control
Memory Stage
Control Lines
Instruction
RegDst
ALU
Op1
ALU
Op0
ALUSrc
Branch
Mem
Read
Mem
Write
RegWrite
MemtoReg
R-Format
lw
sw
beq
Quick survey
Break
Review of FP
Continue on pipelining
Midterm II: likely Feb. 28th
May be Feb. 24th
Single precision
representation of
(-1)S 2E-127 (1.M)
sign
bit
23
exponent:
excess 127
binary integer
(actual exponent
is e = E - 127)
mantissa:
sign + magnitude, normalized
binary significand with hidden
integer bit: 1.M
0 = 0 00000000 00 . . . 0
-1.5 = 1 01111111 10 . . . 0
325 = 101000101 = 1.01000101 x 28
= 0 10000111 01000101000000000000000
.02 = .0011001101100... = 1.1001101100... x 2-3
= 0 01111100 1001101100...
sign
11
20
32
exponent:
excess 1023
binary integer
actual exponent is e = E - 1023
N = (-1)S 2 E-1023(1.M)
mantissa:
sign + magnitude, normalized
binary significand with hidden
integer bit: 1.M
Range of FP Numbers
Exponent
Fraction
Object
Denormalized Number
1 to 254
any
Normalized Number
(regular floating point number)
255
255
NaN
PC Src
Add
4
Shift
left 2
RegWrite
Instruction [25 21]
PC
Read
address
Instruction
[31 0]
Instruction
memory
Read
register 1
Read
register 2
Read
data 1
MemWrite
ALUSrc
Read
Wr ite
data 2
register
Wr ite
Registers
data
RegDst
Instruction [15 0]
16
Sign
extend
AL U
Add result
1
M
u
x
0
1
M
u
x
0
Zer o
ALU ALU
result
MemtoReg
Address
Write
data
32
AL U
control
Read
data
Data
memory
1
M
u
x
0
MemRead
Instruction [5 0]
ALUOp
IF
ID
EX
Mem
WB
lw $8, 50($3)
this should load memory location 92 (42+50) into $8
lw $8, 50($3)
Execute/
Address Calculation
Memory Access
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
20
22
Zero
0
M
u
x
1
ALU
ALU
resul t
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
lw $8, 50($3)
Memory Access
Write Back
0
M
u
x
1
IF/ ID
ID/EX
EX/ MEM
MEM/WB
Add
Add
Add
resul t
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
20
16
220
M
u
x
1
Write
dat a
16
Sign
ext end
32
50
Zero
ALU
ALU
resul t
42
Address
Data
memory
Write
dat a
Read
dat a
1
M
u
x
0
lw $8, 50($3)
0
M
u
x
1
IF/ ID
Write Back
ID/EX
EX/ MEM
MEM/WB
Add
Add
resul t
Add
Shif t
left 32
PC
Address
Instruction
memory
Read
register 1
Read
dat a 1
Read
register 2
Registers Read
Write
dat a 2
register
Write
dat a
16
Sign
ext end
32
16
14
6
Zero
0
M
u
x
1
ALU
50
ALU
resul t
56
Address
Read
dat a
Data
memory
Write
dat a
42
1
M
u
x
0
Data Hazards
DM
IM
Reg
DM
R2 Needed
IM
Reg
DM
IM
Reg
DM
IM
Reg
ALU
sw $15, 100($2)
Reg
ALU
IM
ALU
or $13, $6, $2
CC3
ALU
CC2
ALU
CC1
3 ways.
1-wait
2- branch output of ALU to where we need.
3- waite for calculation finish.
CC4
CC5
CC6
CC7
CC8
Reg
Reg
Reg
Reg
DM