Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset...
Transcript of Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset...
![Page 1: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/1.jpg)
1
RISC Pipeline
Han Wang CS3410, Spring 2010 Computer Science Cornell University
See: P&H Chapter 4.6
![Page 2: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/2.jpg)
2
Homework 2
0 1 2 3 4 5 6 7 8 9
![Page 3: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/3.jpg)
3
Announcements -‐ Homework 2 due tomorrow midnight -‐ Programming Assignment 1 release tomorrow -‐ Pipelined MIPS processor (topic of today) -‐ Subset of MIPS ISA
-‐ Feedback -‐ We want to hear from you! -‐ Content?
![Page 4: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/4.jpg)
4
Absolute Jump
tgt
+4
||
Data Mem
addr
ext
5 5 5
Reg. File
PC
Prog. Mem ALU inst
control
imm
offset
+
=?
cmp
Could have used ALU for link add
+4
op mnemonic description 0x3 JAL target r31 = PC+8 (+8 due to branch delay slot)
PC = (PC+4)31..28 || (target << 2)
![Page 5: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/5.jpg)
5
A Processor
alu
PC
imm
memory
memory
din dout
addr
target
offset cmp control
=?
new pc
register file
inst
extend
+4 +4
Review: Single cycle processor
![Page 6: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/6.jpg)
6
Single Cycle Processor Advantages • Single Cycle per instruc`on make logic and clock simple
Disadvantages • Since instruc`ons take different `me to finish, memory and func`onal unit are not efficiently u`lized.
• Cycle `me is the longest delay. – Load instruc`on
• Best possible CPI is 1
![Page 7: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/7.jpg)
7
Pipeline Hazards
0h 1h 2h 3h…
![Page 8: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/8.jpg)
8
Write-‐
Back Memory
Instruc`on Fetch Execute
Instruc`on Decode
register file
control
A Processor
alu
imm
memory
din dout
addr
inst
PC
memory
compute jump/branch
targets
new pc
+4
extend
![Page 9: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/9.jpg)
9
Basic Pipeline
Five stage “RISC” load-‐store architecture 1. Instruc`on fetch (IF)
– get instruc`on from memory, increment PC 2. Instruc`on Decode (ID)
– translate opcode into control signals and read registers 3. Execute (EX)
– perform ALU opera`on, compute jump/branch targets 4. Memory (MEM)
– access memory if needed 5. Writeback (WB)
– update register file
Slides thanks to Sally McKee & Kavita Bala
![Page 10: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/10.jpg)
10
Pipelined Implementa`on
Break instruc`ons across mul`ple clock cycles (five, in this case)
Design a separate stage for the execu`on performed during each clock cycle
Add pipeline registers to isolate signals between different stages
![Page 11: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/11.jpg)
11
Write-‐
Back Memory
Instruc`on Fetch Execute
Instruc`on Decode
extend
register file
control
Pipelined Processor
alu
memory
din dout
addr PC
memory
new pc
inst
IF/ID ID/EX EX/MEM MEM/WB
imm
B A
ctrl
ctrl
ctrl
B D D
M
compute jump/branch
targets
+4
![Page 12: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/12.jpg)
12
IF
Stage 1: Instruc`on Fetch Fetch a new instruc`on every cycle • Current PC is index to instruc`on memory • Increment the PC at end of cycle (assume no branches for now)
Write values of interest to pipeline register (IF/ID) • Instruc`on bits (for later decoding) • PC+4 (for later compu`ng branch targets)
![Page 13: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/13.jpg)
13
IF
PC
instruc`on memory
new pc
inst
addr mc
00 = read word
1
IF/ID
WE 1
Rest of p
ipeline
+4
PC+4
pcsel
pcreg pcrel
pcabs
![Page 14: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/14.jpg)
14
ID
Stage 2: Instruc`on Decode On every cycle: • Read IF/ID pipeline register to get instruc`on bits • Decode instruc`on, generate control signals • Read from register file
Write values of interest to pipeline register (ID/EX) • Control informa`on, Rd index, immediates, offsets, … • Contents of Ra, Rb • PC+4 (for compu`ng branch targets later)
![Page 15: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/15.jpg)
15
ID
ctrl
ID/EX
Rest of p
ipeline
PC+4
inst
IF/ID
PC+4
Stage 1: Instruc`on
Fetch
register file
WE Rd
Ra Rb
D B
A
B A
extend imm decode
result
dest
![Page 16: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/16.jpg)
16
EX
Stage 3: Execute On every cycle: • Read ID/EX pipeline register to get values and control bits • Perform ALU opera`on • Compute targets (PC+4+offset, etc.) in case this is a branch • Decide if jump/branch should be taken
Write values of interest to pipeline register (EX/MEM) • Control informa`on, Rd index, … • Result of ALU opera`on • Value in case this is a memory store instruc`on
![Page 17: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/17.jpg)
17
Stage 2: Instruc`on
Decod
e
pcrel
pcabs
EX
ctrl
EX/MEM
Rest of p
ipeline
B D
ctrl
ID/EX
PC+4
B
A
alu
+
||
branch?
imm
pcsel
pcreg
![Page 18: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/18.jpg)
18
MEM
Stage 4: Memory On every cycle: • Read EX/MEM pipeline register to get values and control bits • Perform memory load/store if needed
– address is ALU result
Write values of interest to pipeline register (MEM/WB) • Control informa`on, Rd index, … • Result of memory opera`on • Pass result of ALU opera`on
![Page 19: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/19.jpg)
19
MEM
ctrl
MEM/WB
Rest of p
ipeline
Stage 3: Execute
M
D
ctrl
EX/MEM
B D
memory
din dout addr
mc
![Page 20: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/20.jpg)
20
WB
Stage 5: Write-‐back On every cycle: • Read MEM/WB pipeline register to get values and control bits • Select value and write to register file
![Page 21: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/21.jpg)
21
WB
Stage 4: M
emory
ctrl
MEM/WB
M
D result
dest
![Page 22: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/22.jpg)
22 IF/ID
+4
ID/EX EX/MEM MEM/WB
mem
din dout
addr inst
PC+4
OP
B A
Rd
B D
M
D
PC+4
im
m
OP
Rd
OP
Rd PC
inst mem
Rd
Ra Rb
D B
A
![Page 23: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/23.jpg)
23
Example
add r3, r1, r2; nand r6, r4, r5; lw r4, 20(r2); add r5, r2, r5; sw r7, 12(r3);
![Page 24: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/24.jpg)
24
0:add 1:nand 2:lw 3:add 4:sw
r0 r1 r2 r3 r4 r5 r6 r7
0 36 9 12 18 7 41 22
IF/ID
+4
ID/EX EX/MEM MEM/WB
mem
din dout
addr inst
PC+4
OP
B A
Rd
B D
M
D
PC+4
im
m
OP
Rd
OP
Rd PC
inst mem
77
add r3, r1, r2 nand r6, r4, r5 add r3, r1, r2 lw r4, 20(r2) nand r6, r4, r5 add r3, r1, r2 add r5, r2, r5 lw r4, 20(r2) nand r6, r4, r5 add r3, r1, r2 sw r7, 12(r3) add r5, r2, r5 lw r4, 20(r2) nand r6, r4, r5 add r3, r1, r2 sw r7, 12(r3) add r5, r2, r5 lw r4, 20(r2) nand r6, r4, r5 sw r7, 12(r3) add r5, r2, r5 lw r4, 20(r2) sw r7, 12(r3) add r5, r2, r5 sw r7, 12(r3)
Rd
Ra Rb
D B
A
![Page 25: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/25.jpg)
25
Time Graphs
1 2 3 4 5 6 7 8 9
add
nand
lw
add
sw
Clock cycle
Latency: Throughput: Concurrency:
CPI =
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
IF ID EX MEM WB
![Page 26: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/26.jpg)
26
Pipelining Recap
Powerful technique for masking latencies • Logically, instruc`ons execute one at a `me • Physically, instruc`ons execute in parallel
– Instruc`on level parallelism
Abstrac`on promotes decoupling • Interface (ISA) vs. implementa`on (Pipeline)
![Page 27: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/27.jpg)
27
The end
![Page 28: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/28.jpg)
28
Sample Code (Simple)
Assume eight-‐register machine Run the following code on a pipelined datapath add 3 1 2 ; reg 3 = reg 1 + reg 2 nand 6 4 5 ; reg 6 = ~(reg 4 & reg 5) lw 4 20 (2) ; reg 4 = Mem[reg2+20] add 5 2 5 ; reg 5 = reg 2 + reg 5 sw 7 12(3) ; Mem[reg3+12] = reg 7
Slides thanks to Sally McKee
![Page 29: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/29.jpg)
29
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
op
dest
offset
valB
valA
PC+1 PC+1 target
ALU result
op
dest
valB
op
dest
ALU result
mdata
instrucJon
0
R2
R3
R4
R5
R1
R6
R0
R7
regA regB
Bits 21-‐23
data
dest
IF/ID ID/EX EX/MEM MEM/WB
![Page 30: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/30.jpg)
30
data
dest
IF/ID ID/EX EX/MEM MEM/WB
![Page 31: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/31.jpg)
31
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
nop
0
0
0
0
0 1 0
0
nop
0
0
nop
0
0
0
0
add 3 1 2
9 12 18 7
36
41
0
22
R2
R3
R4
R5
R1
R6
R0
R7
Bits 21-‐23
data
dest
Fetch: add 3 1 2
add 3 1 2
Time: 1 IF/ID ID/EX EX/MEM MEM/WB
![Page 32: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/32.jpg)
32
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
add
3
3
9
36
1 2 0
0
nop
0
0
nop
0
0
0
0 nand 6 4 5
9 12 18 7
36
41
0
22
R2
R3
R4
R5
R1
R6
R0
R7
1 2
Bits 21-‐23
data
dest
Fetch: nand 6 4 5
nand 6 4 5 add 3 1 2
Time: 2 IF/ID ID/EX EX/MEM MEM/WB
![Page 33: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/33.jpg)
33
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
nand
6
6
7
18
2 3 4
45
add
3
9
nop
0
0
0
0 lw 4 20(2)
9 12 18 7
36
41
0
22
R2
R3
R4
R5
R1
R6
R0
R7
4 5
Bits 21-‐23
data
dest
Fetch: lw 4 20(2)
lw 4 20(2) nand 6 4 5 add 3 1 2
Time: 3
36
9
3
IF/ID ID/EX EX/MEM MEM/WB
![Page 34: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/34.jpg)
34
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
lw
4
20
18
9
3 4 8
-‐3
nand
6
7
add
3
45
0
0
add 5 2 5
9 12 18 7
36
41
0
22
R2
R3
R4
R5
R1
R6
R0
R7
2 4
Bits 21-‐23
data
dest
Fetch: add 5 2 5
add 5 2 5 lw 4 20(2) nand 6 4 5 add 3 1 2
Time: 4
18
7
6
45
3
IF/ID ID/EX EX/MEM MEM/WB
![Page 35: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/35.jpg)
35
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
add
5
5
7
9
4 5 23
29
lw
4
18
nand
6
-‐3
0
0 sw 7 12(3)
9 45 18 7
36
41
0
22
R2
R3
R4
R5
R1
R6
R0
R7
2 5
Bits 21-‐23
data
dest
Fetch: sw 7 12(3)
sw 7 12(3) add 5 2 5 lw 4 20 (2) nand 6 4 5 add 3 1 2
Time: 5
9
20
4
-‐3
6
45
3
IF/ID ID/EX EX/MEM MEM/WB
![Page 36: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/36.jpg)
36
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
sw
7
12
22
45
5 9
16
add
5
7
lw
4
29
99
0 9 45 18 7
36
-‐3
0
22
R2
R3
R4
R5
R1
R6
R0
R7
3 7
Bits 21-‐23
data
dest
No more instrucJons
sw 7 12(3) add 5 2 5 lw 4 20(2) nand 6 4 5
Time: 6
9
7
5
29
4
-‐3
6
IF/ID ID/EX EX/MEM MEM/WB
![Page 37: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/37.jpg)
37
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
15
57
sw
7
22
add
5
16
0
0 9 45 99 7
36
-‐3
0
22
R2
R3
R4
R5
R1
R6
R0
R7
Bits 21-‐23
data
dest
No more instrucJons
nop nop sw 7 12(3) add 5 2 5 lw 4 20(2)
Time: 7
45
7
12
16
5
99
4
IF/ID ID/EX EX/MEM MEM/WB
![Page 38: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/38.jpg)
38
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
sw
7
57
0
9 45 99 16
36
-‐3
0
22
R2
R3
R4
R5
R1
R6
R0
R7
Bits 21-‐23
data
dest
No more instrucJons
nop nop nop sw 7 12(3) add 5 2 5
Time: 8
22 57
22
16
5
Slides thanks to Sally McKee
IF/ID ID/EX EX/MEM MEM/WB
![Page 39: Lec8: Pipelined MIPS...5 AProcessor alu" PC imm" memory memory d in d out" addr" target offset control" cmp" new"" pc" register" file" inst extend" +4 +4 Review:"Single"cycle"processor"](https://reader036.fdocuments.in/reader036/viewer/2022071107/5fe1af5e001947185d265d09/html5/thumbnails/39.jpg)
39
PC Inst mem
Register file
M U X A
L U
M U X
1
Data mem
+
M U X
M U X
Bits 0-‐2 Bits 15-‐17
9 45 99 16
36
-‐3
0
22
R2
R3
R4
R5
R1
R6
R0
R7
Bits 21-‐23
data
dest
No more instrucJons
nop nop nop nop sw 7 12(3)
Time: 9 IF/ID ID/EX EX/MEM MEM/WB