Professional Documents
Culture Documents
Processor Architecture: Direct Execution RISC Processor: I Wonder Where This Goes?
Processor Architecture: Direct Execution RISC Processor: I Wonder Where This Goes?
ALU
L28 10/21 1
C.P.I.
= __________________ per __________________
6
1 0 x x x x
5
Rc
5
Ra
5
Rb
16
11
(unused)
1 1 x x x x
Rc
Ra
literal C (signed)
Operate class: Rc <- <R a> o p C O p c o d e s, b o t h f o r m a t s : ADD CMPEQ AND SHL SUB CMPLE OR SHR MUL* CMPLT XOR SRA DIV*
0 1 x x x x
Rc
LD: ST: JMP: BEQ: BNE: LDR:
Ra
literal C (signed)
Rc <- M e m[< Ra> + C ] M e m[< Ra >+C] <- Rc Rc <- < P C > + 4 ; P C <- < Ra> Rc <- < P C > + 4 ; i f < Ra > = 0 t h e n P C <- < P C > + 4 + ( C < < 2 ) Rc <- < P C > + 4 ; i f < Ra >
L28 10/21 3
Components:
RA1
ALU
Instruction Memory
WD A
RA2
RD R/W
Data Memory
WA WE WD
L28 10/21 4
RA1
5
RA2
RA
WA WE
32
RD
<A>
WD
WE
WA
RD2
WD 32 new <A>
Means, to BETA,
R4
<R2> + <R3>
GOAL: Read next 32-bit instruction DECODE instruction: ADD, SUB, XOR, etc READ operands (Ra, Rb) from RF; PERFORM indicated operation; WRITE result (Rc) back into RF.
6.004 Fall 97... L28 10/21 6
Instruction Fetch/Decode
PC
00
Instruction Memory
D
+4
CONTROL SIGNALS
6.004 Fall 97... L28 10/21 7
ALU Operations
PCIF
00
Instruction Memory
D
1 0 X X X X
Rc
Ra
Rb
unused
OP:
+4
Ra <20:16>
Rb: <15:11>
RA1
Rc <25:21>
WAWA RD1
Register File
RA2 WD RD2 WE
WERF
Control Logic
A ALUFN
ALU
ALUFN WERF
Rc
Ra
literal C (signed)
OP:
A
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11>
Register File
C: <15:0> sign-extended
BSEL
Control Logic
ALUFN
ALU
L28 10/21 9
Load Instruction
0 1 1 0 0 0
PC
IF
00
Rc
Ra
literal C (signed)
LD:
A
Rc <- Mem[<Ra>+C]
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11>
Register File
C: <15:0> sign-extended
BSEL
Control Logic
ALUFN
ALU
WD
R/W
Wr
Data Memory
Adr RD
WDSEL
L28 10/21 10
Store Instruction
0 1 1 0 0 1
PC
IF
00
Rc
Ra
literal C (signed)
ST:
A
Mem[<Ra>+C] <- Rc
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
RA2SEL
Register File
RA2 WD RD2 WE
WERF
C: <15:0> sign-extended
BSEL
Control Logic
RA2SEL
A B
ALUFN
ALU
WD
R/W
Wr
Data Memory
Adr RD
WDSEL
L28 10/21 11
JT
JMP Instruction
1 0
PCSEL
0 1 1 0 1 1
Rc
Ra
literal C (signed)
JMP:
PC
IF
00
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
RA2SEL
Register File
JT
C: <15:0> sign-extended
BSEL
Control Logic
PCSEL RA2SEL
A B
ALUFN
ALU
WD
R/W
Wr
Data Memory
Adr RD
<PC>+4
WDSEL
L28 10/21 12
BEQ/BNE Instructions
JT PCSEL
4 3 2 1 0
0 1 1 1 0 1
00
Rc
Ra
literal C (signed)
PC
IF
BEQ:
A
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
<PC>+4+C
RA2SEL
Rc <25:21>
RA1 WA WA RD1 Z
Register File
JT
C: <15:0> sign-extended
C: <15:0>
Z
1 0 BSEL
Control Logic
PCSEL RA2SEL
ALUFN A B
ALU
Adr
WD
R/W
Wr
Data Memory
RD
<PC>+4
WDSEL
L28 10/21 13
LDR:
one ANS:_____________
C: BETA: X = X * 123456; LD(X, r0) LDR(c1, r1) MUL(r0, r1, r0) ST(r0, X) ... LONG(123456)
L28 10/21 14
c1:
6.004 Fall 97...
0 1 1 1 1 1
00
Rc
Ra
literal C (signed)
PC
IF
LDR:
A
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
RA2SEL
Rc <25:21>
RA1 WA WA RD1 Z
Register File
JT
C: <15:0> sign-extended
C: <15:0> <PC>+4+C
Z
ASEL 1 0 1 0 BSEL
Control Logic
PCSEL RA2SEL ASEL BSEL WDSEL ALUFN Wr WERF <PC>+4
ALUFN A B
ALU
Adr
WD
R/W
Wr
Data Memory
RD
WDSEL
L28 10/21 1 5
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
L28 10/21 16
Exception Processing
Wed like RECOVERABLE INTERRUPTS for
FAULTS (eg, Illegal Instruction) - CPU or SYSTEM generated TRAPS & system calls (eg, read-a-character) - CPU generated I/O events (eg, key struck) - externally generated
GOAL: Interrupt running program, invoke exception handler (like a procedure call), return to continue execution. KEY: TRANSPARENCY to interrupted program. IMPLEMENTATION:
FORCED procedure call: new <PC>, save old <PC> for return. ... but WHERE to save old PC? Use LP?
XAdr
ILL OP
JT
PCSEL
PC
00
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
RA2SEL
1 0
RA1 WA WA RD1 JT
Register File
<PC>+4+C*4 IRQ Z
C: <15:0>
C: <15:0> sign-extended
ASEL
BSEL
Control Logic
PCSEL RA2SEL ASEL BSEL WDSEL ALUFN Wr WERF WASEL
<PC>+4
A ALUFN
ALU
Adr
WD
R/W
Wr
Data Memory
RD
WD SEL
L28 10/21 18
XAdr
ILL OP
JT
PCSEL
PC
00
Instruction Memory
D
+4
Ra <20:16>
Rb: <15:11> 0 1
Rc <25:21>
+
Control Logic Inputs: OPCODE Z IRQ Control Logic Outputs: PCSEL RA2SEL ASEL BSEL WDSEL ALUFN Wr WERF WASEL
RA2SEL
1 0
RA1 WA WA RD1 JT
Register File
<PC>+4+C*4 IRQ Z
C: <15:0>
C: <15:0> sign-extended
ASEL
BSEL
Control Logic
PCSEL RA2SEL ASEL BSEL WDSEL ALUFN Wr WERF WASEL
<PC>+4
A ALUFN
ALU
Adr
WD
R/W
Wr
Data Memory
RD
WD SEL
L28 10/21 20