SEQ part 3
Samira Khan The slides are prepared by Charles Reiss
1
SEQ part 3 Samira Khan The slides are prepared by Charles Reiss 1 - - PowerPoint PPT Presentation
SEQ part 3 Samira Khan The slides are prepared by Charles Reiss 1 Review each instruction takes one cycle send new values to state components 2 read values from previous cycle control what is sent with MUXes simple ISA 4: mov-to-register
1
2
3
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
4
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
4
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
4
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
4
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
4
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
4
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
4
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
4
5
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
6
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
6
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
6
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
7
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
7
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
7
8
9
10
10
10
10
MUX
11
MUX
11
MUX
11
12
12
12
12
12
12
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
13
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
13
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
13
14
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
16
17
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
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
18
19
rB %rsp
F
20
rB %rsp
F
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
cc
NOT
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
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
24
MUX
aluB
valB valC
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
28
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
30
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
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
32
rB F %rsp
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
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
35
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
37
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
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 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
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 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
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 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
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 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
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 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
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 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
38
39