single-cycle (fjnish) / pipelining 0
1
single-cycle (fjnish) / pipelining 0 1 Changelog 29 September - - PowerPoint PPT Presentation
single-cycle (fjnish) / pipelining 0 1 Changelog 29 September 2020: rephrase questions on stage walkthrough slides 29 September 2020: make stage walkthrough partial circuits more complete 1 last time data memory operation accesses same data
1
1
2
3
4
5
6
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
7
8
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
9
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
9
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
9
10
rB %rsp
F
11
rB %rsp
F
11
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
12
13
cc
NOT
14
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
15
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
15
MUX
aluA
valA valC
16
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
17
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
19
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
19
20
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
21
22
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
23
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
23
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
23
rB F %rsp
24
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
25
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
26
27
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
28
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
29
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
29
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
29
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
30
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
30
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
31
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
32
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
33
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
34
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
35
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
36
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
0xF 0xF %rsp %rsp 0xF 0xF %rsp rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
PC+9
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
37
11:00 12:00 13:00 14:00
11:00 12:00 13:00 14:00
38
11:00 12:00 13:00 14:00
11:00 12:00 13:00 14:00
38
11:00 12:00 13:00 14:00
39
11:00 12:00 13:00 14:00
39
11:00 12:00 13:00 14:00
40
11:00 12:00 13:00 14:00
41
11:00 12:00 13:00 14:00
41
11:00 12:00 13:00 14:00
41
11:00 12:00 13:00 14:00
42
11:00 12:00 13:00 14:00
42
11:00 12:00 13:00 14:00
42