SEQ part 2
1
SEQ part 2 1 Changelog Changes made in this version not seen in - - PowerPoint PPT Presentation
SEQ part 2 1 Changelog Changes made in this version not seen in fjrst lecture: 19 September 2017: slide 18: send R[srcB] to ALU instead of R[srcA] 19 September 2017: slide 27: set register fjle write register number, not write enable 1 last
1
1
5
6
7
8
9
10
11
12
13
14
15
16
17
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate + (ALU) +2 +10
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB V D
18
19
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
20
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
20
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
20
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + (ALU) +2 +10
0xF
write enable
from convert opcode
21
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + (ALU) +2 +10
0xF
write enable
from convert opcode
21
22
23
24
24
24
24
MUX
25
MUX
25
MUX
25
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
MUX
dest
nop 1 jmp Dest 7 Dest
26
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
MUX
dest
nop 1 jmp Dest 7 Dest
26
27
27
27
27
27
27
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
28
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
28
Instr. Mem.
srcA srcB R[srcA] R[srcB] dstE next R[dstE] dstM next R[dstM]
Data in Addr in Data out
MUX
convert
immediate immediate + +2 +10
0xF
write enable
from convert opcode
rrmovq rA, rB 2 0 rA rB irmovq V, rB 3 F rB mrmovq D(rB), rA 5 0 rA rB rmmovq rA, D(rB) 4 0 rA rB V D D
28
29
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
31
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
33
34
rB %rsp
F
35
rB %rsp
F
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
36
37
cc
NOT
38
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
39
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
39
MUX
aluB
valB valC
40
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
41
42
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
43
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
43
44
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
45
46
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
47
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
47
rB F %rsp
48
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
49
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
50
51
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
52
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
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 rA rB
aluA aluB valE 8 add/sub xor/and (function
write? function
8 9
PC+2 M[PC+1]
rA=8 rB=9 R[8] R[9] aluA + aluB M[PC+2]
add
53
54