Upload
batilde-dupin
View
104
Download
0
Embed Size (px)
Citation preview
1
Méthodologie de conception d’architectures parallèles dédiées
Mohamed Akil, Thierry Grandpierre, Eva Dokadalova, Laurent Perroton
Université Paris-Est, Laboratoire d'informatique Gaspard-Monge, équipe A3SI
ESIEE Paris, 2 Bld Blaise Pascal, BP 99, Noisy-Le-Grand, 93162, France
AMINA 2008
2
Architecture, parallélisme pour l’Image et la Réalité Virtuelle
Architectures dédiées pour l’Image et la RV
M. Akil
Architectures dédiées pour l’Image et la RV
M. Akil
Parallélisme : l’Image et la RVL. Perroton
Parallélisme : l’Image et la RVL. Perroton
Architectures reconfigurables et adaptatives pour la vision temps
réel et la RVE. Dokladalova
Architectures reconfigurables et adaptatives pour la vision temps
réel et la RVE. Dokladalova
Méthodologie de conceptiond’applications temps-réel
pour l’Image et la RVT. Grandpierre
Méthodologie de conceptiond’applications temps-réel
pour l’Image et la RVT. Grandpierre
APPLICATIONS
• Imagerie médicale• Imagerie temps réel embarquée• RV/RA• Multimédia et compression
APPLICATIONS
• Imagerie médicale• Imagerie temps réel embarquée• RV/RA• Multimédia et compression
Architectures matériellesexistantes
Conception de nouvelles
architectures
Conception et Extensionde nouveaux Logiciels
5 thèses en cours
3
• Introduction : architecture parallèle dédiée (multi-composants)
• Optimisation, génération automatique de code : – pour architecture programmable– pour architecture reconfigurable– pour architecture mixte : programmables et
reconfigurables
• Conclusion et perspectives
Plan
4
Processeur DSP - VLIW Processeur RISC
Reduce Instruction Set ComputerDigital Signal Processor Digital Signal Processor
T
Traitement des défauts pour l’Imagerie
numérique : Étude Algorithmique
et Implémentation sur Architecture Mobile
5
OMAP5910
ARM Shared
Traffic Ctrl
75 MHz
ARM Private32 32
IMIF32
32
32
32
32
16
DSP Shared
DSP Private
System Shared
EMIFF
EMIFS SystemDMA
LCDCtrl
SRAM1.5 Mb
TMS320C55xTM
Core150 MHz
DSP
ARMTI-Enhanced ARM925 Core
150 MHz
OMAP5910
Processeur DSP
Détection de visage sur système
Sur Puce (SoC)
Processeur RISC - ARM
6
• Applications : traitement d’images, visions, multimédia et réalité virtuelle
• applications temps réel forte puissance de calcul
• Architectures parallèles dédiées :
Multi-composants
– processeurs (CISC, RISC, DSP, SIMD, GPU)– circuits reconfigurables (FPGA)
Contexte et objectifs
7
Contexte : méthodologie• Implantation optimisée d’applications temps réels :
Algorithme : parallélisme potentiel : parallélisme de tâches (intrinsèque) parallélisme de données, ..Architecture : parallélisme disponible
Implantation = distribution + ordonnancement + optimisation/estimation de performances + génération (code/configuration/communications)
• Contraintes : temps réel, prototypage rapide, hétérogénéité, différents domaines d’expertise
Méthodologie et outil associé : Exploration de ces parallélismes à l'aide
d'un outil (nombre de tâches, granularité,…)
Adéquation
8
Mise en œuvre de la Méthodologie • Architecture programmable (à base de processeurs) :
– AAA/SynDEx
• Architecture à base de circuits dédiés (circuit reconfigurable – FPGA :– AAA/SynDEx-IC (Integrated Circuit)
• Architecture parallèle dédiée : – Objectif : explorer l'espace de conception :
• Définir une architecture de Processeurs Elémentaires (PE)– Topologie?– Types d'interconnexions?
• Définir la fonctionnalité de chaque PE– Quels calculs peuvent ils effectuer?– Quels tailles de données traitent-ils?
• Etre capable de prédire les performances des architectures avant implantation– Moyens utilisés
• Modélisations de l'algorithme et de l'architecture• Outil logiciel SynDEx/SynDEx-IC éventuellement associé à d’autres outils
(TRIMARAN : exploration de processeur RISC VLIW,…)• Méthodologie itérative
9
méthodologie AAA et architectures multiprocesseurs (programmables)
Opr1
Com1b
Com1a
Com2b
Com2a Com3a
Opr2 Opr3processeur1 processeur2 processeur3
RAMD/P
SAM
SAMRAMD/P
RAMD
RAMD
RAMD/P
Opr4
RAMD/P
processeur4
in
calc
out
send receiveall.Din/calc
all.Pin
all.Dlin
all.Din/calc
all.Pcalc
all.Dlcalc
all.Poutall.Dlout
all.Dcalc/out
all.Din/calc
loop loop loop loop
endloop endloop endloop endloop
in_ini
in_end
out_ini
out_end
gensig
filtre adap
filtre sub
adap
visu
retard
coeff
processor_( opr1, .) semaphores_(s_empty…)semaphores_(s_empty…) alloc_(type_in/calc...) thread_(comr1a)thread_(comr1a) pre0 (s_empty)pre0 (s_empty) loop_ sucF(s_full)sucF(s_full) send(in/calc)send(in/calc) preE(s_empty)preE(s_empty) endloop_ endthread_endthread_ main_main_ in_ini( )in_ini( ) spawn_thread(com1ra)spawn_thread(com1ra) loop_ sucE(s_empty)sucE(s_empty) in(in/calc)in(in/calc) preF(s_full)preF(s_full) endloop_ in_end ( )in_end ( ) endmain_endmain_endprocessor_
MACROPROCESSEUR
BIBLIOTHEQUEGENERIQUED’EXECUTIF
BIBLIOTHEQUEde macros
COMPILATEUR
Executable1
Executable2
src
BIBLIO. DeFonctions
BIBLIOTHEQUEGENERIQUED’EXECUTIF
1
2
3
4
Architectures multiprocesseurs(Graphe d’architecture)
Adéquation(heuristiques distribution
ordonnancement)
Génération automatique d’exécutifs distribués
Algorithmes(Graphe flot de données)
Estimationperformances
1 2
3
4
all.P
o1
all.P
o2
all.P
o4all.D
_o1o
2
all.D
_o2o
3
all.D
_o3o
4 all.P
o3
all.D
lo1
all.D
l2al
l.Dlo
4all.D
lo3
alia
s.D
_o3o
4
ESPACE MEMOIRE RAM
10
méthodologie AAA et architectures multiprocesseurs (programmables)
Spécificationde l’algorithme Génération
de codeCompilation
& tests
Spécificationde l’architecture
Distributionordonnancement
automatique
Prédiction deperformances
Distribution (opérations sur opérateurs + comm. + mém.) Ordonnancement (ordre des opérations sur opérateurs)Génération de code : inclus les communications
caractérisation
11
Méthodologie AAA et architectures multiprocesseurs (programmables)
12
Méthodologie AAA et architectures multiprocesseurs (programmables)
o1o2
o3o4
o2o3
opr1 c1 C2 Opr2R S R
o1
opr1 c1 C2 Opr2R S R
o1
o2
s ro3
s r
2) o1 sur opr1, candidats = o2 et o3
o2/opr1 ou opr2 : o3/opr1 ou opr2 :
o3
o3s r
o2
opr1 c1 C2 Opr2R S R
o1
3) o2/opr1, cand:o3/opr1 ou opr2
o2
opr1 c1 C2 Opr2R S R
o1
o3s r
r so4
4) o3/opr2, cand: o4/opr1 ou opr2
o2o3
L’optimisation
13
Méthodologie AAA et architectures multiprocesseurs (programmables)
processor_( opr1, .) semaphores_(s_empty…)semaphores_(s_empty…) alloc_(type_in/calc...) thread_(comr1a)thread_(comr1a) pre0 (s_empty)pre0 (s_empty) loop_ sucF(s_full)sucF(s_full) send(in/calc)send(in/calc) preE(s_empty)preE(s_empty) endloop_ endthread_endthread_ main_main_ in_ini( )in_ini( ) spawn_thread(com1ra)spawn_thread(com1ra) loop_ sucE(s_empty)sucE(s_empty) in(in/calc)in(in/calc) preF(s_full)preF(s_full) endloop_ in_end ( )in_end ( ) endmain_endmain_endprocessor_
MACROPROCESSEUR
BIBLIOTHEQUEGENERIQUED’EXECUTIF
indépendante del’architecture(syndex.m4x)
BIBLIOTHEQUEde macros
spécifiques àl’application
(nomAppli.m4x)
COMPILATEUR
Executable1
Executable2
src
BIBLIO. DeFonctions
spécifiques àl’application
(fonctions.c ou .o)
BIBLIOTHEQUEGENERIQUED’EXECUTIF
spécifique àl’architecture
(Unix.m4x,Tcp.m4xCan.m4x, 555.m4x)
Générationautomatique du code
14
Architecture reconfigurable ( Cible FPGA) :Modèle algorithme (1/2)
gensig
filtre adap
filtre sub
adap
visucoeff
Hierarchie + Conditionnement
Hierarchie
retard
Graphe Factorisé Conditionné de Dépendance de
Données (GFCDD)
capture écrand’un GFCDDdans SynDEx
15
Vect diff.
fork
P
[3][3]
[3]join
Mat
visu[3][3]
[1] [3]
visu
P
P
P[3]
[3][3]
[3]
[3]
[3]
[3]
[3]
[3]
[3]
[1]
[1]
[1]
Vect
Mat
[3]
[3]
x
x
x
+
+X +
fork
fork
iter.init
[3]
[3]
[1]
[1]
[1]
[1]
X +fork
fork
iter.init
[3]
[3]
[1]
[1]
[1]
fork
fork
join
[1]
[1]
[1]
[1]
[1]
[1]
[1]
[1][1]
[1]
[3]
[3][3]
Vect
Matvisu
[3]
FF1
FF1
FF2
FF2
Architecture reconfigurable ( Cible FPGA) :Modèle algorithme (2/2)
16
Optimisation du circuit (1/5)
×3P
F
DR
A
BJ
• Recherche d’une défactorisation partielle de la spécification algorithmique respectant les contraintes surface/latence
Réduit SurfaceAugmente Latence
AB P P R
t
1) 3 fois P (temporellement)×3
PXs
DR
A
BMs
AB P
P
PR
Augmente SurfaceRéduit Latence
×3P
Xp
DR
A
BMp
P
t2 t1
X m
2) 3 fois P (spatialement)
graphe d’algorithme :
2 types d’implantations :
17
Optimisation du circuit (2/4)
FF1FF2
FF4 FF5FF3
•Quelle frontière défactoriser ?
×10C1FA J
×20C2F J
R×5
C5F J×4
C6F J
×2C7F J
C3 C4
F
C4
18
Optimisation du circuit (3/5)
•De combien la défactoriser ?
FF1FF2
FF4 FF5FF3
FF2’
FF1FF4 FF5
FF3FF2’’
Défactorisé par 2 :
Défactorisé par 3 :FF2’
FF4 FF5
FF2’’’
FF2’’FF1
FF3
•Quelle frontière défactoriser ?
Pb. NP difficilerecherche parheuristiques
(gloutonnes et derecuit simulé)
flexibilité
19
Heuristique (4/5)
Entrée : graph GFCDD, contrainte temporelle latence Ct
Sortie : graph optimisé FF optimiséesG’FCDD := GFCDD
Tant que Latence(G’FCDD)>C: Pour chaque f Є chemin critique CC de GFCDD: Calculer défactorisation optimisée de f : dff(f,CC) Calculer pression de défactorisation : (f,dff(f)) G’FCDD := graphe où f qui à le max. est défactorisé de dff(f,CC)
Défactorisation optimisée dff(f,CC) :dff := 1 ;G’FCDD:=GFCDD
Tant que (L(CC) Ct et dff dMAX(f) ): dff := dff+1 G’FCDD := G’FCDD défactorisé de dffRetourne dff
Δsurface(f, dff ,dMAX(f))
L(f, dMAX(f)) - max(L(f, dff ) ,Ct)
Pression de défactorisation
(f,dff)=
20
Optimisation du circuit (5/5)
X +fork
fork
iter.
[3]
[3]
[1]
[1]
[1]
fork
fork
join
[3]
[3][3]
Vect
Matvisu
[3]
FF2
FF1
SPFC
FPSC
SPFC
FPSC
SPFC
FPSCFF2FF1FF interface
Consommateur côté lent (S)
Consommateur côté rapide (F)
ProducteurCôté lent (S)
Producteur côté rapide (F)
SP FC
FPSC
Utilisé aussi pour :
• Synthèse chemin contrôle• Interfaçage des opérations de types IP (opérations non combinatoires)
Heuristiques basées sur graphe de voisinage :
init
Algorithme :
Déduction dugraphe voisinage :
21
Génération VHDL
chemin données
chemin contrôle
outils deSynthèse
Adéquation
heuristique
graphevoisinage
Estimation performances
config.FPGA
VHDL
Génération de VHDL
Architecture caracteristiques FPGA
AlgorithmesGFCDD
Règles de transformations
22
Génération VHDL
chemin données
chemin contrôle
outils deSynthèse
Adéquation
heuristique
graphevoisinage
Estimation performances
config.FPGA
VHDL
Circuit reconfigurable (Cible FPGA) : Bilan
Architecture caracteristiques FPGA
AlgorithmesGFCDD
•Optimisation compromis surface/latence des boucles
•Synthèse du chemin de contrôle et chemin de données
•Génération de code VHDL
•Développement du logiciel SynDEx-IC (ESIEE)
CATURE SYNDEXIC
23
Contexte : nouvelles architectures hétérogènes (SoC/SoPC)
• Multiprocesseurs on a Chip : OMAP, DaVinci, CELL
1x PowerPC (64bits), 8 x Synergistic Processor Element (128bits SIMD)
24
I. Cible CIRCUITS FPGAII. Cible ARCHITECTURES MIXTES
Objectifs
Architectures multiprocesseurs(Graphe d’architecture)
Adéquation(heuristiques
Génération automatique d’exécutifs distribués
Algorithmes(Graphe flot de données)
Estimationperformances
Architectures parallèles
Dédiés (dites mixtes)
(reconfigurable
+ programmable)
Il faut étendre :• modèle algorithmes • modèle architecture• modèle implantation
Développer de nouvelles :• heuristiques d’optimisation• techniques d’estimation perf.• techniques de génération VHDL• communications mixtes
Implémentation logiciel :• SynDEx-IC
Génération automatique circuit (VHDL)
Estimationperformances
Adéquation(heuristiques pour
circuits)
25
Contexte : nouvelles architectures hétérogènes (SoC/SoPC)
• Multiprocesseurs on a Chip : OMAP, DaVinci, CELL
• {FPGA + Cœur(s) Processeur(s)} on a Chip
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
26
Contexte : nouvelles architectures hétérogènes (SoC/SoPC)
• Multiprocesseurs on a Chip : OMAP, DaVinci, CELL
• {FPGA + Cœur(s) Processeur(s)} on a Chip
Calc1bloc
« calcul »élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaire
bloc« calcul »
élémentaireCalc2
bloc« calcul »
élémentaire
27
Contexte : nouvelles architectures hétérogènes (SoC/SoPC)
• Multiprocesseurs on a Chip : OMAP, DaVinci, CELL
• {FPGA + Cœur(s) Processeur(s)} on a Chip
Calc1
Calc2
28
Contexte : nouvelles architectures hétérogènes (SoC/SoPC)
• Multiprocesseurs on a Chip : OMAP, DaVinci, CELL
• {FPGA + Cœur(s) Processeur(s)} on a ChipExemples :– Cœurs en « dur »
• Xilinx Virtex II Pro (2 PowerPC_405 300Mhz + FPGA)• Excalibur (1xARM922 200MHz + FPGA 1Mportes)
– Cœurs « logiciel »• NIOS (Altera)• Microblaze, PicoBlaze (Xilinx)• IP libres (opencore) ou commerciales
29
Circuit reconfigurable (FPGA) : Modèle d’architecture
Modéliser FPGA pour :• exploiter parallélisme intra-composant du FPGA, définir l’allocation• modéliser les communications en mixte, prédire les performances
définir nouvelles heuristiques d’optimisation
FPGA : • Ensemble de blocs élémentaires configurables, de registres
(mémoires), réseaux d’interconnexions configurables• Sous-ensemble configuré forme un opérateur dégénéré
(opérateur exécute séquentiellement des opérations de calculs)
• dans AAA, FPGA = un seul opérateur dégénéré (opr capable d’exécuter un seul type d’opération du graphe d’algorithme)
pb . : trop restrictif car FPGA = plusieurs opérateurs dégénérés
30
Nouveaux sommets (modèle architecture) :• 1 bloc non configuré = 1 opérateur élémentaire configurable
(Opreconf) capable d’exécuter une seule opération élémentaire (AND, OR, LUT…)
FPGA initialement décrit par le graphe : GFPGA=(SOPReSreg,R)
Opre Opre’ (idem registres Sreg)
• Ensemble de blocs configurés + registres + réseaux = 1 opérateur dégénéré (Oprd : capable d’exécuter un seul type d’opn de Gal)
configuration
Circuit reconfigurable (FPGA) : Modèle d’architecture
31
Circuit reconfigurable(FPGA) : Architecture formalisation
Graphe algorithme Gal=(O,D)
Graphe architecture Gar = (S,A) avec S=SoprScom Smem Sbus Soprd
Implantions de Gal sur Gar :
(Gal, Gar) (Gal’,Gar’)
GFPGA=(SOPReSreg,R) GFPGA’=(S’OPReS’reg,R’) (configuration)
avec R’ R et S’OPReS’reg SOPReSreg (sous-graphe)
FPGAconfiguré = (SOprD ,R’) et Oprd (GFPGA) )
Nouvelles / modifs applications :Configuration FPGA : SOprD SOPRe
Contrainte placement : O (Scal) (avec Scal = SoprScom Soprd )
Distribution :O Scal ,
…
Rroutage Rdistribution Rcommunication Rordonnancement Rconf
32
Circuit reconfigurable (FPGA) : Modèle d’architecture
OPRe
RModélisation d’un « bloc logique » :opérateur élémentaire OPRe :
bloc« calcul »
élémentaire
bloclogique
élémentaire
bloclogique
élémentaire
bloc« calcul »
élémentaire
bloclogique
élémentaire
bloclogique
élémentaire
bloc« calcul »
élémentaire
bloclogique
élémentaire
bloclogique
élémentaire
33
Circuit reconfigurable (FPGA) :
Modèle d’architecture
OPRe
R
OPRe
R
OPRe
R
OPRe
R
R
R
OPRe
R
OPRe
R
OPRe
R
OPRe
R
R
OPRd_AR
OPRe
R
OPRe
R
OPRe
R
OPRe
R
R
OPRd_CR
OPRe
R
OPRe
R
OPRe
R
OPRe
R
R
OPRd_BR
OPRe
R
OPRe
R
OPRe
R
OPRe
R
R
OPRd_DR
OPRd_A
Exemple graphe d’implantation combinatoire (sans boucle et répétition) :
34
Circuit reconfigurable FPGA : Modèle d’architecture
OPRd1
OPRd2
ROPRe
ROPRe
ROPRe
ROPRe
R
ROPRe
ROPRe
ROPRe
ROPRe
R
ROPRe
ROPRe
ROPRe
ROPRe
R
Caractérisation :•Nombre d’opérateurs élémentaires configurables disponibles dans un FPGA
card (Sopre)•Nombre d’opérateurs élémentaire pour réaliser un opérateur dégénéré
card ( (Ooprd))•Latence d’un opérateur dégénéré (Oi,Ooprd)
35
Génération VHDL
chemin données
chemin contrôle
outils deSynthèse
Adéquation
heuristique
graphevoisinage
Estimation performances
config.FPGA
VHDL
Circuit reconfigurable (FPGA) : Bilan
Architectures multiprocesseurs(Graphe d’architecture)
Adéquation(heuristiques distribution &
ordonnancement)
Génération automatique d’exécutifs distribués
Estimationperformances
Architecture caracteristiques FPGA
AlgorithmesGFCDD
SynDExINRIA
SynDEx-ICESIEE
36
Génération d’exécutifsdistribués
Génération VHDL
synthétisablesynthèse
communications
Cible architectures parallèles dédiées (mixtes)
Heuristiques pourprogrammable
Heuristiques pourcircuits
Adéquation mixte
AlgorithmesGFCDD
Composantsreconfigurables
Composants programmables
ArchitecturesParallèles dédiées
(modèle unique)
37
Architectures parallèles dédiées : Modèle d’implantation
• Un FPGA renferme plusieurs opérateurs dégénérés = parallélisme disponible « intra »
• Objectif : distribuer les opérations sur les opérateurs (inclus chaque opérateur dégénéré)Ajout de communications
• entre opérateurs et opérateurs dégénérés…• entre opérateurs dégénérés = arcs (pas de SAM)
38
Architectures parallèles dédiés : Modèle d’implantation
• Communicateur : exécute séquentiellement les opérations de communication
• Implantation FPGA des communicateursnouveau type de sommets (décrire l’allocation)
• Induit un ordre partiel d’exécution entre opérations distribuées sur le FPGA (mais pas forcément ordonnancées !)
Extension modèle d’implantation (prédiction de performances)
39
Architectures parallèles dédiées : Communications SAM
o4
opr1 c1 C Oprd1R S
o1
o2
s r
o3
s rs r
sr
sr
sr
o5
o1
o2
o3
o4
o5
FPGA
Processeur
Algorithme :
Graphe d’implantation :
(sans extension des modèles, O2,O3, O4 de même type)
opr1 c1 C Oprd1R S
Architecture :
40
Architectures parallèles dédiées : Communications SAM
o1
o2
o3
o4
o5
Algorithme :
Graphe d’implantation :
(O2O3O4 devient possible)
opr1 c1 C FR S
Architecture :
o4
opr1 c1 C Oprd1R S
o1
o2
s r
o3
Oprd3Oprd2
s rs r
srsrsr
o5
FPGAProcesseur
41
Architectures parallèles dédiées : Communications RAM
signalvidéo
RS232
JTAG
DC
R D
evice Con
trol Register B
us
OPB On-chip Peripheral Bus (100 MHz)
SOBEL_IPIF
DRAM(512 M)
VGA Interface
Interruptcontroller
I2C
UART
PLB2OPBBridge
PLB2DCRBridge
PowerPC 405 RISC
CPU CORE
VDEC
JTAG_PPC
PLB Processor Local Bus (100 MHz)
PPC405COprd1 RSOprd3 Oprd2
CS
Acqui. Sobel
Affichage
haut niveaucpy
cpy
Application TR de TI surXilinx Virtex II Pro
42
Architectures parallèles dédiées : Conclusion
Bilan :Modélisation architecture, implantation, caractérisation
Définition d’IP génériques de communication
Validation « manuelle » en cours
Perspectives :Implantation dans outils SynDEx-IC
Étude d’heuristiques pour automatiser le partitionnement logiciel (programmable) / matériel (reconfigurable)
43
Annexes
44
I - Cible FPGA :Optimisation circuit (3/4)
Optimisation():Tant que T<C: (T calculée, C contrainte Pour chaque f Є chemin critique: Déterminer défactorisation optimale; Déterminer rentabilité; Défactoriser la frontière la plus rentable;Fin Tant que
Défactorisation optimale(f):défac(f):=1;Tant que f Є chemin critique & T>C: défac(f) := défac(f)+1;
T-max(T’,C)
ΔSurfaceRentabilité =
45
Notion de vecteur d’état :X1
X2
X3
Xn
Valeurs des défacteursdes ‘n’ frontières du graphed’algorithme modélisé
….
• Trouver la solution initiale du système - S0
• Trouver la valeur initiale du paramètre de contrôle - t0
Tant que N 60 faire 60 faire
Tant que M iter faire iter faire
X(J)=V(X(I))X(J)=V(X(I)) - - X(J) est la solution voisine de X(J) est la solution voisine de X(I);X(I); F=F(X(J))-F(X(I)) ;F=F(X(J))-F(X(I)) ; Si Si F < 0 alorsF < 0 alors X(I) = X(J);X(I) = X(J); SinonSinon
SiSi ( -exp( ( -exp(F/tk)) > Random(0,1) F/tk)) > Random(0,1) thenthen
X(I) = X(J);X(I) = X(J); SinonSinon Revenir à X(I):Revenir à X(I):
iteriter(k+1)(k+1) =1.01*iter =1.01*iterkk ; ;
tt(k+1)(k+1) = 0.9*t = 0.9*tkk ; ;
CHOIX ALEATOIRE
F(X(I)): F(X(I)): coût de X(I)coût de X(I)
F(X(J)): F(X(J)): coût deX(J)coût deX(J)
S, si Tctr > t
F(X) =
S + k.(t - Tctr), si Tctr t
t – latence après défactorisation S – surface consommée après défactorisation
X1 = 1
X2 = 1
X3 = 2
X4 = 1
X1 = 1
X2 = 3
X3 = 2
X4 = 1
I - Cible FPGA :Optimisation circuit : recuit simulé
46
o1o2
o3o4
o2o3
opr1 c1 C2 Opr2R S R
o1
opr1 c1 C2 Opr2R S R
o1
o2
s ro3
s r
2) o1 sur opr2, candidats = o2 et o3
o2/opr1 ou opr2 : o3/opr1 ou opr2 :
o3
o3s r
o2
opr1 c1 C2 Opr2R S R
o1
3) o2/opr1, cand:o3/opr1 ou opr2
o2
opr1 c1 C2 Opr2R S R
o1
o3s r
r so4
4) o3/opr2, cand: o4/opr1 ou opr2
o2o3
47