Week 10 Part 1 Pipelined Processor
Week 10 Part 1 Pipelined Processor
Week 10
Pipelined Processor
Week 10
• Pipelined Processor
Flags
ALUFlags
RegSrc
0 1 CLK CLK
CLK
19:16
Instr
ALU
0 3:0 A RD
Instruction 0 RA2
A2 RD2 0 SrcB Data
Memory 1
15:12 1 Memory
A3 Register WriteData
WD
4 WD3 File
PCPlus8 1
R15
+
PCPlus4 0
+
4
23:0
Extend ExtImm
Result
Instr
Pipelined
Fetch Dec Execute Memory Wr
1 Read
Instruction Reg
ALU Read / Write Reg
Fetch Dec Execute Memory Wr
2 Read
Instruction Reg
ALU Read / Write Reg
Fetch Dec Execute Memory Wr
3 Read
Instruction Reg
ALU Read / Write Reg
(b)
Time (cycles)
R0
LDR DM R2
LDR R2, [R0, #40] IM RF 40 + RF
R9
ADD DM R3
ADD R3, R9, R10 IM RF R10 + RF
R1
SUB DM R4
SUB R4, R1, R5 IM RF R5 - RF
R12
AND DM R5
AND R5, R12, R13 IM RF R13 & RF
R1
STR DM R6
STR R6, [R1, #20] IM RF 20 + RF
R11
ORR DM R7
ORR R7, R11, #42 IM RF 42 | RF
Instr
0 RA1 WE3 SrcA WE
1 PC' PC A1 RD1
A RD 15 1 ALUResult ReadData
ALU
0 3:0 A RD
Instruction 0 RA2
A2 RD2 0 SrcB Data
Memory 1
15:12 1 Memory
A3 Register WriteData
WD
4 WD3 File
PCPlus8 1
R15
+
PCPlus4 0
+
4
23:0
Extend ExtImm
Result
Pipelined
CLK CLK CLK CLK
CLK CLK
CLK
InstrF
InstrD
19:16
0 RA1D WE3 SrcAE WE
1 PC' PCF A1 RD1
A RD 15 1 ALUResultE ReadDataW
ALU
0 3:0 A RD
Instruction 0 RA2D
A2 RD2 0 SrcBE Data
Memory 1
15:12 WA3D 1 Memory
A3 Register WriteDataE
WD
4 WD3 File
PCPlus8 1
R15 ALUOutM ALUOutW
+
PCPlus4F 0
+
4
23:0
Extend ExtImmE
ResultW
Time (cycles)
R4
ADD DM R1
ADD R1, R4, R5 IM RF R5 + RF
R1
AND DM R8
AND R8, R1, R3 IM RF R3 & RF
R6
ORR DM R9
ORR R9, R6, R1 IM RF R1 | RF
R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
R4
ADD DM R1
ADD R1, R4, R5 IM RF R5 + RF
NOP DM
NOP IM RF RF
NOP DM
NOP IM RF RF
R1
AND DM R8
AND R8, R1, R3 IM RF R3 & RF
R6
ORR DM R9
ORR R9, R6, R1 IM RF R1 | RF
R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
R4
ADD DM R1
ADD R1, R4, R5 IM RF R5 + RF
R1
AND DM R8
AND R8, R1, R3 IM RF R3 & RF
R6
ORR DM R9
ORR R9, R6, R1 IM RF R1 | RF
R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
R4
ADD DM R1
ADD R1, R4, R5 IM RF R5 + RF
R1
AND DM R8
AND R8, R1, R3 IM RF R3 & RF
R6
ORR DM R9
ORR R9, R6, R1 IM RF R1 | RF
R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
R4
LDR DM R1
LDR R1, [R4, #40] IM RF 40 + RF
Trouble!
R1
AND DM R8
AND R8, R1, R3 IM RF R3 & RF
R6
ORR DM R9
ORR R9, R6, R1 IM RF R1 | RF
R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
R4
LDR DM R1
LDR R1, [R4, #40] IM RF 40 + RF
R1 R1
AND DM R8
AND R8, R1, R3 IM RF R3 RF R3 & RF
R6
ORR ORR DM R9
ORR R9, R6, R1 IM IM RF R1 | RF
Stall R1
SUB DM R10
SUB R10, R1, R7 IM RF R7 - RF
Time (cycles)
B DM
20 B 3C IM RF RF
R1
AND DM
24 AND R8, R1, R3 IM RF R3 & RF
R6 Flush
ORR DM
28 ORR R9, R6, R1 IM RF R1 | RF these
instructions
R1
SUB DM
2C SUB R10, R1, R7 IM RF R7 - RF
R1
SUB DM
30 SUB R11, R1, R8 IM RF R8 - RF
34 ...
...
R3
ADD DM R12
64 ADD R12, R3, R4 IM RF R4 RF
+
Branch misprediction penalty
• number of instruction flushed when branch is taken (4)
• May be reduced by determining BTA earlier