transparents

publicité
Les Circuits Reconfigurables :
Passé, Présent, Futur ….
Lionel TORRES
LIRMM/POLYTECH, Université de Montpellier II
[email protected]
http://www.lirmm.fr
ARCHI05 – 21-25 Mars 2005
Pourquoi les architectures reconfigurables ?
Les architectures reconfigurables
– importance des travaux du domaine
• FPGA, Systolic Ring, DART, aSoC, Garp, PipeRench, Chameleon, RAW,
KressArray, Morphosys, FPFA ...
– les FPGA sont aujourd’hui de réelles alternatives aux ASIC (capacité, prix et
performances en adéquation avec les besoins)
FPGA
100k
10k
c it
pa
ém
IC
AS
x
a
2005
n
tio
lisa
i
t
d’u
ne
GA
n
e
y
FP
x
Mo
a
ém
t
i
c
pa 80% des design fonctionnent
Ca
Ca
01
20
19
99
97
10M
19
100M
1M
ASIC
Coût de
fabrication
1000M
Nombre de portes (log)
•
03
20
2003
5
200
2001
1999
7
199
à moins de 200MHZ
1k
1989
2000
2004 année
200 000
Source : Altera, SOPC World Seminar 2001
Source : L. Bossuet, G. Gogniat - LESTER
1 000 000
Nombre de circuits
fabriqués
S. Tredennick, The Rise of Reconfigurable Systems, ERSA 2003
Pourquoi les architectures reconfigurables ?
D
a
t
a
1G
R
a
t 100M
e
S
a 10M
m
p
l 1M
e
s
100k
p
e
r
10k
s
e
c 1k
o
n
d
ASIC
FPGA-Based
processing
Multiple DSP Cores
or Chips
Single-Chip DSP
MPU/MCU
Less Complex
Algorithm Complexity
More Complex
Pourquoi les architectures reconfigurables ?
D
a
t
a
1G
R
a
t 100M
e
S
a 10M
m
p
l 1M
e
s
100k
p
e
r
10k
s
e
c 1k
o
n
d
ASIC
FPGA-Based
processing
Multiple DSP Cores
or Chips
Single-Chip DSP
MPU/MCU
Less Complex
Algorithm Complexity
More Complex
Sommaire
Partie 1 : Circuits reconfigurables « standards »
1- PRINCIPES et CLASSIFICATION
2- TECHNOLOGIES
3- ARCHITECTURES ET CIRCUITS
4- CONCEPTION
Partie 2 : Les architectures reconfigurables
dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
DEFINITION :
COMPOSANTS STANDARDS PROGRAMMABLES
ELECTRIQUEMENT –
UNE SEULE FOIS (FUSIBLES)
OU
PLUSIEURS FOIS
RE-PROGRAMMABLES (RECONFIGURATION)
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
PRINCIPES DES ARCHITECTURES:
ENSEMBLE DE RESSOURCES LOGIQUES (PORTES, BASCULES,
…ETC) QUI PEUVENT ÊTRE INTERCONNECTÉES DE
DIFFÉRENTES FAÇONS.
REALISATION DE FONCTIONS BOOLEENNES SOUS FORME
D’UNE SOMME LIMITEE DE MONOMES (PAL, PLD, EPLD,...)
OU D’UN RESEAU DE CELLULES (FPGA)
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
TECHNOLOGIES DE PROGRAMMATION :
FUSIBLES (METAL), ANTIFUSIBLES (CAPACITE MOS),
TRANSISTOR MOS A GRILLE FLOTANTE (EPLD), RAM
STATIQUE (FPGA-SRAM),...
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
PRINCIPE SIMPLIFIE
Zone de programmation (technologie)
Interconnexion
Zone d’implémentation des fonctions
Booléennes
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
PRINCIPE SIMPLIFIE
Configuration
(Bistream)
Zone de programmation (technologie)
Interconnexion
Zone d’implémentation des fonctions
Booléennes
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
• Le bitstream décrit la configuration de tous les
éléments configurables du circuits
• Un transfert de bitstream est nécessaire lors de la
mise sous tension et à chaque reconfiguration
10010010011110010110
1- PRINCIPES et CLASSIFICATION
GLOSSAIRE
ASIC
: Application Spécific Integrated Circuit
circuit intégré pour application spécifique
SOC : System On Chip
Système sur puce
IP
: Intellectual Propertie (bloc IP ou « IP core ») ou Composant virtuel
propriété intellectuelle
FPGA : Field Programmable Gate Array
réseau de portes programmables
PLD : Programmable Logic Devices
CPLD : Complex Programmable Logic Devices
ARCHI05 – 21-25 Mars 2005
1- PRINCIPES et CLASSIFICATION
CLASSIFICATION
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
ASIC
Gate
Arrays
SPLDs
(PALs)
Acronyms
SPLD = Simple Prog. Logic Device
PAL = Prog. Array of Logic
CPLD = Complex PLD
FPGA = Field Prog. Gate Array
CPLDs
Cell-Based
ICs
Full Custom
ICs
FPGAs
Common Resources
Configurable Logic Blocks (CLB)
– Memory Look-Up Table
– AND-OR planes
– Simple gates
Input / Output Blocks (IOB)
– Bidirectional, latches, inverters
1- PRINCIPES et CLASSIFICATION
Cout
ASIC
FPGA
Reconfigurable architectures
design space
Performances
GPP
Flexibilité
General Purpose Processor
Sommaire
Partie 1 : Circuits reconfigurables « standards »
1- PRINCIPES et CLASSIFICATION
2- TECHNOLOGIES
3- ARCHITECTURES ET CIRCUITS
4- CONCEPTION
ARCHI05 – 21-25 Mars 2005
2- TECHNOLOGIES
Technologies de programmation
• Différentes technologies pour stocker la configuration
• Fuse
Programmable une seule fois (configurable)
• Antifuse
• (E)EPROM
Nombre de configuration limité ( x.103 à x. 106)
• SRAM
Configuration réalisée à chaque mise sous tension
2- TECHNOLOGIES
Technologie Fusible
Historique (préhistoire : il y a 25 ans) : PLD Bipolaires
Technologie comparable à celle des PROMs
réseaux de portes avec connexions programmables
programmation par fusibles (comme les PROMs)
E0
Bit
Word line
Fusible
Ei
non reprogrammables
fonctions logiques simples (structures de type Sum-of-Products)
coût unitaire élevé (faibles séries, prototypes, …)
2- TECHNOLOGIES
• Anti fusible = condensateur
Actel
M2
M1
• Création d’un court circuit entre
deux lignes de métal: claquage
• Programmation définitive
• Très peu de place occupée sur le circuit, mais étapes de
fabrication supplémentaires
• performances électriques supérieures à la technologie
« SRAM » (minimisation de la surface et des effets RC)
2- TECHNOLOGIES
Antifuse (PLDs, CPLDs)
Programmable une fois
Amorph
silicon
Polycristallin
Silicon
dielectric
Metal 2
Metal 1
Silicon oxyde
N+
Silicon oxyde
2- TECHNOLOGIES
Electrically Erasable Programmable Read-Only Memory (EPLD, CPLD)
Gate
floating gate
Oxyde layer
Source
Drain
transistor à grille flottante
L ’application d ’un potentiel sur la grille
supérieure provoque le passage d ’une partie des
électrons du canal à travers la mince couche
d ’oxyde, ce qui charge la grille flottante. Lors de
la lecture, une tension appliquée sur la grille
supérieure est complètement masquée par la
charge négative emmagasinée sur la grille
flottante. Cela équivaut à un transistor toujours
bloqué.
- même technologie que celle des mémoires EPROM
- transistor à double grille
- reprogrammable (effacement par UV ou électriquement)
2- TECHNOLOGIES
Electrically Erasable Programmable Read-Only Memory
Nombre limité de programmation
Word selection
Polysilicon
level 1
Polysilicon
level 2
G
Silicon oxyde
S
D
Bit output
G
N+
Vcc
Floating gate
2- TECHNOLOGIES
Technologie SRAM (FPGA)
– Technologie CMOS standard
– Portes de transmission ou multiplexeurs commandés par
des cellules SRAM
– Les mémoires SRAM permettent de configurer les
interconnexions et de programmer les cellules
– le FPGA doit être configuré à chaque mise sous tension à
partir d’une mémoire externe (EPROM)
FPGA
EPRO
M
EPROM
1
FPGA
FPGA
FPGA-SRAM
EPROM2
EPROM3
2- TECHNOLOGIES
Technologie SRAM (FPGA)
Grille
Source
n+
- Programmation illimitée
- Programmation à chaque mise en tension
SRAM
SiO2
p+
substrat p
5 transistors SRAM
R/W
Word line
Bit line
Point mémoire
Drain
n+
Vcc
Vcc
2- TECHNOLOGIES
S
A
B
réseau
d’interrupteurs
S
S
VDD
VDD
C
C
B
A
A
B
C
VDD
VDD
VDD
Registre à
décalage
Porte de
transmission
2- TECHNOLOGIES
Rappel : Réalisation de fonctions logiques avec des
multiplexeurs MOS
A
S
A
!C
C
B
C
Si C=0, alors S=A
Si C=1, alors S=B
Grille
S
Sourc
e
Drain
G=1
G=0
B
Exemples:
S=X.Y si C= X, A =0, B = Y
S=X+Y si C= !X, A =1, B = X
Transistor NMOS =
commutateur
2- TECHNOLOGIES
Réalisation d’une LUT
C
1
A B C Z
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
« Look Up Table »
B
LUT 3
0
1
1
1
1
1
0
A
Z
3- ARCHITECTURE ET CIRCUITS
Programmable Logic Device Families
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
SPLDs
(PALs)
ASIC
Gate
Arrays
Cell-Based
ICs
CPLDs
Acronyms
SPLD = Simple Prog. Logic Device
PAL = Prog. Array of Logic
CPLD = Complex PLD
FPGA = Field Prog. Gate Array
Full Custom
ICs
FPGAs
Common Resources
Configurable Logic Blocks (CLB)
– Memory Look-Up Table
– AND-OR planes
– Simple gates
Input / Output Blocks (IOB)
– Bidirectional, latches, inverters
3- ARCHITECTURE ET CIRCUITS
PLAs : Programmable Logic Arrays (préhistoire)
• Plans AND-OR : Somme de produits
ABC
AB
BC
AC
F0 = ABC
C
B
A
F0
F1
F2
F1 = ABC + AB
F2 = ABC + BC + AC
3- ARCHITECTURE ET CIRCUITS
PLAs : Examples
AND-OR plane
S = A.B+C
A
B
A
0
0
0
0
1
1
1
1
C
S
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
0
1
0
1
1
1
0
1
3- ARCHITECTURE ET CIRCUITS
PLAs : Examples
AND-OR plane
S = A.B.C
A
B
A
0
0
0
0
1
1
1
1
C
S
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
0
0
0
0
0
1
0
0
3- ARCHITECTURE ET CIRCUITS
PLAs : Examples
AND-OR plane
S1 = A.B.C , S2 = A.B+C
A
B
C
S1 S2
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
1
0
0
0
0
0
1
0
0
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
S
2
0
1
0
1
1
1
0
1
3- ARCHITECTURE ET CIRCUITS
PALs : Programmable Arrays of Logic
F0
F1
F0=A.B(1+F1)
C
B
A
F1=A.C(1+F0)
Feedback terms
3- ARCHITECTURE ET CIRCUITS
SPLDs : Simple Programmable Logic Devices
C
B
A
Feedback terms
D
Q
F0
D
Q
F1
3- ARCHITECTURE ET CIRCUITS
SPLDs : Simple Programmable Logic Devices
2904
2948
2992
3036
3080
3124
3168
3212
3256
3300
3344
3388
3432
3476
3520
3564
3608
OUTPUT
LOGIC
MACROCEL
L
18
P - 5818
R - 5819
6
3652
3696
3740
3784
3828
3872
3916
3960
4004
4048
4092
4136
4180
4224
4268
OUTPUT
LOGIC
MACROCEL
L
17
P - 5820
R - 5821
7
4312
4356
4400
4444
4488
4532
4576
4620
4664
4708
4752
4796
4840
OUTPUT
LOGIC
MACROCEL
L
16
P - 5822
R - 5823
8
4884
4928
4972
5016
5060
5104
5148
5192
5236
5280
5324
OUTPUT
LOGIC
MACROCEL
L
15
P - 5824
R - 5825
9
5368
5412
5456
5500
5544
5588
5632
5676
5720
OUTPUT
LOGIC
MACROCEL
L
14
P - 5826
R - 5827
10
SYNCHRONOUS
PRESET
(TO ALL REGISTERS)
5764
11
INCREMEN
T
13
0
4
8
12
16
20
24
28
32
36
40
3- ARCHITECTURE ET CIRCUITS
Programmable Logic Device Families
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
SPLDs
(PALs)
ASIC
Gate
Arrays
Cell-Based
ICs
CPLDs
Acronyms
SPLD = Simple Prog. Logic Device
PAL = Prog. Array of Logic
CPLD = Complex PLD
FPGA = Field Prog. Gate Array
Full Custom
ICs
FPGAs
Common Resources
Configurable Logic Blocks (CLB)
– Memory Look-Up Table
– AND-OR planes
– Simple gates
Input / Output Blocks (IOB)
– Bidirectional, latches, inverters
3- ARCHITECTURE ET CIRCUITS
CPLDs : Complex Programmable Logic Devices
Macrocells : Somme de produits + sequ.elements (flipflops)
Utilisation de PLD
– Nombre d’entrées
– Nombre de somme de produits
Flipflop
Surface importante mais :
S
3- ARCHITECTURE ET CIRCUITS
CPLDs : Complex Programmable Logic Devices
PLD
PLD
PLD
I/O
PLD
PLD
I/O
PLD
PLD
PLD
I/O
PLD
I/O
1 block:
Plusieurs
Macrocells
I/O
PLD
INTERCONNECT
I/O
Plusieurs PLD
Interconnexion via a switch matrix
3- ARCHITECTURE ET CIRCUITS
CPLDs : Complex Programmable Logic Devices
Altera MAX 7000 Macrocell structure
CLK
8 Product Term
AND-OR Array
+
Programmable
MUX's
Clk
MUX
AND
ARRAY
Output
MUX
Q
I/O Pin
Invert
Control
F/B
MUX
Programmable polarity
pad
Seq. Logic
Block
Programmable feedback
3- ARCHITECTURE ET CIRCUITS
Programmable Logic Device Families
Source: Dataquest
Logic
Standard
Logic
Programmable
Logic Devices
(PLDs)
SPLDs
(PALs)
ASIC
Gate
Arrays
Cell-Based
ICs
CPLDs
Acronyms
SPLD = Simple Prog. Logic Device
PAL = Prog. Array of Logic
CPLD = Complex PLD
FPGA = Field Prog. Gate Array
Full Custom
ICs
FPGAs
Common Resources
Configurable Logic Blocks (CLB)
– Memory Look-Up Table
– AND-OR planes
– Simple gates
Input / Output Blocks (IOB)
– Bidirectional, latches, inverters
3- ARCHITECTURES ET CIRCUITS
FPGAs : Field Programmable Gate Arrays
Matrice de blocs reconfigurables
Interconnexion reconfigurable
CLB = LUT + Sequentiel éléments
3- ARCHITECTURES ET CIRCUITS
FPGAs : Reconfigurable
•
Arrangement Matriciel de blocs logiques avec configuration des :
1. Interconnexions entre les blocs logiques,
2. La fonction de chaque bloc.
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
3- ARCHITECTURES ET CIRCUITS
FPGAs : Reconfigurable
•
Arrangement Matriciel de blocs logiques avec configuration des :
1. Interconnexions entre les blocs logiques,
2. La fonction de chaque bloc.
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
3- ARCHITECTURES ET CIRCUITS
FPGAs : Reconfigurable
•
Arrangement Matriciel de blocs logiques avec configuration des :
1. Interconnexions entre les blocs logiques,
2. La fonction de chaque bloc.
set by configuration
bit-stream
Logic Block
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
1
INPUTS
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
latch
4-LUT
FF
0
OUTPUT
4-input "look up table"
3- ARCHITECTURES ET CIRCUITS
FPGAs : Generic reconfigurable block
Inputs
Look-Up
Table
(LUT)
Out
State
Clock
Enable
3- ARCHITECTURES ET CIRCUITS
FPGAs : Configurable logic block
Main
Function
Generators
G1
G2
G3
G4
Clock Edge
Select
CLK EC
S/R
Y
S/R C
Set/Reset
Control
LUT4
D
PRE
>
DIN
YQ
EC CLR
H1
F1
F2
F3
F4
LUT3
Clock Enable
Control
1
D
LUT4
PRE
>
XQ
EC CLR
Main
Function
Generators
1
S/R C
Flip Flop
X
3- ARCHITECTURES ET CIRCUITS
FPGAs : Serial adder implementation example
Sum
Function
A
B
0
LUT4
CLK
S/R
EC
Sum
S/R C
A⊕B⊕Carry
D
PRE
DIN
EC CLR
H1
LUT3
LUT4
EN
Carry
>
1
D
>
(A⋅B+A⋅Carry
+B⋅Carry)EN
Carry
Function
PRE
State
Flip Flop
XQ
EC CLR
1
S/R C
X
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx CLB (Configurable Logic Block)
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx CLB (Configurable Logic Block)
Two 4-input functions, registered output
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx CLB (Configurable Logic Block)
5-input function, combinational output
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx CLB used as single port RAM
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx IOB (Input Output Block)
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx interconnect
• Interconnexion directe - CLB to CLB
• Utilisation de la switch matrix
Lignes longues
— Horloge (skew)
— Lignes
segmentées
— Bus (Tri state)
CLB
CLB
Switch
Matrix
CLB
CLB
Switch
Matrix
CLB
CLB
CLB
CLB
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx interconnect
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Switch matrix
3- ARCHITECTURES ET CIRCUITS
FPGAs : Switch matrix architecture
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Interconnect
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Interconnect
• Single
Entre 2 CLBs voisins
• Doubles
Entre CLB éloignés
• Long
Traversée complète
• Global clock
Optimisée pour limitée le skew
Programmable switches
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Interconnect
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx routing
Switch
Matrix
Routed Wires (Blue)
Direct
Interconnect
(Green)
CLB
(Red)
Long Lines
(Purple)
Programmable Interconnect Points, PIPs (White)
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Virtex-II et IV architecture
• Virtex 4, 17 Familles
• www.xilinx.com/ipcenter
• > 500 Mhz de fréquence d‘horloge
• 90 nm, 9-Metal layers
• Fonctions arithmétiques cablées (Multiplieur, MAC, etc …)
• 2 à 4 Processeurs type Power PC
•50 Millions de bits de configuration !!
Devices
Array
CLBs
Slices
Distributed
RAM (Kb) DSP
XC4VLX15
XC4VLX25
XC4VLX40
XC4VLX60
XC4VLX80
XC4VLX100
XC4VLX160
XC4VLX200
64 x 24
96 x 28
128 x 36
128 x 52
160 x 56
192 x 64
192 x 88
192 x 116
13,824
24,192
41,472
59,904
80,640
110,592
152,064
200,448
6,144
10,752
18,432
26,624
35,840
49,152
67,584
89,088
96
168
288
416
560
768
1056
1392
32
48
64
64
80
96
96
96
Max Block
RAM
864
1,296
1,728
2,880
3,600
4,320
5,184
6,048
3- ARCHITECTURES ET CIRCUITS
FPGAs : Xilinx Virtex-II et IV architecture
Mémoire
Power
PC
Multiplieurs 18x18
Matrice
de Slices
3- ARCHITECTURES ET CIRCUITS
FPGAs : Comparaison en densité (VS RISC)
3- ARCHITECTURES ET CIRCUITS
FPGAs : Comparaison en Surface (vs. processeurs)
FPGA
µProcessor
3- ARCHITECTURES ET CIRCUITS
FPGAs : Comparaison en surface
Total Area ~ Active logic + Configuration memory + interconnect
Coût de la technologie reconfigurable
3- ARCHITECTURES ET CIRCUITS
FPGAs : Retard
Interconnexion = 90% du retard
3- ARCHITECTURES ET CIRCUITS
FPGAs : Consommation
R
R
R
Modélisation simple
C
9%
C
C
5%
21%
65%
Interconnect
Clock
IO
CLB
Sommaire
Partie 1 : Circuits reconfigurables « standards »
1- PRINCIPES et CLASSIFICATION
2- TECHNOLOGIES
3- ARCHITECTURES ET CIRCUITS
4- CONCEPTION
ARCHI05 – 21-25 Mars 2005
4- CONCEPTION
FPGAs design flow
Specifications
DESIGN CAPTURE
Behavioral HDL
Simulation
Netlist
Simulation
SYNTHESIS
PLACE & ROUTE
FPGA
configuration
CRITIQUE !!!
Signals
monitoring
4- CONCEPTION
Role of design tools
Synthesis : Assignation HDL sur FPGA
•
Place & Route : Assignation de la netlist sur les CLBs et routage des
signaux
•
Simulation :
• Avant synthèse : simulation fonctionnelle
• Après synthesis : Simulation de de la netlist, prise en compte des
retards
• Après Place & Route : idem, mais retard du routage pris en compte
accuracy
•
ETAPES GOURMANDES EN TEMPS CPU
4- CONCEPTION
VHDL description
Synthesized description (synopsys)
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_signed.all;
entity add4 is
port( A, B
SUM
);
end add4 ;
: in std_logic_vector(7 downto 0);
: out std_logic_vector(7 downto 0)
architecture archi_add4 of add4 is
begin
process(A, B)
begin
sum <= A+B ;
end process;
end archi_add4;
CLBs
4- CONCEPTION
Synthesized description (synopsys)
Synthesized description
(Gate equivalent)
module add4_DW01_add_8_0 ( A, B, CI, SUM, CO );
input [7:0] A;
input [7:0] B;
output [7:0] SUM;
module add4_DW01_add_8_0 ( A, B, CI, SUM, CO );
input CI;
input [7:0] A;
output CO;
input [7:0] B;
wire n8, n9, n11, n12, n14, n20, n21, n22, n23, n24, n25, n26, n27, n28,
n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, n41, n42,
output [7:0] SUM;
n43, n44;
input CI;
output CO;
XOR2 U25 ( .O(SUM[0]), .I1(B[0]), .I0(A[0]) );
wire n8, n9, n11, n12, n14;
OR3 U26 ( .O(n24), .I2(n21), .I1(n20), .I0(n22) );
clb_4000 U4 ( .K(1'b0), .GSR(1'b0), .CIN(1'b0), .F1(B[0]), .F2(A[0]), .F3(
…
1'b0), .F4(1'b0), .G1(1'b0), .G2(1'b0), .G3(1'b0), .G4(1'b0), .C1(1'b0
), .C2(1'b0), .C3(1'b0), .C4(1'b0), .X(SUM[0]) );
clb_4000 U6 ( .K(1'b0), .GSR(1'b0), .CIN(1'b0), .F1(A[2]), .F2(B[2]), .F3(
n8), .F4(1'b0), .G1(B[0]), .G2(B[1]), .G3(A[0]), .G4(A[1]), .C1(1'b0), …
4- CONCEPTION
Synthesized description (synopsys)
P&R’ed description (synopsys)
CLBs voisins placés aussi proche que possible
Connexions au travers des switch matrix
PHASE CRITIQUE
4- CONCEPTION
Programmable Interconnect Points, PIPs (White)
Switch
Matrix
Routed Wires (Blue)
Direct
Interconnect
(Green)
CLB
(Red)
Long Lines
(Purple)
Partie 1 : conclusion
FPGAs : Logic Cells & gates count
Logic Cells
Logic Gates
1,000,000
12M
>5
>5Million
Millionlogic
logicgates
gates
100,000
1.2M
10,000
1,000
1994
•
•
•
•
120K
Year
1996
1998
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
CLB
12K
2000
2005
XX = XX million de portes logiques en 2005
1 Logic cell = 4-input LUT + FF
Convention : 1 porte = 4 transistors
Equivalent porte logique n’est pas une bonne métrique
LUT
D
Q
FF
Partie 1 : conclusion
ASICs are dead…
My
Position
[Jonathan
Rose]
They Just Don’t Know It Yet!
Partie 1 : conclusion
?
But …
- Coût de la reconfiguration
- Consommation
- Routage complexe
- ~ 50 Millions de bits de
1000 000 000 000
FPGA physical
100 000 000 000
Transistors / Chip
Configuration !!
memory
10 000 000 000 000
10 000 000 000
1000 000 000
FPGA logical
100 000 000
10 000 000
M icr
c
opro
e
s
s s or
1000 000
100 000
10 000
1000
1980
1990
2000
2010
Partie 1 : conclusion
OPERATING layer
Evolutions des FPGAs
FPGAs :
RECONFIGURATION STATIQUE
• Chargement séquentiel des configurations
• une architecture par application
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
CONFIGURATION layer :
• LUT configuration
• CLBs / IOBs /Switch matrixes bits
FPGAs, évolutions:
RECONFIGURATION DYNAMIQUE (RTR: Run-Time Reconfiguration)
• Plusieurs configurations (multiple memories/LUT)
• une seule configuration, les
fonctions peuvent changer en cours de fonctionnement
Sommaire
Partie 2 : Les architectures
reconfigurables dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
1- INTRODUCTION & CONTEXTE
Technologies microélectroniques en 2005 :
- Technologie de 90nm (voir 65nm)
- Intégration courante de plusieurs dizaines de millions de transistors… 1 milliard en 2004
- Fréquence de fonctionnement supérieures à 2GHz
1999
2008
0.18mm
256Mb DRAM
16 CPU FP 64b
500 MHz
0.07mm
4Gb DRAM
256 CPU FP 64b
2.5GHz
18 mm
30,000 pistes
1 clock
répéteurs tous les 3 mm
25 mm
120,000 pistes
16 clocks
répéteurs tous les 0.5 mm
Introduction & contexte
1- INTRODUCTION & CONTEXTE
PRG MEM
RAM1
RAM2
µP
RAM
RAM3
Memory
management
Dedicated
core
RAM4
I-cache
Frame Buffer Input
D-cache
Memory
management
Frame Buffer Output
Module AMBA / DMA
AMBA
arbitrer
Bus AMBA AHB
Timers, IOs,
UARTS…
Timers, IOs,
UARTS…
AMBA
AHB/APB
Bus AMBA APB
1- INTRODUCTION & CONTEXTE
- Consommation
- Stockage de données
- Transfert de données
RAM2
µP
RAM
RAM3
Memory
management
RAM1
Reconfigurable
core
PRG MEM
RAM4
I-cache
Frame Buffer Input
D-cache
Memory
management
Frame Buffer Output
Interface
Programmable
interconnect
Bus
arbitrer
Timers, IOs,
UARTS…
Timers, IOs,
UARTS…
Interface
1- INTRODUCTION & CONTEXTE
CLB, LC : bit-level processing unit (Look-Up-Tables)
CLB, LC…
OPERATING layer
+
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
SRAM
*
CONFIGURATION layer
Classification d’architectures
Global
interconnect
Local
interconnect
1- INTRODUCTION & CONTEXTE
•
Reconfiguration
– Interconnexions
– Logiques
Statique (en général)
Optimisation de l'architecture pour des calculs niveau bit - contrôle
Temps de reconfiguration, quantité d'information
Points faibles : Interconnexion
Unités de
traitement
Structure Linéaire
Flots de données
Switchs UNIDIRECTIONNELS
SORTIES
ENTRÉES
•
•
•
•
BUS : ressource PARTAGÉE…
• Le routage devient critique
• Temps processeur de placement/routage important
• Difficile de dépasser les 80-90 % de la capacité
• Croissance non linéaire avec la taille du composant
1- INTRODUCTION & CONTEXTE
Reconfigurable
?
DSP
Grain épais
RAM
TCP / IP
CAN
CNA
?
ROM
RF
CŒUR DCT
Specific approach
Approche Reconfigurable
☺ Efficient solution
☺ Flexible
Grain fin (FPGA)
Peu efficace
Restricted field of applications
Grain épais
☺ Applications orientées flots de données
1- INTRODUCTION & CONTEXTE
Accélération des applications orientées flots de données
Extrapolation aisée sur de nouvelles technologies
GRAIN EPAIS
• Faible surcoût
Flexibilité d’utilisation maximale
Personnalisation aisée
Grain fin
Grain épais
Opérateurs ALU, MULT
arithmétiques
Multiplexeurs
Registres
1- INTRODUCTION & CONTEXTE
Ring
1D array
Bus
Star
2D array
Torus
3D array
Classification d’architectures
1- INTRODUCTION & CONTEXTE
Energy Efficiency vs. Flexibility
100
10
ed
r
i
w
flexibility
d
r
a
h
nfi
o
c
(r e
ble
a
r
gu
0.1
anti
hardwired
g)*
n
i
put
m
co
machine
FPGAs
c)
i
g
lo
le SP
b
a
D
ur
g
As
i
P
f
n
rs
rD
o
o
s
c
es
c
( re
o
r
s
A
tp
G
e
s
P
F
on
i
ssor
t
e
c
c
o
r
p
ru
micro
d
r
inst
a
and
1
2
1
0.5
0.25
von
Neumann
st
0.01
0.001
throughput
T. Claasen et al
R. Hartenstein:
MOPS / mW
1000
0.13 0.1 0,07 µ feature size
flexibility
4G
1- INTRODUCTION & CONTEXTE
3G
Pourquoi faire évoluer les architectures ?
Sources: Proc ISSCC, ICSPAT, DAC, DSPWorld
memory
100 000
000
2G
wireless
Transistors/chip
Normalized
processor speed
10 000 000
1000 000
100 000
Algorithmic Complexity
(Shannon’s Law)
microprocessor / DSP
1G
10 000
100
computational
efficiency
10
SH7752
StrongARM
1000
1
mA/ MIP
0.1
100
battery performance
0.01
10
0.001
1960
1
2010
1970
1980
1990
2000
4G
1- INTRODUCTION & CONTEXTE
3G
Pourquoi faire évoluer les architectures ?
Sources: Proc ISSCC, ICSPAT, DAC, DSPWorld
memory
100 000
000
2G
wireless
Transistors/chip
Normalized
processor speed
10 000 000
THE1000SCALABILITY
HAS TOmicroprocessor
BE GUARANTEED
/ DSP
000
100 000
Algorithmic Complexity
(Shannon’s Law)
1G
10 000
100
computational
efficiency
10
SH7752
StrongARM
1000
1
mA/ MIP
0.1
100
battery performance
0.01
10
0.001
1960
1
2010
1970
1980
1990
2000
Sommaire
Partie 2 : Les architectures
reconfigurables dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
2- CLASSIFICATION D’ARCHITECTURES
RECONFIGURATION STATIQUE
• Chargement séquentiel de plusieurs architectures
• Une architecture par application
RECONFIGURATION PSEUDO-DYNAMIQUE
• Chargement séquentiel de plusieurs architectures
• Plusieurs architecture par application
RECONFIGURATION DYNAMIQUE
• Chargement continu
• L’architecture évolue en cours de traitement
Classification d’architectures
2- CLASSIFICATION D’ARCHITECTURES
Traitement numérique du signal : trois familles d’architectures candidates
Spécifique (ASIC)
Microprocesseurs
Accélérateurs
Processeurs
reconfigurables
VLIW
ASIC reconfigurables (filtres…)
FPGA
Classification d’architectures
Reconfigurable
2- CLASSIFICATION D’ARCHITECTURES
Processeur = Machine Reconfigurable
ENIAC
Classification d’architectures
2- CLASSIFICATION D’ARCHITECTURES
Classification d’architectures
2- CLASSIFICATION D’ARCHITECTURES
mémoire
•CISC, Complex Instruction Set Computer :
•RISC, Reduced Instruction Set Computer :
• Circuits imposants
• Performances plus élevées
• Performances faibles
• Compilation aisée
• Compilation difficile
Classification d’architectures
• Taille de code importante
2- CLASSIFICATION D’ARCHITECTURES
Hétérogènes (MAC, ALU, Adressage)
mémoire
•VLIW, Very Long Instruction Word :
• Performances élevées
• Présence de compilateur (pas forcément optimal – rapport de 20 entre C et assembleur)
• Parallélisme limité vs ARD
Classification d’architectures
2- CLASSIFICATION D’ARCHITECTURES
Hétérogènes ou Homogènes
Configuration
•Architectures reconfigurables :
• Paradigme de machine : basée sur de la RAM
• Exécution des opérations : parallèles
• Description de l’application : langages matériels
Classification d’architectures
2- CLASSIFICATION D’ARCHITECTURES
Charnière Von Neumann – Architectures reconfigurables
VLIW
AR grain épais
• Reconfiguration de tous les PE chaque cycle
• Reconfiguration d’une partie des PE (reconf. dynamique)
• Topolgie 1D : Reg op Reg
• Topologie 2D : Datapath pipelinés
Reg
• PE principalement hétérogènes (MAC, ALU, MULT) • PE souvent homogènes (Op + Reg)
• Présence d’un compilateur (pas optimal)
• Programmation souvent bas niveau (assembleur, VHDL)
• Support des opération conditionnelles (JE, JZ..)
• Pas d’opération conditionnelles (conf. Conditionnelle !)
• Communications avec une BR multi-ports
• Communications avec plusieurs banques mémoires
Control
inst0 inst1 inst2 inst3
…
instn
PE
…
PE
PE
PE
PE
Interconnect
2- CLASSIFICATION D’ARCHITECTURES
flexibilité
ARD
RISC
FPGA
CISC
VLIW
SIMD
Parallélisme
Difficulté de programmation
2- CLASSIFICATION D’ARCHITECTURES
Applications
Applications
CPU
TCP
/
IP
FPL
RAM
CAN
CNA
chronophages
ROM
Grain fin (bit)
RF
Approche Programmée
CPU
TCP
/
IP
RC
FPL
RAM
CAN
CNA
Approche
Spécifique
chronophages
ROM
RF
Grain épais (mot)
Approche Reconfigurable
CPU
DSP
ASIC
Puissance de traitement
+
++
++++
Faible Consommation
-
+
++++
?
++
++++
++
----
+++
++
Flexibilité
FPL
++ +?
RC
+++
2- CLASSIFICATION D’ARCHITECTURES
• Choix et Grain des éléments de calcul
• Choix et Grain du réseau d'interconnexion
• Temps et taux de (Re)configuration
– Pour
– Consommation
– Stockage de données
– Interconnexion flexible
– Ré-utilisation
– Flexibilité
2- CLASSIFICATION D’ARCHITECTURES
• Reconfiguration au niveau système
– Lx, C62 (décomposition en cluster)
• Reconfiguration au niveau fonctionnel
– Pleiades, RaPiD, DART, SystolicRing
• Reconfiguration au niveau opérateur
– Chameleon, Piperench, Morphosys
• Reconfiguration au niveau porte
– Napa, GARP, FPGA
Source : O. Sentiyes, S. Pillement – R2D2
2- CLASSIFICATION D’ARCHITECTURES
GRAIN FIN
bit
CLB
mot
Dnode
Reg FILE
ALU + MULT
Système sur puce
hybride
Cœur reconfigurable
algorithme
Coeur
Coeur
DCT
MPEG4
FPGA
DSP
application GRAIN ÉPAIS
2- CLASSIFICATION D’ARCHITECTURES
Les différents niveaux parallélismes
Instruction Level Parallelism
Pipeline
Systolic Operation
Multiple Parallel Instances
Multi-threading and Multitasking
Sommaire
Partie 2 : Les architectures
reconfigurables dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
3- QUELQUES EXEMPLES
Systolic Ring (LIRMM)
Couche Opérative
Switch
Dnode
Switch
Dnode
Switch
Dnode
Dnode
Dnode
Switch
Dnode
Dnode
Switch
Dnode
Dnode
RAM
Dnode
Switch
Dnode
Switch
Couche de Configuration
Dnode
Dnode
Dnode
Dnode
Données
Dnode
Switch
Dnode
µP
Code de Configuration
Contrôleur de
Configuration
Programme de Gestion
Composant à grain épais
Reconfigurable dynamiquement
3- QUELQUES EXEMPLES
DNODE : Data Node
Constitution
In (1,2),fifo (1,2),bus,Rp(i,j) (i=1~4 , j=1~2)
• Chemin de données optimisé
• Banque de registres 4x16 bits
• ALU et multiplieur 16x16 câblés
Spécificités
• Tout le jeu d’instructions en un unique cycle
• Multiplieur et additionneur fusionnables (unité MAC)
µinst.
Reg FILE
ALU + MULT
Format d’opérations
• op(input,input)
• op(input,reg)
• op(reg,reg)
output,reg
output,reg
ouput,reg
out
DNODE
3- QUELQUES EXEMPLES
Forward dataflow
Systolic Ring architecture
Peak power : 3200 MIPS@200MHz (16 Dnodes version)
Dnode
Switch
Dnode
Dnode
E/S
Switch
Dnode
Dataflow
Dnode
E/S
Dnode
Dnode
Layer n
E/S
Layer n+1
Dnode
Switch
Switch
Dnode
Switch
Dnode
Dnode
E/S
Dnode
Dnode
Switch
Dnode
Switch
E/S
Dnode
Switch
E/S
Dnode
3- QUELQUES EXEMPLES
Comparaisons (cycles)
VLIW : CPU64, TM1000, TI 320C60
Superscalar : Pentium I, Pentium II, NEC V830
400
350
# cycles
300
250
200
150
100
50
0
CPU64 TM-1000 320C62
VLIW
Ring-8
Ring-64 PentiumI PentiumII
NEC V830
Superscalar
3- QUELQUES EXEMPLES
DART architecture (R2D2)
DPR1
Controller
DPR4
DMA
ctrl
Config
mem.
DPR3
DPR5
FPGA
DPR6
Segmented network
DPR2
Data
mem
3- QUELQUES EXEMPLES
DART architecture (IRISA)
Zero-overhead loop support
Global buses
Address
Generator1
Address
Generator2
Address
Generator3
Address
Generator4
Data
mem1
Data
mem2
Data
mem3
Data
mem4
Multi-bus network
reg1
reg2
FU1
FU2
FU3
FU4
3- QUELQUES EXEMPLES
DART architecture (IRISA)
• HW reconfiguration pour optimiser le datapath:
Config. 1
Mem1
Config. 2
Mem2
Mem1
Mem3
-
X
rec
+
X
4 cycles
y(n)+=x(n)*c(n)
y(n)=(x(n)-x(n-1))²
• SW reconfiguration reconfigure le datapath à chaque
cycle :
Config. 1
Mem1
Mem2
rec
Config. 2 Mem1
1 cycle
+
S=A+B
X
S=C*D
Mem4
3- QUELQUES EXEMPLES
Source slides : http://pactcorp.com
PACT XPP (eXtrem Processor Platform)
128 CFB@100 @100 MHz … 12.8 GMACs/s (32 bits fixed point)
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform)
• multiple parallel processing elements
• configuration flow replaces instruction
flow
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform)
XPUs are eXtreme Processing Units built from a small number of
standardized Processing Array Elements (PAEs)
ALU - PAE
RAM - PAE
I/O-Element
Configuration
Manager
All PAEs include:
+
+
+
Reconfiguration Handling
Automatic DataFlow
Synchronization
Event Network
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform)
MIPS
PACT in
year 2011:
350,000,000 MIPS
1,000,000,000
100,000,000
PACT
Comparison between
INTEL-Technology and
PACT-Technology
10,000,000
XPU-C2048
INTEL in
year 2011:
100,000 MIPS
XPU-C1024
1,000,000
XPU-C512
100,000
PACT XPP-Technology Roadmap
XPU-C256
McKinley
XPU-128
10,000
Moore´s
Law
Pentium III
Merced
1,000
INTEL Technology Roadmap
(based on Intel forecast 2000)
PACT XPU-Processors
PentiumPro
Pentium II
100
INTEL
Intel Processors
(existing and announced)
Pentium
i486
i386
10
80286
8088
1
1975
1980
1985
1990
1995
2000
2005
2010
YEAR
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform) : compilation
Strategies
XPP coprocessor or streaming code sections are selected by
annotations in original source code (currently)
Irregular code sections are compiled with standard compilers for
the Host system + XPP system calls
The XPP C-Compiler performs a data dependency analysis and
vectorizes the code
The sequence of configurations is loaded during runtime on Host
demand
Communication between Host and XPP by means of library
functions
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform) : compilation
Irregular Code
Sections
C-code
Streaming Code
Sections
Optimized
Libraries
XPP
XPPVectorizing
Vectorizing
C-Compiler
C-Compiler
Standard
StandardCC-Compiler
Compiler
++XPP
XPPInterface
InterfaceCalls
Calls
Host
HostSystem
System
Selection by annotation
Sequence of
Configurations
RAM,
RAM,I/O
I/O
Host
HostInterface
Interface
XPP
XPP
core
core
3- QUELQUES EXEMPLES
PACT XPP (eXtrem Processor Platform)
Comparison: Texas Instruments C6203 vs. XPU128
Clock Cycles
Normalized Power
100 %
1.8 W
100 %
55%
50%
50 %
50%
25%
9x
1024 complex FFT
Viterbi
Matrix Multiplication
8%
20 Tap Complex FIR
10%
9x
11 %
64 Tap Real FIR
1024 complex FFT
Viterbi
4.7%
Matrix Multiplication
2.7%
20 Tap Complex FIR
3.5%
64 Tap Real FIR
10%
10.1% 9.2%
3- QUELQUES EXEMPLES
Parallelisme au niveau instruction: XiRISC
L’accélérateur reconfigurable est integraté dans le pipeline du CPU
http://xirisc.deis.unibo.it
1: Coprocessor model
2: Function unit model
3- QUELQUES EXEMPLES
decodage d’instruction
dupliqué
Unités Alu and
Shifter dupliqués
Fonctions partagées DSP
operations,Memory handler
A pipelined configurable
Gate Array
3- QUELQUES EXEMPLES
PiCoGA
2D-LUT-based architecture
Exécution indépendante ou concourrente avec le processeur
4x32-bit données en entrée, 2x32-bit en sortie
3- QUELQUES EXEMPLES
Inititial
C code
Profiling
Assembler
Level
Scheduler
pGA-op
Latency
information
Computation
PiCoGA
mapping
kernel
extraction
Executable
code
100010100001
100101001010
110110010010
100101110101
101001011101
101001010110
111111111101
3- QUELQUES EXEMPLES
Utilisation de pragma dans le Code C
#pragma pGA shift_add 0x12 5 c a b
c = ( a << 2 ) + b
#pragma end
/**************************************/
/* Shift_add mapped on PiCoGA */
/**************************************/
#if defined(PiCoGA)
...
asm(“pGA-op 0x12 ...”)
...
/*************************************/
/* Emulation function _shift_add */
/************************************/
#else
void _shift_add(){
...
c = ( a << 2 ) + b
...
}
#endif
3- QUELQUES EXEMPLES
Exemple d’implémentation
DES
CRC
Median
Filter
13.5x
4.3x
7.7x
Motion
Estimation
Motion
Prediction
Turbo
Codes
12.4x
4.5x
12x
Réduction des accès
mémoire
1
0,8
75% de la conso dans
un VLIW est due à
l’accès aux instructions
et données
Only VLIW
0,6
VLIW + PiCo
0,4
0,2
0,27
0,15
0,22
0,076
0
DES
CRC
Median
Filter
Motion
Prediction
Sommaire
Partie 2 : Les architectures
reconfigurables dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
4- EXEMPLE DE GESTION DYNAMIQUE
♦ ‘Zoom out’, réalisation au niveau système
Multiplexage temporel
OS
Mémoire programme
Processeur central
Processus
2
1
Contrôleur
Multi-tâches
Temps réel
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Accélérateur
libre !
Multi-tâches
Temps réel
Processeur central
Processus
1
Contrôleur
OS
Mémoire programme
Processus
2
Processus
3
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Configuration dynamique
Multi-tâches
Temps réel
Processeur central
Processus
1
Contrôleur
OS
Accélération processus 3
Mémoire programme
Processus
2
Processus
3
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Accélérateur
occupé !
Multi-tâches
Temps réel
Processeur central
Processus
1
Contrôleur
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Multi-tâches
Temps réel
Processeur central
Contrôleur
OS
Mémoire programme
Processus Processus
2
1
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Accélérateur
occupé !
Multi-tâches
Temps réel
Processeur central
Contrôleur
OS
Mémoire programme
Processus Processus
2
1
Processus
3
Processus
4
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Multi-tâches
Temps réel
Processeur central
Processus
1
Contrôleur
OS
Fin du traitement !
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Fin
traitement
processus 3
Multi-tâches
Temps réel
Processeur central
Processus
1
Contrôleur
OS
Fin du traitement !
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Multi-tâches
Temps réel
Processeur central
Processus
1
Processus
2
Processus
4
Contrôleur
OS
Mémoire programme
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Reconfiguration dynamique
Multi-tâches
Temps réel
Processeur central
Processus
1
Processus
2
Processus
4
Contrôleur
OS
Accélération processus 4
Mémoire programme
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Bilan
Reconfiguration dynamique
non adaptative
Pas de parallélisme de
tâche
Multi-tâches
Temps réel
Sous-exploitation des
ressources
Mémoire programme
Processeur central
Contrôleur
OS
Parallélisme niveau
opération (voir boucle…)
Processus Processus
2
1
Processus
3
Processus
4
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Architectures reconfigurables
dynamiquement
Gestion dynamique des ressources !
Multi-tâches
Temps réel
OS
Processeur central
Processus Processus
2
1
Processus
3
Processus
4
Méthode de multiplexage matériel
Contrôleur
Multiplexage temporel
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Multiplexage matériel : Saturne
Parallélisme de Tâche
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Accélération processus 3
Mémoire programme
Processus
2
Processus
3
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Multi-tâches
Temps réel
Mémoire programme
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Configuration
virtuelle
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
# ressources ?
OK !
Multi-tâches
Temps réel
Mémoire programme
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Etat courant des ressources
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
initiale
incompatible
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
équivalente
incompatible
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
équivalente
incompatible
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
équivalente
incompatible
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
équivalente
compatible !
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Processeur
central
Multi-tâches
Temps réel
Mémoire programme
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Configuration
virtuelle
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
Configuration
équivalente
compatible
Multi-tâches
Temps réel
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Accélération processus 3, processus 4 et processus 5
Mémoire programme
Processus
2
Processus
3
Processus
4
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
Bilan
Reconfiguration dynamique
adaptative
opération
Parallélisme de tâche
Multi-tâches
Temps réel
Mémoire programme
Processeur central
Processus
1
Multiplexeur
Matériel
OS
Meilleure exploitation des
ressources
Parallélisme niveau
Processus
2
Processus
3
Processus
4
Mémoire
données
Processus 5
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
Processus
5
DMA
4- EXEMPLE DE GESTION DYNAMIQUE
• AR : Brique de base
Routage
interne des
données
Entrée 1
r0
r1
r2
r3
Entrée 2
r15
Banque
de Registre
N1,0
N1,1
N0,0
+
ALU + MULT
x
x
N2,0
N3,1
Dnode
+
N2,1
N0,1
N3,0
Sortie
Accumulateur de sortie
Arithmétiques : +, -, ++, --, x
Décalages : SR0, SR1, SL0, SL1
Logiques : Et, Ou, Neg, Not …
TSI : ΣΠ, ΠΣ
4- EXEMPLE DE GESTION DYNAMIQUE
Sorties Dnodes
couche amont
• AR : Topologie
Connexions
aux Bus
Fifo 1 Fifo 2
Switch
Entrées Dnode couche aval
N1,0
B0
B1
B2
N1,1
N1,0
Switch Switch
N1,1
N0,1
N2,1
Switch Switch
Bus_Switch
N3,0
Switch Switch
N3,1
N2,0
Bus_Switch
N0,0
Sortie 2
Bus_Switch
Bus_Switch
Switch Switch
Sortie 1
N0,0
N2,1
N0,1
N3,1
N3,0
N2,0
4- EXEMPLE DE GESTION DYNAMIQUE
Utilisation d’un en-tête de
configuration pour chaque tâche
• Parallélisme dynamique
Programme tâche 1
Ressources
nécessaires
0000 EN-TETE TACHE 1
0001 M1: N1:add
N2:sub
0002 M2: N1:mac
N2:mac
Facteur de
duplication
Topologie
B0
B1
B2
Mémoire programme
N1,0
???
N1,1
N0,0
N2,1
N0,1
N3,1
N3,0
N2,0
Mémoire
données
4- EXEMPLE DE GESTION DYNAMIQUE
Utilisation d’un en-tête de
configuration pour chaque tâche
• Parallélisme dynamique
Programme tâche 2
Ressources
nécessaires
0003 EN-TETE TACHE 2
0004 M1: N1:sub
N2:sub
0005 M2: N1:ou
N2:nop
Facteur de
duplication
Topologie
B0
B1
B2
Mémoire programme
N1,0
???
N1,1
N0,0
N2,1
N0,1
N3,1
N3,0
N2,0
Mémoire
données
4- EXEMPLE DE GESTION DYNAMIQUE
Utilisation d’un en-tête de
configuration pour chaque tâche
• Parallélisme dynamique
Programme tâche 3
Ressources
nécessaires
0006 EN-TETE TACHE 3
0007 M1: N1:add
N2:sub
0008 M2: N1:mult N2:nop
Facteur de
duplication
Topologie
B0
B1
B2
N1,0
???
N1,1
N0,0
N2,1
N0,1
N3,1
N3,0
N2,0
Mémoire
données
4- EXEMPLE DE GESTION DYNAMIQUE
- Code VHDL niveau RTL
• Structure interne
PC
PC
- Gestion du parallélisme de tâche
ce0
- Outil de programmation
ce1
ce2
En-tête
En-tête
Analysisof
needed resourcescompatibility
Analysisof topology compatibility
1
2
3
4
5
Incompatibility
, set waiting task
6
Waitingstate
cen
Mémoire programme
1
2
3
4
5
6
Incompatibility
Bus- Op
Incompatibility Op
Incompatibility Gac
- Op
Incompatibility
Bus
Incompatibility Gac
Incompatibility
Bus Gac
Configuration
Configuration
Compatible
Compatible
État des
État des
ressources
ressources
# lignes
#N
B0
B1
B2
Compatibility
SATURNE
Configuration
Configuration
Virtuelle
Virtuelle
#B
#G
B0
B1
B2
G0
N1,0
N1,1
N0,0
G1
N2,1
N0,1
Mémoire
données
N2,0
N3,1
N3,0
N0,0 N0,1 N1,0 N1,1 N2,0 N2,1 N3,0 N3,1
G2
G3
G0
G1
G2
G3
4- EXEMPLE DE GESTION DYNAMIQUE
• Simulation
Tâche 1
S1=(a+b)
S2=(a−b)
S =(a+b)
2
for(i=0;i<512;i++){
Tâche 4
S = a²−b²
2
S =(a²−b²)
for(i=0;i<512;i++){
for(i=0;i<256;i++){
for(i=0;i<256;i++){
temp=(a[i]+b[i])*(a[i]-b[i]);
temp=a[i]+b[i];
s1[i]=a[i]+b[i];
s[i]=(a[i]+b[i])*(a[i]b[i]);
s[i]=pow(temp,2);
s2[i]= a[i]-b[i];
}
}
s[i]=temp/2;
}
}
x
N1,1
N3,1
N3,0
+
N2,0
G2
G3
N3,1
N3,0
+
N2,0
G2
G3
N3,1
N3,0
G0
N1,1
G1
N2,1
-
x
G0
N1,1
G1
N2,1
-
x
G0
N1,1
G1
N2,1
N0,1
N1,0
G0
CONFIGURATION 4
CONFIGURATION 3
CONFIGURATION 2
CONFIGURATION 1
+
Tâche 3
Tâche 2
N2,0
G2
G3
+
G1
N2,1
N3,1
N3,0
>>
G2
G3
4- EXEMPLE DE GESTION DYNAMIQUE
Systolic Ring + Processeur RISC
Tâche 4
ir es
nna s
o
i
t
ée
Ges
on n
d
e
d
Tâche 1
Tâche 2
39%
Dn o
des
Tâche 3
Taux
d’occupation des
ressources
temps
Systolic Ring + multiplexeur matériel
ir es
nna s
o
i
t
ée
Ges
on n
d
e
d
Temps d’exécution
total réduit
69%
Dn o
des
temps
4- EXEMPLE DE GESTION DYNAMIQUE
100
90
Peff SMT (n)
Peff SMT_UR (n)
Peff (n)
Peff : Processing efficiency
80
70
60
(%) 50
40
100
30
90
20
80
10
MTeff DHM
70
MT eff
0
10
40
Number of Tasks
60
80
(%) 50
40
30
20
MTeff : Multi-tasking efficiency
10
0
10
Moyenne sur 300 scénarios (10,40,80 tâches)
40
Number of tasks
80
4- EXEMPLE DE GESTION DYNAMIQUE
Multiplexage matériel
Parallélisme de Boucle
8
Exemple : DCT 2D (8*8) (MPEG-2)
-
+
Mac
Mac
(64 blocs de 8*8)
8
8
Motif de traitement non déroulé exploitant le
parallélisme spatial et temporel
8
Image vidéo composée de 64*64 pixels
Pas de déroulage nécessaire pour
temps réel en 64*64
4- EXEMPLE DE GESTION DYNAMIQUE
Multiplexage matériel
Parallélisme de Boucle
8
Exemple : DCT 2D (8*8) (MPEG-2)
-
+
Mac
Mac
(256 blocs de 8*8)
16
8
Motif de traitement non déroulé exploitant le
parallélisme spatial et temporel
Déroulage de 4 pour temps
réel en 128*128
4 fois plus de blocs !
-
+
-
+
Mac
Mac
Mac
Mac
-
+
-
+
Mac
Mac
Mac
Mac
16
Image vidéo composée de 128*128 pixels
4- EXEMPLE DE GESTION DYNAMIQUE
Masque de
Configuration
sans déroulage
Flux vidéo 64*64
Configuration
équivalente
(sans
déroulage)
Accélération processus 3 et processus 4
Mémoire programme
Processus
1
Multiplexeur
Matériel
OS
Processeur central
Processus
2
Processus
3
Processus
4
tem
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
el
é
r
ps
4- EXEMPLE DE GESTION DYNAMIQUE
Configuration
équivalente
déroulée
dynamiquement
4 fois
El
le
,e
nc
or
e
…
.
Masque de
Configuration
sans déroulage
Flux vidéo 128*128
Accélération processus 3 et processus 4
Mémoire programme
Processus
1
Multiplexeur
Matériel
OS
Processeur central
Processus
2
Processus
3
Processus
4
tem
Mémoire
données
Interface de communication
Mémoire principale
Processus Processus
2
1
Processus
3
Processus
4
DMA
el
é
r
ps
4- EXEMPLE DE GESTION DYNAMIQUE
• Synthèse logique
Processeur RISC
Synthèse (ST CMOS 0,13µ)
Gestionnaires de données
Déroulage dynamique
de boucle
SATURNE
Parallélisme de tâche
0,4
0,35
∼ 10% de la surface totale
0,3
0,25
0,2
Surface initiale
0,15
0,1
0,05
0
Systolic Ring +
Processeur RISC
Systolic Ring +
Saturne
Sommaire
Partie 2 : Les architectures
reconfigurables dynamiquement
1- INTRODUCTION & CONTEXTE
2- CLASSIFICATION D’ARCHITECTURES
3- QUELQUES EXEMPLES
4- EXEMPLE DE GESTION DYNAMIQUE
5- CONCLUSIONS & PERSPECTIVES
ARCHI05 – 21-25 Mars 2005
5- CONCLUSIONS & PERSPECTIVES
Maximiser flexibilité, performances et flexibilité de programmation…
flexibilité
RISC
FPGA
ARD
CISC
VLIW
SIMD
Parallélisme
Difficulté de programmation
Classification d’architectures
5- CONCLUSIONS & PERSPECTIVES
Architectures
Reconfigurables
Processeur
(VLIW)
FPGA
5- CONCLUSIONS & PERSPECTIVES
Stockage & transfert de
données
Outils de CAO
Architectures
Reconfigurables
Processeur
(VLIW)
Consommation
FPGA
Flexibilité
Définition de nouvelles architectures
5- CONCLUSIONS & PERSPECTIVES
Architectures Reconfigurables
-
S-RAM
Flash
antifuse
etc …
Architecture
Granularité
Technologie
- LUT
- 0pérateurs
.
.
.
- Coeurs
Interconnexion
- Switch
- Crossbar
.
.
.
- Réseau sur puce
Granularité de l’application
5- CONCLUSIONS & PERSPECTIVES
Grain épais, très fort niveau
de parallélisme
1
ai
bi
Iw
ai
cte
3
Store layer
Insulator
Pinned layer
"0"
“1"
2
Nano FPGA
(grain très fin)
Sum
Adder
Multiplier
Latency
Outils CAO, compilateur (!)
Téléchargement