Professional Documents
Culture Documents
DIOU Camille
Microprocessor basics
State machine
t1 t2 t3 A B C
Register file
ALU
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH
S=Ax+By+C
t1 t2 t3 A B C
ALU
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH
S=Ax+By+C
t1 t2 t3 A B C
#CYCLES: 1
ALU
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH
S=Ax+By+C
t1 t2 t3 A B C
#CYCLES: 2
ALU
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH A.t1 t1 t2 t3 A B C t1
X
S=Ax+By+C
#CYCLES: 3
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH t3.t1 t1 t2 t3 A B C t1
X
S=Ax+By+C
t3
#CYCLES: 4
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH B.t2 t1 t2 t3 A B C B
X
S=Ax+By+C
t2
#CYCLES: 5
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH t2+t3 t1 t2 t3 A B C t2
+
S=Ax+By+C
t3
#CYCLES: 6
DIOU Camille
Microprocessor basics
Computation example :
CONTROLLER
t1 <- x t2 <- y t3 <- A.t1 t3 <- t3.t1 t2 <- B.t2 t3 <- t2+t3 out<- t3+C
DATAPATH t3+C t1 t2 t3 A B C t3
+
S=Ax+By+C
#CYCLES: 7
DIOU Camille
10
Microprocessor basics
Execution principle
Fetch Cycle
Execute Cycle
START START
HALT HALT
DIOU Camille
11
Microprocessor basics
MAR : Memory Adress Register IR : Instruction Register PC : Program Counter register
Store path
Load path
ACC A FSM
Function controls
B
Address
Memory
ALU
Opcode
S
incr Branch
MAR
LD
IR PC
Address operand Instruction path
DIOU Camille
12
Microprocessor basics
Single Address Instruction: one of the registers is fixed (= accumulator)AC is an implicit operand AC:= AC <operation> Memory(Address) Instruction:
15 14 13 0
Address Opcode: 00: Load 01: Store 10: Add 11: Branch
DIOU Camille
13
Microprocessor basics
MAR : Memory Adress Register IR : Instruction Register PC : Program Counter register
Store path Load path ACC A B Address
14 16
Memory
FSM
Opcode
2
ALU
Function controls
S LD IR Branch
DIOU Camille
incr
14 14 16
14
Microprocessor basics
MAR : Memory Adress Register IR : Instruction Register PC : Program Counter register
Store path Load path ACC A B Address
14 16
1. Instruction fetch: - PC is moved into MAR - Read from memory - Load instruction into IR 2. Instruction decode: - Op code bits to FSM(ADD) - rest of bits is operand addr.
Memory
1000110100110011
FSM
Opcode
2
ALU
Function controls
S LD
1000110100110011
10110100110011
MAR
10110100110011
IR Branch
DIOU Camille
incr
14 14 16
15
Microprocessor basics
MAR : Memory Adress Register IR : Instruction Register PC : Program Counter register
Store path Load path
1000100011100111 16
3. Operand Fetch: - IR<address> -> MAR - Read data from memory 4. Instr. Execute - Memory to ALU B - AC to ALU - ALU Add - S to AC
ACC A
0011001101110110
B
0101010101110001
Memory
0101010101110001
FSM
Opcode
2
ALU
Function controls 1000100011100111
Address
14 00110100110011
S LD
1000110100110011
MAR
10110100110011
incr Branch
DIOU Camille
14 14 16
16
Microprocessor basics
MAR : Memory Adress Register IR : Instruction Register PC : Program Counter register
Store path Load path
1000100011100111 16
5. Housekeeping: - Increment PC
ACC A
0011001101110110
B
0101010101110001
Memory
0101010101110001
FSM
Opcode
2
ALU
Function controls 1000100011100111
Address
14 00110100110011
S LD
1000110100110011
MAR
10110100110011 10110100110100
incr Branch
DIOU Camille
14 14 16
17
Microprocessor basics
DIOU Camille
Adress to memory
18
Microprocessor basics
shift
or or or
DIOU Camille
19
Microprocessor basics
Instruction Instruction format Action
DIOU Camille
20
Microprocessor basics
DIOU Camille
21
Microprocessor basics
...
DIOU Camille
22
Microprocessor basics
DIOU Camille
23
Systolic ring
24
Systolic ring
r1
r2
r3 r1
r3
r2
r4 r1
r5 r2
r6
Question: what is the advantage of RC against superscalar? Answer: Dataflow graph constructed at compile time, thus, no overhead
DIOU Camille Master EAII Sp. RSEE
25
Systolic ring
DIOU Camille
26
Systolic ring
RA versus microprocessors
RA less flexible (like a VLIW with fixed instructions)
but
RA provides more (customized) computation elements RA can decrease memory traffic RA can be tailored for specific algorithms and data types
DIOU Camille
27
Systolic ring
DIOU Camille
28
Systolic ring
DIOU Camille
29
Systolic ring
In abstract : Instructions configure both PE and interconnect every cycle In reality : Instruction Bandwidth / Memory too high, so COMPROMISE
DIOU Camille Master EAII Sp. RSEE
30
Systolic ring
Communications Relationship of communication among processors Shared clock (Pipelined) Shared registers (VLIW) Shared memory (SMM) Shared network
DIOU Camille
31
Systolic ring
DIOU Camille
Pro g
32
Systolic ring
y(n)=a(i)x(ni1)
xn aN
Z
-1
N 1 i=0
aN-1
Z
-1
aN-2
a1
Z
-1
a0
-1
yn
3 coefficients filter
y(n)=a0.x(n1)+a1.x(n2)+a2.x(n3)
xn a2
Z
-1
a1
Z
-1
a0
Z
-1
yn
DIOU Camille
33
Systolic ring
(MAC unit)
DIOU Camille
34
Systolic ring
DIOU Camille
35
Systolic ring
DIOU Camille
36
Systolic ring
DIOU Camille
37
Systolic ring
DIOU Camille
38
Systolic ring
DIOU Camille
39
Systolic ring
DIOU Camille
40
Systolic ring
DIOU Camille
41
Systolic ring
DIOU Camille
42
Systolic ring
DIOU Camille
43
Systolic ring
DIOU Camille
44
Systolic ring
DIOU Camille
45
Systolic ring
DIOU Camille
46
Systolic ring
The Systolic Ring Coarse grain architecture Multi-mode dynamical reconfiguration Scalable, bidimentionnal array VHDL design Designed for SoC integration
DIOU Camille
47
2
Constitution
Systolic ring
inst.
Reg FILE
Features
Complex computations in local mode (FIR,IIR, WT) Low silicon area (0.07mm, 0.18m CMOS process) Single-cycle operations (ex:MAC+register load)
ALU + MULT
DIOU Camille
48
2
Constitution
Systolic ring
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
reg2 Mux reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
49
Systolic ring
Programming mode
clk
reg0 reg1 inhib
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
reg2 Mux reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
50
Systolic ring
Programming mode
clk
Instruction 0
reg0 reg1 inhib
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
reg2 Mux reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
51
Systolic ring
Programming mode
clk
Instruction 1
reg0 reg1 inhib
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
reg2 Mux reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
52
Systolic ring
Programming mode
clk
Instruction 2
reg0 reg1 inhib
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
Reg2 Mux reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
53
Systolic ring
Programming mode
clk
Instruction 3
reg0 reg1 inhib
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
Reg2 Mux Reg3 Mux reg4
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
54
Systolic ring
Run-mode 1 : Fixed
clk
reg0 reg1 inhib
Instruction 0
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
55
Systolic ring
Run-mode 1 : Fixed
clk
reg0 reg1 inhib
Instruction 0
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
56
Systolic ring
Run-mode 1 : Fixed
clk
reg0 reg1 inhib
Instruction 0
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
57
Systolic ring
Run-mode 1 : Fixed
clk
reg0 reg1 inhib
Instruction 0
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
58
Systolic ring
Run-mode 2 : Dynamic
clk
reg0 reg1 Inhib
Instruction 1
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
59
Systolic ring
Run-mode 2 : Dynamic
clk
reg0 reg1 inhib
Instruction 2
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
60
Systolic ring
clk
reg0 reg1 inhib
Instruction 3
In(1,2),fifo(1,2),bus,Rp(i,j)(i=1~4 , j=1~2)
inst.
Reg FILE
reg5 reg6 reg7 ck mode wait enex 2 3 Controller Decoder 8 wait
ALU + MULT
DIOU Camille
out
61
Systolic ring
Scalable
Array structure
Unidirectional communications between neighbours Hard to implement datapath with greater pipeline depth than the array Hard to implement recursive operations
Units de Configurable traitement blocks Flots de donnes dataflow (unidirectional) Switchs Main UNIDIRECTIONNELS
INPUTS ENTRES
SORTIES OUTPUTS
62
Systolic ring
Array structure
Unidirectional communications between neighbours Hard to implement datapath with greater pipeline depth than the array Hard to implement recursive operations
Units de Configurable traitement blocks Flots de donnes dataflow (unidirectional) Switchs Main UNIDIRECTIONNELS