Académique Documents
Professionnel Documents
Culture Documents
Lecture 3
Components:
A
Instruction
A B Memory
D
ALU
WD
A Data
RA1 RA2 Memory
RD
0 1 WA R/W
Register
WE File
WD (2-port)
RD1 RD2
1
page 2
Review: Model of
Computation Fetch/Execute
Processor State Instruction Memory Loop:
PC Fetch <PC>
PC <pc> + 1
r0 Execute fetched
instruction
r1 32 bits
r2 (4 bytes) Repeat!
32 bits
next instr
r31 always 0
OPCODE Ra Unused Rb Rc
2
page 3
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
3
page 4
Address
A
Memory
Q
<Address>
Data Register
Works like a camera
D = image
D Q
Q = picture
E = On/Off Switch
E
clock = shutter release button
Clock
4
page 5
D Register w/ Enable
D Q
E
clk
clk clk
Q Q
D D
E E
How Computers Work Lecture 3 Page 9
RD <A>
RA1 RA2
5
Write Address WA
Register CLK
Write Enable WE File
WE
Write Data WD (2-port)
32
WA A
CLK
RD1 RD2
WD new <A>
32 32
5
page 6
S S
K K
W
Q = Ds Q = Ds
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
6
page 7
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
Review: Branches
Conditional: rc = <PC>+1; then
BRNZ(ra, label, rc) if <ra> nonzero then
PC <- <PC> + displacement
BRZ(ra, label, rc) if <ra> zero then
PC <- <PC> + displacement
7
page 8
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
8
page 9
9
page 10
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
XADDR
RA1
Memory
RD1 BRZ(R31,XADDR,XP)
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
10
page 11
LDR
Load Relative
Used for loading large (32 bit) constants with data from the instruction
stream.
Depends on the fact data and instruction memory are ports of one main
memory.
Use: LDR (label, Rc)
RTL Description: Rc <- <Mem[<NextPC> + Offset]>
Note that Ra is ignored, Offset is calculated from label
LDR (label, R1)
BR (label + 1)
label: 123456789
How Computers Work Lecture 3 Page 21
ISEL 0 1
OPCODE RA C RB RC
+1 0 1
ASEL BSEL
0 1 2 1 0
A B
ALUFN ALU
A op B
Z
RA2
Memory
RD2
PCSEL 0 1 0 1 2 WDSEL
D WD WA WD WA RC
PC Memory Register File
WE WEMEM WE WERF
11
page 12
12